2023-06-30 10:55:56 +02:00
|
|
|
/* eslint-disable multiline-comment-style */
|
|
|
|
|
2024-03-09 13:03:57 +02:00
|
|
|
import shim from '../../../shim';
|
2021-07-23 12:05:21 +02:00
|
|
|
import Plugin from '../Plugin';
|
|
|
|
|
|
|
|
export interface Implementation {
|
|
|
|
injectCustomStyles(elementId: string, cssFilePath: string): Promise<void>;
|
|
|
|
}
|
|
|
|
|
|
|
|
export default class JoplinWindow {
|
|
|
|
|
|
|
|
private plugin_: Plugin;
|
|
|
|
private store_: any;
|
|
|
|
private implementation_: Implementation;
|
|
|
|
|
|
|
|
public constructor(implementation: Implementation, plugin: Plugin, store: any) {
|
|
|
|
this.implementation_ = implementation;
|
|
|
|
this.plugin_ = plugin;
|
|
|
|
this.store_ = store;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Loads a chrome CSS file. It will apply to the window UI elements, except
|
|
|
|
* for the note viewer. It is the same as the "Custom stylesheet for
|
|
|
|
* Joplin-wide app styles" setting. See the [Load CSS Demo](https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/load_css)
|
|
|
|
* for an example.
|
2024-03-26 13:36:15 +02:00
|
|
|
*
|
|
|
|
* <span class="platform-desktop">desktop</span>
|
2021-07-23 12:05:21 +02:00
|
|
|
*/
|
|
|
|
public async loadChromeCssFile(filePath: string) {
|
|
|
|
await this.implementation_.injectCustomStyles(`pluginStyles_${this.plugin_.id}`, filePath);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Loads a note CSS file. It will apply to the note viewer, as well as any
|
|
|
|
* exported or printed note. It is the same as the "Custom stylesheet for
|
|
|
|
* rendered Markdown" setting. See the [Load CSS Demo](https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/load_css)
|
|
|
|
* for an example.
|
2024-03-26 13:36:15 +02:00
|
|
|
*
|
|
|
|
* <span class="platform-desktop">desktop</span>
|
2021-07-23 12:05:21 +02:00
|
|
|
*/
|
|
|
|
public async loadNoteCssFile(filePath: string) {
|
2024-03-09 13:03:57 +02:00
|
|
|
const cssString = await shim.fsDriver().readFile(filePath, 'utf8');
|
2021-07-23 12:05:21 +02:00
|
|
|
|
|
|
|
this.store_.dispatch({
|
|
|
|
type: 'CUSTOM_CSS_APPEND',
|
|
|
|
css: cssString,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|