obsidian-dev-utils 42.1.0 → 42.1.1

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.
Files changed (34) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/lib/cjs/Library.cjs +1 -1
  3. package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +107 -0
  4. package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +84 -0
  5. package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.cjs +111 -0
  6. package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.d.cts +70 -0
  7. package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +108 -0
  8. package/dist/lib/cjs/obsidian/Commands/FileCommandBase.d.cts +60 -0
  9. package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.cjs +47 -0
  10. package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.d.cts +28 -0
  11. package/dist/lib/cjs/obsidian/Commands/index.cjs +55 -0
  12. package/dist/lib/cjs/obsidian/Commands/index.d.cts +4 -0
  13. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  14. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  15. package/dist/lib/esm/Library.mjs +1 -1
  16. package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +84 -0
  17. package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +82 -0
  18. package/dist/lib/esm/obsidian/Commands/EditorCommandBase.d.mts +70 -0
  19. package/dist/lib/esm/obsidian/Commands/EditorCommandBase.mjs +89 -0
  20. package/dist/lib/esm/obsidian/Commands/FileCommandBase.d.mts +60 -0
  21. package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +83 -0
  22. package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.d.mts +28 -0
  23. package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.mjs +23 -0
  24. package/dist/lib/esm/obsidian/Commands/index.d.mts +4 -0
  25. package/dist/lib/esm/obsidian/Commands/index.mjs +18 -0
  26. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  27. package/dist/lib/esm/obsidian/index.mjs +3 -1
  28. package/obsidian/Commands/CommandBase/package.json +6 -0
  29. package/obsidian/Commands/EditorCommandBase/package.json +6 -0
  30. package/obsidian/Commands/FileCommandBase/package.json +6 -0
  31. package/obsidian/Commands/NonEditorCommandBase/package.json +6 -0
  32. package/obsidian/Commands/index/package.json +6 -0
  33. package/obsidian/Commands/package.json +6 -0
  34. package/package.json +21 -1
@@ -0,0 +1,47 @@
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 NonEditorCommandBase_exports = {};
27
+ __export(NonEditorCommandBase_exports, {
28
+ NonEditorCommandBase: () => NonEditorCommandBase
29
+ });
30
+ module.exports = __toCommonJS(NonEditorCommandBase_exports);
31
+ var import_CommandBase = require('./CommandBase.cjs');
32
+ class NonEditorCommandBase extends import_CommandBase.CommandBase {
33
+ /**
34
+ * Checks if the command can execute.
35
+ *
36
+ * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
37
+ * @returns Whether the command can execute.
38
+ */
39
+ checkCallback(checking) {
40
+ return this.createCommandInvocation().invoke(checking);
41
+ }
42
+ }
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ NonEditorCommandBase
46
+ });
47
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL05vbkVkaXRvckNvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3Igbm9uLWVkaXRvciBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBDb21tYW5kSW52b2NhdGlvbkJhc2UgfSBmcm9tICcuL0NvbW1hbmRCYXNlLnRzJztcblxuaW1wb3J0IHsgQ29tbWFuZEJhc2UgfSBmcm9tICcuL0NvbW1hbmRCYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBub24tZWRpdG9yIGNvbW1hbmRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTm9uRWRpdG9yQ29tbWFuZEJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbj4gZXh0ZW5kcyBDb21tYW5kQmFzZTxUUGx1Z2luPiB7XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBwYXJhbSBjaGVja2luZyAtIElzIGNoZWNraW5nIG1vZGUgb25seS4gSWYgYHRydWVgLCBvbmx5IHRoZSBjaGVjayBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBpcyBwZXJmb3JtZWQuIElmIGBmYWxzZWAsIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIGNoZWNrQ2FsbGJhY2soY2hlY2tpbmc6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb21tYW5kSW52b2NhdGlvbigpLmludm9rZShjaGVja2luZyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlQ29tbWFuZEludm9jYXRpb24oKTogQ29tbWFuZEludm9jYXRpb25CYXNlO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSx5QkFBNEI7QUFPckIsTUFBZSw2QkFBcUQsK0JBQXFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPdkYsY0FBYyxVQUE0QjtBQUMvQyxXQUFPLEtBQUssd0JBQXdCLEVBQUUsT0FBTyxRQUFRO0FBQUEsRUFDdkQ7QUFRRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Base classes for non-editor commands.
5
+ */
6
+ import type { Plugin } from 'obsidian';
7
+ import type { CommandInvocationBase } from './CommandBase.cjs';
8
+ import { CommandBase } from './CommandBase.cjs';
9
+ /**
10
+ * Base class for non-editor commands.
11
+ *
12
+ * @typeParam TPlugin - The type of the plugin that the command belongs to.
13
+ */
14
+ export declare abstract class NonEditorCommandBase<TPlugin extends Plugin> extends CommandBase<TPlugin> {
15
+ /**
16
+ * Checks if the command can execute.
17
+ *
18
+ * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
19
+ * @returns Whether the command can execute.
20
+ */
21
+ checkCallback(checking: boolean): boolean;
22
+ /**
23
+ * Creates a new command invocation.
24
+ *
25
+ * @returns The command invocation.
26
+ */
27
+ protected abstract createCommandInvocation(): CommandInvocationBase;
28
+ }
@@ -0,0 +1,55 @@
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 __create = Object.create;
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __getProtoOf = Object.getPrototypeOf;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+ var Commands_exports = {};
37
+ __export(Commands_exports, {
38
+ CommandBase: () => CommandBase,
39
+ EditorCommandBase: () => EditorCommandBase,
40
+ FileCommandBase: () => FileCommandBase,
41
+ NonEditorCommandBase: () => NonEditorCommandBase
42
+ });
43
+ module.exports = __toCommonJS(Commands_exports);
44
+ var CommandBase = __toESM(__extractDefault(require('./CommandBase.cjs')), 1);
45
+ var EditorCommandBase = __toESM(__extractDefault(require('./EditorCommandBase.cjs')), 1);
46
+ var FileCommandBase = __toESM(__extractDefault(require('./FileCommandBase.cjs')), 1);
47
+ var NonEditorCommandBase = __toESM(__extractDefault(require('./NonEditorCommandBase.cjs')), 1);
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ CommandBase,
51
+ EditorCommandBase,
52
+ FileCommandBase,
53
+ NonEditorCommandBase
54
+ });
55
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQ29tbWFuZEJhc2UgZnJvbSAnLi9Db21tYW5kQmFzZS50cyc7XG5leHBvcnQgKiBhcyBFZGl0b3JDb21tYW5kQmFzZSBmcm9tICcuL0VkaXRvckNvbW1hbmRCYXNlLnRzJztcbmV4cG9ydCAqIGFzIEZpbGVDb21tYW5kQmFzZSBmcm9tICcuL0ZpbGVDb21tYW5kQmFzZS50cyc7XG5leHBvcnQgKiBhcyBOb25FZGl0b3JDb21tYW5kQmFzZSBmcm9tICcuL05vbkVkaXRvckNvbW1hbmRCYXNlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLGtCQUE2QjtBQUM3Qix3QkFBbUM7QUFDbkMsc0JBQWlDO0FBQ2pDLDJCQUFzQzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,4 @@
1
+ export * as CommandBase from './CommandBase.cjs';
2
+ export * as EditorCommandBase from './EditorCommandBase.cjs';
3
+ export * as FileCommandBase from './FileCommandBase.cjs';
4
+ export * as NonEditorCommandBase from './NonEditorCommandBase.cjs';
@@ -40,6 +40,7 @@ __export(obsidian_exports, {
40
40
  Backlink: () => Backlink,
41
41
  Callout: () => Callout,
42
42
  CodeBlockMarkdownInformation: () => CodeBlockMarkdownInformation,
43
+ Commands: () => Commands,
43
44
  Components: () => Components,
44
45
  Dataview: () => Dataview,
45
46
  DataviewLink: () => DataviewLink,
@@ -78,6 +79,7 @@ var AttachmentPath = __toESM(__extractDefault(require('./AttachmentPath.cjs')),
78
79
  var Backlink = __toESM(__extractDefault(require('./Backlink.cjs')), 1);
79
80
  var Callout = __toESM(__extractDefault(require('./Callout.cjs')), 1);
80
81
  var CodeBlockMarkdownInformation = __toESM(__extractDefault(require('./CodeBlockMarkdownInformation.cjs')), 1);
82
+ var Commands = __toESM(__extractDefault(require('./Commands/index.cjs')), 1);
81
83
  var Components = __toESM(__extractDefault(require('./Components/index.cjs')), 1);
82
84
  var Dataview = __toESM(__extractDefault(require('./Dataview.cjs')), 1);
83
85
  var DataviewLink = __toESM(__extractDefault(require('./DataviewLink.cjs')), 1);
@@ -116,6 +118,7 @@ var Workspace = __toESM(__extractDefault(require('./Workspace.cjs')), 1);
116
118
  Backlink,
117
119
  Callout,
118
120
  CodeBlockMarkdownInformation,
121
+ Commands,
119
122
  Components,
120
123
  Dataview,
121
124
  DataviewLink,
@@ -148,4 +151,4 @@ var Workspace = __toESM(__extractDefault(require('./Workspace.cjs')), 1);
148
151
  Workspace,
149
152
  i18n
150
153
  });
151
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQXBwIGZyb20gJy4vQXBwLnRzJztcbmV4cG9ydCAqIGFzIEF0dGFjaG1lbnRQYXRoIGZyb20gJy4vQXR0YWNobWVudFBhdGgudHMnO1xuZXhwb3J0ICogYXMgQmFja2xpbmsgZnJvbSAnLi9CYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyBDYWxsb3V0IGZyb20gJy4vQ2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIGZyb20gJy4vQ29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyBDb21wb25lbnRzIGZyb20gJy4vQ29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBEYXRhdmlldyBmcm9tICcuL0RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzIERhdGF2aWV3TGluayBmcm9tICcuL0RhdGF2aWV3TGluay50cyc7XG5leHBvcnQgKiBhcyBGaWxlQ2hhbmdlIGZyb20gJy4vRmlsZUNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyBGaWxlTWFuYWdlciBmcm9tICcuL0ZpbGVNYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzIEZpbGVTeXN0ZW0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzIEZyb250bWF0dGVyIGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyBmcm9tICcuL0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgaTE4biBmcm9tICcuL2kxOG4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgTGluayBmcm9tICcuL0xpbmsudHMnO1xuZXhwb3J0ICogYXMgTG9nZ2VyIGZyb20gJy4vTG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzIExvb3AgZnJvbSAnLi9Mb29wLnRzJztcbmV4cG9ydCAqIGFzIE1hcmtkb3duIGZyb20gJy4vTWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IgZnJvbSAnLi9NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3Nvci50cyc7XG5leHBvcnQgKiBhcyBNYXJrZG93blZpZXcgZnJvbSAnLi9NYXJrZG93blZpZXcudHMnO1xuZXhwb3J0ICogYXMgTWV0YWRhdGFDYWNoZSBmcm9tICcuL01ldGFkYXRhQ2FjaGUudHMnO1xuZXhwb3J0ICogYXMgTW9kYWxzIGZyb20gJy4vTW9kYWxzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIE1vbmtleUFyb3VuZCBmcm9tICcuL01vbmtleUFyb3VuZC50cyc7XG5leHBvcnQgKiBhcyBPYnNpZGlhblNldHRpbmdzIGZyb20gJy4vT2JzaWRpYW5TZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyBQZGYgZnJvbSAnLi9QZGYudHMnO1xuZXhwb3J0ICogYXMgUGx1Z2luIGZyb20gJy4vUGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFF1ZXVlIGZyb20gJy4vUXVldWUudHMnO1xuZXhwb3J0ICogYXMgUmVhY3QgZnJvbSAnLi9SZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBSZWZlcmVuY2UgZnJvbSAnLi9SZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgUmVuYW1lRGVsZXRlSGFuZGxlciBmcm9tICcuL1JlbmFtZURlbGV0ZUhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgUmVzb3VyY2VVcmwgZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5leHBvcnQgKiBhcyBTZXR0aW5nRXggZnJvbSAnLi9TZXR0aW5nRXgudHMnO1xuZXhwb3J0ICogYXMgVmFsaWRhdGlvbiBmcm9tICcuL1ZhbGlkYXRpb24udHMnO1xuZXhwb3J0ICogYXMgVmF1bHQgZnJvbSAnLi9WYXVsdC50cyc7XG5leHBvcnQgKiBhcyBWYXVsdEV4IGZyb20gJy4vVmF1bHRFeC50cyc7XG5leHBvcnQgKiBhcyBXb3Jrc3BhY2UgZnJvbSAnLi9Xb3Jrc3BhY2UudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLFVBQXFCO0FBQ3JCLHFCQUFnQztBQUNoQyxlQUEwQjtBQUMxQixjQUF5QjtBQUN6QixtQ0FBOEM7QUFDOUMsaUJBQTRCO0FBQzVCLGVBQTBCO0FBQzFCLG1CQUE4QjtBQUM5QixpQkFBNEI7QUFDNUIsa0JBQTZCO0FBQzdCLGlCQUE0QjtBQUM1QixrQkFBNkI7QUFDN0Isc0NBQWlEO0FBQ2pELFdBQXNCO0FBQ3RCLFdBQXNCO0FBQ3RCLGFBQXdCO0FBQ3hCLFdBQXNCO0FBQ3RCLGVBQTBCO0FBQzFCLGlDQUE0QztBQUM1QyxtQkFBOEI7QUFDOUIsb0JBQStCO0FBQy9CLGFBQXdCO0FBQ3hCLG1CQUE4QjtBQUM5Qix1QkFBa0M7QUFDbEMsVUFBcUI7QUFDckIsYUFBd0I7QUFDeEIsWUFBdUI7QUFDdkIsWUFBdUI7QUFDdkIsZ0JBQTJCO0FBQzNCLDBCQUFxQztBQUNyQyxrQkFBNkI7QUFDN0IsZ0JBQTJCO0FBQzNCLGlCQUE0QjtBQUM1QixZQUF1QjtBQUN2QixjQUF5QjtBQUN6QixnQkFBMkI7IiwKICAibmFtZXMiOiBbXQp9Cg==
154
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQXBwIGZyb20gJy4vQXBwLnRzJztcbmV4cG9ydCAqIGFzIEF0dGFjaG1lbnRQYXRoIGZyb20gJy4vQXR0YWNobWVudFBhdGgudHMnO1xuZXhwb3J0ICogYXMgQmFja2xpbmsgZnJvbSAnLi9CYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyBDYWxsb3V0IGZyb20gJy4vQ2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIGZyb20gJy4vQ29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyBDb21tYW5kcyBmcm9tICcuL0NvbW1hbmRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIENvbXBvbmVudHMgZnJvbSAnLi9Db21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIERhdGF2aWV3IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuZXhwb3J0ICogYXMgRGF0YXZpZXdMaW5rIGZyb20gJy4vRGF0YXZpZXdMaW5rLnRzJztcbmV4cG9ydCAqIGFzIEZpbGVDaGFuZ2UgZnJvbSAnLi9GaWxlQ2hhbmdlLnRzJztcbmV4cG9ydCAqIGFzIEZpbGVNYW5hZ2VyIGZyb20gJy4vRmlsZU1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgRmlsZVN5c3RlbSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgRnJvbnRtYXR0ZXIgZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5leHBvcnQgKiBhcyBGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIGZyb20gJy4vRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyBpMThuIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBMaW5rIGZyb20gJy4vTGluay50cyc7XG5leHBvcnQgKiBhcyBMb2dnZXIgZnJvbSAnLi9Mb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgTG9vcCBmcm9tICcuL0xvb3AudHMnO1xuZXhwb3J0ICogYXMgTWFya2Rvd24gZnJvbSAnLi9NYXJrZG93bi50cyc7XG5leHBvcnQgKiBhcyBNYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvciBmcm9tICcuL01hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzIE1hcmtkb3duVmlldyBmcm9tICcuL01hcmtkb3duVmlldy50cyc7XG5leHBvcnQgKiBhcyBNZXRhZGF0YUNhY2hlIGZyb20gJy4vTWV0YWRhdGFDYWNoZS50cyc7XG5leHBvcnQgKiBhcyBNb2RhbHMgZnJvbSAnLi9Nb2RhbHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgTW9ua2V5QXJvdW5kIGZyb20gJy4vTW9ua2V5QXJvdW5kLnRzJztcbmV4cG9ydCAqIGFzIE9ic2lkaWFuU2V0dGluZ3MgZnJvbSAnLi9PYnNpZGlhblNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzIFBkZiBmcm9tICcuL1BkZi50cyc7XG5leHBvcnQgKiBhcyBQbHVnaW4gZnJvbSAnLi9QbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgUXVldWUgZnJvbSAnLi9RdWV1ZS50cyc7XG5leHBvcnQgKiBhcyBSZWFjdCBmcm9tICcuL1JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFJlZmVyZW5jZSBmcm9tICcuL1JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyBSZW5hbWVEZWxldGVIYW5kbGVyIGZyb20gJy4vUmVuYW1lRGVsZXRlSGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyBSZXNvdXJjZVVybCBmcm9tICcuL1Jlc291cmNlVXJsLnRzJztcbmV4cG9ydCAqIGFzIFNldHRpbmdFeCBmcm9tICcuL1NldHRpbmdFeC50cyc7XG5leHBvcnQgKiBhcyBWYWxpZGF0aW9uIGZyb20gJy4vVmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyBWYXVsdCBmcm9tICcuL1ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzIFZhdWx0RXggZnJvbSAnLi9WYXVsdEV4LnRzJztcbmV4cG9ydCAqIGFzIFdvcmtzcGFjZSBmcm9tICcuL1dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxVQUFxQjtBQUNyQixxQkFBZ0M7QUFDaEMsZUFBMEI7QUFDMUIsY0FBeUI7QUFDekIsbUNBQThDO0FBQzlDLGVBQTBCO0FBQzFCLGlCQUE0QjtBQUM1QixlQUEwQjtBQUMxQixtQkFBOEI7QUFDOUIsaUJBQTRCO0FBQzVCLGtCQUE2QjtBQUM3QixpQkFBNEI7QUFDNUIsa0JBQTZCO0FBQzdCLHNDQUFpRDtBQUNqRCxXQUFzQjtBQUN0QixXQUFzQjtBQUN0QixhQUF3QjtBQUN4QixXQUFzQjtBQUN0QixlQUEwQjtBQUMxQixpQ0FBNEM7QUFDNUMsbUJBQThCO0FBQzlCLG9CQUErQjtBQUMvQixhQUF3QjtBQUN4QixtQkFBOEI7QUFDOUIsdUJBQWtDO0FBQ2xDLFVBQXFCO0FBQ3JCLGFBQXdCO0FBQ3hCLFlBQXVCO0FBQ3ZCLFlBQXVCO0FBQ3ZCLGdCQUEyQjtBQUMzQiwwQkFBcUM7QUFDckMsa0JBQTZCO0FBQzdCLGdCQUEyQjtBQUMzQixpQkFBNEI7QUFDNUIsWUFBdUI7QUFDdkIsY0FBeUI7QUFDekIsZ0JBQTJCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -3,6 +3,7 @@ export * as AttachmentPath from './AttachmentPath.cjs';
3
3
  export * as Backlink from './Backlink.cjs';
4
4
  export * as Callout from './Callout.cjs';
5
5
  export * as CodeBlockMarkdownInformation from './CodeBlockMarkdownInformation.cjs';
6
+ export * as Commands from './Commands/index.cjs';
6
7
  export * as Components from './Components/index.cjs';
7
8
  export * as Dataview from './Dataview.cjs';
8
9
  export * as DataviewLink from './DataviewLink.cjs';
@@ -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.1.0";
8
+ const LIBRARY_VERSION = "42.1.1";
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,84 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Base classes for commands.
5
+ */
6
+ import type { App, Command, IconName, Plugin } from 'obsidian';
7
+ /**
8
+ * Options for creating a command.
9
+ *
10
+ * @typeParam TPlugin - The type of the plugin that the command belongs to.
11
+ */
12
+ export interface CommandBaseOptions<TPlugin extends Plugin> {
13
+ /**
14
+ * The icon to use for the command.
15
+ */
16
+ icon: IconName;
17
+ /**
18
+ * The ID of the command.
19
+ */
20
+ id: string;
21
+ /**
22
+ * The name of the command.
23
+ */
24
+ name: string;
25
+ /**
26
+ * The plugin that the command belongs to.
27
+ */
28
+ plugin: TPlugin;
29
+ }
30
+ /**
31
+ * Base class for commands.
32
+ *
33
+ * @typeParam TPlugin - The type of the plugin that the command belongs to.
34
+ */
35
+ export declare abstract class CommandBase<TPlugin extends Plugin> implements Command {
36
+ icon: IconName;
37
+ id: string;
38
+ name: string;
39
+ protected readonly app: App;
40
+ protected readonly plugin: TPlugin;
41
+ /**
42
+ * Creates a new command.
43
+ *
44
+ * @param options - The options for the command.
45
+ */
46
+ constructor(options: CommandBaseOptions<TPlugin>);
47
+ /**
48
+ * Registers the command.
49
+ */
50
+ register(): void;
51
+ }
52
+ /**
53
+ * Base class for command invocations.
54
+ *
55
+ * @typeParam TPlugin - The type of the plugin that the command belongs to.
56
+ */
57
+ export declare abstract class CommandInvocationBase<TPlugin extends Plugin = Plugin> {
58
+ protected readonly plugin: TPlugin;
59
+ protected readonly app: App;
60
+ private lastCanExecuteResult?;
61
+ /**
62
+ * Creates a new command invocation.
63
+ *
64
+ * @param plugin - The plugin that the command invocation belongs to.
65
+ */
66
+ constructor(plugin: TPlugin);
67
+ /**
68
+ * Invokes the command.
69
+ *
70
+ * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
71
+ * @returns Whether the command was executed.
72
+ */
73
+ invoke(checking: boolean): boolean;
74
+ /**
75
+ * Checks if the command can execute.
76
+ *
77
+ * @returns Whether the command can execute.
78
+ */
79
+ protected canExecute(): boolean;
80
+ /**
81
+ * Executes the command.
82
+ */
83
+ protected execute(): void;
84
+ }
@@ -0,0 +1,82 @@
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
+ class CommandBase {
9
+ icon;
10
+ id;
11
+ name;
12
+ app;
13
+ plugin;
14
+ /**
15
+ * Creates a new command.
16
+ *
17
+ * @param options - The options for the command.
18
+ */
19
+ constructor(options) {
20
+ this.id = options.id;
21
+ this.name = options.name;
22
+ this.icon = options.icon;
23
+ this.plugin = options.plugin;
24
+ this.app = this.plugin.app;
25
+ }
26
+ /**
27
+ * Registers the command.
28
+ */
29
+ register() {
30
+ this.plugin.addCommand(this);
31
+ }
32
+ }
33
+ class CommandInvocationBase {
34
+ /**
35
+ * Creates a new command invocation.
36
+ *
37
+ * @param plugin - The plugin that the command invocation belongs to.
38
+ */
39
+ constructor(plugin) {
40
+ this.plugin = plugin;
41
+ this.app = plugin.app;
42
+ }
43
+ app;
44
+ lastCanExecuteResult;
45
+ /**
46
+ * Invokes the command.
47
+ *
48
+ * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
49
+ * @returns Whether the command was executed.
50
+ */
51
+ invoke(checking) {
52
+ this.lastCanExecuteResult = this.canExecute();
53
+ if (!checking && this.lastCanExecuteResult) {
54
+ this.execute();
55
+ }
56
+ return this.lastCanExecuteResult;
57
+ }
58
+ /**
59
+ * Checks if the command can execute.
60
+ *
61
+ * @returns Whether the command can execute.
62
+ */
63
+ canExecute() {
64
+ return true;
65
+ }
66
+ /**
67
+ * Executes the command.
68
+ */
69
+ execute() {
70
+ if (this.lastCanExecuteResult === void 0) {
71
+ throw new Error("canExecute() must be called before execute()");
72
+ }
73
+ if (!this.lastCanExecuteResult) {
74
+ throw new Error("canExecute() must return true before execute()");
75
+ }
76
+ }
77
+ }
78
+ export {
79
+ CommandBase,
80
+ CommandInvocationBase
81
+ };
82
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0NvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3IgY29tbWFuZHMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbW1hbmQsXG4gIEljb25OYW1lLFxuICBQbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgY29tbWFuZC5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kQmFzZU9wdGlvbnM8VFBsdWdpbiBleHRlbmRzIFBsdWdpbj4ge1xuICAvKipcbiAgICogVGhlIGljb24gdG8gdXNlIGZvciB0aGUgY29tbWFuZC5cbiAgICovXG4gIGljb246IEljb25OYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwbHVnaW46IFRQbHVnaW47XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY29tbWFuZHMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21tYW5kQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBpbXBsZW1lbnRzIENvbW1hbmQge1xuICBwdWJsaWMgaWNvbjogSWNvbk5hbWU7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW46IFRQbHVnaW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZC5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogQ29tbWFuZEJhc2VPcHRpb25zPFRQbHVnaW4+KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnMuaWQ7XG4gICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIHRoaXMuaWNvbiA9IG9wdGlvbnMuaWNvbjtcbiAgICB0aGlzLnBsdWdpbiA9IG9wdGlvbnMucGx1Z2luO1xuICAgIHRoaXMuYXBwID0gdGhpcy5wbHVnaW4uYXBwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcigpOiB2b2lkIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHRoaXMpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY29tbWFuZCBpbnZvY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luID0gUGx1Z2luPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhcHA6IEFwcDtcbiAgcHJpdmF0ZSBsYXN0Q2FuRXhlY3V0ZVJlc3VsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGludm9jYXRpb24gYmVsb25ncyB0by5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBUUGx1Z2luKSB7XG4gICAgdGhpcy5hcHAgPSBwbHVnaW4uYXBwO1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZXMgdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEBwYXJhbSBjaGVja2luZyAtIElzIGNoZWNraW5nIG1vZGUgb25seS4gSWYgYHRydWVgLCBvbmx5IHRoZSBjaGVjayBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBpcyBwZXJmb3JtZWQuIElmIGBmYWxzZWAsIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIHdhcyBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBpbnZva2UoY2hlY2tpbmc6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICB0aGlzLmxhc3RDYW5FeGVjdXRlUmVzdWx0ID0gdGhpcy5jYW5FeGVjdXRlKCk7XG4gICAgaWYgKCFjaGVja2luZyAmJiB0aGlzLmxhc3RDYW5FeGVjdXRlUmVzdWx0KSB7XG4gICAgICB0aGlzLmV4ZWN1dGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sYXN0Q2FuRXhlY3V0ZVJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgY29tbWFuZC5cbiAgICovXG4gIHByb3RlY3RlZCBleGVjdXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhc3RDYW5FeGVjdXRlUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2FuRXhlY3V0ZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBleGVjdXRlKCknKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmxhc3RDYW5FeGVjdXRlUmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbkV4ZWN1dGUoKSBtdXN0IHJldHVybiB0cnVlIGJlZm9yZSBleGVjdXRlKCknKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUE2Q08sTUFBZSxZQUF1RDtBQUFBLEVBQ3BFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNZO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9aLFlBQVksU0FBc0M7QUFDdkQsU0FBSyxLQUFLLFFBQVE7QUFDbEIsU0FBSyxPQUFPLFFBQVE7QUFDcEIsU0FBSyxPQUFPLFFBQVE7QUFDcEIsU0FBSyxTQUFTLFFBQVE7QUFDdEIsU0FBSyxNQUFNLEtBQUssT0FBTztBQUFBLEVBQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxXQUFpQjtBQUN0QixTQUFLLE9BQU8sV0FBVyxJQUFJO0FBQUEsRUFDN0I7QUFDRjtBQU9PLE1BQWUsc0JBQXVEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU3BFLFlBQStCLFFBQWlCO0FBQWpCO0FBQ3BDLFNBQUssTUFBTSxPQUFPO0FBQUEsRUFDcEI7QUFBQSxFQVZtQjtBQUFBLEVBQ1g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWlCRCxPQUFPLFVBQTRCO0FBQ3hDLFNBQUssdUJBQXVCLEtBQUssV0FBVztBQUM1QyxRQUFJLENBQUMsWUFBWSxLQUFLLHNCQUFzQjtBQUMxQyxXQUFLLFFBQVE7QUFBQSxJQUNmO0FBRUEsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLGFBQXNCO0FBQzlCLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLVSxVQUFnQjtBQUN4QixRQUFJLEtBQUsseUJBQXlCLFFBQVc7QUFDM0MsWUFBTSxJQUFJLE1BQU0sOENBQThDO0FBQUEsSUFDaEU7QUFDQSxRQUFJLENBQUMsS0FBSyxzQkFBc0I7QUFDOUIsWUFBTSxJQUFJLE1BQU0sZ0RBQWdEO0FBQUEsSUFDbEU7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Base classes for editor commands.
5
+ */
6
+ import type { Editor, MarkdownFileInfo, MarkdownView, Plugin, TFile } from 'obsidian';
7
+ import { CommandBase, CommandInvocationBase } from './CommandBase.mjs';
8
+ /**
9
+ * Base class for editor commands.
10
+ *
11
+ * @typeParam TPlugin - The type of the plugin that the command belongs to.
12
+ */
13
+ export declare abstract class EditorCommandBase<TPlugin extends Plugin> extends CommandBase<TPlugin> {
14
+ protected readonly menuItemName?: string;
15
+ protected readonly menuSection?: string;
16
+ /**
17
+ * Checks if the command can execute.
18
+ *
19
+ * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
20
+ * @param editor - The editor to check.
21
+ * @param ctx - The context of the command.
22
+ * @returns Whether the command can execute.
23
+ */
24
+ editorCheckCallback(checking: boolean, editor: Editor, ctx: MarkdownFileInfo | MarkdownView): boolean;
25
+ /**
26
+ * Registers the command.
27
+ */
28
+ register(): void;
29
+ /**
30
+ * Creates a new editor command invocation.
31
+ *
32
+ * @param editor - The editor to create the command invocation for.
33
+ * @param ctx - The context of the command.
34
+ * @returns The command invocation.
35
+ */
36
+ protected abstract createEditorCommandInvocation(editor: Editor, ctx: MarkdownFileInfo | MarkdownView): CommandInvocationBase;
37
+ /**
38
+ * Checks if the command should be added to the editor menu.
39
+ *
40
+ * @param _editor - The editor to check.
41
+ * @param _ctx - The context of the command.
42
+ * @returns Whether the command should be added to the editor menu.
43
+ */
44
+ protected shouldAddToEditorMenu(_editor: Editor, _ctx: MarkdownFileInfo | MarkdownView): boolean;
45
+ private handleEditorMenu;
46
+ }
47
+ /**
48
+ * Base class for editor command invocations.
49
+ *
50
+ * @typeParam TPlugin - The type of the plugin that the command belongs to.
51
+ */
52
+ export declare class EditorCommandInvocationBase<TPlugin extends Plugin> extends CommandInvocationBase<TPlugin> {
53
+ protected readonly editor: Editor;
54
+ protected readonly ctx: MarkdownFileInfo | MarkdownView;
55
+ protected activeFile: TFile;
56
+ /**
57
+ * Creates a new editor command invocation.
58
+ *
59
+ * @param plugin - The plugin that the command invocation belongs to.
60
+ * @param editor - The editor to create the command invocation for.
61
+ * @param ctx - The context of the command.
62
+ */
63
+ constructor(plugin: TPlugin, editor: Editor, ctx: MarkdownFileInfo | MarkdownView);
64
+ /**
65
+ * Checks if the command can execute.
66
+ *
67
+ * @returns Whether the command can execute.
68
+ */
69
+ canExecute(): boolean;
70
+ }
@@ -0,0 +1,89 @@
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 {
9
+ CommandBase,
10
+ CommandInvocationBase
11
+ } from "./CommandBase.mjs";
12
+ class EditorCommandBase extends CommandBase {
13
+ menuItemName;
14
+ menuSection;
15
+ /**
16
+ * Checks if the command can execute.
17
+ *
18
+ * @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
19
+ * @param editor - The editor to check.
20
+ * @param ctx - The context of the command.
21
+ * @returns Whether the command can execute.
22
+ */
23
+ editorCheckCallback(checking, editor, ctx) {
24
+ return this.createEditorCommandInvocation(editor, ctx).invoke(checking);
25
+ }
26
+ /**
27
+ * Registers the command.
28
+ */
29
+ register() {
30
+ super.register();
31
+ this.plugin.registerEvent(this.app.workspace.on("editor-menu", this.handleEditorMenu.bind(this)));
32
+ }
33
+ /**
34
+ * Checks if the command should be added to the editor menu.
35
+ *
36
+ * @param _editor - The editor to check.
37
+ * @param _ctx - The context of the command.
38
+ * @returns Whether the command should be added to the editor menu.
39
+ */
40
+ shouldAddToEditorMenu(_editor, _ctx) {
41
+ return false;
42
+ }
43
+ handleEditorMenu(menu, editor, ctx) {
44
+ if (!this.createEditorCommandInvocation(editor, ctx).invoke(true)) {
45
+ return;
46
+ }
47
+ if (!this.shouldAddToEditorMenu(editor, ctx)) {
48
+ return;
49
+ }
50
+ menu.addItem((item) => {
51
+ item.setTitle(this.menuItemName ?? this.name).setIcon(this.icon).setSection(this.menuSection ?? "").onClick(() => this.createEditorCommandInvocation(editor, ctx).invoke(false));
52
+ });
53
+ }
54
+ }
55
+ class EditorCommandInvocationBase extends CommandInvocationBase {
56
+ /**
57
+ * Creates a new editor command invocation.
58
+ *
59
+ * @param plugin - The plugin that the command invocation belongs to.
60
+ * @param editor - The editor to create the command invocation for.
61
+ * @param ctx - The context of the command.
62
+ */
63
+ constructor(plugin, editor, ctx) {
64
+ super(plugin);
65
+ this.editor = editor;
66
+ this.ctx = ctx;
67
+ }
68
+ activeFile;
69
+ /**
70
+ * Checks if the command can execute.
71
+ *
72
+ * @returns Whether the command can execute.
73
+ */
74
+ canExecute() {
75
+ if (!super.canExecute()) {
76
+ return false;
77
+ }
78
+ if (!this.ctx.file) {
79
+ return false;
80
+ }
81
+ this.activeFile = this.ctx.file;
82
+ return true;
83
+ }
84
+ }
85
+ export {
86
+ EditorCommandBase,
87
+ EditorCommandInvocationBase
88
+ };
89
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0VkaXRvckNvbW1hbmRCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3NlcyBmb3IgZWRpdG9yIGNvbW1hbmRzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRWRpdG9yLFxuICBNYXJrZG93bkZpbGVJbmZvLFxuICBNYXJrZG93blZpZXcsXG4gIE1lbnUsXG4gIFBsdWdpbixcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBDb21tYW5kQmFzZSxcbiAgQ29tbWFuZEludm9jYXRpb25CYXNlXG59IGZyb20gJy4vQ29tbWFuZEJhc2UudHMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGVkaXRvciBjb21tYW5kcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVkaXRvckNvbW1hbmRCYXNlPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4+IGV4dGVuZHMgQ29tbWFuZEJhc2U8VFBsdWdpbj4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVudUl0ZW1OYW1lPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVudVNlY3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIGNoZWNraW5nIC0gSXMgY2hlY2tpbmcgbW9kZSBvbmx5LiBJZiBgdHJ1ZWAsIG9ubHkgdGhlIGNoZWNrIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlIGlzIHBlcmZvcm1lZC4gSWYgYGZhbHNlYCwgdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWQuXG4gICAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIGNvbnRleHQgb2YgdGhlIGNvbW1hbmQuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgZWRpdG9yQ2hlY2tDYWxsYmFjayhjaGVja2luZzogYm9vbGVhbiwgZWRpdG9yOiBFZGl0b3IsIGN0eDogTWFya2Rvd25GaWxlSW5mbyB8IE1hcmtkb3duVmlldyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUVkaXRvckNvbW1hbmRJbnZvY2F0aW9uKGVkaXRvciwgY3R4KS5pbnZva2UoY2hlY2tpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZWdpc3RlcigpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3RlcigpO1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKCdlZGl0b3ItbWVudScsIHRoaXMuaGFuZGxlRWRpdG9yTWVudS5iaW5kKHRoaXMpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBlZGl0b3IgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZWRpdG9yIC0gVGhlIGVkaXRvciB0byBjcmVhdGUgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IuXG4gICAqIEBwYXJhbSBjdHggLSBUaGUgY29udGV4dCBvZiB0aGUgY29tbWFuZC5cbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVFZGl0b3JDb21tYW5kSW52b2NhdGlvbihlZGl0b3I6IEVkaXRvciwgY3R4OiBNYXJrZG93bkZpbGVJbmZvIHwgTWFya2Rvd25WaWV3KTogQ29tbWFuZEludm9jYXRpb25CYXNlO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBlZGl0b3IgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9lZGl0b3IgLSBUaGUgZWRpdG9yIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gX2N0eCAtIFRoZSBjb250ZXh0IG9mIHRoZSBjb21tYW5kLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZWRpdG9yIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9FZGl0b3JNZW51KF9lZGl0b3I6IEVkaXRvciwgX2N0eDogTWFya2Rvd25GaWxlSW5mbyB8IE1hcmtkb3duVmlldyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRWRpdG9yTWVudShtZW51OiBNZW51LCBlZGl0b3I6IEVkaXRvciwgY3R4OiBNYXJrZG93bkZpbGVJbmZvIHwgTWFya2Rvd25WaWV3KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNyZWF0ZUVkaXRvckNvbW1hbmRJbnZvY2F0aW9uKGVkaXRvciwgY3R4KS5pbnZva2UodHJ1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9FZGl0b3JNZW51KGVkaXRvciwgY3R4KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lbnUuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5tZW51SXRlbU5hbWUgPz8gdGhpcy5uYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5zZXRTZWN0aW9uKHRoaXMubWVudVNlY3Rpb24gPz8gJycpXG4gICAgICAgIC5vbkNsaWNrKCgpID0+IHRoaXMuY3JlYXRlRWRpdG9yQ29tbWFuZEludm9jYXRpb24oZWRpdG9yLCBjdHgpLmludm9rZShmYWxzZSkpO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgZWRpdG9yIGNvbW1hbmQgaW52b2NhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbj4gZXh0ZW5kcyBDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4ge1xuICBwcm90ZWN0ZWQgYWN0aXZlRmlsZSE6IFRGaWxlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGVkaXRvciBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBiZWxvbmdzIHRvLlxuICAgKiBAcGFyYW0gZWRpdG9yIC0gVGhlIGVkaXRvciB0byBjcmVhdGUgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IuXG4gICAqIEBwYXJhbSBjdHggLSBUaGUgY29udGV4dCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IFRQbHVnaW4sIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3I6IEVkaXRvciwgcHJvdGVjdGVkIHJlYWRvbmx5IGN0eDogTWFya2Rvd25GaWxlSW5mbyB8IE1hcmtkb3duVmlldykge1xuICAgIHN1cGVyKHBsdWdpbik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdXBlci5jYW5FeGVjdXRlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY3R4LmZpbGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZUZpbGUgPSB0aGlzLmN0eC5maWxlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBZUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFPQSxNQUFlLDBCQUFrRCxZQUFxQjtBQUFBLEVBQ3hFO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVaLG9CQUFvQixVQUFtQixRQUFnQixLQUErQztBQUMzRyxXQUFPLEtBQUssOEJBQThCLFFBQVEsR0FBRyxFQUFFLE9BQU8sUUFBUTtBQUFBLEVBQ3hFO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsV0FBaUI7QUFDL0IsVUFBTSxTQUFTO0FBQ2YsU0FBSyxPQUFPLGNBQWMsS0FBSyxJQUFJLFVBQVUsR0FBRyxlQUFlLEtBQUssaUJBQWlCLEtBQUssSUFBSSxDQUFDLENBQUM7QUFBQSxFQUNsRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrQlUsc0JBQXNCLFNBQWlCLE1BQWdEO0FBQy9GLFdBQU87QUFBQSxFQUNUO0FBQUEsRUFFUSxpQkFBaUIsTUFBWSxRQUFnQixLQUE0QztBQUMvRixRQUFJLENBQUMsS0FBSyw4QkFBOEIsUUFBUSxHQUFHLEVBQUUsT0FBTyxJQUFJLEdBQUc7QUFDakU7QUFBQSxJQUNGO0FBRUEsUUFBSSxDQUFDLEtBQUssc0JBQXNCLFFBQVEsR0FBRyxHQUFHO0FBQzVDO0FBQUEsSUFDRjtBQUVBLFNBQUssUUFBUSxDQUFDLFNBQVM7QUFDckIsV0FDRyxTQUFTLEtBQUssZ0JBQWdCLEtBQUssSUFBSSxFQUN2QyxRQUFRLEtBQUssSUFBSSxFQUNqQixXQUFXLEtBQUssZUFBZSxFQUFFLEVBQ2pDLFFBQVEsTUFBTSxLQUFLLDhCQUE4QixRQUFRLEdBQUcsRUFBRSxPQUFPLEtBQUssQ0FBQztBQUFBLElBQ2hGLENBQUM7QUFBQSxFQUNIO0FBQ0Y7QUFPTyxNQUFNLG9DQUE0RCxzQkFBK0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVS9GLFlBQVksUUFBb0MsUUFBbUMsS0FBc0M7QUFDOUgsVUFBTSxNQUFNO0FBRHlDO0FBQW1DO0FBQUEsRUFFMUY7QUFBQSxFQVhVO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBa0JNLGFBQXNCO0FBQ3BDLFFBQUksQ0FBQyxNQUFNLFdBQVcsR0FBRztBQUN2QixhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksQ0FBQyxLQUFLLElBQUksTUFBTTtBQUNsQixhQUFPO0FBQUEsSUFDVDtBQUVBLFNBQUssYUFBYSxLQUFLLElBQUk7QUFDM0IsV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K