obsidian-dev-utils 59.0.1 → 60.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 (46) 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/index.cjs +10 -1
  15. package/dist/lib/cjs/obsidian/index.d.cts +3 -0
  16. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +173 -0
  17. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +90 -0
  18. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +1 -12
  19. package/dist/lib/esm/library.mjs +1 -1
  20. package/dist/lib/{cjs/obsidian/command-handlers/app-active-file-provider.d.cts → esm/obsidian/active-file-provider.d.mts} +13 -2
  21. package/dist/lib/esm/obsidian/active-file-provider.mjs +46 -0
  22. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +1 -1
  23. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +11 -5
  24. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +15 -11
  25. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +3 -61
  26. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +1 -1
  27. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +0 -2
  28. package/dist/lib/esm/obsidian/command-handlers/index.mjs +1 -5
  29. package/dist/lib/esm/obsidian/command-registrar.d.mts +30 -0
  30. package/dist/lib/esm/obsidian/command-registrar.mjs +46 -0
  31. package/dist/lib/esm/obsidian/index.d.mts +3 -0
  32. package/dist/lib/esm/obsidian/index.mjs +7 -1
  33. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +90 -0
  34. package/dist/lib/esm/obsidian/menu-event-registrar.mjs +65 -0
  35. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +1 -12
  36. package/obsidian/active-file-provider/package.json +6 -0
  37. package/obsidian/command-registrar/package.json +6 -0
  38. package/obsidian/menu-event-registrar/package.json +6 -0
  39. package/package.json +3 -2
  40. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +0 -173
  41. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +0 -41
  42. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +0 -46
  43. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +0 -41
  44. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +0 -65
  45. package/obsidian/command-handlers/app-active-file-provider/package.json +0 -6
  46. package/obsidian/command-handlers/app-menu-event-registrar/package.json +0 -6
@@ -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
+ }
@@ -135,6 +135,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
135
135
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
136
136
  var obsidian_exports = {};
137
137
  __export(obsidian_exports, {
138
+ active_file_provider: () => active_file_provider,
138
139
  app: () => app,
139
140
  async_with_notice: () => async_with_notice,
140
141
  attachment_path: () => attachment_path,
@@ -142,6 +143,7 @@ __export(obsidian_exports, {
142
143
  callout: () => callout,
143
144
  code_block_markdown_information: () => code_block_markdown_information,
144
145
  command_handlers: () => command_handlers,
146
+ command_registrar: () => command_registrar,
145
147
  components: () => components,
146
148
  constructors: () => constructors,
147
149
  dataview: () => dataview,
@@ -160,6 +162,7 @@ __export(obsidian_exports, {
160
162
  markdown: () => markdown,
161
163
  markdown_code_block_processor: () => markdown_code_block_processor,
162
164
  markdown_view: () => markdown_view,
165
+ menu_event_registrar: () => menu_event_registrar,
163
166
  metadata_cache: () => metadata_cache,
164
167
  modals: () => modals,
165
168
  monkey_around: () => monkey_around,
@@ -179,6 +182,7 @@ __export(obsidian_exports, {
179
182
  workspace: () => workspace
180
183
  });
181
184
  module.exports = __toCommonJS(obsidian_exports);
185
+ var active_file_provider = __toESM(__extractDefault(require('./active-file-provider.cjs')), 1);
182
186
  var app = __toESM(__extractDefault(require('./app.cjs')), 1);
183
187
  var async_with_notice = __toESM(__extractDefault(require('./async-with-notice.cjs')), 1);
184
188
  var attachment_path = __toESM(__extractDefault(require('./attachment-path.cjs')), 1);
@@ -186,6 +190,7 @@ var backlink = __toESM(__extractDefault(require('./backlink.cjs')), 1);
186
190
  var callout = __toESM(__extractDefault(require('./callout.cjs')), 1);
187
191
  var code_block_markdown_information = __toESM(__extractDefault(require('./code-block-markdown-information.cjs')), 1);
188
192
  var command_handlers = __toESM(__extractDefault(require('./command-handlers/index.cjs')), 1);
193
+ var command_registrar = __toESM(__extractDefault(require('./command-registrar.cjs')), 1);
189
194
  var components = __toESM(__extractDefault(require('./components/index.cjs')), 1);
190
195
  var constructors = __toESM(__extractDefault(require('./constructors/index.cjs')), 1);
191
196
  var dataview_link = __toESM(__extractDefault(require('./dataview-link.cjs')), 1);
@@ -204,6 +209,7 @@ var loop = __toESM(__extractDefault(require('./loop.cjs')), 1);
204
209
  var markdown_code_block_processor = __toESM(__extractDefault(require('./markdown-code-block-processor.cjs')), 1);
205
210
  var markdown_view = __toESM(__extractDefault(require('./markdown-view.cjs')), 1);
206
211
  var markdown = __toESM(__extractDefault(require('./markdown.cjs')), 1);
212
+ var menu_event_registrar = __toESM(__extractDefault(require('./menu-event-registrar.cjs')), 1);
207
213
  var metadata_cache = __toESM(__extractDefault(require('./metadata-cache.cjs')), 1);
208
214
  var modals = __toESM(__extractDefault(require('./modals/index.cjs')), 1);
209
215
  var monkey_around = __toESM(__extractDefault(require('./monkey-around.cjs')), 1);
@@ -223,6 +229,7 @@ var vault = __toESM(__extractDefault(require('./vault.cjs')), 1);
223
229
  var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
224
230
  // Annotate the CommonJS export names for ESM import in node:
225
231
  0 && (module.exports = {
232
+ active_file_provider,
226
233
  app,
227
234
  async_with_notice,
228
235
  attachment_path,
@@ -230,6 +237,7 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
230
237
  callout,
231
238
  code_block_markdown_information,
232
239
  command_handlers,
240
+ command_registrar,
233
241
  components,
234
242
  constructors,
235
243
  dataview,
@@ -248,6 +256,7 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
248
256
  markdown,
249
257
  markdown_code_block_processor,
250
258
  markdown_view,
259
+ menu_event_registrar,
251
260
  metadata_cache,
252
261
  modals,
253
262
  monkey_around,
@@ -266,4 +275,4 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
266
275
  vault_delete,
267
276
  workspace
268
277
  });
269
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgYXBwIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzIGFzeW5jX3dpdGhfbm90aWNlIGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0ICogYXMgYXR0YWNobWVudF9wYXRoIGZyb20gJy4vYXR0YWNobWVudC1wYXRoLnRzJztcbmV4cG9ydCAqIGFzIGJhY2tsaW5rIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgY2FsbG91dCBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgY29kZV9ibG9ja19tYXJrZG93bl9pbmZvcm1hdGlvbiBmcm9tICcuL2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24udHMnO1xuZXhwb3J0ICogYXMgY29tbWFuZF9oYW5kbGVycyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgY29tcG9uZW50cyBmcm9tICcuL2NvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgY29uc3RydWN0b3JzIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIGRhdGF2aWV3X2xpbmsgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzIGRhdGF2aWV3IGZyb20gJy4vZGF0YXZpZXcudHMnO1xuZXhwb3J0ICogYXMgZWRpdG9yIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzIGZpbGVfY2hhbmdlIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgZmlsZV9tYW5hZ2VyIGZyb20gJy4vZmlsZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzIGZpbGVfc3lzdGVtIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgZnJvbnRtYXR0ZXJfbGlua19jYWNoZV93aXRoX29mZnNldHMgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyBmcm9udG1hdHRlciBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzIGkxOG4gZnJvbSAnLi9pMThuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIGlzX2luX29ic2lkaWFuIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgbGluayBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzIGxvb3AgZnJvbSAnLi9sb29wLnRzJztcbmV4cG9ydCAqIGFzIG1hcmtkb3duX2NvZGVfYmxvY2tfcHJvY2Vzc29yIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd25fdmlldyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgbWFya2Rvd24gZnJvbSAnLi9tYXJrZG93bi50cyc7XG5leHBvcnQgKiBhcyBtZXRhZGF0YV9jYWNoZSBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzIG1vZGFscyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBtb25rZXlfYXJvdW5kIGZyb20gJy4vbW9ua2V5LWFyb3VuZC50cyc7XG5leHBvcnQgKiBhcyBvYnNpZGlhbl9zZXR0aW5ncyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzIHBkZiBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgcXVldWUgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyByZWFjdCBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIHJlZmVyZW5jZSBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyByZW5hbWVfZGVsZXRlX2hhbmRsZXIgZnJvbSAnLi9yZW5hbWUtZGVsZXRlLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgcmVzb3VyY2VfdXJsIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzIHNldHRpbmdfZXggZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCAqIGFzIHNldHRpbmdfZ3JvdXBfZXggZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzIHZhbGlkYXRpb24gZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzIHZhdWx0X2RlbGV0ZSBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyB2YXVsdCBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzIHdvcmtzcGFjZSBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLFVBQXFCO0FBQ3JCLHdCQUFtQztBQUNuQyxzQkFBaUM7QUFDakMsZUFBMEI7QUFDMUIsY0FBeUI7QUFDekIsc0NBQWlEO0FBQ2pELHVCQUFrQztBQUNsQyxpQkFBNEI7QUFDNUIsbUJBQThCO0FBQzlCLG9CQUErQjtBQUMvQixlQUEwQjtBQUMxQixhQUF3QjtBQUN4QixrQkFBNkI7QUFDN0IsbUJBQThCO0FBQzlCLGtCQUE2QjtBQUM3QiwwQ0FBcUQ7QUFDckQsa0JBQTZCO0FBQzdCLFdBQXNCO0FBQ3RCLHFCQUFnQztBQUNoQyxXQUFzQjtBQUN0QixhQUF3QjtBQUN4QixXQUFzQjtBQUN0QixvQ0FBK0M7QUFDL0Msb0JBQStCO0FBQy9CLGVBQTBCO0FBQzFCLHFCQUFnQztBQUNoQyxhQUF3QjtBQUN4QixvQkFBK0I7QUFDL0Isd0JBQW1DO0FBQ25DLFVBQXFCO0FBQ3JCLGFBQXdCO0FBQ3hCLFlBQXVCO0FBQ3ZCLFlBQXVCO0FBQ3ZCLGdCQUEyQjtBQUMzQiw0QkFBdUM7QUFDdkMsbUJBQThCO0FBQzlCLGlCQUE0QjtBQUM1Qix1QkFBa0M7QUFDbEMsaUJBQTRCO0FBQzVCLG1CQUE4QjtBQUM5QixZQUF1QjtBQUN2QixnQkFBMkI7IiwKICAibmFtZXMiOiBbXQp9Cg==
278
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgYWN0aXZlX2ZpbGVfcHJvdmlkZXIgZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyBhcHAgZnJvbSAnLi9hcHAudHMnO1xuZXhwb3J0ICogYXMgYXN5bmNfd2l0aF9ub3RpY2UgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyBhdHRhY2htZW50X3BhdGggZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuZXhwb3J0ICogYXMgYmFja2xpbmsgZnJvbSAnLi9iYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyBjYWxsb3V0IGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyBjb2RlX2Jsb2NrX21hcmtkb3duX2luZm9ybWF0aW9uIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyBjb21tYW5kX2hhbmRsZXJzIGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBjb21tYW5kX3JlZ2lzdHJhciBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzIGNvbXBvbmVudHMgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIGNvbnN0cnVjdG9ycyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBkYXRhdmlld19saW5rIGZyb20gJy4vZGF0YXZpZXctbGluay50cyc7XG5leHBvcnQgKiBhcyBkYXRhdmlldyBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzIGVkaXRvciBmcm9tICcuL2VkaXRvci50cyc7XG5leHBvcnQgKiBhcyBmaWxlX2NoYW5nZSBmcm9tICcuL2ZpbGUtY2hhbmdlLnRzJztcbmV4cG9ydCAqIGFzIGZpbGVfbWFuYWdlciBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyBmaWxlX3N5c3RlbSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzIGZyb250bWF0dGVyX2xpbmtfY2FjaGVfd2l0aF9vZmZzZXRzIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgZnJvbnRtYXR0ZXIgZnJvbSAnLi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgKiBhcyBpMThuIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBpc19pbl9vYnNpZGlhbiBmcm9tICcuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCAqIGFzIGxpbmsgZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZ2dlci50cyc7XG5leHBvcnQgKiBhcyBsb29wIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyBtYXJrZG93bl9jb2RlX2Jsb2NrX3Byb2Nlc3NvciBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzIG1hcmtkb3duX3ZpZXcgZnJvbSAnLi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCAqIGFzIG1hcmtkb3duIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgbWVudV9ldmVudF9yZWdpc3RyYXIgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyBtZXRhZGF0YV9jYWNoZSBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzIG1vZGFscyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBtb25rZXlfYXJvdW5kIGZyb20gJy4vbW9ua2V5LWFyb3VuZC50cyc7XG5leHBvcnQgKiBhcyBvYnNpZGlhbl9zZXR0aW5ncyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzIHBkZiBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgcXVldWUgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyByZWFjdCBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIHJlZmVyZW5jZSBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyByZW5hbWVfZGVsZXRlX2hhbmRsZXIgZnJvbSAnLi9yZW5hbWUtZGVsZXRlLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgcmVzb3VyY2VfdXJsIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzIHNldHRpbmdfZXggZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCAqIGFzIHNldHRpbmdfZ3JvdXBfZXggZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzIHZhbGlkYXRpb24gZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzIHZhdWx0X2RlbGV0ZSBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyB2YXVsdCBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzIHdvcmtzcGFjZSBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLDJCQUFzQztBQUN0QyxVQUFxQjtBQUNyQix3QkFBbUM7QUFDbkMsc0JBQWlDO0FBQ2pDLGVBQTBCO0FBQzFCLGNBQXlCO0FBQ3pCLHNDQUFpRDtBQUNqRCx1QkFBa0M7QUFDbEMsd0JBQW1DO0FBQ25DLGlCQUE0QjtBQUM1QixtQkFBOEI7QUFDOUIsb0JBQStCO0FBQy9CLGVBQTBCO0FBQzFCLGFBQXdCO0FBQ3hCLGtCQUE2QjtBQUM3QixtQkFBOEI7QUFDOUIsa0JBQTZCO0FBQzdCLDBDQUFxRDtBQUNyRCxrQkFBNkI7QUFDN0IsV0FBc0I7QUFDdEIscUJBQWdDO0FBQ2hDLFdBQXNCO0FBQ3RCLGFBQXdCO0FBQ3hCLFdBQXNCO0FBQ3RCLG9DQUErQztBQUMvQyxvQkFBK0I7QUFDL0IsZUFBMEI7QUFDMUIsMkJBQXNDO0FBQ3RDLHFCQUFnQztBQUNoQyxhQUF3QjtBQUN4QixvQkFBK0I7QUFDL0Isd0JBQW1DO0FBQ25DLFVBQXFCO0FBQ3JCLGFBQXdCO0FBQ3hCLFlBQXVCO0FBQ3ZCLFlBQXVCO0FBQ3ZCLGdCQUEyQjtBQUMzQiw0QkFBdUM7QUFDdkMsbUJBQThCO0FBQzlCLGlCQUE0QjtBQUM1Qix1QkFBa0M7QUFDbEMsaUJBQTRCO0FBQzVCLG1CQUE4QjtBQUM5QixZQUF1QjtBQUN2QixnQkFBMkI7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,3 +1,4 @@
1
+ export * as active_file_provider from './active-file-provider.cjs';
1
2
  export * as app from './app.cjs';
2
3
  export * as async_with_notice from './async-with-notice.cjs';
3
4
  export * as attachment_path from './attachment-path.cjs';
@@ -5,6 +6,7 @@ export * as backlink from './backlink.cjs';
5
6
  export * as callout from './callout.cjs';
6
7
  export * as code_block_markdown_information from './code-block-markdown-information.cjs';
7
8
  export * as command_handlers from './command-handlers/index.cjs';
9
+ export * as command_registrar from './command-registrar.cjs';
8
10
  export * as components from './components/index.cjs';
9
11
  export * as constructors from './constructors/index.cjs';
10
12
  export * as dataview_link from './dataview-link.cjs';
@@ -23,6 +25,7 @@ export * as loop from './loop.cjs';
23
25
  export * as markdown_code_block_processor from './markdown-code-block-processor.cjs';
24
26
  export * as markdown_view from './markdown-view.cjs';
25
27
  export * as markdown from './markdown.cjs';
28
+ export * as menu_event_registrar from './menu-event-registrar.cjs';
26
29
  export * as metadata_cache from './metadata-cache.cjs';
27
30
  export * as modals from './modals/index.cjs';
28
31
  export * as monkey_around from './monkey-around.cjs';
@@ -0,0 +1,173 @@
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() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function name(obj) {
44
+ return obj;
45
+ }
46
+
47
+ function extractDefault(module) {
48
+ return module && module.__esModule && 'default' in module ? module.default : module;
49
+ }
50
+
51
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
52
+ 'obsidian',
53
+ '@codemirror/autocomplete',
54
+ '@codemirror/collab',
55
+ '@codemirror/commands',
56
+ '@codemirror/language',
57
+ '@codemirror/lint',
58
+ '@codemirror/search',
59
+ '@codemirror/state',
60
+ '@codemirror/text',
61
+ '@codemirror/view',
62
+ '@lezer/common',
63
+ '@lezer/lr',
64
+ '@lezer/highlight'];
65
+
66
+
67
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
68
+ '@codemirror/closebrackets',
69
+ '@codemirror/comment',
70
+ '@codemirror/fold',
71
+ '@codemirror/gutter',
72
+ '@codemirror/highlight',
73
+ '@codemirror/history',
74
+ '@codemirror/matchbrackets',
75
+ '@codemirror/panel',
76
+ '@codemirror/rangeset',
77
+ '@codemirror/rectangular-selection',
78
+ '@codemirror/stream-parser',
79
+ '@codemirror/tooltip'];
80
+
81
+
82
+ function requirePatched(id) {
83
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
84
+ return originalRequire?.(id);
85
+ }
86
+
87
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
88
+ if (globalThis.app.isMobile) {
89
+ if (id === 'process' || id === 'node:process') {
90
+ // eslint-disable-next-line no-console -- Valid usage.
91
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
92
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
93
+ return globalThis.process;
94
+ }
95
+ } else {
96
+ const module = originalRequire?.(id);
97
+ if (module) {
98
+ return extractDefault(module);
99
+ }
100
+ }
101
+
102
+ // eslint-disable-next-line no-console -- Valid usage.
103
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
104
+ return {};
105
+ }
106
+ })();
107
+
108
+ "use strict";
109
+ var __defProp = Object.defineProperty;
110
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
+ var __getOwnPropNames = Object.getOwnPropertyNames;
112
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
113
+ var __export = (target, all) => {
114
+ for (var name in all)
115
+ __defProp(target, name, { get: all[name], enumerable: true });
116
+ };
117
+ var __copyProps = (to, from, except, desc) => {
118
+ if (from && typeof from === "object" || typeof from === "function") {
119
+ for (let key of __getOwnPropNames(from))
120
+ if (!__hasOwnProp.call(to, key) && key !== except)
121
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122
+ }
123
+ return to;
124
+ };
125
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
+ var menu_event_registrar_exports = {};
127
+ __export(menu_event_registrar_exports, {
128
+ AppMenuEventRegistrar: () => AppMenuEventRegistrar
129
+ });
130
+ module.exports = __toCommonJS(menu_event_registrar_exports);
131
+ class AppMenuEventRegistrar {
132
+ /**
133
+ * Creates a new app-backed menu event registrar.
134
+ *
135
+ * @param app - The Obsidian app instance.
136
+ * @param component - The component for lifecycle management.
137
+ */
138
+ constructor(app, component) {
139
+ this.app = app;
140
+ this.component = component;
141
+ }
142
+ app;
143
+ component;
144
+ /**
145
+ * Registers a handler for the editor context menu event.
146
+ *
147
+ * @param handler - The handler to register.
148
+ */
149
+ registerEditorMenuEventHandler(handler) {
150
+ this.component.registerEvent(this.app.workspace.on("editor-menu", handler));
151
+ }
152
+ /**
153
+ * Registers a handler for the single-file context menu event.
154
+ *
155
+ * @param handler - The handler to register.
156
+ */
157
+ registerFileMenuEventHandler(handler) {
158
+ this.component.registerEvent(this.app.workspace.on("file-menu", handler));
159
+ }
160
+ /**
161
+ * Registers a handler for the multi-file context menu event.
162
+ *
163
+ * @param handler - The handler to register.
164
+ */
165
+ registerFilesMenuEventHandler(handler) {
166
+ this.component.registerEvent(this.app.workspace.on("files-menu", handler));
167
+ }
168
+ }
169
+ // Annotate the CommonJS export names for ESM import in node:
170
+ 0 && (module.exports = {
171
+ AppMenuEventRegistrar
172
+ });
173
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTWVudSBldmVudCByZWdpc3RyYXIuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbXBvbmVudCxcbiAgRWRpdG9yLFxuICBNYXJrZG93bkZpbGVJbmZvLFxuICBNZW51LFxuICBUQWJzdHJhY3RGaWxlLFxuICBXb3Jrc3BhY2VMZWFmXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBIYW5kbGVyIGZvciB0aGUgZWRpdG9yIGNvbnRleHQgbWVudSBldmVudC5cbiAqXG4gKiBAcGFyYW0gbWVudSAtIFRoZSBtZW51IHRvIGFkZCBpdGVtcyB0by5cbiAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICogQHBhcmFtIGN0eCAtIFRoZSBtYXJrZG93biBmaWxlIGNvbnRleHQuXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRvck1lbnVFdmVudEhhbmRsZXIgPSAobWVudTogTWVudSwgZWRpdG9yOiBFZGl0b3IsIGN0eDogTWFya2Rvd25GaWxlSW5mbykgPT4gdm9pZDtcblxuLyoqXG4gKiBIYW5kbGVyIGZvciB0aGUgc2luZ2xlLWZpbGUgY29udGV4dCBtZW51IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBtZW51IC0gVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICogQHBhcmFtIGFic3RyYWN0RmlsZSAtIFRoZSBmaWxlIG9yIGZvbGRlci5cbiAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBldmVudC5cbiAqIEBwYXJhbSBsZWFmIC0gVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbGVNZW51RXZlbnRIYW5kbGVyID0gKG1lbnU6IE1lbnUsIGFic3RyYWN0RmlsZTogVEFic3RyYWN0RmlsZSwgc291cmNlOiBzdHJpbmcsIGxlYWY/OiBXb3Jrc3BhY2VMZWFmKSA9PiB2b2lkO1xuXG4vKipcbiAqIEhhbmRsZXIgZm9yIHRoZSBtdWx0aS1maWxlIGNvbnRleHQgbWVudSBldmVudC5cbiAqXG4gKiBAcGFyYW0gbWVudSAtIFRoZSBtZW51IHRvIGFkZCBpdGVtcyB0by5cbiAqIEBwYXJhbSBhYnN0cmFjdEZpbGVzIC0gVGhlIGZpbGVzIG9yIGZvbGRlcnMuXG4gKiBAcGFyYW0gc291cmNlIC0gVGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQuXG4gKiBAcGFyYW0gbGVhZiAtIFRoZSB3b3Jrc3BhY2UgbGVhZiwgaWYgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgdHlwZSBGaWxlc01lbnVFdmVudEhhbmRsZXIgPSAobWVudTogTWVudSwgYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdLCBzb3VyY2U6IHN0cmluZywgbGVhZj86IFdvcmtzcGFjZUxlYWYpID0+IHZvaWQ7XG5cbi8qKlxuICogUmVnaXN0ZXJzIG1lbnUgZXZlbnQgaGFuZGxlcnMgd2l0aCBsaWZlY3ljbGUgbWFuYWdlbWVudC5cbiAqL1xuXG4vKiogKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUV2ZW50UmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGhhbmRsZXIgZm9yIHRoZSBlZGl0b3IgY29udGV4dCBtZW51IGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVnaXN0ZXJFZGl0b3JNZW51RXZlbnRIYW5kbGVyKGhhbmRsZXI6IEVkaXRvck1lbnVFdmVudEhhbmRsZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgc2luZ2xlLWZpbGUgY29udGV4dCBtZW51IGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVnaXN0ZXJGaWxlTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlTWVudUV2ZW50SGFuZGxlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGhhbmRsZXIgZm9yIHRoZSBtdWx0aS1maWxlIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyRmlsZXNNZW51RXZlbnRIYW5kbGVyKGhhbmRsZXI6IEZpbGVzTWVudUV2ZW50SGFuZGxlcik6IHZvaWQ7XG59XG5cbi8qKlxuICoge0BsaW5rIE1lbnVFdmVudFJlZ2lzdHJhcn0gYmFja2VkIGJ5IE9ic2lkaWFuJ3Mge0BsaW5rIEFwcH0gd29ya3NwYWNlIGV2ZW50cy5cbiAqXG4gKiBFdmVudCBoYW5kbGVycyBhcmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBwcm92aWRlZCB7QGxpbmsgQ29tcG9uZW50fSBmb3IgbGlmZWN5Y2xlIG1hbmFnZW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBNZW51RXZlbnRSZWdpc3RyYXIgaW1wbGVtZW50cyBNZW51RXZlbnRSZWdpc3RyYXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhcHAtYmFja2VkIG1lbnUgZXZlbnQgcmVnaXN0cmFyLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgZm9yIGxpZmVjeWNsZSBtYW5hZ2VtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHAsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnQ6IENvbXBvbmVudFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGhhbmRsZXIgZm9yIHRoZSBlZGl0b3IgY29udGV4dCBtZW51IGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRWRpdG9yTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBFZGl0b3JNZW51RXZlbnRIYW5kbGVyKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oJ2VkaXRvci1tZW51JywgaGFuZGxlcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGhhbmRsZXIgZm9yIHRoZSBzaW5nbGUtZmlsZSBjb250ZXh0IG1lbnUgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBoYW5kbGVyIC0gVGhlIGhhbmRsZXIgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJGaWxlTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlTWVudUV2ZW50SGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50LnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKCdmaWxlLW1lbnUnLCBoYW5kbGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgaGFuZGxlciBmb3IgdGhlIG11bHRpLWZpbGUgY29udGV4dCBtZW51IGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRmlsZXNNZW51RXZlbnRIYW5kbGVyKGhhbmRsZXI6IEZpbGVzTWVudUV2ZW50SGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50LnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKCdmaWxlcy1tZW51JywgaGFuZGxlcikpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4RU8sTUFBTSxzQkFBb0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU94RCxZQUNZLEtBQ0EsV0FDakI7QUFGaUI7QUFDQTtBQUFBLEVBQ2hCO0FBQUEsRUFGZ0I7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVosK0JBQStCLFNBQXVDO0FBQzNFLFNBQUssVUFBVSxjQUFjLEtBQUssSUFBSSxVQUFVLEdBQUcsZUFBZSxPQUFPLENBQUM7QUFBQSxFQUM1RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLDZCQUE2QixTQUFxQztBQUN2RSxTQUFLLFVBQVUsY0FBYyxLQUFLLElBQUksVUFBVSxHQUFHLGFBQWEsT0FBTyxDQUFDO0FBQUEsRUFDMUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyw4QkFBOEIsU0FBc0M7QUFDekUsU0FBSyxVQUFVLGNBQWMsS0FBSyxJQUFJLFVBQVUsR0FBRyxjQUFjLE9BQU8sQ0FBQztBQUFBLEVBQzNFO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -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
+ }
@@ -129,8 +129,6 @@ __export(plugin_settings_tab_component_exports, {
129
129
  });
130
130
  module.exports = __toCommonJS(plugin_settings_tab_component_exports);
131
131
  var import_obsidian = require('obsidian');
132
- var import_command_handler_component = require('../../command-handlers/command-handler-component.cjs');
133
- var import_open_settings_command_handler = require('../../command-handlers/open-settings-command-handler.cjs');
134
132
  class PluginSettingsTabComponent extends import_obsidian.Component {
135
133
  plugin;
136
134
  pluginSettingsTab;
@@ -149,19 +147,10 @@ class PluginSettingsTabComponent extends import_obsidian.Component {
149
147
  */
150
148
  onload() {
151
149
  this.plugin.addSettingTab(this.pluginSettingsTab);
152
- this.addChild(
153
- new import_command_handler_component.CommandHandlerComponent({
154
- commandHandler: new import_open_settings_command_handler.OpenSettingsCommandHandler({
155
- pluginName: this.plugin.manifest.name,
156
- pluginSettingsTab: this.pluginSettingsTab
157
- }),
158
- plugin: this.plugin
159
- })
160
- );
161
150
  }
162
151
  }
163
152
  // Annotate the CommonJS export names for ESM import in node:
164
153
  0 && (module.exports = {
165
154
  PluginSettingsTabComponent
166
155
  });
167
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgcmVnaXN0ZXJzIGEgcGx1Z2luIHNldHRpbmdzIHRhYiB3aXRoIE9ic2lkaWFuLlxuICogQWxzbyByZWdpc3RlcnMgYW4gXCJPcGVuIFNldHRpbmdzXCIgY29tbWFuZCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NUYWJCYXNlIH0gZnJvbSAnLi4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5cbmltcG9ydCB7IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE9wZW5TZXR0aW5nc0NvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY29tbWFuZC1oYW5kbGVycy9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5TZXR0aW5nc1RhYkNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG4gIHJlYWRvbmx5IHBsdWdpblNldHRpbmdzVGFiOiBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8b2JqZWN0Pjtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIHtAbGluayBQbHVnaW5TZXR0aW5nc1RhYkJhc2V9IGFuZCByZWdpc3RlcnMgaXQgd2l0aCBPYnNpZGlhbiBvbiBsb2FkLlxuICogQWxzbyByZWdpc3RlcnMgYW4gXCJPcGVuIFNldHRpbmdzXCIgY29tbWFuZCB0byBvcGVuIHRoZSBzZXR0aW5ncyB0YWIgZnJvbSB0aGUgY29tbWFuZCBwYWxldHRlLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpblNldHRpbmdzVGFiOiBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8b2JqZWN0PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gc2V0dGluZ3MgdGFiIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiIGNvbXBvbmVudCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wbHVnaW4gPSBwYXJhbXMucGx1Z2luO1xuICAgIHRoaXMucGx1Z2luU2V0dGluZ3NUYWIgPSBwYXJhbXMucGx1Z2luU2V0dGluZ3NUYWI7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBzZXR0aW5ncyB0YWIgYW5kIGFuIFwiT3BlbiBTZXR0aW5nc1wiIGNvbW1hbmQgd2l0aCBPYnNpZGlhbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbmxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5wbHVnaW4uYWRkU2V0dGluZ1RhYih0aGlzLnBsdWdpblNldHRpbmdzVGFiKTtcbiAgICB0aGlzLmFkZENoaWxkKFxuICAgICAgbmV3IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KHtcbiAgICAgICAgY29tbWFuZEhhbmRsZXI6IG5ldyBPcGVuU2V0dGluZ3NDb21tYW5kSGFuZGxlcih7XG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5wbHVnaW4ubWFuaWZlc3QubmFtZSxcbiAgICAgICAgICBwbHVnaW5TZXR0aW5nc1RhYjogdGhpcy5wbHVnaW5TZXR0aW5nc1RhYlxuICAgICAgICB9KSxcbiAgICAgICAgcGx1Z2luOiB0aGlzLnBsdWdpblxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQSxzQkFBMEI7QUFJMUIsdUNBQXdDO0FBQ3hDLDJDQUEyQztBQVdwQyxNQUFNLG1DQUFtQywwQkFBVTtBQUFBLEVBQ3ZDO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBcUQ7QUFDdEUsVUFBTTtBQUNOLFNBQUssU0FBUyxPQUFPO0FBQ3JCLFNBQUssb0JBQW9CLE9BQU87QUFBQSxFQUNsQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2dCLFNBQWU7QUFDN0IsU0FBSyxPQUFPLGNBQWMsS0FBSyxpQkFBaUI7QUFDaEQsU0FBSztBQUFBLE1BQ0gsSUFBSSx5REFBd0I7QUFBQSxRQUMxQixnQkFBZ0IsSUFBSSxnRUFBMkI7QUFBQSxVQUM3QyxZQUFZLEtBQUssT0FBTyxTQUFTO0FBQUEsVUFDakMsbUJBQW1CLEtBQUs7QUFBQSxRQUMxQixDQUFDO0FBQUEsUUFDRCxRQUFRLEtBQUs7QUFBQSxNQUNmLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
156
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgcmVnaXN0ZXJzIGEgcGx1Z2luIHNldHRpbmdzIHRhYiB3aXRoIE9ic2lkaWFuLlxuICogQWxzbyByZWdpc3RlcnMgYW4gXCJPcGVuIFNldHRpbmdzXCIgY29tbWFuZCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NUYWJCYXNlIH0gZnJvbSAnLi4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5TZXR0aW5nc1RhYkNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW47XG4gIHJlYWRvbmx5IHBsdWdpblNldHRpbmdzVGFiOiBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8b2JqZWN0Pjtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIHtAbGluayBQbHVnaW5TZXR0aW5nc1RhYkJhc2V9IGFuZCByZWdpc3RlcnMgaXQgd2l0aCBPYnNpZGlhbiBvbiBsb2FkLlxuICogQWxzbyByZWdpc3RlcnMgYW4gXCJPcGVuIFNldHRpbmdzXCIgY29tbWFuZCB0byBvcGVuIHRoZSBzZXR0aW5ncyB0YWIgZnJvbSB0aGUgY29tbWFuZCBwYWxldHRlLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpblNldHRpbmdzVGFiOiBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8b2JqZWN0PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gc2V0dGluZ3MgdGFiIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiIGNvbXBvbmVudCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wbHVnaW4gPSBwYXJhbXMucGx1Z2luO1xuICAgIHRoaXMucGx1Z2luU2V0dGluZ3NUYWIgPSBwYXJhbXMucGx1Z2luU2V0dGluZ3NUYWI7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBzZXR0aW5ncyB0YWIgYW5kIGFuIFwiT3BlbiBTZXR0aW5nc1wiIGNvbW1hbmQgd2l0aCBPYnNpZGlhbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbmxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5wbHVnaW4uYWRkU2V0dGluZ1RhYih0aGlzLnBsdWdpblNldHRpbmdzVGFiKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0Esc0JBQTBCO0FBYW5CLE1BQU0sbUNBQW1DLDBCQUFVO0FBQUEsRUFDdkM7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1YsWUFBWSxRQUFxRDtBQUN0RSxVQUFNO0FBQ04sU0FBSyxTQUFTLE9BQU87QUFDckIsU0FBSyxvQkFBb0IsT0FBTztBQUFBLEVBQ2xDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsU0FBZTtBQUM3QixTQUFLLE9BQU8sY0FBYyxLQUFLLGlCQUFpQjtBQUFBLEVBQ2xEO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -21,7 +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
- const LIBRARY_VERSION = "59.0.1";
24
+ const LIBRARY_VERSION = "60.0.0";
25
25
  const LIBRARY_NAME = "obsidian-dev-utils";
26
26
  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.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\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/plugin-settings-tab.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;;;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&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%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";
27
27
  export {
@@ -1,10 +1,21 @@
1
1
  /**
2
2
  * @file
3
3
  *
4
- * App-backed implementation of {@link ActiveFileProvider}.
4
+ * Provider for the currently active file.
5
5
  */
6
6
  import type { App, TFile } from 'obsidian';
7
- import type { ActiveFileProvider } from './command-handler.cjs';
7
+ /**
8
+ * Provides access to the currently active file.
9
+ */
10
+ /** */
11
+ export interface ActiveFileProvider {
12
+ /**
13
+ * Gets the currently active file.
14
+ *
15
+ * @returns The active file, or `null` if no file is active.
16
+ */
17
+ getActiveFile(): null | TFile;
18
+ }
8
19
  /**
9
20
  * {@link ActiveFileProvider} backed by Obsidian's {@link App}.
10
21
  */
@@ -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 AppActiveFileProvider {
25
+ /**
26
+ * Creates a new app-backed active file provider.
27
+ *
28
+ * @param app - The Obsidian app instance.
29
+ */
30
+ constructor(app) {
31
+ this.app = app;
32
+ }
33
+ app;
34
+ /**
35
+ * Gets the currently active file from the workspace.
36
+ *
37
+ * @returns The active file, or `null` if no file is active.
38
+ */
39
+ getActiveFile() {
40
+ return this.app.workspace.getActiveFile();
41
+ }
42
+ }
43
+ export {
44
+ AppActiveFileProvider
45
+ };
46
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHJvdmlkZXIgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGZpbGUuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGN1cnJlbnRseSBhY3RpdmUgZmlsZS5cbiAqL1xuXG4vKiogKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlRmlsZVByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZmlsZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFjdGl2ZSBmaWxlLCBvciBgbnVsbGAgaWYgbm8gZmlsZSBpcyBhY3RpdmUuXG4gICAqL1xuICBnZXRBY3RpdmVGaWxlKCk6IG51bGwgfCBURmlsZTtcbn1cblxuLyoqXG4gKiB7QGxpbmsgQWN0aXZlRmlsZVByb3ZpZGVyfSBiYWNrZWQgYnkgT2JzaWRpYW4ncyB7QGxpbmsgQXBwfS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcEFjdGl2ZUZpbGVQcm92aWRlciBpbXBsZW1lbnRzIEFjdGl2ZUZpbGVQcm92aWRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFwcC1iYWNrZWQgYWN0aXZlIGZpbGUgcHJvdmlkZXIuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHApIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZmlsZSBmcm9tIHRoZSB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhY3RpdmUgZmlsZSwgb3IgYG51bGxgIGlmIG5vIGZpbGUgaXMgYWN0aXZlLlxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZUZpbGUoKTogbnVsbCB8IFRGaWxlIHtcbiAgICByZXR1cm4gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZUZpbGUoKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0Qk8sTUFBTSxzQkFBb0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNeEQsWUFBNkIsS0FBVTtBQUFWO0FBQUEsRUFBVztBQUFBLEVBQVg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPN0IsZ0JBQThCO0FBQ25DLFdBQU8sS0FBSyxJQUFJLFVBQVUsY0FBYztBQUFBLEVBQzFDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==