UNPKG

obsidian-dev-utils

Version:

This is the collection of useful functions that you can use for your Obsidian plugin development

127 lines (123 loc) 11.1 kB
/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ (function initEsm() { if (globalThis.process) { return; } const browserProcess = { browser: true, cwd() { return '/'; }, env: {}, platform: 'android' }; globalThis.process = browserProcess; })(); import { CommandBase, CommandInvocationBase } from "./CommandBase.mjs"; class EditorCommandBase extends CommandBase { /** * The item name to use in the editor menu. */ editorMenuItemName; /** * The section to use in the editor menu. */ editorMenuSection; /** * Checks if the command can execute or executes it. * * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed. * @param editor - The editor to check. * @param ctx - The context of the command. * @returns Whether the command can execute. */ editorCheckCallback(checking, editor, ctx) { if (!this.shouldAddToCommandPalette()) { return false; } return this.createEditorCommandInvocation(editor, ctx).invoke(checking); } /** * Registers the command. */ register() { super.register(); this.plugin.registerEvent(this.app.workspace.on("editor-menu", this.handleEditorMenu.bind(this))); } /** * Checks if the command should be added to the command palette. * * @returns Whether the command should be added to the command palette. */ shouldAddToCommandPalette() { return true; } /** * Checks if the command should be added to the editor menu. * * @param _editor - The editor to check. * @param _ctx - The context of the command. * @returns Whether the command should be added to the editor menu. */ shouldAddToEditorMenu(_editor, _ctx) { return false; } handleEditorMenu(menu, editor, ctx) { if (!this.shouldAddToEditorMenu(editor, ctx)) { return; } if (!this.createEditorCommandInvocation(editor, ctx).invoke(true)) { return; } menu.addItem((item) => { item.setTitle(this.editorMenuItemName ?? this.originalName).setIcon(this.icon).setSection(this.editorMenuSection ?? "").onClick(() => this.createEditorCommandInvocation(editor, ctx).invoke(false)); }); } } class EditorCommandInvocationBase extends CommandInvocationBase { /** * Creates a new editor command invocation. * * @param plugin - The plugin that the command invocation belongs to. * @param editor - The editor to create the command invocation for. * @param ctx - The context of the command. */ constructor(plugin, editor, ctx) { super(plugin); this.editor = editor; this.ctx = ctx; this._file = ctx.file; } /** * The file to invoke the command for. * * @returns The file to invoke the command for. * @throws If the file is not set. */ get file() { if (!this._file) { throw new Error("File not set"); } return this._file; } _file; /** * Checks if the command can execute. * * @returns Whether the command can execute. */ canExecute() { return super.canExecute() && !!this._file; } } export { EditorCommandBase, EditorCommandInvocationBase }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0VkaXRvckNvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3IgZWRpdG9yIGNvbW1hbmRzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRWRpdG9yLFxuICBNYXJrZG93bkZpbGVJbmZvLFxuICBNZW51LFxuICBQbHVnaW4sXG4gIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgQ29tbWFuZEJhc2UsXG4gIENvbW1hbmRJbnZvY2F0aW9uQmFzZVxufSBmcm9tICcuL0NvbW1hbmRCYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBlZGl0b3IgY29tbWFuZHMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFZGl0b3JDb21tYW5kQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIENvbW1hbmRCYXNlPFRQbHVnaW4+IHtcbiAgLyoqXG4gICAqIFRoZSBpdGVtIG5hbWUgdG8gdXNlIGluIHRoZSBlZGl0b3IgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JNZW51SXRlbU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yTWVudVNlY3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBvciBleGVjdXRlcyBpdC5cbiAgICpcbiAgICogQHBhcmFtIGNoZWNraW5nIC0gSXMgY2hlY2tpbmcgbW9kZSBvbmx5LiBJZiBgdHJ1ZWAsIG9ubHkgdGhlIGNoZWNrIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlIGlzIHBlcmZvcm1lZC4gSWYgYGZhbHNlYCwgdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWQuXG4gICAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIGNvbnRleHQgb2YgdGhlIGNvbW1hbmQuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgZWRpdG9yQ2hlY2tDYWxsYmFjayhjaGVja2luZzogYm9vbGVhbiwgZWRpdG9yOiBFZGl0b3IsIGN0eDogTWFya2Rvd25GaWxlSW5mbyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0NvbW1hbmRQYWxldHRlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlRWRpdG9yQ29tbWFuZEludm9jYXRpb24oZWRpdG9yLCBjdHgpLmludm9rZShjaGVja2luZyk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyKCk6IHZvaWQge1xuICAgIHN1cGVyLnJlZ2lzdGVyKCk7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oJ2VkaXRvci1tZW51JywgdGhpcy5oYW5kbGVFZGl0b3JNZW51LmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGVkaXRvciBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIHRvIGNyZWF0ZSB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGZvci5cbiAgICogQHBhcmFtIGN0eCAtIFRoZSBjb250ZXh0IG9mIHRoZSBjb21tYW5kLlxuICAgKiBAcmV0dXJucyBUaGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUVkaXRvckNvbW1hbmRJbnZvY2F0aW9uKGVkaXRvcjogRWRpdG9yLCBjdHg6IE1hcmtkb3duRmlsZUluZm8pOiBDb21tYW5kSW52b2NhdGlvbkJhc2U7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbW1hbmQgcGFsZXR0ZS5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbW1hbmQgcGFsZXR0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0NvbW1hbmRQYWxldHRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGVkaXRvciBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gX2VkaXRvciAtIFRoZSBlZGl0b3IgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBfY3R4IC0gVGhlIGNvbnRleHQgb2YgdGhlIGNvbW1hbmQuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBlZGl0b3IgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0VkaXRvck1lbnUoX2VkaXRvcjogRWRpdG9yLCBfY3R4OiBNYXJrZG93bkZpbGVJbmZvKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFZGl0b3JNZW51KG1lbnU6IE1lbnUsIGVkaXRvcjogRWRpdG9yLCBjdHg6IE1hcmtkb3duRmlsZUluZm8pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9FZGl0b3JNZW51KGVkaXRvciwgY3R4KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jcmVhdGVFZGl0b3JDb21tYW5kSW52b2NhdGlvbihlZGl0b3IsIGN0eCkuaW52b2tlKHRydWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWVudS5hZGRJdGVtKChpdGVtKSA9PiB7XG4gICAgICBpdGVtXG4gICAgICAgIC5zZXRUaXRsZSh0aGlzLmVkaXRvck1lbnVJdGVtTmFtZSA/PyB0aGlzLm9yaWdpbmFsTmFtZSlcbiAgICAgICAgLnNldEljb24odGhpcy5pY29uKVxuICAgICAgICAuc2V0U2VjdGlvbih0aGlzLmVkaXRvck1lbnVTZWN0aW9uID8/ICcnKVxuICAgICAgICAub25DbGljaygoKSA9PiB0aGlzLmNyZWF0ZUVkaXRvckNvbW1hbmRJbnZvY2F0aW9uKGVkaXRvciwgY3R4KS5pbnZva2UoZmFsc2UpKTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGVkaXRvciBjb21tYW5kIGludm9jYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4+IGV4dGVuZHMgQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+IHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIHRvIGludm9rZSB0aGUgY29tbWFuZCBmb3IuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBmaWxlIHRvIGludm9rZSB0aGUgY29tbWFuZCBmb3IuXG4gICAqIEB0aHJvd3MgSWYgdGhlIGZpbGUgaXMgbm90IHNldC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZmlsZSgpOiBURmlsZSB7XG4gICAgaWYgKCF0aGlzLl9maWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbGUgbm90IHNldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZmlsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGU6IG51bGwgfCBURmlsZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBlZGl0b3IgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGludm9jYXRpb24gYmVsb25ncyB0by5cbiAgICogQHBhcmFtIGVkaXRvciAtIFRoZSBlZGl0b3IgdG8gY3JlYXRlIHRoZSBjb21tYW5kIGludm9jYXRpb24gZm9yLlxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIGNvbnRleHQgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGx1Z2luOiBUUGx1Z2luLCBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yOiBFZGl0b3IsIHByb3RlY3RlZCByZWFkb25seSBjdHg6IE1hcmtkb3duRmlsZUluZm8pIHtcbiAgICBzdXBlcihwbHVnaW4pO1xuICAgIHRoaXMuX2ZpbGUgPSBjdHguZmlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuY2FuRXhlY3V0ZSgpICYmICEhdGhpcy5fZmlsZTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFPQSxNQUFlLDBCQUFrRCxZQUFxQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSXhFO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVaLG9CQUFvQixVQUFtQixRQUFnQixLQUFnQztBQUM1RixRQUFJLENBQUMsS0FBSywwQkFBMEIsR0FBRztBQUNyQyxhQUFPO0FBQUEsSUFDVDtBQUNBLFdBQU8sS0FBSyw4QkFBOEIsUUFBUSxHQUFHLEVBQUUsT0FBTyxRQUFRO0FBQUEsRUFDeEU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixXQUFpQjtBQUMvQixVQUFNLFNBQVM7QUFDZixTQUFLLE9BQU8sY0FBYyxLQUFLLElBQUksVUFBVSxHQUFHLGVBQWUsS0FBSyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUFBLEVBQ2xHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZ0JVLDRCQUFxQztBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTVSxzQkFBc0IsU0FBaUIsTUFBaUM7QUFDaEYsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVRLGlCQUFpQixNQUFZLFFBQWdCLEtBQTZCO0FBQ2hGLFFBQUksQ0FBQyxLQUFLLHNCQUFzQixRQUFRLEdBQUcsR0FBRztBQUM1QztBQUFBLElBQ0Y7QUFFQSxRQUFJLENBQUMsS0FBSyw4QkFBOEIsUUFBUSxHQUFHLEVBQUUsT0FBTyxJQUFJLEdBQUc7QUFDakU7QUFBQSxJQUNGO0FBRUEsU0FBSyxRQUFRLENBQUMsU0FBUztBQUNyQixXQUNHLFNBQVMsS0FBSyxzQkFBc0IsS0FBSyxZQUFZLEVBQ3JELFFBQVEsS0FBSyxJQUFJLEVBQ2pCLFdBQVcsS0FBSyxxQkFBcUIsRUFBRSxFQUN2QyxRQUFRLE1BQU0sS0FBSyw4QkFBOEIsUUFBUSxHQUFHLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFBQSxJQUNoRixDQUFDO0FBQUEsRUFDSDtBQUNGO0FBT08sTUFBTSxvQ0FBNEQsc0JBQStCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXVCL0YsWUFBWSxRQUFvQyxRQUFtQyxLQUF1QjtBQUMvRyxVQUFNLE1BQU07QUFEeUM7QUFBbUM7QUFFeEYsU0FBSyxRQUFRLElBQUk7QUFBQSxFQUNuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBbkJBLElBQWMsT0FBYztBQUMxQixRQUFJLENBQUMsS0FBSyxPQUFPO0FBQ2YsWUFBTSxJQUFJLE1BQU0sY0FBYztBQUFBLElBQ2hDO0FBQ0EsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBbUJELGFBQXNCO0FBQ3BDLFdBQU8sTUFBTSxXQUFXLEtBQUssQ0FBQyxDQUFDLEtBQUs7QUFBQSxFQUN0QztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=