obsidian-dev-utils 42.2.0 → 42.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.cjs +128 -0
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.d.cts +60 -0
- package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +5 -3
- package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +23 -47
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.d.cts +19 -21
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.cjs +100 -0
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.d.cts +64 -0
- package/dist/lib/cjs/obsidian/Commands/index.cjs +7 -1
- package/dist/lib/cjs/obsidian/Commands/index.d.cts +2 -0
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.d.mts +60 -0
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.mjs +103 -0
- package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +1 -1
- package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +5 -3
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.d.mts +19 -21
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +26 -47
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.d.mts +64 -0
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.mjs +78 -0
- package/dist/lib/esm/obsidian/Commands/index.d.mts +2 -0
- package/dist/lib/esm/obsidian/Commands/index.mjs +5 -1
- package/obsidian/Commands/AbstractFileCommandBase/package.json +6 -0
- package/obsidian/Commands/FolderCommandBase/package.json +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault(){return extractDefault},process(){const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};return browserProcess}};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
|
7
|
+
|
|
8
|
+
"use strict";
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(from))
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
+
var FolderCommandBase_exports = {};
|
|
27
|
+
__export(FolderCommandBase_exports, {
|
|
28
|
+
FolderCommandBase: () => FolderCommandBase,
|
|
29
|
+
FolderCommandInvocationBase: () => FolderCommandInvocationBase
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(FolderCommandBase_exports);
|
|
32
|
+
var import_obsidian = require('obsidian');
|
|
33
|
+
var import_AbstractFileCommandBase = require('./AbstractFileCommandBase.cjs');
|
|
34
|
+
class FolderCommandBase extends import_AbstractFileCommandBase.AbstractFileCommandBase {
|
|
35
|
+
/**
|
|
36
|
+
* Checks if the command should be added to the abstract file menu.
|
|
37
|
+
*
|
|
38
|
+
* @param abstractFile - The abstract file to check.
|
|
39
|
+
* @param _source - The source of the abstract file.
|
|
40
|
+
* @param _leaf - The leaf to check.
|
|
41
|
+
* @returns Whether the command should be added to the abstract file menu.
|
|
42
|
+
*/
|
|
43
|
+
shouldAddToAbstractFileMenu(abstractFile, _source, _leaf) {
|
|
44
|
+
if (!(abstractFile instanceof import_obsidian.TFolder)) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return this.shouldAddToFolderMenu(abstractFile, _source, _leaf);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Checks if the command should be added to the folder menu.
|
|
51
|
+
*
|
|
52
|
+
* @param _folder - The folder to check.
|
|
53
|
+
* @param _source - The source of the folder.
|
|
54
|
+
* @param _leaf - The leaf to check.
|
|
55
|
+
* @returns Whether the command should be added to the folder menu.
|
|
56
|
+
*/
|
|
57
|
+
shouldAddToFolderMenu(_folder, _source, _leaf) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
class FolderCommandInvocationBase extends import_AbstractFileCommandBase.AbstractFileCommandInvocationBase {
|
|
62
|
+
/**
|
|
63
|
+
* Gets the folder that the command invocation belongs to.
|
|
64
|
+
*
|
|
65
|
+
* @returns The folder that the command invocation belongs to.
|
|
66
|
+
*/
|
|
67
|
+
get folder() {
|
|
68
|
+
return this.abstractFile;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Sets the folder that the command invocation belongs to.
|
|
72
|
+
*
|
|
73
|
+
* @param folder - The folder that the command invocation belongs to.
|
|
74
|
+
*/
|
|
75
|
+
set folder(folder) {
|
|
76
|
+
this.abstractFile = folder;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Checks if the command can execute.
|
|
80
|
+
*
|
|
81
|
+
* @returns Whether the command can execute.
|
|
82
|
+
*/
|
|
83
|
+
canExecute() {
|
|
84
|
+
if (!super.canExecute()) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const folder = this.folder ?? this.app.workspace.getActiveFile()?.parent;
|
|
88
|
+
if (!folder) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
this.folder = folder;
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
FolderCommandBase,
|
|
98
|
+
FolderCommandInvocationBase
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0ZvbGRlckNvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3IgZm9sZGVyIGNvbW1hbmRzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luLFxuICBUQWJzdHJhY3RGaWxlLFxuICBXb3Jrc3BhY2VMZWFmXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgVEZvbGRlciB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RGaWxlQ29tbWFuZEJhc2UsXG4gIEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZVxufSBmcm9tICcuL0Fic3RyYWN0RmlsZUNvbW1hbmRCYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBmb2xkZXIgY29tbWFuZHMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGb2xkZXJDb21tYW5kQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luID0gUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRCYXNlPFRQbHVnaW4+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZmlsZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcnJpZGUgY3JlYXRlQ29tbWFuZEludm9jYXRpb24oKTogRm9sZGVyQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBhYnN0cmFjdCBmaWxlIG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGUgLSBUaGUgYWJzdHJhY3QgZmlsZSB0byBjaGVjay5cbiAgICogQHBhcmFtIF9zb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBhYnN0cmFjdCBmaWxlLlxuICAgKiBAcGFyYW0gX2xlYWYgLSBUaGUgbGVhZiB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlLCBfc291cmNlOiBzdHJpbmcsIF9sZWFmPzogV29ya3NwYWNlTGVhZik6IGJvb2xlYW4ge1xuICAgIGlmICghKGFic3RyYWN0RmlsZSBpbnN0YW5jZW9mIFRGb2xkZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNob3VsZEFkZFRvRm9sZGVyTWVudShhYnN0cmFjdEZpbGUsIF9zb3VyY2UsIF9sZWFmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmb2xkZXIgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9mb2xkZXIgLSBUaGUgZm9sZGVyIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gX3NvdXJjZSAtIFRoZSBzb3VyY2Ugb2YgdGhlIGZvbGRlci5cbiAgICogQHBhcmFtIF9sZWFmIC0gVGhlIGxlYWYgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmb2xkZXIgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0ZvbGRlck1lbnUoX2ZvbGRlcjogVEZvbGRlciwgX3NvdXJjZTogc3RyaW5nLCBfbGVhZj86IFdvcmtzcGFjZUxlYWYpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBmb2xkZXIgY29tbWFuZCBpbnZvY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvbGRlckNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmb2xkZXIgdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBmb2xkZXIgdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZvbGRlcigpOiBURm9sZGVyIHtcbiAgICByZXR1cm4gdGhpcy5hYnN0cmFjdEZpbGUgYXMgVEZvbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb2xkZXIgdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXIgLSBUaGUgZm9sZGVyIHRoYXQgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBmb2xkZXIoZm9sZGVyOiBURm9sZGVyKSB7XG4gICAgdGhpcy5hYnN0cmFjdEZpbGUgPSBmb2xkZXI7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdXBlci5jYW5FeGVjdXRlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZm9sZGVyID0gKHRoaXMuZm9sZGVyIGFzIFRGb2xkZXIgfCB1bmRlZmluZWQpID8/IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKCk/LnBhcmVudDtcbiAgICBpZiAoIWZvbGRlcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmZvbGRlciA9IGZvbGRlcjtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLHNCQUF3QjtBQUV4QixxQ0FHTztBQU9BLE1BQWUsMEJBQTJELHVEQUFpQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWdCN0YsNEJBQTRCLGNBQTZCLFNBQWlCLE9BQWdDO0FBQzNILFFBQUksRUFBRSx3QkFBd0IsMEJBQVU7QUFDdEMsYUFBTztBQUFBLElBQ1Q7QUFDQSxXQUFPLEtBQUssc0JBQXNCLGNBQWMsU0FBUyxLQUFLO0FBQUEsRUFDaEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVVSxzQkFBc0IsU0FBa0IsU0FBaUIsT0FBZ0M7QUFDakcsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQU9PLE1BQWUsb0NBQTRELGlFQUEyQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0zSCxJQUFjLFNBQWtCO0FBQzlCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLE9BQU8sUUFBaUI7QUFDcEMsU0FBSyxlQUFlO0FBQUEsRUFDdEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPbUIsYUFBc0I7QUFDdkMsUUFBSSxDQUFDLE1BQU0sV0FBVyxHQUFHO0FBQ3ZCLGFBQU87QUFBQSxJQUNUO0FBQ0EsVUFBTSxTQUFVLEtBQUssVUFBa0MsS0FBSyxJQUFJLFVBQVUsY0FBYyxHQUFHO0FBQzNGLFFBQUksQ0FBQyxRQUFRO0FBQ1gsYUFBTztBQUFBLElBQ1Q7QUFDQSxTQUFLLFNBQVM7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Base classes for folder commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { Plugin, TAbstractFile, WorkspaceLeaf } from 'obsidian';
|
|
7
|
+
import { TFolder } from 'obsidian';
|
|
8
|
+
import { AbstractFileCommandBase, AbstractFileCommandInvocationBase } from './AbstractFileCommandBase.cjs';
|
|
9
|
+
/**
|
|
10
|
+
* Base class for folder commands.
|
|
11
|
+
*
|
|
12
|
+
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class FolderCommandBase<TPlugin extends Plugin = Plugin> extends AbstractFileCommandBase<TPlugin> {
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new file command invocation.
|
|
17
|
+
*
|
|
18
|
+
* @returns The command invocation.
|
|
19
|
+
*/
|
|
20
|
+
protected abstract createCommandInvocation(): FolderCommandInvocationBase<TPlugin>;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if the command should be added to the abstract file menu.
|
|
23
|
+
*
|
|
24
|
+
* @param abstractFile - The abstract file to check.
|
|
25
|
+
* @param _source - The source of the abstract file.
|
|
26
|
+
* @param _leaf - The leaf to check.
|
|
27
|
+
* @returns Whether the command should be added to the abstract file menu.
|
|
28
|
+
*/
|
|
29
|
+
protected shouldAddToAbstractFileMenu(abstractFile: TAbstractFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Checks if the command should be added to the folder menu.
|
|
32
|
+
*
|
|
33
|
+
* @param _folder - The folder to check.
|
|
34
|
+
* @param _source - The source of the folder.
|
|
35
|
+
* @param _leaf - The leaf to check.
|
|
36
|
+
* @returns Whether the command should be added to the folder menu.
|
|
37
|
+
*/
|
|
38
|
+
protected shouldAddToFolderMenu(_folder: TFolder, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Base class for folder command invocations.
|
|
42
|
+
*
|
|
43
|
+
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
44
|
+
*/
|
|
45
|
+
export declare abstract class FolderCommandInvocationBase<TPlugin extends Plugin> extends AbstractFileCommandInvocationBase<TPlugin> {
|
|
46
|
+
/**
|
|
47
|
+
* Gets the folder that the command invocation belongs to.
|
|
48
|
+
*
|
|
49
|
+
* @returns The folder that the command invocation belongs to.
|
|
50
|
+
*/
|
|
51
|
+
protected get folder(): TFolder;
|
|
52
|
+
/**
|
|
53
|
+
* Sets the folder that the command invocation belongs to.
|
|
54
|
+
*
|
|
55
|
+
* @param folder - The folder that the command invocation belongs to.
|
|
56
|
+
*/
|
|
57
|
+
protected set folder(folder: TFolder);
|
|
58
|
+
/**
|
|
59
|
+
* Checks if the command can execute.
|
|
60
|
+
*
|
|
61
|
+
* @returns Whether the command can execute.
|
|
62
|
+
*/
|
|
63
|
+
protected canExecute(): boolean;
|
|
64
|
+
}
|
|
@@ -35,21 +35,27 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
35
35
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
36
|
var Commands_exports = {};
|
|
37
37
|
__export(Commands_exports, {
|
|
38
|
+
AbstractFileCommandBase: () => AbstractFileCommandBase,
|
|
38
39
|
CommandBase: () => CommandBase,
|
|
39
40
|
EditorCommandBase: () => EditorCommandBase,
|
|
40
41
|
FileCommandBase: () => FileCommandBase,
|
|
42
|
+
FolderCommandBase: () => FolderCommandBase,
|
|
41
43
|
NonEditorCommandBase: () => NonEditorCommandBase
|
|
42
44
|
});
|
|
43
45
|
module.exports = __toCommonJS(Commands_exports);
|
|
46
|
+
var AbstractFileCommandBase = __toESM(__extractDefault(require('./AbstractFileCommandBase.cjs')), 1);
|
|
44
47
|
var CommandBase = __toESM(__extractDefault(require('./CommandBase.cjs')), 1);
|
|
45
48
|
var EditorCommandBase = __toESM(__extractDefault(require('./EditorCommandBase.cjs')), 1);
|
|
46
49
|
var FileCommandBase = __toESM(__extractDefault(require('./FileCommandBase.cjs')), 1);
|
|
50
|
+
var FolderCommandBase = __toESM(__extractDefault(require('./FolderCommandBase.cjs')), 1);
|
|
47
51
|
var NonEditorCommandBase = __toESM(__extractDefault(require('./NonEditorCommandBase.cjs')), 1);
|
|
48
52
|
// Annotate the CommonJS export names for ESM import in node:
|
|
49
53
|
0 && (module.exports = {
|
|
54
|
+
AbstractFileCommandBase,
|
|
50
55
|
CommandBase,
|
|
51
56
|
EditorCommandBase,
|
|
52
57
|
FileCommandBase,
|
|
58
|
+
FolderCommandBase,
|
|
53
59
|
NonEditorCommandBase
|
|
54
60
|
});
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQWJzdHJhY3RGaWxlQ29tbWFuZEJhc2UgZnJvbSAnLi9BYnN0cmFjdEZpbGVDb21tYW5kQmFzZS50cyc7XG5leHBvcnQgKiBhcyBDb21tYW5kQmFzZSBmcm9tICcuL0NvbW1hbmRCYXNlLnRzJztcbmV4cG9ydCAqIGFzIEVkaXRvckNvbW1hbmRCYXNlIGZyb20gJy4vRWRpdG9yQ29tbWFuZEJhc2UudHMnO1xuZXhwb3J0ICogYXMgRmlsZUNvbW1hbmRCYXNlIGZyb20gJy4vRmlsZUNvbW1hbmRCYXNlLnRzJztcbmV4cG9ydCAqIGFzIEZvbGRlckNvbW1hbmRCYXNlIGZyb20gJy4vRm9sZGVyQ29tbWFuZEJhc2UudHMnO1xuZXhwb3J0ICogYXMgTm9uRWRpdG9yQ29tbWFuZEJhc2UgZnJvbSAnLi9Ob25FZGl0b3JDb21tYW5kQmFzZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsOEJBQXlDO0FBQ3pDLGtCQUE2QjtBQUM3Qix3QkFBbUM7QUFDbkMsc0JBQWlDO0FBQ2pDLHdCQUFtQztBQUNuQywyQkFBc0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export * as AbstractFileCommandBase from './AbstractFileCommandBase.cjs';
|
|
1
2
|
export * as CommandBase from './CommandBase.cjs';
|
|
2
3
|
export * as EditorCommandBase from './EditorCommandBase.cjs';
|
|
3
4
|
export * as FileCommandBase from './FileCommandBase.cjs';
|
|
5
|
+
export * as FolderCommandBase from './FolderCommandBase.cjs';
|
|
4
6
|
export * as NonEditorCommandBase from './NonEditorCommandBase.cjs';
|
package/dist/lib/esm/Library.mjs
CHANGED
|
@@ -5,7 +5,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};globalThis.process=browserProcess})();
|
|
7
7
|
|
|
8
|
-
const LIBRARY_VERSION = "42.
|
|
8
|
+
const LIBRARY_VERSION = "42.3.0";
|
|
9
9
|
const LIBRARY_NAME = "obsidian-dev-utils";
|
|
10
10
|
const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utilsprogress.loop {\n min-width: 200px;\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid, .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid, .obsidian-dev-utils input.metadata-input-text:focus:invalid,\n.obsidian-dev-utils input[type=date]:active:invalid,\n.obsidian-dev-utils input[type=date]:focus-visible:invalid,\n.obsidian-dev-utils input[type=date]:focus:invalid,\n.obsidian-dev-utils input[type=datetime-local]:active:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid,\n.obsidian-dev-utils input[type=email]:active:invalid,\n.obsidian-dev-utils input[type=email]:focus-visible:invalid,\n.obsidian-dev-utils input[type=email]:focus:invalid,\n.obsidian-dev-utils input[type=number]:active:invalid,\n.obsidian-dev-utils input[type=number]:focus-visible:invalid,\n.obsidian-dev-utils input[type=number]:focus:invalid,\n.obsidian-dev-utils input[type=password]:active:invalid,\n.obsidian-dev-utils input[type=password]:focus-visible:invalid,\n.obsidian-dev-utils input[type=password]:focus:invalid,\n.obsidian-dev-utils input[type=search]:active:invalid,\n.obsidian-dev-utils input[type=search]:focus-visible:invalid,\n.obsidian-dev-utils input[type=search]:focus:invalid,\n.obsidian-dev-utils input[type=text]:active:invalid,\n.obsidian-dev-utils input[type=text]:focus-visible:invalid,\n.obsidian-dev-utils input[type=text]:focus:invalid,\n.obsidian-dev-utils textarea:active:invalid,\n.obsidian-dev-utils textarea:focus-visible:invalid,\n.obsidian-dev-utils textarea:focus:invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACzCJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;ACjDJ;EACE;;;ACAA;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACRJ;EACE;;;ACDF;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
|
11
11
|
export {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Base classes for abstract file commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { Plugin, TAbstractFile, WorkspaceLeaf } from 'obsidian';
|
|
7
|
+
import { CommandInvocationBase } from './CommandBase.mjs';
|
|
8
|
+
import { NonEditorCommandBase } from './NonEditorCommandBase.mjs';
|
|
9
|
+
/**
|
|
10
|
+
* Base class for abstract file commands.
|
|
11
|
+
*
|
|
12
|
+
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class AbstractFileCommandBase<TPlugin extends Plugin = Plugin> extends NonEditorCommandBase<TPlugin> {
|
|
15
|
+
protected readonly menuItemName?: string;
|
|
16
|
+
protected readonly menuSection?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Registers the command.
|
|
19
|
+
*/
|
|
20
|
+
register(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new file command invocation.
|
|
23
|
+
*
|
|
24
|
+
* @returns The command invocation.
|
|
25
|
+
*/
|
|
26
|
+
protected abstract createCommandInvocation(): AbstractFileCommandInvocationBase<TPlugin>;
|
|
27
|
+
/**
|
|
28
|
+
* Checks if the command should be added to the abstract file menu.
|
|
29
|
+
*
|
|
30
|
+
* @param _abstractFile - The abstract file to check.
|
|
31
|
+
* @param _source - The source of the abstract file.
|
|
32
|
+
* @param _leaf - The leaf to check.
|
|
33
|
+
* @returns Whether the command should be added to the abstract file menu.
|
|
34
|
+
*/
|
|
35
|
+
protected shouldAddToAbstractFileMenu(_abstractFile: TAbstractFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
36
|
+
private handleAbstractFileMenu;
|
|
37
|
+
private handleAbstractFilesMenu;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Base class for abstract file command invocations.
|
|
41
|
+
*
|
|
42
|
+
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
43
|
+
*/
|
|
44
|
+
export declare abstract class AbstractFileCommandInvocationBase<TPlugin extends Plugin> extends CommandInvocationBase<TPlugin> {
|
|
45
|
+
protected abstractFile: TAbstractFile;
|
|
46
|
+
/**
|
|
47
|
+
* Invokes the command.
|
|
48
|
+
*
|
|
49
|
+
* @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
|
|
50
|
+
* @param abstractFile - The abstract file to invoke the command for.
|
|
51
|
+
* @returns Whether the command was executed.
|
|
52
|
+
*/
|
|
53
|
+
invoke(checking: boolean, abstractFile?: TAbstractFile): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Checks if the command can execute.
|
|
56
|
+
*
|
|
57
|
+
* @returns Whether the command can execute.
|
|
58
|
+
*/
|
|
59
|
+
protected canExecute(): boolean;
|
|
60
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};globalThis.process=browserProcess})();
|
|
7
|
+
|
|
8
|
+
import { CommandInvocationBase } from "./CommandBase.mjs";
|
|
9
|
+
import { NonEditorCommandBase } from "./NonEditorCommandBase.mjs";
|
|
10
|
+
class AbstractFileCommandBase extends NonEditorCommandBase {
|
|
11
|
+
menuItemName;
|
|
12
|
+
menuSection;
|
|
13
|
+
/**
|
|
14
|
+
* Registers the command.
|
|
15
|
+
*/
|
|
16
|
+
register() {
|
|
17
|
+
super.register();
|
|
18
|
+
this.plugin.registerEvent(this.app.workspace.on("file-menu", this.handleAbstractFileMenu.bind(this)));
|
|
19
|
+
this.plugin.registerEvent(this.app.workspace.on("files-menu", this.handleAbstractFilesMenu.bind(this)));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Checks if the command should be added to the abstract file menu.
|
|
23
|
+
*
|
|
24
|
+
* @param _abstractFile - The abstract file to check.
|
|
25
|
+
* @param _source - The source of the abstract file.
|
|
26
|
+
* @param _leaf - The leaf to check.
|
|
27
|
+
* @returns Whether the command should be added to the abstract file menu.
|
|
28
|
+
*/
|
|
29
|
+
shouldAddToAbstractFileMenu(_abstractFile, _source, _leaf) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
handleAbstractFileMenu(menu, abstractFile, source, leaf) {
|
|
33
|
+
if (!this.shouldAddToAbstractFileMenu(abstractFile, source, leaf)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!this.createCommandInvocation().invoke(true, abstractFile)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
menu.addItem((item) => {
|
|
40
|
+
item.setTitle(this.menuItemName ?? this.name).setIcon(this.icon).onClick(() => this.createCommandInvocation().invoke(false, abstractFile));
|
|
41
|
+
if (this.menuSection) {
|
|
42
|
+
item.setSection(this.menuSection);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
handleAbstractFilesMenu(menu, abstractFiles, source, leaf) {
|
|
47
|
+
for (const abstractFile of abstractFiles) {
|
|
48
|
+
if (!this.shouldAddToAbstractFileMenu(abstractFile, source, leaf)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (!this.createCommandInvocation().invoke(true, abstractFile)) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
menu.addItem((item) => {
|
|
56
|
+
item.setTitle(this.menuItemName ?? this.name).setIcon(this.icon).onClick(() => {
|
|
57
|
+
for (const abstractFile of abstractFiles) {
|
|
58
|
+
this.createCommandInvocation().invoke(false, abstractFile);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
if (this.menuSection) {
|
|
62
|
+
item.setSection(this.menuSection);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class AbstractFileCommandInvocationBase extends CommandInvocationBase {
|
|
68
|
+
abstractFile;
|
|
69
|
+
/**
|
|
70
|
+
* Invokes the command.
|
|
71
|
+
*
|
|
72
|
+
* @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
|
|
73
|
+
* @param abstractFile - The abstract file to invoke the command for.
|
|
74
|
+
* @returns Whether the command was executed.
|
|
75
|
+
*/
|
|
76
|
+
invoke(checking, abstractFile) {
|
|
77
|
+
if (abstractFile) {
|
|
78
|
+
this.abstractFile = abstractFile;
|
|
79
|
+
}
|
|
80
|
+
return super.invoke(checking);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Checks if the command can execute.
|
|
84
|
+
*
|
|
85
|
+
* @returns Whether the command can execute.
|
|
86
|
+
*/
|
|
87
|
+
canExecute() {
|
|
88
|
+
if (!super.canExecute()) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
const abstractFile = this.abstractFile ?? this.app.workspace.getActiveFile();
|
|
92
|
+
if (!abstractFile) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
this.abstractFile = abstractFile;
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
AbstractFileCommandBase,
|
|
101
|
+
AbstractFileCommandInvocationBase
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0Fic3RyYWN0RmlsZUNvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3IgYWJzdHJhY3QgZmlsZSBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIE1lbnUsXG4gIFBsdWdpbixcbiAgVEFic3RyYWN0RmlsZSxcbiAgV29ya3NwYWNlTGVhZlxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENvbW1hbmRJbnZvY2F0aW9uQmFzZSB9IGZyb20gJy4vQ29tbWFuZEJhc2UudHMnO1xuaW1wb3J0IHsgTm9uRWRpdG9yQ29tbWFuZEJhc2UgfSBmcm9tICcuL05vbkVkaXRvckNvbW1hbmRCYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhYnN0cmFjdCBmaWxlIGNvbW1hbmRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGaWxlQ29tbWFuZEJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbiA9IFBsdWdpbj4gZXh0ZW5kcyBOb25FZGl0b3JDb21tYW5kQmFzZTxUUGx1Z2luPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51SXRlbU5hbWU/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51U2VjdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyKCk6IHZvaWQge1xuICAgIHN1cGVyLnJlZ2lzdGVyKCk7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oJ2ZpbGUtbWVudScsIHRoaXMuaGFuZGxlQWJzdHJhY3RGaWxlTWVudS5iaW5kKHRoaXMpKSk7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oJ2ZpbGVzLW1lbnUnLCB0aGlzLmhhbmRsZUFic3RyYWN0RmlsZXNNZW51LmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGZpbGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG92ZXJyaWRlIGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uKCk6IEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgYWJzdHJhY3QgZmlsZSBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gX2Fic3RyYWN0RmlsZSAtIFRoZSBhYnN0cmFjdCBmaWxlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gX3NvdXJjZSAtIFRoZSBzb3VyY2Ugb2YgdGhlIGFic3RyYWN0IGZpbGUuXG4gICAqIEBwYXJhbSBfbGVhZiAtIFRoZSBsZWFmIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgYWJzdHJhY3QgZmlsZSBtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudShfYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlLCBfc291cmNlOiBzdHJpbmcsIF9sZWFmPzogV29ya3NwYWNlTGVhZik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWJzdHJhY3RGaWxlTWVudShtZW51OiBNZW51LCBhYnN0cmFjdEZpbGU6IFRBYnN0cmFjdEZpbGUsIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlLCBzb3VyY2UsIGxlYWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uKCkuaW52b2tlKHRydWUsIGFic3RyYWN0RmlsZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtZW51LmFkZEl0ZW0oKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uc2V0VGl0bGUodGhpcy5tZW51SXRlbU5hbWUgPz8gdGhpcy5uYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5vbkNsaWNrKCgpID0+IHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb24oKS5pbnZva2UoZmFsc2UsIGFic3RyYWN0RmlsZSkpO1xuXG4gICAgICBpZiAodGhpcy5tZW51U2VjdGlvbikge1xuICAgICAgICBpdGVtLnNldFNlY3Rpb24odGhpcy5tZW51U2VjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFic3RyYWN0RmlsZXNNZW51KG1lbnU6IE1lbnUsIGFic3RyYWN0RmlsZXM6IFRBYnN0cmFjdEZpbGVbXSwgc291cmNlOiBzdHJpbmcsIGxlYWY/OiBXb3Jrc3BhY2VMZWFmKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBhYnN0cmFjdEZpbGUgb2YgYWJzdHJhY3RGaWxlcykge1xuICAgICAgaWYgKCF0aGlzLnNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudShhYnN0cmFjdEZpbGUsIHNvdXJjZSwgbGVhZikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb24oKS5pbnZva2UodHJ1ZSwgYWJzdHJhY3RGaWxlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgbWVudS5hZGRJdGVtKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnNldFRpdGxlKHRoaXMubWVudUl0ZW1OYW1lID8/IHRoaXMubmFtZSlcbiAgICAgICAgLnNldEljb24odGhpcy5pY29uKVxuICAgICAgICAub25DbGljaygoKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBhYnN0cmFjdEZpbGUgb2YgYWJzdHJhY3RGaWxlcykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVDb21tYW5kSW52b2NhdGlvbigpLmludm9rZShmYWxzZSwgYWJzdHJhY3RGaWxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5tZW51U2VjdGlvbikge1xuICAgICAgICBpdGVtLnNldFNlY3Rpb24odGhpcy5tZW51U2VjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhYnN0cmFjdCBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpbGVDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbj4gZXh0ZW5kcyBDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3RGaWxlITogVEFic3RyYWN0RmlsZTtcblxuICAvKipcbiAgICogSW52b2tlcyB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogQHBhcmFtIGNoZWNraW5nIC0gSXMgY2hlY2tpbmcgbW9kZSBvbmx5LiBJZiBgdHJ1ZWAsIG9ubHkgdGhlIGNoZWNrIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlIGlzIHBlcmZvcm1lZC4gSWYgYGZhbHNlYCwgdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWQuXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGUgLSBUaGUgYWJzdHJhY3QgZmlsZSB0byBpbnZva2UgdGhlIGNvbW1hbmQgZm9yLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIHdhcyBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBpbnZva2UoY2hlY2tpbmc6IGJvb2xlYW4sIGFic3RyYWN0RmlsZT86IFRBYnN0cmFjdEZpbGUpOiBib29sZWFuIHtcbiAgICBpZiAoYWJzdHJhY3RGaWxlKSB7XG4gICAgICB0aGlzLmFic3RyYWN0RmlsZSA9IGFic3RyYWN0RmlsZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmludm9rZShjaGVja2luZyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdXBlci5jYW5FeGVjdXRlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgYWJzdHJhY3RGaWxlID0gKHRoaXMuYWJzdHJhY3RGaWxlIGFzIFRBYnN0cmFjdEZpbGUgfCB1bmRlZmluZWQpID8/IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKCk7XG4gICAgaWYgKCFhYnN0cmFjdEZpbGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5hYnN0cmFjdEZpbGUgPSBhYnN0cmFjdEZpbGU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFhQSxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLDRCQUE0QjtBQU85QixNQUFlLGdDQUFpRSxxQkFBOEI7QUFBQSxFQUNoRztBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtILFdBQWlCO0FBQy9CLFVBQU0sU0FBUztBQUNmLFNBQUssT0FBTyxjQUFjLEtBQUssSUFBSSxVQUFVLEdBQUcsYUFBYSxLQUFLLHVCQUF1QixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ3BHLFNBQUssT0FBTyxjQUFjLEtBQUssSUFBSSxVQUFVLEdBQUcsY0FBYyxLQUFLLHdCQUF3QixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQUEsRUFDeEc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFpQlUsNEJBQTRCLGVBQThCLFNBQWlCLE9BQWdDO0FBQ25ILFdBQU87QUFBQSxFQUNUO0FBQUEsRUFFUSx1QkFBdUIsTUFBWSxjQUE2QixRQUFnQixNQUE0QjtBQUNsSCxRQUFJLENBQUMsS0FBSyw0QkFBNEIsY0FBYyxRQUFRLElBQUksR0FBRztBQUNqRTtBQUFBLElBQ0Y7QUFFQSxRQUFJLENBQUMsS0FBSyx3QkFBd0IsRUFBRSxPQUFPLE1BQU0sWUFBWSxHQUFHO0FBQzlEO0FBQUEsSUFDRjtBQUVBLFNBQUssUUFBUSxDQUFDLFNBQVM7QUFDckIsV0FBSyxTQUFTLEtBQUssZ0JBQWdCLEtBQUssSUFBSSxFQUN6QyxRQUFRLEtBQUssSUFBSSxFQUNqQixRQUFRLE1BQU0sS0FBSyx3QkFBd0IsRUFBRSxPQUFPLE9BQU8sWUFBWSxDQUFDO0FBRTNFLFVBQUksS0FBSyxhQUFhO0FBQ3BCLGFBQUssV0FBVyxLQUFLLFdBQVc7QUFBQSxNQUNsQztBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVRLHdCQUF3QixNQUFZLGVBQWdDLFFBQWdCLE1BQTRCO0FBQ3RILGVBQVcsZ0JBQWdCLGVBQWU7QUFDeEMsVUFBSSxDQUFDLEtBQUssNEJBQTRCLGNBQWMsUUFBUSxJQUFJLEdBQUc7QUFDakU7QUFBQSxNQUNGO0FBRUEsVUFBSSxDQUFDLEtBQUssd0JBQXdCLEVBQUUsT0FBTyxNQUFNLFlBQVksR0FBRztBQUM5RDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsU0FBSyxRQUFRLENBQUMsU0FBUztBQUNyQixXQUFLLFNBQVMsS0FBSyxnQkFBZ0IsS0FBSyxJQUFJLEVBQ3pDLFFBQVEsS0FBSyxJQUFJLEVBQ2pCLFFBQVEsTUFBTTtBQUNiLG1CQUFXLGdCQUFnQixlQUFlO0FBQ3hDLGVBQUssd0JBQXdCLEVBQUUsT0FBTyxPQUFPLFlBQVk7QUFBQSxRQUMzRDtBQUFBLE1BQ0YsQ0FBQztBQUVILFVBQUksS0FBSyxhQUFhO0FBQ3BCLGFBQUssV0FBVyxLQUFLLFdBQVc7QUFBQSxNQUNsQztBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQU9PLE1BQWUsMENBQWtFLHNCQUErQjtBQUFBLEVBQzNHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNNLE9BQU8sVUFBbUIsY0FBdUM7QUFDL0UsUUFBSSxjQUFjO0FBQ2hCLFdBQUssZUFBZTtBQUFBLElBQ3RCO0FBQ0EsV0FBTyxNQUFNLE9BQU8sUUFBUTtBQUFBLEVBQzlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT21CLGFBQXNCO0FBQ3ZDLFFBQUksQ0FBQyxNQUFNLFdBQVcsR0FBRztBQUN2QixhQUFPO0FBQUEsSUFDVDtBQUNBLFVBQU0sZUFBZ0IsS0FBSyxnQkFBOEMsS0FBSyxJQUFJLFVBQVUsY0FBYztBQUMxRyxRQUFJLENBQUMsY0FBYztBQUNqQixhQUFPO0FBQUEsSUFDVDtBQUNBLFNBQUssZUFBZTtBQUNwQixXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -5,6 +5,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd(){return"/"},env:{},platform:"android"};globalThis.process=browserProcess})();
|
|
7
7
|
|
|
8
|
+
import { invokeAsyncSafely } from "../../Async.mjs";
|
|
8
9
|
class CommandBase {
|
|
9
10
|
icon;
|
|
10
11
|
id;
|
|
@@ -51,7 +52,7 @@ class CommandInvocationBase {
|
|
|
51
52
|
invoke(checking) {
|
|
52
53
|
this.lastCanExecuteResult = this.canExecute();
|
|
53
54
|
if (!checking && this.lastCanExecuteResult) {
|
|
54
|
-
this.execute();
|
|
55
|
+
invokeAsyncSafely(() => this.execute());
|
|
55
56
|
}
|
|
56
57
|
return this.lastCanExecuteResult;
|
|
57
58
|
}
|
|
@@ -66,17 +67,18 @@ class CommandInvocationBase {
|
|
|
66
67
|
/**
|
|
67
68
|
* Executes the command.
|
|
68
69
|
*/
|
|
69
|
-
execute() {
|
|
70
|
+
async execute() {
|
|
70
71
|
if (this.lastCanExecuteResult === void 0) {
|
|
71
72
|
throw new Error("canExecute() must be called before execute()");
|
|
72
73
|
}
|
|
73
74
|
if (!this.lastCanExecuteResult) {
|
|
74
75
|
throw new Error("canExecute() must return true before execute()");
|
|
75
76
|
}
|
|
77
|
+
await Promise.resolve();
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
export {
|
|
79
81
|
CommandBase,
|
|
80
82
|
CommandInvocationBase
|
|
81
83
|
};
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0NvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3IgY29tbWFuZHMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbW1hbmQsXG4gIEljb25OYW1lLFxuICBQbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpbnZva2VBc3luY1NhZmVseSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIGNvbW1hbmQuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZEJhc2VPcHRpb25zPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4+IHtcbiAgLyoqXG4gICAqIFRoZSBpY29uIHRvIHVzZSBmb3IgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBpY29uOiBJY29uTmFtZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcGx1Z2luOiBUUGx1Z2luO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNvbW1hbmRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZEJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbj4gaW1wbGVtZW50cyBDb21tYW5kIHtcbiAgcHVibGljIGljb246IEljb25OYW1lO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcDogQXBwO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBUUGx1Z2luO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbW1hbmQuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENvbW1hbmRCYXNlT3B0aW9uczxUUGx1Z2luPikge1xuICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICB0aGlzLmljb24gPSBvcHRpb25zLmljb247XG4gICAgdGhpcy5wbHVnaW4gPSBvcHRpb25zLnBsdWdpbjtcbiAgICB0aGlzLmFwcCA9IHRoaXMucGx1Z2luLmFwcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNvbW1hbmQgaW52b2NhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbiA9IFBsdWdpbj4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHByaXZhdGUgbGFzdENhbkV4ZWN1dGVSZXN1bHQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbjogVFBsdWdpbikge1xuICAgIHRoaXMuYXBwID0gcGx1Z2luLmFwcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIHRoZSBjb21tYW5kLlxuICAgKlxuICAgKiBAcGFyYW0gY2hlY2tpbmcgLSBJcyBjaGVja2luZyBtb2RlIG9ubHkuIElmIGB0cnVlYCwgb25seSB0aGUgY2hlY2sgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgaXMgcGVyZm9ybWVkLiBJZiBgZmFsc2VgLCB0aGUgY29tbWFuZCBpcyBleGVjdXRlZC5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCB3YXMgZXhlY3V0ZWQuXG4gICAqL1xuICBwdWJsaWMgaW52b2tlKGNoZWNraW5nOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgdGhpcy5sYXN0Q2FuRXhlY3V0ZVJlc3VsdCA9IHRoaXMuY2FuRXhlY3V0ZSgpO1xuICAgIGlmICghY2hlY2tpbmcgJiYgdGhpcy5sYXN0Q2FuRXhlY3V0ZVJlc3VsdCkge1xuICAgICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdGhpcy5leGVjdXRlKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhc3RDYW5FeGVjdXRlUmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBjYW5FeGVjdXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubGFzdENhbkV4ZWN1dGVSZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5FeGVjdXRlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGV4ZWN1dGUoKScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubGFzdENhbkV4ZWN1dGVSZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2FuRXhlY3V0ZSgpIG11c3QgcmV0dXJuIHRydWUgYmVmb3JlIGV4ZWN1dGUoKScpO1xuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQWFBLFNBQVMseUJBQXlCO0FBa0MzQixNQUFlLFlBQXVEO0FBQUEsRUFDcEU7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ1k7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1osWUFBWSxTQUFzQztBQUN2RCxTQUFLLEtBQUssUUFBUTtBQUNsQixTQUFLLE9BQU8sUUFBUTtBQUNwQixTQUFLLE9BQU8sUUFBUTtBQUNwQixTQUFLLFNBQVMsUUFBUTtBQUN0QixTQUFLLE1BQU0sS0FBSyxPQUFPO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLFdBQWlCO0FBQ3RCLFNBQUssT0FBTyxXQUFXLElBQUk7QUFBQSxFQUM3QjtBQUNGO0FBT08sTUFBZSxzQkFBdUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTcEUsWUFBK0IsUUFBaUI7QUFBakI7QUFDcEMsU0FBSyxNQUFNLE9BQU87QUFBQSxFQUNwQjtBQUFBLEVBVm1CO0FBQUEsRUFDWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBaUJELE9BQU8sVUFBNEI7QUFDeEMsU0FBSyx1QkFBdUIsS0FBSyxXQUFXO0FBQzVDLFFBQUksQ0FBQyxZQUFZLEtBQUssc0JBQXNCO0FBQzFDLHdCQUFrQixNQUFNLEtBQUssUUFBUSxDQUFDO0FBQUEsSUFDeEM7QUFFQSxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1UsYUFBc0I7QUFDOUIsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWdCLFVBQXlCO0FBQ3ZDLFFBQUksS0FBSyx5QkFBeUIsUUFBVztBQUMzQyxZQUFNLElBQUksTUFBTSw4Q0FBOEM7QUFBQSxJQUNoRTtBQUNBLFFBQUksQ0FBQyxLQUFLLHNCQUFzQjtBQUM5QixZQUFNLElBQUksTUFBTSxnREFBZ0Q7QUFBQSxJQUNsRTtBQUNBLFVBQU0sUUFBUSxRQUFRO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -3,28 +3,30 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Base classes for file commands.
|
|
5
5
|
*/
|
|
6
|
-
import type { Plugin, WorkspaceLeaf } from 'obsidian';
|
|
6
|
+
import type { Plugin, TAbstractFile, WorkspaceLeaf } from 'obsidian';
|
|
7
7
|
import { TFile } from 'obsidian';
|
|
8
|
-
import {
|
|
9
|
-
import { NonEditorCommandBase } from './NonEditorCommandBase.mjs';
|
|
8
|
+
import { AbstractFileCommandBase, AbstractFileCommandInvocationBase } from './AbstractFileCommandBase.mjs';
|
|
10
9
|
/**
|
|
11
10
|
* Base class for file commands.
|
|
12
11
|
*
|
|
13
12
|
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
14
13
|
*/
|
|
15
|
-
export declare abstract class FileCommandBase<TPlugin extends Plugin = Plugin> extends
|
|
16
|
-
protected readonly menuItemName?: string;
|
|
17
|
-
protected readonly menuSection?: string;
|
|
18
|
-
/**
|
|
19
|
-
* Registers the command.
|
|
20
|
-
*/
|
|
21
|
-
register(): void;
|
|
14
|
+
export declare abstract class FileCommandBase<TPlugin extends Plugin = Plugin> extends AbstractFileCommandBase<TPlugin> {
|
|
22
15
|
/**
|
|
23
16
|
* Creates a new file command invocation.
|
|
24
17
|
*
|
|
25
18
|
* @returns The command invocation.
|
|
26
19
|
*/
|
|
27
20
|
protected abstract createCommandInvocation(): FileCommandInvocationBase<TPlugin>;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if the command should be added to the abstract file menu.
|
|
23
|
+
*
|
|
24
|
+
* @param abstractFile - The abstract file to check.
|
|
25
|
+
* @param _source - The source of the abstract file.
|
|
26
|
+
* @param _leaf - The leaf to check.
|
|
27
|
+
* @returns Whether the command should be added to the abstract file menu.
|
|
28
|
+
*/
|
|
29
|
+
protected shouldAddToAbstractFileMenu(abstractFile: TAbstractFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
28
30
|
/**
|
|
29
31
|
* Checks if the command should be added to the file menu.
|
|
30
32
|
*
|
|
@@ -34,27 +36,23 @@ export declare abstract class FileCommandBase<TPlugin extends Plugin = Plugin> e
|
|
|
34
36
|
* @returns Whether the command should be added to the file menu.
|
|
35
37
|
*/
|
|
36
38
|
protected shouldAddToFileMenu(_file: TFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
37
|
-
private handleFileMenu;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
40
41
|
* Base class for file command invocations.
|
|
41
42
|
*
|
|
42
43
|
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
43
44
|
*/
|
|
44
|
-
export declare abstract class FileCommandInvocationBase<TPlugin extends Plugin> extends
|
|
45
|
-
protected file: TFile;
|
|
45
|
+
export declare abstract class FileCommandInvocationBase<TPlugin extends Plugin> extends AbstractFileCommandInvocationBase<TPlugin> {
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Gets the file that the command invocation belongs to.
|
|
48
48
|
*
|
|
49
|
-
* @
|
|
50
|
-
* @param file - The file to invoke the command for.
|
|
51
|
-
* @returns Whether the command was executed.
|
|
49
|
+
* @returns The file that the command invocation belongs to.
|
|
52
50
|
*/
|
|
53
|
-
|
|
51
|
+
protected get file(): TFile;
|
|
54
52
|
/**
|
|
55
|
-
*
|
|
53
|
+
* Sets the file that the command invocation belongs to.
|
|
56
54
|
*
|
|
57
|
-
* @
|
|
55
|
+
* @param file - The file that the command invocation belongs to.
|
|
58
56
|
*/
|
|
59
|
-
protected
|
|
57
|
+
protected set file(file: TFile);
|
|
60
58
|
}
|