obsidian-dev-utils 59.0.2 → 61.0.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/lib/cjs/library.cjs +1 -1
  3. package/dist/lib/cjs/obsidian/{command-handlers/app-active-file-provider.cjs → active-file-provider.cjs} +4 -4
  4. package/dist/lib/{esm/obsidian/command-handlers/app-active-file-provider.d.mts → cjs/obsidian/active-file-provider.d.cts} +13 -2
  5. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +1 -1
  6. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +15 -11
  7. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +11 -5
  8. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +1 -1
  9. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +3 -61
  10. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +1 -7
  11. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +0 -2
  12. package/dist/lib/cjs/obsidian/command-registrar.cjs +154 -0
  13. package/dist/lib/cjs/obsidian/command-registrar.d.cts +30 -0
  14. package/dist/lib/cjs/obsidian/data-handler.cjs +163 -0
  15. package/dist/lib/cjs/obsidian/data-handler.d.cts +48 -0
  16. package/dist/lib/cjs/obsidian/index.cjs +13 -1
  17. package/dist/lib/cjs/obsidian/index.d.cts +4 -0
  18. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +173 -0
  19. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +90 -0
  20. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +32 -33
  21. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.d.cts +5 -24
  22. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +1 -12
  23. package/dist/lib/esm/library.mjs +1 -1
  24. package/dist/lib/{cjs/obsidian/command-handlers/app-active-file-provider.d.cts → esm/obsidian/active-file-provider.d.mts} +13 -2
  25. package/dist/lib/esm/obsidian/active-file-provider.mjs +46 -0
  26. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +1 -1
  27. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +11 -5
  28. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +15 -11
  29. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +3 -61
  30. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +1 -1
  31. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +0 -2
  32. package/dist/lib/esm/obsidian/command-handlers/index.mjs +1 -5
  33. package/dist/lib/esm/obsidian/command-registrar.d.mts +30 -0
  34. package/dist/lib/esm/obsidian/command-registrar.mjs +46 -0
  35. package/dist/lib/esm/obsidian/data-handler.d.mts +48 -0
  36. package/dist/lib/esm/obsidian/data-handler.mjs +55 -0
  37. package/dist/lib/esm/obsidian/index.d.mts +4 -0
  38. package/dist/lib/esm/obsidian/index.mjs +9 -1
  39. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +90 -0
  40. package/dist/lib/esm/obsidian/menu-event-registrar.mjs +65 -0
  41. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.d.mts +5 -24
  42. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +32 -33
  43. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +1 -12
  44. package/obsidian/active-file-provider/package.json +6 -0
  45. package/obsidian/command-registrar/package.json +6 -0
  46. package/obsidian/data-handler/package.json +6 -0
  47. package/obsidian/menu-event-registrar/package.json +6 -0
  48. package/package.json +2 -1
  49. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +0 -173
  50. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +0 -41
  51. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +0 -46
  52. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +0 -41
  53. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +0 -65
  54. package/obsidian/command-handlers/app-active-file-provider/package.json +0 -6
  55. package/obsidian/command-handlers/app-menu-event-registrar/package.json +0 -6
@@ -3,19 +3,25 @@
3
3
  *
4
4
  * Component that wraps a {@link CommandHandler} and manages its registration with Obsidian.
5
5
  */
6
- import type { Plugin } from 'obsidian';
6
+ import type { ActiveFileProvider } from '../active-file-provider.mjs';
7
+ import type { CommandRegistrar } from '../command-registrar.mjs';
8
+ import type { MenuEventRegistrar } from '../menu-event-registrar.mjs';
7
9
  import type { CommandHandler } from './command-handler.mjs';
8
10
  import { AsyncComponentBase } from '../components/async-component.mjs';
9
11
  interface CommandHandlerComponentConstructorParams {
10
- readonly commandHandler: CommandHandler;
11
- readonly plugin: Plugin;
12
+ readonly activeFileProvider: ActiveFileProvider;
13
+ readonly commandHandlers: CommandHandler[];
14
+ readonly commandRegistrar: CommandRegistrar;
15
+ readonly menuEventRegistrar: MenuEventRegistrar;
12
16
  }
13
17
  /**
14
18
  * Wraps a {@link CommandHandler} and registers it with Obsidian on load.
15
19
  */
16
20
  export declare class CommandHandlerComponent extends AsyncComponentBase {
17
- private readonly commandHandler;
18
- private readonly plugin;
21
+ private readonly activeFileProvider;
22
+ private readonly commandHandlers;
23
+ private readonly commandRegistrar;
24
+ private readonly menuEventRegistrar;
19
25
  /**
20
26
  * Creates a new command handler component.
21
27
  *
@@ -22,11 +22,11 @@ if you want to view the source, please visit the github repository of this plugi
22
22
  })();
23
23
 
24
24
  import { AsyncComponentBase } from "../components/async-component.mjs";
25
- import { AppActiveFileProvider } from "./app-active-file-provider.mjs";
26
- import { AppMenuEventRegistrar } from "./app-menu-event-registrar.mjs";
27
25
  class CommandHandlerComponent extends AsyncComponentBase {
28
- commandHandler;
29
- plugin;
26
+ activeFileProvider;
27
+ commandHandlers;
28
+ commandRegistrar;
29
+ menuEventRegistrar;
30
30
  /**
31
31
  * Creates a new command handler component.
32
32
  *
@@ -34,22 +34,26 @@ class CommandHandlerComponent extends AsyncComponentBase {
34
34
  */
35
35
  constructor(params) {
36
36
  super();
37
- this.plugin = params.plugin;
38
- this.commandHandler = params.commandHandler;
37
+ this.commandHandlers = params.commandHandlers;
38
+ this.activeFileProvider = params.activeFileProvider;
39
+ this.menuEventRegistrar = params.menuEventRegistrar;
40
+ this.commandRegistrar = params.commandRegistrar;
39
41
  }
40
42
  /**
41
43
  * Registers the command with Obsidian and provides runtime context to the handler.
42
44
  */
43
45
  async onload() {
44
- this.plugin.addCommand(this.commandHandler.buildCommand());
45
46
  const context = {
46
- activeFileProvider: new AppActiveFileProvider(this.plugin.app),
47
- menuEventRegistrar: new AppMenuEventRegistrar(this.plugin.app, this)
47
+ activeFileProvider: this.activeFileProvider,
48
+ menuEventRegistrar: this.menuEventRegistrar
48
49
  };
49
- await this.commandHandler.onRegistered(context);
50
+ for (const commandHandler of this.commandHandlers) {
51
+ this.commandRegistrar.addCommand(commandHandler.buildCommand());
52
+ await commandHandler.onRegistered(context);
53
+ }
50
54
  }
51
55
  }
52
56
  export {
53
57
  CommandHandlerComponent
54
58
  };
55
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IHdyYXBzIGEge0BsaW5rIENvbW1hbmRIYW5kbGVyfSBhbmQgbWFuYWdlcyBpdHMgcmVnaXN0cmF0aW9uIHdpdGggT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZEhhbmRsZXIsXG4gIENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dFxufSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5cbmltcG9ydCB7IEFzeW5jQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEFwcEFjdGl2ZUZpbGVQcm92aWRlciB9IGZyb20gJy4vYXBwLWFjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB7IEFwcE1lbnVFdmVudFJlZ2lzdHJhciB9IGZyb20gJy4vYXBwLW1lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcblxuaW50ZXJmYWNlIENvbW1hbmRIYW5kbGVyQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMge1xuICByZWFkb25seSBjb21tYW5kSGFuZGxlcjogQ29tbWFuZEhhbmRsZXI7XG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luO1xufVxuXG4vKipcbiAqIFdyYXBzIGEge0BsaW5rIENvbW1hbmRIYW5kbGVyfSBhbmQgcmVnaXN0ZXJzIGl0IHdpdGggT2JzaWRpYW4gb24gbG9hZC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IGV4dGVuZHMgQXN5bmNDb21wb25lbnRCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kSGFuZGxlcjogQ29tbWFuZEhhbmRsZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogQ29tbWFuZEhhbmRsZXJDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wbHVnaW4gPSBwYXJhbXMucGx1Z2luO1xuICAgIHRoaXMuY29tbWFuZEhhbmRsZXIgPSBwYXJhbXMuY29tbWFuZEhhbmRsZXI7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBjb21tYW5kIHdpdGggT2JzaWRpYW4gYW5kIHByb3ZpZGVzIHJ1bnRpbWUgY29udGV4dCB0byB0aGUgaGFuZGxlci5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh0aGlzLmNvbW1hbmRIYW5kbGVyLmJ1aWxkQ29tbWFuZCgpKTtcbiAgICBjb25zdCBjb250ZXh0OiBDb21tYW5kSGFuZGxlclJlZ2lzdHJhdGlvbkNvbnRleHQgPSB7XG4gICAgICBhY3RpdmVGaWxlUHJvdmlkZXI6IG5ldyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIodGhpcy5wbHVnaW4uYXBwKSxcbiAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogbmV3IEFwcE1lbnVFdmVudFJlZ2lzdHJhcih0aGlzLnBsdWdpbi5hcHAsIHRoaXMpXG4gICAgfTtcbiAgICBhd2FpdCB0aGlzLmNvbW1hbmRIYW5kbGVyLm9uUmVnaXN0ZXJlZChjb250ZXh0KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLDBCQUEwQjtBQUNuQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLDZCQUE2QjtBQVUvQixNQUFNLGdDQUFnQyxtQkFBbUI7QUFBQSxFQUM3QztBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVixZQUFZLFFBQWtEO0FBQ25FLFVBQU07QUFDTixTQUFLLFNBQVMsT0FBTztBQUNyQixTQUFLLGlCQUFpQixPQUFPO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQXNCLFNBQXdCO0FBQzVDLFNBQUssT0FBTyxXQUFXLEtBQUssZUFBZSxhQUFhLENBQUM7QUFDekQsVUFBTSxVQUE2QztBQUFBLE1BQ2pELG9CQUFvQixJQUFJLHNCQUFzQixLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzdELG9CQUFvQixJQUFJLHNCQUFzQixLQUFLLE9BQU8sS0FBSyxJQUFJO0FBQUEsSUFDckU7QUFDQSxVQUFNLEtBQUssZUFBZSxhQUFhLE9BQU87QUFBQSxFQUNoRDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
59
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IHdyYXBzIGEge0BsaW5rIENvbW1hbmRIYW5kbGVyfSBhbmQgbWFuYWdlcyBpdHMgcmVnaXN0cmF0aW9uIHdpdGggT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBY3RpdmVGaWxlUHJvdmlkZXIgfSBmcm9tICcuLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5pbXBvcnQgdHlwZSB7IE1lbnVFdmVudFJlZ2lzdHJhciB9IGZyb20gJy4uL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZEhhbmRsZXIsXG4gIENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dFxufSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5cbmltcG9ydCB7IEFzeW5jQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtY29tcG9uZW50LnRzJztcblxuaW50ZXJmYWNlIENvbW1hbmRIYW5kbGVyQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMge1xuICByZWFkb25seSBhY3RpdmVGaWxlUHJvdmlkZXI6IEFjdGl2ZUZpbGVQcm92aWRlcjtcbiAgcmVhZG9ubHkgY29tbWFuZEhhbmRsZXJzOiBDb21tYW5kSGFuZGxlcltdO1xuICByZWFkb25seSBjb21tYW5kUmVnaXN0cmFyOiBDb21tYW5kUmVnaXN0cmFyO1xuICByZWFkb25seSBtZW51RXZlbnRSZWdpc3RyYXI6IE1lbnVFdmVudFJlZ2lzdHJhcjtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIHtAbGluayBDb21tYW5kSGFuZGxlcn0gYW5kIHJlZ2lzdGVycyBpdCB3aXRoIE9ic2lkaWFuIG9uIGxvYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tYW5kSGFuZGxlckNvbXBvbmVudCBleHRlbmRzIEFzeW5jQ29tcG9uZW50QmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlRmlsZVByb3ZpZGVyOiBBY3RpdmVGaWxlUHJvdmlkZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZEhhbmRsZXJzOiBDb21tYW5kSGFuZGxlcltdO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRSZWdpc3RyYXI6IENvbW1hbmRSZWdpc3RyYXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVudUV2ZW50UmVnaXN0cmFyOiBNZW51RXZlbnRSZWdpc3RyYXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogQ29tbWFuZEhhbmRsZXJDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb21tYW5kSGFuZGxlcnMgPSBwYXJhbXMuY29tbWFuZEhhbmRsZXJzO1xuICAgIHRoaXMuYWN0aXZlRmlsZVByb3ZpZGVyID0gcGFyYW1zLmFjdGl2ZUZpbGVQcm92aWRlcjtcbiAgICB0aGlzLm1lbnVFdmVudFJlZ2lzdHJhciA9IHBhcmFtcy5tZW51RXZlbnRSZWdpc3RyYXI7XG4gICAgdGhpcy5jb21tYW5kUmVnaXN0cmFyID0gcGFyYW1zLmNvbW1hbmRSZWdpc3RyYXI7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBjb21tYW5kIHdpdGggT2JzaWRpYW4gYW5kIHByb3ZpZGVzIHJ1bnRpbWUgY29udGV4dCB0byB0aGUgaGFuZGxlci5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGV4dDogQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0ID0ge1xuICAgICAgYWN0aXZlRmlsZVByb3ZpZGVyOiB0aGlzLmFjdGl2ZUZpbGVQcm92aWRlcixcbiAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogdGhpcy5tZW51RXZlbnRSZWdpc3RyYXJcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBjb21tYW5kSGFuZGxlciBvZiB0aGlzLmNvbW1hbmRIYW5kbGVycykge1xuICAgICAgdGhpcy5jb21tYW5kUmVnaXN0cmFyLmFkZENvbW1hbmQoY29tbWFuZEhhbmRsZXIuYnVpbGRDb21tYW5kKCkpO1xuICAgICAgYXdhaXQgY29tbWFuZEhhbmRsZXIub25SZWdpc3RlcmVkKGNvbnRleHQpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTLDBCQUEwQjtBQVk1QixNQUFNLGdDQUFnQyxtQkFBbUI7QUFBQSxFQUM3QztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBa0Q7QUFDbkUsVUFBTTtBQUNOLFNBQUssa0JBQWtCLE9BQU87QUFDOUIsU0FBSyxxQkFBcUIsT0FBTztBQUNqQyxTQUFLLHFCQUFxQixPQUFPO0FBQ2pDLFNBQUssbUJBQW1CLE9BQU87QUFBQSxFQUNqQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsU0FBd0I7QUFDNUMsVUFBTSxVQUE2QztBQUFBLE1BQ2pELG9CQUFvQixLQUFLO0FBQUEsTUFDekIsb0JBQW9CLEtBQUs7QUFBQSxJQUMzQjtBQUVBLGVBQVcsa0JBQWtCLEtBQUssaUJBQWlCO0FBQ2pELFdBQUssaUJBQWlCLFdBQVcsZUFBZSxhQUFhLENBQUM7QUFDOUQsWUFBTSxlQUFlLGFBQWEsT0FBTztBQUFBLElBQzNDO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -3,18 +3,9 @@
3
3
  *
4
4
  * Base class and interfaces for command handlers.
5
5
  */
6
- import type { Command, Editor, IconName, MarkdownFileInfo, Menu, TAbstractFile, TFile, WorkspaceLeaf } from 'obsidian';
7
- /**
8
- * Provides access to the currently active file.
9
- */
10
- export interface ActiveFileProvider {
11
- /**
12
- * Gets the currently active file.
13
- *
14
- * @returns The active file, or `null` if no file is active.
15
- */
16
- getActiveFile(): null | TFile;
17
- }
6
+ import type { Command, IconName } from 'obsidian';
7
+ import type { ActiveFileProvider } from '../active-file-provider.mjs';
8
+ import type { MenuEventRegistrar } from '../menu-event-registrar.mjs';
18
9
  /**
19
10
  * Parameters for creating a command handler.
20
11
  */
@@ -49,55 +40,6 @@ export interface CommandHandlerRegistrationContext {
49
40
  */
50
41
  readonly menuEventRegistrar: MenuEventRegistrar;
51
42
  }
52
- /**
53
- * Handler for the editor context menu event.
54
- *
55
- * @param menu - The menu to add items to.
56
- * @param editor - The editor instance.
57
- * @param ctx - The markdown file context.
58
- */
59
- export type EditorMenuEventHandler = (menu: Menu, editor: Editor, ctx: MarkdownFileInfo) => void;
60
- /**
61
- * Handler for the single-file context menu event.
62
- *
63
- * @param menu - The menu to add items to.
64
- * @param abstractFile - The file or folder.
65
- * @param source - The source of the event.
66
- * @param leaf - The workspace leaf, if available.
67
- */
68
- export type FileMenuEventHandler = (menu: Menu, abstractFile: TAbstractFile, source: string, leaf?: WorkspaceLeaf) => void;
69
- /**
70
- * Handler for the multi-file context menu event.
71
- *
72
- * @param menu - The menu to add items to.
73
- * @param abstractFiles - The files or folders.
74
- * @param source - The source of the event.
75
- * @param leaf - The workspace leaf, if available.
76
- */
77
- export type FilesMenuEventHandler = (menu: Menu, abstractFiles: TAbstractFile[], source: string, leaf?: WorkspaceLeaf) => void;
78
- /**
79
- * Registers menu event handlers with lifecycle management.
80
- */
81
- export interface MenuEventRegistrar {
82
- /**
83
- * Registers a handler for the editor context menu event.
84
- *
85
- * @param handler - The handler to register.
86
- */
87
- registerEditorMenuEventHandler(handler: EditorMenuEventHandler): void;
88
- /**
89
- * Registers a handler for the single-file context menu event.
90
- *
91
- * @param handler - The handler to register.
92
- */
93
- registerFileMenuEventHandler(handler: FileMenuEventHandler): void;
94
- /**
95
- * Registers a handler for the multi-file context menu event.
96
- *
97
- * @param handler - The handler to register.
98
- */
99
- registerFilesMenuEventHandler(handler: FilesMenuEventHandler): void;
100
- }
101
43
  /**
102
44
  * Base class for command handlers.
103
45
  *
@@ -63,4 +63,4 @@ class CommandHandler {
63
63
  export {
64
64
  CommandHandler
65
65
  };
66
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQmFzZSBjbGFzcyBhbmQgaW50ZXJmYWNlcyBmb3IgY29tbWFuZCBoYW5kbGVycy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmQsXG4gIEVkaXRvcixcbiAgSWNvbk5hbWUsXG4gIE1hcmtkb3duRmlsZUluZm8sXG4gIE1lbnUsXG4gIFRBYnN0cmFjdEZpbGUsXG4gIFRGaWxlLFxuICBXb3Jrc3BhY2VMZWFmXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY3VycmVudGx5IGFjdGl2ZSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUZpbGVQcm92aWRlciB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIGZpbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhY3RpdmUgZmlsZSwgb3IgYG51bGxgIGlmIG5vIGZpbGUgaXMgYWN0aXZlLlxuICAgKi9cbiAgZ2V0QWN0aXZlRmlsZSgpOiBudWxsIHwgVEZpbGU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYSBjb21tYW5kIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZEhhbmRsZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbjogSWNvbk5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdGhhdCBvd25zIHRoaXMgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250ZXh0IHByb3ZpZGVkIHRvIGNvbW1hbmQgaGFuZGxlcnMgZHVyaW5nIHJlZ2lzdHJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kSGFuZGxlclJlZ2lzdHJhdGlvbkNvbnRleHQge1xuICAvKipcbiAgICogUHJvdmlkZXIgZm9yIGFjY2Vzc2luZyB0aGUgY3VycmVudGx5IGFjdGl2ZSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlRmlsZVByb3ZpZGVyOiBBY3RpdmVGaWxlUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhciBmb3IgbWVudSBldmVudCBoYW5kbGVycy5cbiAgICovXG4gIHJlYWRvbmx5IG1lbnVFdmVudFJlZ2lzdHJhcjogTWVudUV2ZW50UmVnaXN0cmFyO1xufVxuXG4vKipcbiAqIEhhbmRsZXIgZm9yIHRoZSBlZGl0b3IgY29udGV4dCBtZW51IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBtZW51IC0gVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICogQHBhcmFtIGVkaXRvciAtIFRoZSBlZGl0b3IgaW5zdGFuY2UuXG4gKiBAcGFyYW0gY3R4IC0gVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dC5cbiAqL1xuZXhwb3J0IHR5cGUgRWRpdG9yTWVudUV2ZW50SGFuZGxlciA9IChtZW51OiBNZW51LCBlZGl0b3I6IEVkaXRvciwgY3R4OiBNYXJrZG93bkZpbGVJbmZvKSA9PiB2b2lkO1xuXG4vKipcbiAqIEhhbmRsZXIgZm9yIHRoZSBzaW5nbGUtZmlsZSBjb250ZXh0IG1lbnUgZXZlbnQuXG4gKlxuICogQHBhcmFtIG1lbnUgLSBUaGUgbWVudSB0byBhZGQgaXRlbXMgdG8uXG4gKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyLlxuICogQHBhcmFtIHNvdXJjZSAtIFRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50LlxuICogQHBhcmFtIGxlYWYgLSBUaGUgd29ya3NwYWNlIGxlYWYsIGlmIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgRmlsZU1lbnVFdmVudEhhbmRsZXIgPSAobWVudTogTWVudSwgYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlLCBzb3VyY2U6IHN0cmluZywgbGVhZj86IFdvcmtzcGFjZUxlYWYpID0+IHZvaWQ7XG5cbi8qKlxuICogSGFuZGxlciBmb3IgdGhlIG11bHRpLWZpbGUgY29udGV4dCBtZW51IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBtZW51IC0gVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgZmlsZXMgb3IgZm9sZGVycy5cbiAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBldmVudC5cbiAqIEBwYXJhbSBsZWFmIC0gVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbGVzTWVudUV2ZW50SGFuZGxlciA9IChtZW51OiBNZW51LCBhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10sIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZikgPT4gdm9pZDtcblxuLyoqXG4gKiBSZWdpc3RlcnMgbWVudSBldmVudCBoYW5kbGVycyB3aXRoIGxpZmVjeWNsZSBtYW5hZ2VtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVFdmVudFJlZ2lzdHJhciB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZWRpdG9yIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyRWRpdG9yTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBFZGl0b3JNZW51RXZlbnRIYW5kbGVyKTogdm9pZDtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgaGFuZGxlciBmb3IgdGhlIHNpbmdsZS1maWxlIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyRmlsZU1lbnVFdmVudEhhbmRsZXIoaGFuZGxlcjogRmlsZU1lbnVFdmVudEhhbmRsZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgbXVsdGktZmlsZSBjb250ZXh0IG1lbnUgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBoYW5kbGVyIC0gVGhlIGhhbmRsZXIgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICByZWdpc3RlckZpbGVzTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlc01lbnVFdmVudEhhbmRsZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNvbW1hbmQgaGFuZGxlcnMuXG4gKlxuICogVW5saWtlIHRoZSBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gaW50ZXJmYWNlLCBoYW5kbGVycyBhcmUgbmV2ZXIgbXV0YXRlZCBieSBPYnNpZGlhbi5cbiAqIFRoZSB7QGxpbmsgYnVpbGRDb21tYW5kfSBtZXRob2QgcHJvZHVjZXMgYSBwbGFpbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IGZvciByZWdpc3RyYXRpb24uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21tYW5kSGFuZGxlciB7XG4gIC8qKlxuICAgKiBUaGUgaWNvbiBmb3IgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbjogSWNvbk5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiB0aGF0IG93bnMgdGhpcyBjb21tYW5kLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBjb21tYW5kIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbW1hbmQgaGFuZGxlci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IENvbW1hbmRIYW5kbGVyUGFyYW1zKSB7XG4gICAgdGhpcy5pY29uID0gcGFyYW1zLmljb247XG4gICAgdGhpcy5pZCA9IHBhcmFtcy5pZDtcbiAgICB0aGlzLm5hbWUgPSBwYXJhbXMubmFtZTtcbiAgICB0aGlzLnBsdWdpbk5hbWUgPSBwYXJhbXMucGx1Z2luTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBwbGFpbiBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IGZvciByZWdpc3RyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEEgbmV3IHtAbGluayBDb21tYW5kfSBvYmplY3QuIE9ic2lkaWFuIG1heSBtdXRhdGUgdGhpcyBvYmplY3QgYWZ0ZXIgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJ1aWxkQ29tbWFuZCgpOiBDb21tYW5kO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgdGhlIGNvbW1hbmQgaGFzIGJlZW4gcmVnaXN0ZXJlZCB3aXRoIE9ic2lkaWFuLlxuICAgKiBTdWJjbGFzc2VzIHVzZSB0aGUgcHJvdmlkZWQgY29udGV4dCB0byByZWdpc3RlciBtZW51IGV2ZW50IGhhbmRsZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gX2NvbnRleHQgLSBUaGUgcmVnaXN0cmF0aW9uIGNvbnRleHQgcHJvdmlkaW5nIHJ1bnRpbWUgY2FwYWJpbGl0aWVzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9uUmVnaXN0ZXJlZChfY29udGV4dDogQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLFNBQVMsaUJBQWlCO0FBbUhuQixNQUFlLGVBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9aLFlBQVksUUFBOEI7QUFDL0MsU0FBSyxPQUFPLE9BQU87QUFDbkIsU0FBSyxLQUFLLE9BQU87QUFDakIsU0FBSyxPQUFPLE9BQU87QUFDbkIsU0FBSyxhQUFhLE9BQU87QUFBQSxFQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZUEsTUFBYSxhQUFhLFVBQTREO0FBQ3BGLFVBQU0sVUFBVTtBQUFBLEVBQ2xCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
66
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQmFzZSBjbGFzcyBhbmQgaW50ZXJmYWNlcyBmb3IgY29tbWFuZCBoYW5kbGVycy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmQsXG4gIEljb25OYW1lXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBBY3RpdmVGaWxlUHJvdmlkZXIgfSBmcm9tICcuLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5pbXBvcnQgdHlwZSB7IE1lbnVFdmVudFJlZ2lzdHJhciB9IGZyb20gJy4uL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcblxuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIGEgY29tbWFuZCBoYW5kbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRIYW5kbGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBpY29uIGZvciB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGljb246IEljb25OYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGx1Z2luIHRoYXQgb3ducyB0aGlzIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGV4dCBwcm92aWRlZCB0byBjb21tYW5kIGhhbmRsZXJzIGR1cmluZyByZWdpc3RyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0IHtcbiAgLyoqXG4gICAqIFByb3ZpZGVyIGZvciBhY2Nlc3NpbmcgdGhlIGN1cnJlbnRseSBhY3RpdmUgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGl2ZUZpbGVQcm92aWRlcjogQWN0aXZlRmlsZVByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RyYXIgZm9yIG1lbnUgZXZlbnQgaGFuZGxlcnMuXG4gICAqL1xuICByZWFkb25seSBtZW51RXZlbnRSZWdpc3RyYXI6IE1lbnVFdmVudFJlZ2lzdHJhcjtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjb21tYW5kIGhhbmRsZXJzLlxuICpcbiAqIFVubGlrZSB0aGUgT2JzaWRpYW4ge0BsaW5rIENvbW1hbmR9IGludGVyZmFjZSwgaGFuZGxlcnMgYXJlIG5ldmVyIG11dGF0ZWQgYnkgT2JzaWRpYW4uXG4gKiBUaGUge0BsaW5rIGJ1aWxkQ29tbWFuZH0gbWV0aG9kIHByb2R1Y2VzIGEgcGxhaW4ge0BsaW5rIENvbW1hbmR9IG9iamVjdCBmb3IgcmVnaXN0cmF0aW9uLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZEhhbmRsZXIge1xuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGljb246IEljb25OYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdGhhdCBvd25zIHRoaXMgY29tbWFuZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZCBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjb21tYW5kIGhhbmRsZXIuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBDb21tYW5kSGFuZGxlclBhcmFtcykge1xuICAgIHRoaXMuaWNvbiA9IHBhcmFtcy5pY29uO1xuICAgIHRoaXMuaWQgPSBwYXJhbXMuaWQ7XG4gICAgdGhpcy5uYW1lID0gcGFyYW1zLm5hbWU7XG4gICAgdGhpcy5wbHVnaW5OYW1lID0gcGFyYW1zLnBsdWdpbk5hbWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGEgcGxhaW4gT2JzaWRpYW4ge0BsaW5rIENvbW1hbmR9IG9iamVjdCBmb3IgcmVnaXN0cmF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0LiBPYnNpZGlhbiBtYXkgbXV0YXRlIHRoaXMgb2JqZWN0IGFmdGVyIHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBidWlsZENvbW1hbmQoKTogQ29tbWFuZDtcblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHRoZSBjb21tYW5kIGhhcyBiZWVuIHJlZ2lzdGVyZWQgd2l0aCBPYnNpZGlhbi5cbiAgICogU3ViY2xhc3NlcyB1c2UgdGhlIHByb3ZpZGVkIGNvbnRleHQgdG8gcmVnaXN0ZXIgbWVudSBldmVudCBoYW5kbGVycy5cbiAgICpcbiAgICogQHBhcmFtIF9jb250ZXh0IC0gVGhlIHJlZ2lzdHJhdGlvbiBjb250ZXh0IHByb3ZpZGluZyBydW50aW1lIGNhcGFiaWxpdGllcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBvblJlZ2lzdGVyZWQoX2NvbnRleHQ6IENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNBLFNBQVMsaUJBQWlCO0FBZ0RuQixNQUFlLGVBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9aLFlBQVksUUFBOEI7QUFDL0MsU0FBSyxPQUFPLE9BQU87QUFDbkIsU0FBSyxLQUFLLE9BQU87QUFDakIsU0FBSyxPQUFPLE9BQU87QUFDbkIsU0FBSyxhQUFhLE9BQU87QUFBQSxFQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZUEsTUFBYSxhQUFhLFVBQTREO0FBQ3BGLFVBQU0sVUFBVTtBQUFBLEVBQ2xCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,6 +1,4 @@
1
1
  export * as abstract_file_command_handler from './abstract-file-command-handler.mjs';
2
- export * as app_active_file_provider from './app-active-file-provider.mjs';
3
- export * as app_menu_event_registrar from './app-menu-event-registrar.mjs';
4
2
  export * as command_handler_component from './command-handler-component.mjs';
5
3
  export * as command_handler from './command-handler.mjs';
6
4
  export * as editor_command_handler from './editor-command-handler.mjs';
@@ -22,8 +22,6 @@ if you want to view the source, please visit the github repository of this plugi
22
22
  })();
23
23
 
24
24
  import * as abstract_file_command_handler from "./abstract-file-command-handler.mjs";
25
- import * as app_active_file_provider from "./app-active-file-provider.mjs";
26
- import * as app_menu_event_registrar from "./app-menu-event-registrar.mjs";
27
25
  import * as command_handler_component from "./command-handler-component.mjs";
28
26
  import * as command_handler from "./command-handler.mjs";
29
27
  import * as editor_command_handler from "./editor-command-handler.mjs";
@@ -33,8 +31,6 @@ import * as global_command_handler from "./global-command-handler.mjs";
33
31
  import * as open_settings_command_handler from "./open-settings-command-handler.mjs";
34
32
  export {
35
33
  abstract_file_command_handler,
36
- app_active_file_provider,
37
- app_menu_event_registrar,
38
34
  command_handler,
39
35
  command_handler_component,
40
36
  editor_command_handler,
@@ -43,4 +39,4 @@ export {
43
39
  global_command_handler,
44
40
  open_settings_command_handler
45
41
  };
46
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyBhYnN0cmFjdF9maWxlX2NvbW1hbmRfaGFuZGxlciBmcm9tICcuL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIGFwcF9hY3RpdmVfZmlsZV9wcm92aWRlciBmcm9tICcuL2FwcC1hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyBhcHBfbWVudV9ldmVudF9yZWdpc3RyYXIgZnJvbSAnLi9hcHAtbWVudS1ldmVudC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgY29tbWFuZF9oYW5kbGVyX2NvbXBvbmVudCBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgY29tbWFuZF9oYW5kbGVyIGZyb20gJy4vY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIGVkaXRvcl9jb21tYW5kX2hhbmRsZXIgZnJvbSAnLi9lZGl0b3ItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIGZpbGVfY29tbWFuZF9oYW5kbGVyIGZyb20gJy4vZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgZm9sZGVyX2NvbW1hbmRfaGFuZGxlciBmcm9tICcuL2ZvbGRlci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgZ2xvYmFsX2NvbW1hbmRfaGFuZGxlciBmcm9tICcuL2dsb2JhbC1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgb3Blbl9zZXR0aW5nc19jb21tYW5kX2hhbmRsZXIgZnJvbSAnLi9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVksbUNBQW1DO0FBQy9DLFlBQVksOEJBQThCO0FBQzFDLFlBQVksOEJBQThCO0FBQzFDLFlBQVksK0JBQStCO0FBQzNDLFlBQVkscUJBQXFCO0FBQ2pDLFlBQVksNEJBQTRCO0FBQ3hDLFlBQVksMEJBQTBCO0FBQ3RDLFlBQVksNEJBQTRCO0FBQ3hDLFlBQVksNEJBQTRCO0FBQ3hDLFlBQVksbUNBQW1DOyIsCiAgIm5hbWVzIjogW10KfQo=
42
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyBhYnN0cmFjdF9maWxlX2NvbW1hbmRfaGFuZGxlciBmcm9tICcuL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIGNvbW1hbmRfaGFuZGxlcl9jb21wb25lbnQgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIGNvbW1hbmRfaGFuZGxlciBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyBlZGl0b3JfY29tbWFuZF9oYW5kbGVyIGZyb20gJy4vZWRpdG9yLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyBmaWxlX2NvbW1hbmRfaGFuZGxlciBmcm9tICcuL2ZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIGZvbGRlcl9jb21tYW5kX2hhbmRsZXIgZnJvbSAnLi9mb2xkZXItY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIGdsb2JhbF9jb21tYW5kX2hhbmRsZXIgZnJvbSAnLi9nbG9iYWwtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIG9wZW5fc2V0dGluZ3NfY29tbWFuZF9oYW5kbGVyIGZyb20gJy4vb3Blbi1zZXR0aW5ncy1jb21tYW5kLWhhbmRsZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLG1DQUFtQztBQUMvQyxZQUFZLCtCQUErQjtBQUMzQyxZQUFZLHFCQUFxQjtBQUNqQyxZQUFZLDRCQUE0QjtBQUN4QyxZQUFZLDBCQUEwQjtBQUN0QyxZQUFZLDRCQUE0QjtBQUN4QyxZQUFZLDRCQUE0QjtBQUN4QyxZQUFZLG1DQUFtQzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Registrar for commands.
5
+ */
6
+ import type { Command, Plugin } from 'obsidian';
7
+ /**
8
+ * A registrar for commands.
9
+ */
10
+ export interface CommandRegistrar {
11
+ addCommand(command: Command): void;
12
+ }
13
+ /**
14
+ * A command registrar that adds commands to a plugin.
15
+ */
16
+ export declare class PluginCommandRegistrar implements CommandRegistrar {
17
+ private readonly plugin;
18
+ /**
19
+ * Creates a new plugin command registrar.
20
+ *
21
+ * @param plugin - The plugin to add commands to.
22
+ */
23
+ constructor(plugin: Plugin);
24
+ /**
25
+ * Adds a command to the plugin.
26
+ *
27
+ * @param command - The command to add.
28
+ */
29
+ addCommand(command: Command): void;
30
+ }
@@ -0,0 +1,46 @@
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() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ if (globalThis.process) {
9
+ return;
10
+ }
11
+
12
+ const browserProcess = {
13
+ browser: true,
14
+ cwd() {
15
+ return '/';
16
+ },
17
+ env: {},
18
+ platform: 'android'
19
+ };
20
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ class PluginCommandRegistrar {
25
+ /**
26
+ * Creates a new plugin command registrar.
27
+ *
28
+ * @param plugin - The plugin to add commands to.
29
+ */
30
+ constructor(plugin) {
31
+ this.plugin = plugin;
32
+ }
33
+ plugin;
34
+ /**
35
+ * Adds a command to the plugin.
36
+ *
37
+ * @param command - The command to add.
38
+ */
39
+ addCommand(command) {
40
+ this.plugin.addCommand(command);
41
+ }
42
+ }
43
+ export {
44
+ PluginCommandRegistrar
45
+ };
46
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtcmVnaXN0cmFyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUmVnaXN0cmFyIGZvciBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmQsXG4gIFBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQSByZWdpc3RyYXIgZm9yIGNvbW1hbmRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRSZWdpc3RyYXIge1xuICBhZGRDb21tYW5kKGNvbW1hbmQ6IENvbW1hbmQpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgY29tbWFuZCByZWdpc3RyYXIgdGhhdCBhZGRzIGNvbW1hbmRzIHRvIGEgcGx1Z2luLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQ29tbWFuZFJlZ2lzdHJhciBpbXBsZW1lbnRzIENvbW1hbmRSZWdpc3RyYXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gY29tbWFuZCByZWdpc3RyYXIuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGFkZCBjb21tYW5kcyB0by5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luKSB7fVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29tbWFuZCB0byB0aGUgcGx1Z2luLlxuICAgKlxuICAgKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRDb21tYW5kKGNvbW1hbmQ6IENvbW1hbmQpOiB2b2lkIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKGNvbW1hbmQpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCTyxNQUFNLHVCQUFtRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU12RCxZQUE2QixRQUFnQjtBQUFoQjtBQUFBLEVBQWlCO0FBQUEsRUFBakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPN0IsV0FBVyxTQUF3QjtBQUN4QyxTQUFLLE9BQU8sV0FBVyxPQUFPO0FBQUEsRUFDaEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * A module for handling data loading and saving to the plugin's data file.
5
+ */
6
+ import type { Plugin } from 'obsidian';
7
+ /**
8
+ * A handler for loading and saving data to the plugin's data file.
9
+ */
10
+ export interface DataHandler {
11
+ /**
12
+ * A function to load data from the plugin's data file.
13
+ *
14
+ * @returns The loaded data.
15
+ */
16
+ loadData(): Promise<unknown>;
17
+ /**
18
+ * A function to save data to the plugin's data file.
19
+ *
20
+ * @param data - The data to save.
21
+ */
22
+ saveData(data: unknown): Promise<void>;
23
+ }
24
+ /**
25
+ * A handler for loading and saving data to the plugin's data file.
26
+ */
27
+ export declare class PluginDataHandler implements DataHandler {
28
+ private readonly plugin;
29
+ /**
30
+ * Creates a new plugin data handler.
31
+ *
32
+ * @param plugin - The plugin instance.
33
+ */
34
+ constructor(plugin: Plugin);
35
+ /**
36
+ * Loads data from the plugin's data file.
37
+ *
38
+ * @returns The loaded data.
39
+ */
40
+ loadData(): Promise<unknown>;
41
+ /**
42
+ * Saves data to the plugin's data file.
43
+ *
44
+ * @param data - The data to save.
45
+ * @returns A promise that resolves when the data is saved.
46
+ */
47
+ saveData(data: unknown): Promise<void>;
48
+ }
@@ -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 initEsm() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ if (globalThis.process) {
9
+ return;
10
+ }
11
+
12
+ const browserProcess = {
13
+ browser: true,
14
+ cwd() {
15
+ return '/';
16
+ },
17
+ env: {},
18
+ platform: 'android'
19
+ };
20
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ class PluginDataHandler {
25
+ /**
26
+ * Creates a new plugin data handler.
27
+ *
28
+ * @param plugin - The plugin instance.
29
+ */
30
+ constructor(plugin) {
31
+ this.plugin = plugin;
32
+ }
33
+ plugin;
34
+ /**
35
+ * Loads data from the plugin's data file.
36
+ *
37
+ * @returns The loaded data.
38
+ */
39
+ async loadData() {
40
+ return this.plugin.loadData();
41
+ }
42
+ /**
43
+ * Saves data to the plugin's data file.
44
+ *
45
+ * @param data - The data to save.
46
+ * @returns A promise that resolves when the data is saved.
47
+ */
48
+ async saveData(data) {
49
+ return this.plugin.saveData(data);
50
+ }
51
+ }
52
+ export {
53
+ PluginDataHandler
54
+ };
55
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2RhdGEtaGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEEgbW9kdWxlIGZvciBoYW5kbGluZyBkYXRhIGxvYWRpbmcgYW5kIHNhdmluZyB0byB0aGUgcGx1Z2luJ3MgZGF0YSBmaWxlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgbG9hZGluZyBhbmQgc2F2aW5nIGRhdGEgdG8gdGhlIHBsdWdpbidzIGRhdGEgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhSGFuZGxlciB7XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRvIGxvYWQgZGF0YSBmcm9tIHRoZSBwbHVnaW4ncyBkYXRhIGZpbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsb2FkZWQgZGF0YS5cbiAgICovXG4gIGxvYWREYXRhKCk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gc2F2ZSBkYXRhIHRvIHRoZSBwbHVnaW4ncyBkYXRhIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gc2F2ZS5cbiAgICovXG4gIHNhdmVEYXRhKGRhdGE6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgbG9hZGluZyBhbmQgc2F2aW5nIGRhdGEgdG8gdGhlIHBsdWdpbidzIGRhdGEgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbkRhdGFIYW5kbGVyIGltcGxlbWVudHMgRGF0YUhhbmRsZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gZGF0YSBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luKSB7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgZGF0YSBmcm9tIHRoZSBwbHVnaW4ncyBkYXRhIGZpbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsb2FkZWQgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkRGF0YSgpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW4ubG9hZERhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBkYXRhIHRvIHRoZSBwbHVnaW4ncyBkYXRhIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZGF0YSBpcyBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlRGF0YShkYXRhOiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2luLnNhdmVEYXRhKGRhdGEpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCTyxNQUFNLGtCQUF5QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU03QyxZQUE2QixRQUFnQjtBQUFoQjtBQUFBLEVBQ3BDO0FBQUEsRUFEb0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRcEMsTUFBYSxXQUE2QjtBQUN4QyxXQUFPLEtBQUssT0FBTyxTQUFTO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsU0FBUyxNQUE4QjtBQUNsRCxXQUFPLEtBQUssT0FBTyxTQUFTLElBQUk7QUFBQSxFQUNsQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,3 +1,4 @@
1
+ export * as active_file_provider from './active-file-provider.mjs';
1
2
  export * as app from './app.mjs';
2
3
  export * as async_with_notice from './async-with-notice.mjs';
3
4
  export * as attachment_path from './attachment-path.mjs';
@@ -5,8 +6,10 @@ export * as backlink from './backlink.mjs';
5
6
  export * as callout from './callout.mjs';
6
7
  export * as code_block_markdown_information from './code-block-markdown-information.mjs';
7
8
  export * as command_handlers from './command-handlers/index.mjs';
9
+ export * as command_registrar from './command-registrar.mjs';
8
10
  export * as components from './components/index.mjs';
9
11
  export * as constructors from './constructors/index.mjs';
12
+ export * as data_handler from './data-handler.mjs';
10
13
  export * as dataview_link from './dataview-link.mjs';
11
14
  export * as dataview from './dataview.mjs';
12
15
  export * as editor from './editor.mjs';
@@ -23,6 +26,7 @@ export * as loop from './loop.mjs';
23
26
  export * as markdown_code_block_processor from './markdown-code-block-processor.mjs';
24
27
  export * as markdown_view from './markdown-view.mjs';
25
28
  export * as markdown from './markdown.mjs';
29
+ export * as menu_event_registrar from './menu-event-registrar.mjs';
26
30
  export * as metadata_cache from './metadata-cache.mjs';
27
31
  export * as modals from './modals/index.mjs';
28
32
  export * as monkey_around from './monkey-around.mjs';
@@ -21,6 +21,7 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
+ import * as active_file_provider from "./active-file-provider.mjs";
24
25
  import * as app from "./app.mjs";
25
26
  import * as async_with_notice from "./async-with-notice.mjs";
26
27
  import * as attachment_path from "./attachment-path.mjs";
@@ -28,8 +29,10 @@ import * as backlink from "./backlink.mjs";
28
29
  import * as callout from "./callout.mjs";
29
30
  import * as code_block_markdown_information from "./code-block-markdown-information.mjs";
30
31
  import * as command_handlers from "./command-handlers/index.mjs";
32
+ import * as command_registrar from "./command-registrar.mjs";
31
33
  import * as components from "./components/index.mjs";
32
34
  import * as constructors from "./constructors/index.mjs";
35
+ import * as data_handler from "./data-handler.mjs";
33
36
  import * as dataview_link from "./dataview-link.mjs";
34
37
  import * as dataview from "./dataview.mjs";
35
38
  import * as editor from "./editor.mjs";
@@ -46,6 +49,7 @@ import * as loop from "./loop.mjs";
46
49
  import * as markdown_code_block_processor from "./markdown-code-block-processor.mjs";
47
50
  import * as markdown_view from "./markdown-view.mjs";
48
51
  import * as markdown from "./markdown.mjs";
52
+ import * as menu_event_registrar from "./menu-event-registrar.mjs";
49
53
  import * as metadata_cache from "./metadata-cache.mjs";
50
54
  import * as modals from "./modals/index.mjs";
51
55
  import * as monkey_around from "./monkey-around.mjs";
@@ -64,6 +68,7 @@ import * as vault_delete from "./vault-delete.mjs";
64
68
  import * as vault from "./vault.mjs";
65
69
  import * as workspace from "./workspace.mjs";
66
70
  export {
71
+ active_file_provider,
67
72
  app,
68
73
  async_with_notice,
69
74
  attachment_path,
@@ -71,8 +76,10 @@ export {
71
76
  callout,
72
77
  code_block_markdown_information,
73
78
  command_handlers,
79
+ command_registrar,
74
80
  components,
75
81
  constructors,
82
+ data_handler,
76
83
  dataview,
77
84
  dataview_link,
78
85
  editor,
@@ -89,6 +96,7 @@ export {
89
96
  markdown,
90
97
  markdown_code_block_processor,
91
98
  markdown_view,
99
+ menu_event_registrar,
92
100
  metadata_cache,
93
101
  modals,
94
102
  monkey_around,
@@ -107,4 +115,4 @@ export {
107
115
  vault_delete,
108
116
  workspace
109
117
  };
110
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgYXBwIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzIGFzeW5jX3dpdGhfbm90aWNlIGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0ICogYXMgYXR0YWNobWVudF9wYXRoIGZyb20gJy4vYXR0YWNobWVudC1wYXRoLnRzJztcbmV4cG9ydCAqIGFzIGJhY2tsaW5rIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgY2FsbG91dCBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgY29kZV9ibG9ja19tYXJrZG93bl9pbmZvcm1hdGlvbiBmcm9tICcuL2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24udHMnO1xuZXhwb3J0ICogYXMgY29tbWFuZF9oYW5kbGVycyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgY29tcG9uZW50cyBmcm9tICcuL2NvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgY29uc3RydWN0b3JzIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIGRhdGF2aWV3X2xpbmsgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzIGRhdGF2aWV3IGZyb20gJy4vZGF0YXZpZXcudHMnO1xuZXhwb3J0ICogYXMgZWRpdG9yIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzIGZpbGVfY2hhbmdlIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgZmlsZV9tYW5hZ2VyIGZyb20gJy4vZmlsZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzIGZpbGVfc3lzdGVtIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgZnJvbnRtYXR0ZXJfbGlua19jYWNoZV93aXRoX29mZnNldHMgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyBmcm9udG1hdHRlciBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzIGkxOG4gZnJvbSAnLi9pMThuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIGlzX2luX29ic2lkaWFuIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgbGluayBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzIGxvb3AgZnJvbSAnLi9sb29wLnRzJztcbmV4cG9ydCAqIGFzIG1hcmtkb3duX2NvZGVfYmxvY2tfcHJvY2Vzc29yIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd25fdmlldyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd24gZnJvbSAnLi9tYXJrZG93bi50cyc7XG5leHBvcnQgKiBhcyBtZXRhZGF0YV9jYWNoZSBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzIG1vZGFscyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBtb25rZXlfYXJvdW5kIGZyb20gJy4vbW9ua2V5LWFyb3VuZC50cyc7XG5leHBvcnQgKiBhcyBvYnNpZGlhbl9zZXR0aW5ncyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzIHBkZiBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgcXVldWUgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyByZWFjdCBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIHJlZmVyZW5jZSBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyByZW5hbWVfZGVsZXRlX2hhbmRsZXIgZnJvbSAnLi9yZW5hbWUtZGVsZXRlLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgcmVzb3VyY2VfdXJsIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzIHNldHRpbmdfZXggZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCAqIGFzIHNldHRpbmdfZ3JvdXBfZXggZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzIHZhbGlkYXRpb24gZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzIHZhdWx0X2RlbGV0ZSBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyB2YXVsdCBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzIHdvcmtzcGFjZSBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVksU0FBUztBQUNyQixZQUFZLHVCQUF1QjtBQUNuQyxZQUFZLHFCQUFxQjtBQUNqQyxZQUFZLGNBQWM7QUFDMUIsWUFBWSxhQUFhO0FBQ3pCLFlBQVkscUNBQXFDO0FBQ2pELFlBQVksc0JBQXNCO0FBQ2xDLFlBQVksZ0JBQWdCO0FBQzVCLFlBQVksa0JBQWtCO0FBQzlCLFlBQVksbUJBQW1CO0FBQy9CLFlBQVksY0FBYztBQUMxQixZQUFZLFlBQVk7QUFDeEIsWUFBWSxpQkFBaUI7QUFDN0IsWUFBWSxrQkFBa0I7QUFDOUIsWUFBWSxpQkFBaUI7QUFDN0IsWUFBWSx5Q0FBeUM7QUFDckQsWUFBWSxpQkFBaUI7QUFDN0IsWUFBWSxVQUFVO0FBQ3RCLFlBQVksb0JBQW9CO0FBQ2hDLFlBQVksVUFBVTtBQUN0QixZQUFZLFlBQVk7QUFDeEIsWUFBWSxVQUFVO0FBQ3RCLFlBQVksbUNBQW1DO0FBQy9DLFlBQVksbUJBQW1CO0FBQy9CLFlBQVksY0FBYztBQUMxQixZQUFZLG9CQUFvQjtBQUNoQyxZQUFZLFlBQVk7QUFDeEIsWUFBWSxtQkFBbUI7QUFDL0IsWUFBWSx1QkFBdUI7QUFDbkMsWUFBWSxTQUFTO0FBQ3JCLFlBQVksWUFBWTtBQUN4QixZQUFZLFdBQVc7QUFDdkIsWUFBWSxXQUFXO0FBQ3ZCLFlBQVksZUFBZTtBQUMzQixZQUFZLDJCQUEyQjtBQUN2QyxZQUFZLGtCQUFrQjtBQUM5QixZQUFZLGdCQUFnQjtBQUM1QixZQUFZLHNCQUFzQjtBQUNsQyxZQUFZLGdCQUFnQjtBQUM1QixZQUFZLGtCQUFrQjtBQUM5QixZQUFZLFdBQVc7QUFDdkIsWUFBWSxlQUFlOyIsCiAgIm5hbWVzIjogW10KfQo=
118
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgYWN0aXZlX2ZpbGVfcHJvdmlkZXIgZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyBhcHAgZnJvbSAnLi9hcHAudHMnO1xuZXhwb3J0ICogYXMgYXN5bmNfd2l0aF9ub3RpY2UgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyBhdHRhY2htZW50X3BhdGggZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuZXhwb3J0ICogYXMgYmFja2xpbmsgZnJvbSAnLi9iYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyBjYWxsb3V0IGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyBjb2RlX2Jsb2NrX21hcmtkb3duX2luZm9ybWF0aW9uIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyBjb21tYW5kX2hhbmRsZXJzIGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBjb21tYW5kX3JlZ2lzdHJhciBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzIGNvbXBvbmVudHMgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIGNvbnN0cnVjdG9ycyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBkYXRhX2hhbmRsZXIgZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgZGF0YXZpZXdfbGluayBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0ICogYXMgZGF0YXZpZXcgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyBlZGl0b3IgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgZmlsZV9jaGFuZ2UgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyBmaWxlX21hbmFnZXIgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgZmlsZV9zeXN0ZW0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQgKiBhcyBmcm9udG1hdHRlcl9saW5rX2NhY2hlX3dpdGhfb2Zmc2V0cyBmcm9tICcuL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzJztcbmV4cG9ydCAqIGFzIGZyb250bWF0dGVyIGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgaTE4biBmcm9tICcuL2kxOG4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgaXNfaW5fb2JzaWRpYW4gZnJvbSAnLi9pcy1pbi1vYnNpZGlhbi50cyc7XG5leHBvcnQgKiBhcyBsaW5rIGZyb20gJy4vbGluay50cyc7XG5leHBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgbG9vcCBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd25fY29kZV9ibG9ja19wcm9jZXNzb3IgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci50cyc7XG5leHBvcnQgKiBhcyBtYXJrZG93bl92aWV3IGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyBtYXJrZG93biBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzIG1lbnVfZXZlbnRfcmVnaXN0cmFyIGZyb20gJy4vbWVudS1ldmVudC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgbWV0YWRhdGFfY2FjaGUgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyBtb2RhbHMgZnJvbSAnLi9tb2RhbHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgbW9ua2V5X2Fyb3VuZCBmcm9tICcuL21vbmtleS1hcm91bmQudHMnO1xuZXhwb3J0ICogYXMgb2JzaWRpYW5fc2V0dGluZ3MgZnJvbSAnLi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyBwZGYgZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gJy4vcGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIHF1ZXVlIGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0ICogYXMgcmVhY3QgZnJvbSAnLi9yZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyByZWZlcmVuY2UgZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgcmVuYW1lX2RlbGV0ZV9oYW5kbGVyIGZyb20gJy4vcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzIHJlc291cmNlX3VybCBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgKiBhcyBzZXR0aW5nX2V4IGZyb20gJy4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgKiBhcyBzZXR0aW5nX2dyb3VwX2V4IGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyB2YWxpZGF0aW9uIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyB2YXVsdF9kZWxldGUgZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0ICogYXMgdmF1bHQgZnJvbSAnLi92YXVsdC50cyc7XG5leHBvcnQgKiBhcyB3b3Jrc3BhY2UgZnJvbSAnLi93b3Jrc3BhY2UudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLDBCQUEwQjtBQUN0QyxZQUFZLFNBQVM7QUFDckIsWUFBWSx1QkFBdUI7QUFDbkMsWUFBWSxxQkFBcUI7QUFDakMsWUFBWSxjQUFjO0FBQzFCLFlBQVksYUFBYTtBQUN6QixZQUFZLHFDQUFxQztBQUNqRCxZQUFZLHNCQUFzQjtBQUNsQyxZQUFZLHVCQUF1QjtBQUNuQyxZQUFZLGdCQUFnQjtBQUM1QixZQUFZLGtCQUFrQjtBQUM5QixZQUFZLGtCQUFrQjtBQUM5QixZQUFZLG1CQUFtQjtBQUMvQixZQUFZLGNBQWM7QUFDMUIsWUFBWSxZQUFZO0FBQ3hCLFlBQVksaUJBQWlCO0FBQzdCLFlBQVksa0JBQWtCO0FBQzlCLFlBQVksaUJBQWlCO0FBQzdCLFlBQVkseUNBQXlDO0FBQ3JELFlBQVksaUJBQWlCO0FBQzdCLFlBQVksVUFBVTtBQUN0QixZQUFZLG9CQUFvQjtBQUNoQyxZQUFZLFVBQVU7QUFDdEIsWUFBWSxZQUFZO0FBQ3hCLFlBQVksVUFBVTtBQUN0QixZQUFZLG1DQUFtQztBQUMvQyxZQUFZLG1CQUFtQjtBQUMvQixZQUFZLGNBQWM7QUFDMUIsWUFBWSwwQkFBMEI7QUFDdEMsWUFBWSxvQkFBb0I7QUFDaEMsWUFBWSxZQUFZO0FBQ3hCLFlBQVksbUJBQW1CO0FBQy9CLFlBQVksdUJBQXVCO0FBQ25DLFlBQVksU0FBUztBQUNyQixZQUFZLFlBQVk7QUFDeEIsWUFBWSxXQUFXO0FBQ3ZCLFlBQVksV0FBVztBQUN2QixZQUFZLGVBQWU7QUFDM0IsWUFBWSwyQkFBMkI7QUFDdkMsWUFBWSxrQkFBa0I7QUFDOUIsWUFBWSxnQkFBZ0I7QUFDNUIsWUFBWSxzQkFBc0I7QUFDbEMsWUFBWSxnQkFBZ0I7QUFDNUIsWUFBWSxrQkFBa0I7QUFDOUIsWUFBWSxXQUFXO0FBQ3ZCLFlBQVksZUFBZTsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Menu event registrar.
5
+ */
6
+ import type { App, Component, Editor, MarkdownFileInfo, Menu, TAbstractFile, WorkspaceLeaf } from 'obsidian';
7
+ /**
8
+ * Handler for the editor context menu event.
9
+ *
10
+ * @param menu - The menu to add items to.
11
+ * @param editor - The editor instance.
12
+ * @param ctx - The markdown file context.
13
+ */
14
+ export type EditorMenuEventHandler = (menu: Menu, editor: Editor, ctx: MarkdownFileInfo) => void;
15
+ /**
16
+ * Handler for the single-file context menu event.
17
+ *
18
+ * @param menu - The menu to add items to.
19
+ * @param abstractFile - The file or folder.
20
+ * @param source - The source of the event.
21
+ * @param leaf - The workspace leaf, if available.
22
+ */
23
+ export type FileMenuEventHandler = (menu: Menu, abstractFile: TAbstractFile, source: string, leaf?: WorkspaceLeaf) => void;
24
+ /**
25
+ * Handler for the multi-file context menu event.
26
+ *
27
+ * @param menu - The menu to add items to.
28
+ * @param abstractFiles - The files or folders.
29
+ * @param source - The source of the event.
30
+ * @param leaf - The workspace leaf, if available.
31
+ */
32
+ export type FilesMenuEventHandler = (menu: Menu, abstractFiles: TAbstractFile[], source: string, leaf?: WorkspaceLeaf) => void;
33
+ /**
34
+ * Registers menu event handlers with lifecycle management.
35
+ */
36
+ /** */
37
+ export interface MenuEventRegistrar {
38
+ /**
39
+ * Registers a handler for the editor context menu event.
40
+ *
41
+ * @param handler - The handler to register.
42
+ */
43
+ registerEditorMenuEventHandler(handler: EditorMenuEventHandler): void;
44
+ /**
45
+ * Registers a handler for the single-file context menu event.
46
+ *
47
+ * @param handler - The handler to register.
48
+ */
49
+ registerFileMenuEventHandler(handler: FileMenuEventHandler): void;
50
+ /**
51
+ * Registers a handler for the multi-file context menu event.
52
+ *
53
+ * @param handler - The handler to register.
54
+ */
55
+ registerFilesMenuEventHandler(handler: FilesMenuEventHandler): void;
56
+ }
57
+ /**
58
+ * {@link MenuEventRegistrar} backed by Obsidian's {@link App} workspace events.
59
+ *
60
+ * Event handlers are registered with the provided {@link Component} for lifecycle management.
61
+ */
62
+ export declare class AppMenuEventRegistrar implements MenuEventRegistrar {
63
+ private readonly app;
64
+ private readonly component;
65
+ /**
66
+ * Creates a new app-backed menu event registrar.
67
+ *
68
+ * @param app - The Obsidian app instance.
69
+ * @param component - The component for lifecycle management.
70
+ */
71
+ constructor(app: App, component: Component);
72
+ /**
73
+ * Registers a handler for the editor context menu event.
74
+ *
75
+ * @param handler - The handler to register.
76
+ */
77
+ registerEditorMenuEventHandler(handler: EditorMenuEventHandler): void;
78
+ /**
79
+ * Registers a handler for the single-file context menu event.
80
+ *
81
+ * @param handler - The handler to register.
82
+ */
83
+ registerFileMenuEventHandler(handler: FileMenuEventHandler): void;
84
+ /**
85
+ * Registers a handler for the multi-file context menu event.
86
+ *
87
+ * @param handler - The handler to register.
88
+ */
89
+ registerFilesMenuEventHandler(handler: FilesMenuEventHandler): void;
90
+ }