obsidian-dev-utils 55.4.1 → 56.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 (542) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/lib/cjs/abort-controller.cjs +6 -4
  3. package/dist/lib/cjs/array.cjs +5 -3
  4. package/dist/lib/cjs/async-events.cjs +7 -5
  5. package/dist/lib/cjs/async.cjs +6 -4
  6. package/dist/lib/cjs/blob.cjs +6 -4
  7. package/dist/lib/cjs/codemirror/index.cjs +5 -3
  8. package/dist/lib/cjs/codemirror/state-field-spec.cjs +5 -3
  9. package/dist/lib/cjs/css-class.cjs +5 -3
  10. package/dist/lib/cjs/debug-controller.cjs +5 -3
  11. package/dist/lib/cjs/debug.cjs +5 -3
  12. package/dist/lib/cjs/enum.cjs +5 -3
  13. package/dist/lib/cjs/error.cjs +5 -3
  14. package/dist/lib/cjs/function.cjs +5 -3
  15. package/dist/lib/cjs/html-element.cjs +18 -16
  16. package/dist/lib/cjs/index.cjs +5 -3
  17. package/dist/lib/cjs/library.cjs +6 -4
  18. package/dist/lib/cjs/object-utils.cjs +5 -3
  19. package/dist/lib/cjs/obsidian/@types/i18next.d.cts +3 -3
  20. package/dist/lib/cjs/obsidian/app.cjs +5 -3
  21. package/dist/lib/cjs/obsidian/async-with-notice.cjs +8 -6
  22. package/dist/lib/cjs/obsidian/attachment-path.cjs +5 -3
  23. package/dist/lib/cjs/obsidian/backlink.cjs +5 -3
  24. package/dist/lib/cjs/obsidian/callout.cjs +5 -3
  25. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +5 -3
  26. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +355 -0
  27. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +178 -0
  28. package/dist/lib/cjs/obsidian/{commands/index.cjs → command-handlers/app-active-file-provider.cjs} +29 -34
  29. package/dist/lib/cjs/obsidian/command-handlers/app-active-file-provider.d.cts +25 -0
  30. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +173 -0
  31. package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +41 -0
  32. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +164 -0
  33. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +26 -0
  34. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +174 -0
  35. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +143 -0
  36. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +269 -0
  37. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +114 -0
  38. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +261 -0
  39. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +112 -0
  40. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +261 -0
  41. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +112 -0
  42. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +177 -0
  43. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +38 -0
  44. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +170 -0
  45. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +9 -0
  46. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +6 -4
  47. package/dist/lib/cjs/obsidian/components/async-component.cjs +164 -0
  48. package/dist/lib/cjs/obsidian/components/async-component.d.cts +28 -0
  49. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +5 -3
  50. package/dist/lib/cjs/obsidian/components/index.cjs +8 -3
  51. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  52. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +5 -3
  53. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +5 -3
  54. package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +5 -3
  55. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +5 -3
  56. package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +5 -3
  57. package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +5 -3
  58. package/dist/lib/cjs/obsidian/components/setting-components/index.cjs +5 -3
  59. package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +5 -3
  60. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +5 -3
  61. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +5 -3
  62. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +5 -3
  63. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +5 -3
  64. package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +5 -3
  65. package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +5 -3
  66. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +5 -3
  67. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +5 -3
  68. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +5 -3
  69. package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +5 -3
  70. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +5 -3
  71. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +5 -3
  72. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +5 -3
  73. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +5 -3
  74. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +5 -3
  75. package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +5 -3
  76. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +7 -5
  77. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +5 -3
  78. package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +5 -3
  79. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +5 -3
  80. package/dist/lib/cjs/obsidian/constructors/index.cjs +5 -3
  81. package/dist/lib/cjs/obsidian/dataview-link.cjs +5 -3
  82. package/dist/lib/cjs/obsidian/dataview.cjs +6 -4
  83. package/dist/lib/cjs/obsidian/editor.cjs +5 -3
  84. package/dist/lib/cjs/obsidian/file-change.cjs +5 -3
  85. package/dist/lib/cjs/obsidian/file-manager.cjs +5 -3
  86. package/dist/lib/cjs/obsidian/file-system.cjs +5 -3
  87. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +5 -3
  88. package/dist/lib/cjs/obsidian/frontmatter.cjs +5 -3
  89. package/dist/lib/cjs/obsidian/i18n/{custom-type-options-base.cjs → custom-type-options.cjs} +7 -5
  90. package/dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts +37 -0
  91. package/dist/lib/cjs/obsidian/{plugin/plugin-settings-wrapper.cjs → i18n/default-translations.cjs} +8 -5
  92. package/dist/lib/cjs/obsidian/i18n/default-translations.d.cts +14 -0
  93. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +5 -3
  94. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +2 -13
  95. package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -9
  96. package/dist/lib/cjs/obsidian/i18n/index.d.cts +2 -2
  97. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +5 -3
  98. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +5 -3
  99. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +5 -3
  100. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -2
  101. package/dist/lib/cjs/obsidian/index.cjs +8 -6
  102. package/dist/lib/cjs/obsidian/index.d.cts +1 -1
  103. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +5 -3
  104. package/dist/lib/cjs/obsidian/link.cjs +5 -3
  105. package/dist/lib/cjs/obsidian/logger.cjs +5 -3
  106. package/dist/lib/cjs/obsidian/loop.cjs +5 -3
  107. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -3
  108. package/dist/lib/cjs/obsidian/markdown-view.cjs +5 -3
  109. package/dist/lib/cjs/obsidian/markdown.cjs +5 -3
  110. package/dist/lib/cjs/obsidian/metadata-cache.cjs +5 -3
  111. package/dist/lib/cjs/obsidian/modals/alert.cjs +8 -6
  112. package/dist/lib/cjs/obsidian/modals/confirm.cjs +8 -6
  113. package/dist/lib/cjs/obsidian/modals/index.cjs +8 -6
  114. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -1
  115. package/dist/lib/cjs/obsidian/modals/{modal-base.cjs → modal.cjs} +8 -6
  116. package/dist/lib/cjs/obsidian/modals/prompt.cjs +8 -6
  117. package/dist/lib/cjs/obsidian/modals/select-item.cjs +7 -5
  118. package/dist/lib/cjs/obsidian/monkey-around.cjs +5 -3
  119. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +5 -3
  120. package/dist/lib/cjs/obsidian/pdf.cjs +8 -6
  121. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.cjs +162 -0
  122. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.d.cts +27 -0
  123. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.cjs +165 -0
  124. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.d.cts +29 -0
  125. package/dist/lib/cjs/obsidian/{commands/non-editor-command-base.cjs → plugin/components/console-debug-component.cjs} +26 -20
  126. package/dist/lib/cjs/obsidian/plugin/components/console-debug-component.d.cts +29 -0
  127. package/dist/lib/cjs/obsidian/{i18n/default-translations-base.cjs → plugin/components/i18n-component.cjs} +39 -6
  128. package/dist/lib/cjs/obsidian/plugin/components/i18n-component.d.cts +23 -0
  129. package/dist/lib/cjs/obsidian/plugin/components/index.cjs +170 -0
  130. package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +9 -0
  131. package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +207 -0
  132. package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +59 -0
  133. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.cjs +162 -0
  134. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.d.cts +25 -0
  135. package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.cjs +161 -0
  136. package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.d.cts +25 -0
  137. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +566 -0
  138. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.d.cts +296 -0
  139. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +166 -0
  140. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.d.cts +28 -0
  141. package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -18
  142. package/dist/lib/cjs/obsidian/plugin/index.d.cts +2 -5
  143. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +5 -3
  144. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +5 -3
  145. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +16 -7
  146. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +3 -2
  147. package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +5 -3
  148. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +408 -0
  149. package/dist/lib/cjs/obsidian/plugin/{plugin-settings-tab-base.d.cts → plugin-settings-tab.d.cts} +28 -11
  150. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +135 -3
  151. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +106 -5
  152. package/dist/lib/cjs/obsidian/queue.cjs +5 -3
  153. package/dist/lib/cjs/obsidian/react/app-context.cjs +5 -3
  154. package/dist/lib/cjs/obsidian/react/index.cjs +5 -3
  155. package/dist/lib/cjs/obsidian/reference.cjs +5 -3
  156. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +5 -3
  157. package/dist/lib/cjs/obsidian/resource-url.cjs +5 -3
  158. package/dist/lib/cjs/obsidian/setting-ex.cjs +5 -3
  159. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +5 -3
  160. package/dist/lib/cjs/obsidian/validation.cjs +5 -3
  161. package/dist/lib/cjs/obsidian/vault-delete.cjs +5 -3
  162. package/dist/lib/cjs/obsidian/vault.cjs +5 -3
  163. package/dist/lib/cjs/obsidian/workspace.cjs +5 -3
  164. package/dist/lib/cjs/path.cjs +5 -3
  165. package/dist/lib/cjs/reg-exp.cjs +5 -3
  166. package/dist/lib/cjs/script-utils/build.cjs +5 -3
  167. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +5 -3
  168. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +5 -3
  169. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +5 -3
  170. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +6 -4
  171. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +5 -3
  172. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +5 -3
  173. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +5 -3
  174. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +5 -3
  175. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +8 -6
  176. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +5 -3
  177. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +5 -3
  178. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +5 -3
  179. package/dist/lib/cjs/script-utils/bundlers/index.cjs +5 -3
  180. package/dist/lib/cjs/script-utils/cli-utils.cjs +5 -3
  181. package/dist/lib/cjs/script-utils/code-generator.cjs +5 -3
  182. package/dist/lib/cjs/script-utils/commitlint-config.cjs +5 -3
  183. package/dist/lib/cjs/script-utils/exec.cjs +5 -3
  184. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +6 -4
  185. package/dist/lib/cjs/script-utils/formatters/index.cjs +5 -3
  186. package/dist/lib/cjs/script-utils/fs.cjs +5 -3
  187. package/dist/lib/cjs/script-utils/index.cjs +5 -3
  188. package/dist/lib/cjs/script-utils/json.cjs +5 -3
  189. package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
  190. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +6 -4
  191. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +5 -3
  192. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +5 -3
  193. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +5 -3
  194. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
  195. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +5 -3
  196. package/dist/lib/cjs/script-utils/linters/eslint.cjs +6 -4
  197. package/dist/lib/cjs/script-utils/linters/index.cjs +5 -3
  198. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +5 -3
  199. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +9 -5
  200. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +5 -3
  201. package/dist/lib/cjs/script-utils/npm-publish.cjs +5 -3
  202. package/dist/lib/cjs/script-utils/npm-run.cjs +5 -3
  203. package/dist/lib/cjs/script-utils/npm.cjs +5 -3
  204. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +5 -3
  205. package/dist/lib/cjs/script-utils/root.cjs +5 -3
  206. package/dist/lib/cjs/script-utils/test-runners/index.cjs +5 -3
  207. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +5 -3
  208. package/dist/lib/cjs/script-utils/version.cjs +5 -3
  209. package/dist/lib/cjs/strict-proxy.cjs +5 -3
  210. package/dist/lib/cjs/string.cjs +5 -3
  211. package/dist/lib/cjs/transformers/date-transformer.cjs +5 -3
  212. package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -3
  213. package/dist/lib/cjs/transformers/group-transformer.cjs +5 -3
  214. package/dist/lib/cjs/transformers/index.cjs +5 -3
  215. package/dist/lib/cjs/transformers/map-transformer.cjs +5 -3
  216. package/dist/lib/cjs/transformers/set-transformer.cjs +5 -3
  217. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +5 -3
  218. package/dist/lib/cjs/transformers/transformer.cjs +5 -3
  219. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +5 -3
  220. package/dist/lib/cjs/transformers/typed-transformer.cjs +5 -3
  221. package/dist/lib/cjs/two-way-map.cjs +5 -3
  222. package/dist/lib/cjs/type-guards.cjs +5 -3
  223. package/dist/lib/cjs/type.cjs +5 -3
  224. package/dist/lib/cjs/url.cjs +5 -3
  225. package/dist/lib/cjs/value-provider.cjs +5 -3
  226. package/dist/lib/esm/abort-controller.mjs +4 -2
  227. package/dist/lib/esm/array.mjs +3 -1
  228. package/dist/lib/esm/async-events.mjs +5 -3
  229. package/dist/lib/esm/async.mjs +4 -2
  230. package/dist/lib/esm/blob.mjs +4 -2
  231. package/dist/lib/esm/codemirror/index.mjs +3 -1
  232. package/dist/lib/esm/codemirror/state-field-spec.mjs +2 -0
  233. package/dist/lib/esm/css-class.mjs +3 -1
  234. package/dist/lib/esm/debug-controller.mjs +2 -0
  235. package/dist/lib/esm/debug.mjs +3 -1
  236. package/dist/lib/esm/enum.mjs +3 -1
  237. package/dist/lib/esm/error.mjs +3 -1
  238. package/dist/lib/esm/function.mjs +3 -1
  239. package/dist/lib/esm/html-element.mjs +16 -14
  240. package/dist/lib/esm/index.mjs +3 -1
  241. package/dist/lib/esm/library.mjs +4 -2
  242. package/dist/lib/esm/object-utils.mjs +3 -1
  243. package/dist/lib/esm/obsidian/@types/i18next.d.mts +3 -3
  244. package/dist/lib/esm/obsidian/app.mjs +3 -1
  245. package/dist/lib/esm/obsidian/async-with-notice.mjs +6 -4
  246. package/dist/lib/esm/obsidian/attachment-path.mjs +3 -1
  247. package/dist/lib/esm/obsidian/backlink.mjs +3 -1
  248. package/dist/lib/esm/obsidian/callout.mjs +3 -1
  249. package/dist/lib/esm/obsidian/code-block-markdown-information.mjs +2 -0
  250. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +178 -0
  251. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +247 -0
  252. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.d.mts +25 -0
  253. package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +46 -0
  254. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +41 -0
  255. package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +65 -0
  256. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +26 -0
  257. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +56 -0
  258. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +143 -0
  259. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +66 -0
  260. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +114 -0
  261. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +161 -0
  262. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +112 -0
  263. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +157 -0
  264. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +112 -0
  265. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +157 -0
  266. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.d.mts +38 -0
  267. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +69 -0
  268. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +9 -0
  269. package/dist/lib/esm/obsidian/command-handlers/index.mjs +44 -0
  270. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +4 -2
  271. package/dist/lib/esm/obsidian/components/async-component.d.mts +28 -0
  272. package/dist/lib/esm/obsidian/components/async-component.mjs +56 -0
  273. package/dist/lib/esm/obsidian/components/async-events-component.mjs +3 -1
  274. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  275. package/dist/lib/esm/obsidian/components/index.mjs +5 -1
  276. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +3 -1
  277. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +3 -1
  278. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +3 -1
  279. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +3 -1
  280. package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +3 -1
  281. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +3 -1
  282. package/dist/lib/esm/obsidian/components/setting-components/index.mjs +3 -1
  283. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +3 -1
  284. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +3 -1
  285. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +3 -1
  286. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -1
  287. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +3 -1
  288. package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +3 -1
  289. package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +3 -1
  290. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +3 -1
  291. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +3 -1
  292. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +3 -1
  293. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +3 -1
  294. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +3 -1
  295. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +3 -1
  296. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +3 -1
  297. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +3 -1
  298. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +3 -1
  299. package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +3 -1
  300. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +5 -3
  301. package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.mjs +2 -0
  302. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +3 -1
  303. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +3 -1
  304. package/dist/lib/esm/obsidian/constructors/index.mjs +3 -1
  305. package/dist/lib/esm/obsidian/dataview-link.mjs +3 -1
  306. package/dist/lib/esm/obsidian/dataview.mjs +4 -2
  307. package/dist/lib/esm/obsidian/editor.mjs +3 -1
  308. package/dist/lib/esm/obsidian/file-change.mjs +3 -1
  309. package/dist/lib/esm/obsidian/file-manager.mjs +3 -1
  310. package/dist/lib/esm/obsidian/file-system.mjs +3 -1
  311. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +3 -1
  312. package/dist/lib/esm/obsidian/frontmatter.mjs +3 -1
  313. package/dist/lib/esm/obsidian/i18n/custom-type-options.d.mts +37 -0
  314. package/dist/lib/esm/obsidian/i18n/custom-type-options.mjs +25 -0
  315. package/dist/lib/esm/obsidian/i18n/default-translations.d.mts +14 -0
  316. package/dist/lib/esm/obsidian/i18n/default-translations.mjs +25 -0
  317. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +2 -13
  318. package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -1
  319. package/dist/lib/esm/obsidian/i18n/index.d.mts +2 -2
  320. package/dist/lib/esm/obsidian/i18n/index.mjs +7 -5
  321. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
  322. package/dist/lib/esm/obsidian/i18n/locales/index.mjs +3 -1
  323. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -2
  324. package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +3 -1
  325. package/dist/lib/esm/obsidian/index.d.mts +1 -1
  326. package/dist/lib/esm/obsidian/index.mjs +5 -3
  327. package/dist/lib/esm/obsidian/is-in-obsidian.mjs +3 -1
  328. package/dist/lib/esm/obsidian/link.mjs +3 -1
  329. package/dist/lib/esm/obsidian/logger.mjs +3 -1
  330. package/dist/lib/esm/obsidian/loop.mjs +3 -1
  331. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +3 -1
  332. package/dist/lib/esm/obsidian/markdown-view.mjs +3 -1
  333. package/dist/lib/esm/obsidian/markdown.mjs +3 -1
  334. package/dist/lib/esm/obsidian/metadata-cache.mjs +3 -1
  335. package/dist/lib/esm/obsidian/modals/alert.mjs +4 -2
  336. package/dist/lib/esm/obsidian/modals/confirm.mjs +4 -2
  337. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -1
  338. package/dist/lib/esm/obsidian/modals/index.mjs +5 -3
  339. package/dist/lib/esm/obsidian/modals/modal.mjs +54 -0
  340. package/dist/lib/esm/obsidian/modals/prompt.mjs +4 -2
  341. package/dist/lib/esm/obsidian/modals/select-item.mjs +4 -2
  342. package/dist/lib/esm/obsidian/monkey-around.mjs +3 -1
  343. package/dist/lib/esm/obsidian/obsidian-settings.mjs +3 -1
  344. package/dist/lib/esm/obsidian/pdf.mjs +6 -4
  345. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.d.mts +27 -0
  346. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +54 -0
  347. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.d.mts +29 -0
  348. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +57 -0
  349. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.d.mts +29 -0
  350. package/dist/lib/esm/obsidian/plugin/components/console-debug-component.mjs +52 -0
  351. package/dist/lib/esm/obsidian/plugin/components/i18n-component.d.mts +23 -0
  352. package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +48 -0
  353. package/dist/lib/esm/obsidian/plugin/components/index.d.mts +9 -0
  354. package/dist/lib/esm/obsidian/plugin/components/index.mjs +44 -0
  355. package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +59 -0
  356. package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +102 -0
  357. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.d.mts +25 -0
  358. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +57 -0
  359. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.d.mts +25 -0
  360. package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.mjs +56 -0
  361. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.d.mts +296 -0
  362. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +463 -0
  363. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.d.mts +28 -0
  364. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +58 -0
  365. package/dist/lib/esm/obsidian/plugin/index.d.mts +2 -5
  366. package/dist/lib/esm/obsidian/plugin/index.mjs +7 -11
  367. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +3 -1
  368. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +3 -1
  369. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +3 -2
  370. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +14 -5
  371. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +3 -1
  372. package/dist/lib/esm/obsidian/plugin/{plugin-settings-tab-base.d.mts → plugin-settings-tab.d.mts} +28 -11
  373. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +309 -0
  374. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +106 -5
  375. package/dist/lib/esm/obsidian/plugin/plugin.mjs +140 -2
  376. package/dist/lib/esm/obsidian/queue.mjs +3 -1
  377. package/dist/lib/esm/obsidian/react/app-context.mjs +3 -1
  378. package/dist/lib/esm/obsidian/react/index.mjs +3 -1
  379. package/dist/lib/esm/obsidian/reference.mjs +3 -1
  380. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +3 -1
  381. package/dist/lib/esm/obsidian/resource-url.mjs +3 -1
  382. package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
  383. package/dist/lib/esm/obsidian/setting-group-ex.mjs +3 -1
  384. package/dist/lib/esm/obsidian/validation.mjs +3 -1
  385. package/dist/lib/esm/obsidian/vault-delete.mjs +3 -1
  386. package/dist/lib/esm/obsidian/vault.mjs +3 -1
  387. package/dist/lib/esm/obsidian/workspace.mjs +3 -1
  388. package/dist/lib/esm/path.mjs +3 -1
  389. package/dist/lib/esm/reg-exp.mjs +3 -1
  390. package/dist/lib/esm/script-utils/build.mjs +3 -1
  391. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -1
  392. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +3 -1
  393. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +3 -1
  394. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +3 -1
  395. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -1
  396. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +3 -1
  397. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.mjs +3 -1
  398. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +3 -1
  399. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +5 -3
  400. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +3 -1
  401. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +3 -1
  402. package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +3 -1
  403. package/dist/lib/esm/script-utils/bundlers/index.mjs +3 -1
  404. package/dist/lib/esm/script-utils/cli-utils.mjs +3 -1
  405. package/dist/lib/esm/script-utils/code-generator.mjs +3 -1
  406. package/dist/lib/esm/script-utils/commitlint-config.mjs +3 -1
  407. package/dist/lib/esm/script-utils/exec.mjs +3 -1
  408. package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -1
  409. package/dist/lib/esm/script-utils/formatters/index.mjs +3 -1
  410. package/dist/lib/esm/script-utils/fs.mjs +3 -1
  411. package/dist/lib/esm/script-utils/index.mjs +3 -1
  412. package/dist/lib/esm/script-utils/json.mjs +3 -1
  413. package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -1
  414. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +4 -2
  415. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
  416. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +3 -1
  417. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +3 -1
  418. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
  419. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +3 -1
  420. package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -1
  421. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  422. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +3 -1
  423. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +6 -2
  424. package/dist/lib/esm/script-utils/nano-staged-config.mjs +3 -1
  425. package/dist/lib/esm/script-utils/npm-publish.mjs +3 -1
  426. package/dist/lib/esm/script-utils/npm-run.mjs +3 -1
  427. package/dist/lib/esm/script-utils/npm.mjs +3 -1
  428. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
  429. package/dist/lib/esm/script-utils/root.mjs +3 -1
  430. package/dist/lib/esm/script-utils/test-runners/index.mjs +3 -1
  431. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +3 -1
  432. package/dist/lib/esm/script-utils/version.mjs +3 -1
  433. package/dist/lib/esm/strict-proxy.mjs +3 -1
  434. package/dist/lib/esm/string.mjs +3 -1
  435. package/dist/lib/esm/transformers/date-transformer.mjs +3 -1
  436. package/dist/lib/esm/transformers/duration-transformer.mjs +3 -1
  437. package/dist/lib/esm/transformers/group-transformer.mjs +3 -1
  438. package/dist/lib/esm/transformers/index.mjs +3 -1
  439. package/dist/lib/esm/transformers/map-transformer.mjs +3 -1
  440. package/dist/lib/esm/transformers/set-transformer.mjs +3 -1
  441. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +3 -1
  442. package/dist/lib/esm/transformers/transformer.mjs +3 -1
  443. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +3 -1
  444. package/dist/lib/esm/transformers/typed-transformer.mjs +3 -1
  445. package/dist/lib/esm/two-way-map.mjs +3 -1
  446. package/dist/lib/esm/type-guards.mjs +3 -1
  447. package/dist/lib/esm/type.mjs +3 -1
  448. package/dist/lib/esm/url.mjs +3 -1
  449. package/dist/lib/esm/value-provider.mjs +3 -1
  450. package/obsidian/Components/async-component/package.json +6 -0
  451. package/obsidian/Modals/modal/package.json +6 -0
  452. package/obsidian/Plugin/components/abort-signal-component/package.json +6 -0
  453. package/obsidian/Plugin/components/async-error-handler-component/package.json +6 -0
  454. package/obsidian/Plugin/components/console-debug-component/package.json +6 -0
  455. package/obsidian/Plugin/components/i18n-component/package.json +6 -0
  456. package/obsidian/Plugin/components/index/package.json +6 -0
  457. package/obsidian/Plugin/components/lifecycle-events-component/package.json +6 -0
  458. package/obsidian/Plugin/components/package.json +6 -0
  459. package/obsidian/Plugin/components/plugin-context-component/package.json +6 -0
  460. package/obsidian/Plugin/components/plugin-notice-component/package.json +6 -0
  461. package/obsidian/Plugin/components/plugin-settings-component/package.json +6 -0
  462. package/obsidian/Plugin/components/plugin-settings-tab-component/package.json +6 -0
  463. package/obsidian/Plugin/{plugin-settings-wrapper → plugin-settings-tab}/package.json +3 -3
  464. package/obsidian/command-handlers/abstract-file-command-handler/package.json +6 -0
  465. package/obsidian/command-handlers/app-active-file-provider/package.json +6 -0
  466. package/obsidian/command-handlers/app-menu-event-registrar/package.json +6 -0
  467. package/obsidian/command-handlers/command-handler/package.json +6 -0
  468. package/obsidian/command-handlers/command-handler-component/package.json +6 -0
  469. package/obsidian/command-handlers/editor-command-handler/package.json +6 -0
  470. package/obsidian/command-handlers/file-command-handler/package.json +6 -0
  471. package/obsidian/command-handlers/folder-command-handler/package.json +6 -0
  472. package/obsidian/command-handlers/global-command-handler/package.json +6 -0
  473. package/obsidian/command-handlers/index/package.json +6 -0
  474. package/obsidian/command-handlers/package.json +6 -0
  475. package/obsidian/i18n/{custom-type-options-base → custom-type-options}/package.json +3 -3
  476. package/obsidian/i18n/{default-translations-base → default-translations}/package.json +3 -3
  477. package/package.json +33 -12
  478. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +0 -441
  479. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +0 -264
  480. package/dist/lib/cjs/obsidian/commands/command-base.cjs +0 -255
  481. package/dist/lib/cjs/obsidian/commands/command-base.d.cts +0 -125
  482. package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +0 -282
  483. package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +0 -139
  484. package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +0 -343
  485. package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +0 -191
  486. package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +0 -335
  487. package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +0 -184
  488. package/dist/lib/cjs/obsidian/commands/index.d.cts +0 -6
  489. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +0 -34
  490. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +0 -37
  491. package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +0 -25
  492. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +0 -409
  493. package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +0 -176
  494. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +0 -486
  495. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +0 -186
  496. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +0 -401
  497. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +0 -25
  498. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +0 -122
  499. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +0 -87
  500. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +0 -264
  501. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +0 -329
  502. package/dist/lib/esm/obsidian/commands/command-base.d.mts +0 -125
  503. package/dist/lib/esm/obsidian/commands/command-base.mjs +0 -146
  504. package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +0 -139
  505. package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +0 -176
  506. package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +0 -191
  507. package/dist/lib/esm/obsidian/commands/file-command-base.mjs +0 -240
  508. package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +0 -184
  509. package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +0 -232
  510. package/dist/lib/esm/obsidian/commands/index.d.mts +0 -6
  511. package/dist/lib/esm/obsidian/commands/index.mjs +0 -36
  512. package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +0 -34
  513. package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +0 -46
  514. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +0 -37
  515. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +0 -23
  516. package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +0 -25
  517. package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +0 -23
  518. package/dist/lib/esm/obsidian/modals/modal-base.mjs +0 -52
  519. package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +0 -176
  520. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +0 -317
  521. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +0 -186
  522. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +0 -385
  523. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +0 -302
  524. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +0 -25
  525. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.mjs +0 -22
  526. package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +0 -87
  527. package/dist/lib/esm/obsidian/plugin/plugin-types-base.mjs +0 -22
  528. package/obsidian/Commands/abstract-file-command-base/package.json +0 -6
  529. package/obsidian/Commands/command-base/package.json +0 -6
  530. package/obsidian/Commands/editor-command-base/package.json +0 -6
  531. package/obsidian/Commands/file-command-base/package.json +0 -6
  532. package/obsidian/Commands/folder-command-base/package.json +0 -6
  533. package/obsidian/Commands/index/package.json +0 -6
  534. package/obsidian/Commands/non-editor-command-base/package.json +0 -6
  535. package/obsidian/Commands/package.json +0 -6
  536. package/obsidian/Modals/modal-base/package.json +0 -6
  537. package/obsidian/Plugin/plugin-base/package.json +0 -6
  538. package/obsidian/Plugin/plugin-settings-manager-base/package.json +0 -6
  539. package/obsidian/Plugin/plugin-settings-tab-base/package.json +0 -6
  540. package/obsidian/Plugin/plugin-types-base/package.json +0 -6
  541. /package/dist/lib/cjs/obsidian/modals/{modal-base.d.cts → modal.d.cts} +0 -0
  542. /package/dist/lib/esm/obsidian/modals/{modal-base.d.mts → modal.d.mts} +0 -0
@@ -0,0 +1,56 @@
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/prefer-active-doc -- 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/prefer-active-doc -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
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
+ class CommandHandlerComponent extends AsyncComponentBase {
28
+ /**
29
+ * Creates a new command handler component.
30
+ *
31
+ * @param plugin - The Obsidian plugin instance.
32
+ * @param handler - The command handler to register.
33
+ */
34
+ constructor(plugin, handler) {
35
+ super();
36
+ this.plugin = plugin;
37
+ this.handler = handler;
38
+ }
39
+ plugin;
40
+ handler;
41
+ /**
42
+ * Registers the command with Obsidian and provides runtime context to the handler.
43
+ */
44
+ async onload() {
45
+ this.plugin.addCommand(this.handler.buildCommand());
46
+ const context = {
47
+ activeFileProvider: new AppActiveFileProvider(this.plugin.app),
48
+ menuEventRegistrar: new AppMenuEventRegistrar(this.plugin.app, this)
49
+ };
50
+ await this.handler.onRegistered(context);
51
+ }
52
+ }
53
+ export {
54
+ CommandHandlerComponent
55
+ };
56
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IHdyYXBzIGEge0BsaW5rIENvbW1hbmRIYW5kbGVyfSBhbmQgbWFuYWdlcyBpdHMgcmVnaXN0cmF0aW9uIHdpdGggT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZEhhbmRsZXIsXG4gIENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dFxufSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5cbmltcG9ydCB7IEFzeW5jQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEFwcEFjdGl2ZUZpbGVQcm92aWRlciB9IGZyb20gJy4vYXBwLWFjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB7IEFwcE1lbnVFdmVudFJlZ2lzdHJhciB9IGZyb20gJy4vYXBwLW1lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcblxuLyoqXG4gKiBXcmFwcyBhIHtAbGluayBDb21tYW5kSGFuZGxlcn0gYW5kIHJlZ2lzdGVycyBpdCB3aXRoIE9ic2lkaWFuIG9uIGxvYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tYW5kSGFuZGxlckNvbXBvbmVudCBleHRlbmRzIEFzeW5jQ29tcG9uZW50QmFzZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgT2JzaWRpYW4gcGx1Z2luIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBjb21tYW5kIGhhbmRsZXIgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW46IFBsdWdpbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhlIGNvbW1hbmQgd2l0aCBPYnNpZGlhbiBhbmQgcHJvdmlkZXMgcnVudGltZSBjb250ZXh0IHRvIHRoZSBoYW5kbGVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHRoaXMuaGFuZGxlci5idWlsZENvbW1hbmQoKSk7XG4gICAgY29uc3QgY29udGV4dDogQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0ID0ge1xuICAgICAgYWN0aXZlRmlsZVByb3ZpZGVyOiBuZXcgQXBwQWN0aXZlRmlsZVByb3ZpZGVyKHRoaXMucGx1Z2luLmFwcCksXG4gICAgICBtZW51RXZlbnRSZWdpc3RyYXI6IG5ldyBBcHBNZW51RXZlbnRSZWdpc3RyYXIodGhpcy5wbHVnaW4uYXBwLCB0aGlzKVxuICAgIH07XG4gICAgYXdhaXQgdGhpcy5oYW5kbGVyLm9uUmVnaXN0ZXJlZChjb250ZXh0KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLDBCQUEwQjtBQUNuQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLDZCQUE2QjtBQUsvQixNQUFNLGdDQUFnQyxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU92RCxZQUNZLFFBQ0QsU0FDaEI7QUFDQSxVQUFNO0FBSFc7QUFDRDtBQUFBLEVBR2xCO0FBQUEsRUFKbUI7QUFBQSxFQUNEO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRbEIsTUFBc0IsU0FBd0I7QUFDNUMsU0FBSyxPQUFPLFdBQVcsS0FBSyxRQUFRLGFBQWEsQ0FBQztBQUNsRCxVQUFNLFVBQTZDO0FBQUEsTUFDakQsb0JBQW9CLElBQUksc0JBQXNCLEtBQUssT0FBTyxHQUFHO0FBQUEsTUFDN0Qsb0JBQW9CLElBQUksc0JBQXNCLEtBQUssT0FBTyxLQUFLLElBQUk7QUFBQSxJQUNyRTtBQUNBLFVBQU0sS0FBSyxRQUFRLGFBQWEsT0FBTztBQUFBLEVBQ3pDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,143 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Base class and interfaces for command handlers.
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
+ }
18
+ /**
19
+ * Parameters for creating a command handler.
20
+ */
21
+ export interface CommandHandlerParams {
22
+ /**
23
+ * The icon for the command.
24
+ */
25
+ readonly icon: IconName;
26
+ /**
27
+ * The ID of the command.
28
+ */
29
+ readonly id: string;
30
+ /**
31
+ * The display name of the command.
32
+ */
33
+ readonly name: string;
34
+ /**
35
+ * The name of the plugin that owns this command.
36
+ */
37
+ readonly pluginName: string;
38
+ }
39
+ /**
40
+ * Context provided to command handlers during registration.
41
+ */
42
+ export interface CommandHandlerRegistrationContext {
43
+ /**
44
+ * Provider for accessing the currently active file.
45
+ */
46
+ readonly activeFileProvider: ActiveFileProvider;
47
+ /**
48
+ * Registrar for menu event handlers.
49
+ */
50
+ readonly menuEventRegistrar: MenuEventRegistrar;
51
+ }
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
+ /**
102
+ * Base class for command handlers.
103
+ *
104
+ * Unlike the Obsidian {@link Command} interface, handlers are never mutated by Obsidian.
105
+ * The {@link buildCommand} method produces a plain {@link Command} object for registration.
106
+ */
107
+ export declare abstract class CommandHandler {
108
+ /**
109
+ * The icon for the command.
110
+ */
111
+ readonly icon: IconName;
112
+ /**
113
+ * The ID of the command.
114
+ */
115
+ readonly id: string;
116
+ /**
117
+ * The display name of the command.
118
+ */
119
+ readonly name: string;
120
+ /**
121
+ * The name of the plugin that owns this command.
122
+ */
123
+ protected readonly pluginName: string;
124
+ /**
125
+ * Creates a new command handler.
126
+ *
127
+ * @param params - The parameters for the command handler.
128
+ */
129
+ constructor(params: CommandHandlerParams);
130
+ /**
131
+ * Builds a plain Obsidian {@link Command} object for registration.
132
+ *
133
+ * @returns A new {@link Command} object. Obsidian may mutate this object after registration.
134
+ */
135
+ abstract buildCommand(): Command;
136
+ /**
137
+ * Called after the command has been registered with Obsidian.
138
+ * Subclasses use the provided context to register menu event handlers.
139
+ *
140
+ * @param _context - The registration context providing runtime capabilities.
141
+ */
142
+ onRegistered(_context: CommandHandlerRegistrationContext): Promise<void>;
143
+ }
@@ -0,0 +1,66 @@
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/prefer-active-doc -- 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/prefer-active-doc -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ import { noopAsync } from "../../function.mjs";
25
+ class CommandHandler {
26
+ /**
27
+ * The icon for the command.
28
+ */
29
+ icon;
30
+ /**
31
+ * The ID of the command.
32
+ */
33
+ id;
34
+ /**
35
+ * The display name of the command.
36
+ */
37
+ name;
38
+ /**
39
+ * The name of the plugin that owns this command.
40
+ */
41
+ pluginName;
42
+ /**
43
+ * Creates a new command handler.
44
+ *
45
+ * @param params - The parameters for the command handler.
46
+ */
47
+ constructor(params) {
48
+ this.icon = params.icon;
49
+ this.id = params.id;
50
+ this.name = params.name;
51
+ this.pluginName = params.pluginName;
52
+ }
53
+ /**
54
+ * Called after the command has been registered with Obsidian.
55
+ * Subclasses use the provided context to register menu event handlers.
56
+ *
57
+ * @param _context - The registration context providing runtime capabilities.
58
+ */
59
+ async onRegistered(_context) {
60
+ await noopAsync();
61
+ }
62
+ }
63
+ export {
64
+ CommandHandler
65
+ };
66
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQmFzZSBjbGFzcyBhbmQgaW50ZXJmYWNlcyBmb3IgY29tbWFuZCBoYW5kbGVycy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmQsXG4gIEVkaXRvcixcbiAgSWNvbk5hbWUsXG4gIE1hcmtkb3duRmlsZUluZm8sXG4gIE1lbnUsXG4gIFRBYnN0cmFjdEZpbGUsXG4gIFRGaWxlLFxuICBXb3Jrc3BhY2VMZWFmXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY3VycmVudGx5IGFjdGl2ZSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUZpbGVQcm92aWRlciB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIGZpbGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhY3RpdmUgZmlsZSwgb3IgYG51bGxgIGlmIG5vIGZpbGUgaXMgYWN0aXZlLlxuICAgKi9cbiAgZ2V0QWN0aXZlRmlsZSgpOiBudWxsIHwgVEZpbGU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYSBjb21tYW5kIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZEhhbmRsZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbjogSWNvbk5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdGhhdCBvd25zIHRoaXMgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250ZXh0IHByb3ZpZGVkIHRvIGNvbW1hbmQgaGFuZGxlcnMgZHVyaW5nIHJlZ2lzdHJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kSGFuZGxlclJlZ2lzdHJhdGlvbkNvbnRleHQge1xuICAvKipcbiAgICogUHJvdmlkZXIgZm9yIGFjY2Vzc2luZyB0aGUgY3VycmVudGx5IGFjdGl2ZSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlRmlsZVByb3ZpZGVyOiBBY3RpdmVGaWxlUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhciBmb3IgbWVudSBldmVudCBoYW5kbGVycy5cbiAgICovXG4gIHJlYWRvbmx5IG1lbnVFdmVudFJlZ2lzdHJhcjogTWVudUV2ZW50UmVnaXN0cmFyO1xufVxuXG4vKipcbiAqIEhhbmRsZXIgZm9yIHRoZSBlZGl0b3IgY29udGV4dCBtZW51IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBtZW51IC0gVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICogQHBhcmFtIGVkaXRvciAtIFRoZSBlZGl0b3IgaW5zdGFuY2UuXG4gKiBAcGFyYW0gY3R4IC0gVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dC5cbiAqL1xuZXhwb3J0IHR5cGUgRWRpdG9yTWVudUV2ZW50SGFuZGxlciA9IChtZW51OiBNZW51LCBlZGl0b3I6IEVkaXRvciwgY3R4OiBNYXJrZG93bkZpbGVJbmZvKSA9PiB2b2lkO1xuXG4vKipcbiAqIEhhbmRsZXIgZm9yIHRoZSBzaW5nbGUtZmlsZSBjb250ZXh0IG1lbnUgZXZlbnQuXG4gKlxuICogQHBhcmFtIG1lbnUgLSBUaGUgbWVudSB0byBhZGQgaXRlbXMgdG8uXG4gKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyLlxuICogQHBhcmFtIHNvdXJjZSAtIFRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50LlxuICogQHBhcmFtIGxlYWYgLSBUaGUgd29ya3NwYWNlIGxlYWYsIGlmIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgRmlsZU1lbnVFdmVudEhhbmRsZXIgPSAobWVudTogTWVudSwgYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlLCBzb3VyY2U6IHN0cmluZywgbGVhZj86IFdvcmtzcGFjZUxlYWYpID0+IHZvaWQ7XG5cbi8qKlxuICogSGFuZGxlciBmb3IgdGhlIG11bHRpLWZpbGUgY29udGV4dCBtZW51IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBtZW51IC0gVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgZmlsZXMgb3IgZm9sZGVycy5cbiAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBldmVudC5cbiAqIEBwYXJhbSBsZWFmIC0gVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbGVzTWVudUV2ZW50SGFuZGxlciA9IChtZW51OiBNZW51LCBhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10sIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZikgPT4gdm9pZDtcblxuLyoqXG4gKiBSZWdpc3RlcnMgbWVudSBldmVudCBoYW5kbGVycyB3aXRoIGxpZmVjeWNsZSBtYW5hZ2VtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVFdmVudFJlZ2lzdHJhciB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZWRpdG9yIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyRWRpdG9yTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBFZGl0b3JNZW51RXZlbnRIYW5kbGVyKTogdm9pZDtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgaGFuZGxlciBmb3IgdGhlIHNpbmdsZS1maWxlIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHJlZ2lzdGVyRmlsZU1lbnVFdmVudEhhbmRsZXIoaGFuZGxlcjogRmlsZU1lbnVFdmVudEhhbmRsZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgbXVsdGktZmlsZSBjb250ZXh0IG1lbnUgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBoYW5kbGVyIC0gVGhlIGhhbmRsZXIgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICByZWdpc3RlckZpbGVzTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlc01lbnVFdmVudEhhbmRsZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNvbW1hbmQgaGFuZGxlcnMuXG4gKlxuICogVW5saWtlIHRoZSBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gaW50ZXJmYWNlLCBoYW5kbGVycyBhcmUgbmV2ZXIgbXV0YXRlZCBieSBPYnNpZGlhbi5cbiAqIFRoZSB7QGxpbmsgYnVpbGRDb21tYW5kfSBtZXRob2QgcHJvZHVjZXMgYSBwbGFpbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IGZvciByZWdpc3RyYXRpb24uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21tYW5kSGFuZGxlciB7XG4gIC8qKlxuICAgKiBUaGUgaWNvbiBmb3IgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbjogSWNvbk5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiB0aGF0IG93bnMgdGhpcyBjb21tYW5kLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBjb21tYW5kIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbW1hbmQgaGFuZGxlci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IENvbW1hbmRIYW5kbGVyUGFyYW1zKSB7XG4gICAgdGhpcy5pY29uID0gcGFyYW1zLmljb247XG4gICAgdGhpcy5pZCA9IHBhcmFtcy5pZDtcbiAgICB0aGlzLm5hbWUgPSBwYXJhbXMubmFtZTtcbiAgICB0aGlzLnBsdWdpbk5hbWUgPSBwYXJhbXMucGx1Z2luTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBwbGFpbiBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IGZvciByZWdpc3RyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEEgbmV3IHtAbGluayBDb21tYW5kfSBvYmplY3QuIE9ic2lkaWFuIG1heSBtdXRhdGUgdGhpcyBvYmplY3QgYWZ0ZXIgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJ1aWxkQ29tbWFuZCgpOiBDb21tYW5kO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgdGhlIGNvbW1hbmQgaGFzIGJlZW4gcmVnaXN0ZXJlZCB3aXRoIE9ic2lkaWFuLlxuICAgKiBTdWJjbGFzc2VzIHVzZSB0aGUgcHJvdmlkZWQgY29udGV4dCB0byByZWdpc3RlciBtZW51IGV2ZW50IGhhbmRsZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gX2NvbnRleHQgLSBUaGUgcmVnaXN0cmF0aW9uIGNvbnRleHQgcHJvdmlkaW5nIHJ1bnRpbWUgY2FwYWJpbGl0aWVzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9uUmVnaXN0ZXJlZChfY29udGV4dDogQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLFNBQVMsaUJBQWlCO0FBbUhuQixNQUFlLGVBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9aLFlBQVksUUFBOEI7QUFDL0MsU0FBSyxPQUFPLE9BQU87QUFDbkIsU0FBSyxLQUFLLE9BQU87QUFDakIsU0FBSyxPQUFPLE9BQU87QUFDbkIsU0FBSyxhQUFhLE9BQU87QUFBQSxFQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZUEsTUFBYSxhQUFhLFVBQTREO0FBQ3BGLFVBQU0sVUFBVTtBQUFBLEVBQ2xCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Command handler for editor commands with optional editor menu integration.
5
+ */
6
+ import type { Command, Editor, IconName, MarkdownFileInfo } from 'obsidian';
7
+ import type { CommandHandlerParams, CommandHandlerRegistrationContext } from './command-handler.mjs';
8
+ import { CommandHandler } from './command-handler.mjs';
9
+ /**
10
+ * Parameters for creating an editor command handler.
11
+ */
12
+ export interface EditorCommandHandlerParams extends CommandHandlerParams {
13
+ /**
14
+ * The item name to use in the editor menu.
15
+ */
16
+ readonly editorMenuItemName?: string | undefined;
17
+ /**
18
+ * The section to use in the editor menu.
19
+ */
20
+ readonly editorMenuSection?: string | undefined;
21
+ /**
22
+ * The icon to use in the editor menu submenu.
23
+ */
24
+ readonly editorMenuSubmenuIcon?: IconName | undefined;
25
+ /**
26
+ * Whether to add the command to a submenu.
27
+ */
28
+ readonly shouldAddCommandToSubmenu?: boolean | undefined;
29
+ }
30
+ /**
31
+ * Command handler for editor commands.
32
+ *
33
+ * Subclasses override {@link canExecuteEditor} and {@link executeEditor} to provide behavior.
34
+ * Optionally integrates with the editor context menu via {@link shouldAddToEditorMenu}.
35
+ */
36
+ export declare abstract class EditorCommandHandler extends CommandHandler {
37
+ /**
38
+ * Gets the item name to use in the editor menu.
39
+ *
40
+ * @returns The item name, or `undefined` to use the command name.
41
+ */
42
+ protected get editorMenuItemName(): string | undefined;
43
+ /**
44
+ * Gets the section to use in the editor menu.
45
+ *
46
+ * @returns The section name, or `undefined` to use the plugin name.
47
+ */
48
+ protected get editorMenuSection(): string | undefined;
49
+ /**
50
+ * Gets the icon to use in the editor menu submenu.
51
+ *
52
+ * @returns The icon, or `undefined` for no icon.
53
+ */
54
+ protected get editorMenuSubmenuIcon(): IconName | undefined;
55
+ /**
56
+ * Gets whether to add the command to a submenu.
57
+ *
58
+ * @returns Whether to add to a submenu.
59
+ */
60
+ protected get shouldAddCommandToSubmenu(): boolean | undefined;
61
+ private readonly _editorMenuItemName?;
62
+ private readonly _editorMenuSection?;
63
+ private readonly _editorMenuSubmenuIcon?;
64
+ private readonly _shouldAddCommandToSubmenu?;
65
+ /**
66
+ * Creates a new editor command handler.
67
+ *
68
+ * @param params - The parameters for the editor command handler.
69
+ */
70
+ constructor(params: EditorCommandHandlerParams);
71
+ /**
72
+ * Builds a plain Obsidian {@link Command} object with an `editorCheckCallback`.
73
+ *
74
+ * @returns A new {@link Command} object.
75
+ */
76
+ buildCommand(): Command;
77
+ /**
78
+ * Registers the editor-menu event handler.
79
+ *
80
+ * @param context - The registration context.
81
+ */
82
+ onRegistered(context: CommandHandlerRegistrationContext): Promise<void>;
83
+ /**
84
+ * Checks whether the command can execute for the given editor and context.
85
+ *
86
+ * @param _editor - The editor instance.
87
+ * @param _ctx - The markdown file context.
88
+ * @returns Whether the command can execute.
89
+ */
90
+ protected canExecuteEditor(_editor: Editor, _ctx: MarkdownFileInfo): boolean;
91
+ /**
92
+ * Executes the command for the given editor and context.
93
+ *
94
+ * @param editor - The editor instance.
95
+ * @param ctx - The markdown file context.
96
+ */
97
+ protected abstract executeEditor(editor: Editor, ctx: MarkdownFileInfo): Promise<void>;
98
+ /**
99
+ * Checks whether the command should appear in the command palette.
100
+ *
101
+ * @returns Whether to add to the command palette.
102
+ */
103
+ protected shouldAddToCommandPalette(): boolean;
104
+ /**
105
+ * Checks whether the command should appear in the editor context menu.
106
+ *
107
+ * @param _editor - The editor instance.
108
+ * @param _ctx - The markdown file context.
109
+ * @returns Whether to add to the editor menu.
110
+ */
111
+ protected shouldAddToEditorMenu(_editor: Editor, _ctx: MarkdownFileInfo): boolean;
112
+ private editorCheckCallback;
113
+ private handleEditorMenu;
114
+ }
@@ -0,0 +1,161 @@
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/prefer-active-doc -- 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/prefer-active-doc -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ import { invokeAsyncSafely } from "../../async.mjs";
25
+ import { CommandHandler } from "./command-handler.mjs";
26
+ class EditorCommandHandler extends CommandHandler {
27
+ /**
28
+ * Gets the item name to use in the editor menu.
29
+ *
30
+ * @returns The item name, or `undefined` to use the command name.
31
+ */
32
+ get editorMenuItemName() {
33
+ return this._editorMenuItemName;
34
+ }
35
+ /**
36
+ * Gets the section to use in the editor menu.
37
+ *
38
+ * @returns The section name, or `undefined` to use the plugin name.
39
+ */
40
+ get editorMenuSection() {
41
+ return this._editorMenuSection;
42
+ }
43
+ /**
44
+ * Gets the icon to use in the editor menu submenu.
45
+ *
46
+ * @returns The icon, or `undefined` for no icon.
47
+ */
48
+ get editorMenuSubmenuIcon() {
49
+ return this._editorMenuSubmenuIcon;
50
+ }
51
+ /**
52
+ * Gets whether to add the command to a submenu.
53
+ *
54
+ * @returns Whether to add to a submenu.
55
+ */
56
+ get shouldAddCommandToSubmenu() {
57
+ return this._shouldAddCommandToSubmenu;
58
+ }
59
+ _editorMenuItemName;
60
+ _editorMenuSection;
61
+ _editorMenuSubmenuIcon;
62
+ _shouldAddCommandToSubmenu;
63
+ /**
64
+ * Creates a new editor command handler.
65
+ *
66
+ * @param params - The parameters for the editor command handler.
67
+ */
68
+ constructor(params) {
69
+ super(params);
70
+ this._editorMenuItemName = params.editorMenuItemName;
71
+ this._editorMenuSection = params.editorMenuSection;
72
+ this._editorMenuSubmenuIcon = params.editorMenuSubmenuIcon;
73
+ this._shouldAddCommandToSubmenu = params.shouldAddCommandToSubmenu;
74
+ }
75
+ /**
76
+ * Builds a plain Obsidian {@link Command} object with an `editorCheckCallback`.
77
+ *
78
+ * @returns A new {@link Command} object.
79
+ */
80
+ buildCommand() {
81
+ return {
82
+ editorCheckCallback: (checking, editor, ctx) => this.editorCheckCallback(checking, editor, ctx),
83
+ icon: this.icon,
84
+ id: this.id,
85
+ name: this.name
86
+ };
87
+ }
88
+ /**
89
+ * Registers the editor-menu event handler.
90
+ *
91
+ * @param context - The registration context.
92
+ */
93
+ async onRegistered(context) {
94
+ await super.onRegistered(context);
95
+ context.menuEventRegistrar.registerEditorMenuEventHandler(this.handleEditorMenu.bind(this));
96
+ }
97
+ /**
98
+ * Checks whether the command can execute for the given editor and context.
99
+ *
100
+ * @param _editor - The editor instance.
101
+ * @param _ctx - The markdown file context.
102
+ * @returns Whether the command can execute.
103
+ */
104
+ canExecuteEditor(_editor, _ctx) {
105
+ return true;
106
+ }
107
+ /**
108
+ * Checks whether the command should appear in the command palette.
109
+ *
110
+ * @returns Whether to add to the command palette.
111
+ */
112
+ shouldAddToCommandPalette() {
113
+ return true;
114
+ }
115
+ /**
116
+ * Checks whether the command should appear in the editor context menu.
117
+ *
118
+ * @param _editor - The editor instance.
119
+ * @param _ctx - The markdown file context.
120
+ * @returns Whether to add to the editor menu.
121
+ */
122
+ shouldAddToEditorMenu(_editor, _ctx) {
123
+ return false;
124
+ }
125
+ editorCheckCallback(checking, editor, ctx) {
126
+ if (!this.shouldAddToCommandPalette()) {
127
+ return false;
128
+ }
129
+ if (!this.canExecuteEditor(editor, ctx)) {
130
+ return false;
131
+ }
132
+ if (!checking) {
133
+ invokeAsyncSafely(() => this.executeEditor(editor, ctx));
134
+ }
135
+ return true;
136
+ }
137
+ handleEditorMenu(menu, editor, ctx) {
138
+ if (!this.shouldAddToEditorMenu(editor, ctx)) {
139
+ return;
140
+ }
141
+ if (!this.canExecuteEditor(editor, ctx)) {
142
+ return;
143
+ }
144
+ const section = this.editorMenuSection ?? this.pluginName;
145
+ if (this.shouldAddCommandToSubmenu) {
146
+ menu.setSectionSubmenu(section, {
147
+ icon: this.editorMenuSubmenuIcon ?? "",
148
+ title: section
149
+ });
150
+ }
151
+ menu.addItem((item) => {
152
+ item.setTitle(this.editorMenuItemName ?? this.name).setIcon(this.icon).setSection(section).onClick(() => {
153
+ invokeAsyncSafely(() => this.executeEditor(editor, ctx));
154
+ });
155
+ });
156
+ }
157
+ }
158
+ export {
159
+ EditorCommandHandler
160
+ };
161
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZWRpdG9yLWNvbW1hbmQtaGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbW1hbmQgaGFuZGxlciBmb3IgZWRpdG9yIGNvbW1hbmRzIHdpdGggb3B0aW9uYWwgZWRpdG9yIG1lbnUgaW50ZWdyYXRpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kLFxuICBFZGl0b3IsXG4gIEljb25OYW1lLFxuICBNYXJrZG93bkZpbGVJbmZvLFxuICBNZW51XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kSGFuZGxlclBhcmFtcyxcbiAgQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0XG59IGZyb20gJy4vY29tbWFuZC1oYW5kbGVyLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi8uLi9hc3luYy50cyc7XG5pbXBvcnQgeyBDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVyLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBhbiBlZGl0b3IgY29tbWFuZCBoYW5kbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvckNvbW1hbmRIYW5kbGVyUGFyYW1zIGV4dGVuZHMgQ29tbWFuZEhhbmRsZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGl0ZW0gbmFtZSB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUgc3VibWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvck1lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCB0aGUgY29tbWFuZCB0byBhIHN1Ym1lbnUuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRBZGRDb21tYW5kVG9TdWJtZW51PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb21tYW5kIGhhbmRsZXIgZm9yIGVkaXRvciBjb21tYW5kcy5cbiAqXG4gKiBTdWJjbGFzc2VzIG92ZXJyaWRlIHtAbGluayBjYW5FeGVjdXRlRWRpdG9yfSBhbmQge0BsaW5rIGV4ZWN1dGVFZGl0b3J9IHRvIHByb3ZpZGUgYmVoYXZpb3IuXG4gKiBPcHRpb25hbGx5IGludGVncmF0ZXMgd2l0aCB0aGUgZWRpdG9yIGNvbnRleHQgbWVudSB2aWEge0BsaW5rIHNob3VsZEFkZFRvRWRpdG9yTWVudX0uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFZGl0b3JDb21tYW5kSGFuZGxlciBleHRlbmRzIENvbW1hbmRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGl0ZW0gbmFtZSB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBuYW1lLCBvciBgdW5kZWZpbmVkYCB0byB1c2UgdGhlIGNvbW1hbmQgbmFtZS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZWRpdG9yTWVudUl0ZW1OYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvck1lbnVJdGVtTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWN0aW9uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZWN0aW9uIG5hbWUsIG9yIGB1bmRlZmluZWRgIHRvIHVzZSB0aGUgcGx1Z2luIG5hbWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRvck1lbnVTZWN0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvck1lbnVTZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGljb24gdG8gdXNlIGluIHRoZSBlZGl0b3IgbWVudSBzdWJtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaWNvbiwgb3IgYHVuZGVmaW5lZGAgZm9yIG5vIGljb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRvck1lbnVTdWJtZW51SWNvbigpOiBJY29uTmFtZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvck1lbnVTdWJtZW51SWNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgdG8gYWRkIHRoZSBjb21tYW5kIHRvIGEgc3VibWVudS5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gYSBzdWJtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzaG91bGRBZGRDb21tYW5kVG9TdWJtZW51KCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0b3JNZW51U2VjdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yTWVudVN1Ym1lbnVJY29uPzogSWNvbk5hbWUgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGVkaXRvciBjb21tYW5kIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGVkaXRvciBjb21tYW5kIGhhbmRsZXIuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBFZGl0b3JDb21tYW5kSGFuZGxlclBhcmFtcykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy5fZWRpdG9yTWVudUl0ZW1OYW1lID0gcGFyYW1zLmVkaXRvck1lbnVJdGVtTmFtZTtcbiAgICB0aGlzLl9lZGl0b3JNZW51U2VjdGlvbiA9IHBhcmFtcy5lZGl0b3JNZW51U2VjdGlvbjtcbiAgICB0aGlzLl9lZGl0b3JNZW51U3VibWVudUljb24gPSBwYXJhbXMuZWRpdG9yTWVudVN1Ym1lbnVJY29uO1xuICAgIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUgPSBwYXJhbXMuc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBwbGFpbiBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IHdpdGggYW4gYGVkaXRvckNoZWNrQ2FsbGJhY2tgLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJ1aWxkQ29tbWFuZCgpOiBDb21tYW5kIHtcbiAgICByZXR1cm4ge1xuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogKGNoZWNraW5nLCBlZGl0b3IsIGN0eCkgPT4gdGhpcy5lZGl0b3JDaGVja0NhbGxiYWNrKGNoZWNraW5nLCBlZGl0b3IsIGN0eCksXG4gICAgICBpY29uOiB0aGlzLmljb24sXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG5hbWU6IHRoaXMubmFtZVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBlZGl0b3ItbWVudSBldmVudCBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSByZWdpc3RyYXRpb24gY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvblJlZ2lzdGVyZWQoY29udGV4dDogQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25SZWdpc3RlcmVkKGNvbnRleHQpO1xuICAgIGNvbnRleHQubWVudUV2ZW50UmVnaXN0cmFyLnJlZ2lzdGVyRWRpdG9yTWVudUV2ZW50SGFuZGxlcih0aGlzLmhhbmRsZUVkaXRvck1lbnUuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgZm9yIHRoZSBnaXZlbiBlZGl0b3IgYW5kIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBfZWRpdG9yIC0gVGhlIGVkaXRvciBpbnN0YW5jZS5cbiAgICogQHBhcmFtIF9jdHggLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNhbkV4ZWN1dGVFZGl0b3IoX2VkaXRvcjogRWRpdG9yLCBfY3R4OiBNYXJrZG93bkZpbGVJbmZvKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGNvbW1hbmQgZm9yIHRoZSBnaXZlbiBlZGl0b3IgYW5kIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBleGVjdXRlRWRpdG9yKGVkaXRvcjogRWRpdG9yLCBjdHg6IE1hcmtkb3duRmlsZUluZm8pOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYXBwZWFyIGluIHRoZSBjb21tYW5kIHBhbGV0dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRvIHRoZSBjb21tYW5kIHBhbGV0dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYXBwZWFyIGluIHRoZSBlZGl0b3IgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gX2VkaXRvciAtIFRoZSBlZGl0b3IgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBfY3R4IC0gVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dC5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZEFkZFRvRWRpdG9yTWVudShfZWRpdG9yOiBFZGl0b3IsIF9jdHg6IE1hcmtkb3duRmlsZUluZm8pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGVkaXRvckNoZWNrQ2FsbGJhY2soY2hlY2tpbmc6IGJvb2xlYW4sIGVkaXRvcjogRWRpdG9yLCBjdHg6IE1hcmtkb3duRmlsZUluZm8pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNhbkV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjdHgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFjaGVja2luZykge1xuICAgICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdGhpcy5leGVjdXRlRWRpdG9yKGVkaXRvciwgY3R4KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVkaXRvck1lbnUobWVudTogTWVudSwgZWRpdG9yOiBFZGl0b3IsIGN0eDogTWFya2Rvd25GaWxlSW5mbyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0VkaXRvck1lbnUoZWRpdG9yLCBjdHgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNhbkV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjdHgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuZWRpdG9yTWVudVNlY3Rpb24gPz8gdGhpcy5wbHVnaW5OYW1lO1xuICAgIGlmICh0aGlzLnNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUpIHtcbiAgICAgIG1lbnUuc2V0U2VjdGlvblN1Ym1lbnUoc2VjdGlvbiwge1xuICAgICAgICBpY29uOiB0aGlzLmVkaXRvck1lbnVTdWJtZW51SWNvbiA/PyAnJyxcbiAgICAgICAgdGl0bGU6IHNlY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG1lbnUuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5lZGl0b3JNZW51SXRlbU5hbWUgPz8gdGhpcy5uYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5zZXRTZWN0aW9uKHNlY3Rpb24pXG4gICAgICAgIC5vbkNsaWNrKCgpID0+IHtcbiAgICAgICAgICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiB0aGlzLmV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjdHgpKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsc0JBQXNCO0FBaUN4QixNQUFlLDZCQUE2QixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTWhFLElBQWMscUJBQXlDO0FBQ3JELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLG9CQUF3QztBQUNwRCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyx3QkFBOEM7QUFDMUQsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsNEJBQWlEO0FBQzdELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVpQjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBb0M7QUFDckQsVUFBTSxNQUFNO0FBQ1osU0FBSyxzQkFBc0IsT0FBTztBQUNsQyxTQUFLLHFCQUFxQixPQUFPO0FBQ2pDLFNBQUsseUJBQXlCLE9BQU87QUFDckMsU0FBSyw2QkFBNkIsT0FBTztBQUFBLEVBQzNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2dCLGVBQXdCO0FBQ3RDLFdBQU87QUFBQSxNQUNMLHFCQUFxQixDQUFDLFVBQVUsUUFBUSxRQUFRLEtBQUssb0JBQW9CLFVBQVUsUUFBUSxHQUFHO0FBQUEsTUFDOUYsTUFBTSxLQUFLO0FBQUEsTUFDWCxJQUFJLEtBQUs7QUFBQSxNQUNULE1BQU0sS0FBSztBQUFBLElBQ2I7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBc0IsYUFBYSxTQUEyRDtBQUM1RixVQUFNLE1BQU0sYUFBYSxPQUFPO0FBQ2hDLFlBQVEsbUJBQW1CLCtCQUErQixLQUFLLGlCQUFpQixLQUFLLElBQUksQ0FBQztBQUFBLEVBQzVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNVLGlCQUFpQixTQUFpQixNQUFpQztBQUMzRSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWVVLDRCQUFxQztBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTVSxzQkFBc0IsU0FBaUIsTUFBaUM7QUFDaEYsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVRLG9CQUFvQixVQUFtQixRQUFnQixLQUFnQztBQUM3RixRQUFJLENBQUMsS0FBSywwQkFBMEIsR0FBRztBQUNyQyxhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksQ0FBQyxLQUFLLGlCQUFpQixRQUFRLEdBQUcsR0FBRztBQUN2QyxhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksQ0FBQyxVQUFVO0FBQ2Isd0JBQWtCLE1BQU0sS0FBSyxjQUFjLFFBQVEsR0FBRyxDQUFDO0FBQUEsSUFDekQ7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRVEsaUJBQWlCLE1BQVksUUFBZ0IsS0FBNkI7QUFDaEYsUUFBSSxDQUFDLEtBQUssc0JBQXNCLFFBQVEsR0FBRyxHQUFHO0FBQzVDO0FBQUEsSUFDRjtBQUVBLFFBQUksQ0FBQyxLQUFLLGlCQUFpQixRQUFRLEdBQUcsR0FBRztBQUN2QztBQUFBLElBQ0Y7QUFFQSxVQUFNLFVBQVUsS0FBSyxxQkFBcUIsS0FBSztBQUMvQyxRQUFJLEtBQUssMkJBQTJCO0FBQ2xDLFdBQUssa0JBQWtCLFNBQVM7QUFBQSxRQUM5QixNQUFNLEtBQUsseUJBQXlCO0FBQUEsUUFDcEMsT0FBTztBQUFBLE1BQ1QsQ0FBQztBQUFBLElBQ0g7QUFFQSxTQUFLLFFBQVEsQ0FBQyxTQUFTO0FBQ3JCLFdBQ0csU0FBUyxLQUFLLHNCQUFzQixLQUFLLElBQUksRUFDN0MsUUFBUSxLQUFLLElBQUksRUFDakIsV0FBVyxPQUFPLEVBQ2xCLFFBQVEsTUFBTTtBQUNiLDBCQUFrQixNQUFNLEtBQUssY0FBYyxRQUFRLEdBQUcsQ0FBQztBQUFBLE1BQ3pELENBQUM7QUFBQSxJQUNMLENBQUM7QUFBQSxFQUNIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Command handler for file-specific commands (TFile only, not TFolder).
5
+ */
6
+ import type { TAbstractFile, TFile, WorkspaceLeaf } from 'obsidian';
7
+ import type { AbstractFileCommandHandlerParams } from './abstract-file-command-handler.mjs';
8
+ import { AbstractFileCommandHandler } from './abstract-file-command-handler.mjs';
9
+ /**
10
+ * Command handler for file-specific commands.
11
+ *
12
+ * Filters abstract files to only accept {@link TFile} instances.
13
+ * Subclasses override {@link canExecuteFile} and {@link executeFile}.
14
+ */
15
+ export declare abstract class FileCommandHandler extends AbstractFileCommandHandler {
16
+ /**
17
+ * Creates a new file command handler.
18
+ *
19
+ * @param params - The parameters for the file command handler.
20
+ */
21
+ constructor(params: AbstractFileCommandHandlerParams);
22
+ /**
23
+ * Filters to only accept TFile instances, then delegates to {@link canExecuteFile}.
24
+ *
25
+ * @param abstractFile - The file or folder.
26
+ * @returns Whether the command can execute.
27
+ */
28
+ protected canExecuteAbstractFile(abstractFile: TAbstractFile): boolean;
29
+ /**
30
+ * Filters to only accept TFile arrays, then delegates to {@link canExecuteFiles}.
31
+ *
32
+ * @param abstractFiles - The files or folders.
33
+ * @returns Whether the command can execute.
34
+ */
35
+ protected canExecuteAbstractFiles(abstractFiles: TAbstractFile[]): boolean;
36
+ /**
37
+ * Checks whether the command can execute for a single file.
38
+ *
39
+ * @param _file - The file.
40
+ * @returns Whether the command can execute.
41
+ */
42
+ protected canExecuteFile(_file: TFile): boolean;
43
+ /**
44
+ * Checks whether the command can execute for multiple files.
45
+ * Default implementation checks each file individually.
46
+ *
47
+ * @param files - The files.
48
+ * @returns Whether the command can execute.
49
+ */
50
+ protected canExecuteFiles(files: TFile[]): boolean;
51
+ /**
52
+ * Delegates to {@link executeFile}.
53
+ *
54
+ * @param abstractFile - The file or folder.
55
+ */
56
+ protected executeAbstractFile(abstractFile: TAbstractFile): Promise<void>;
57
+ /**
58
+ * Delegates to {@link executeFiles}.
59
+ *
60
+ * @param abstractFiles - The files or folders.
61
+ */
62
+ protected executeAbstractFiles(abstractFiles: TAbstractFile[]): Promise<void>;
63
+ /**
64
+ * Executes the command for a single file.
65
+ *
66
+ * @param file - The file.
67
+ */
68
+ protected abstract executeFile(file: TFile): Promise<void>;
69
+ /**
70
+ * Executes the command for multiple files.
71
+ * Default implementation executes sequentially.
72
+ *
73
+ * @param files - The files.
74
+ */
75
+ protected executeFiles(files: TFile[]): Promise<void>;
76
+ /**
77
+ * Filters to only show menu for TFile instances.
78
+ *
79
+ * @param abstractFile - The file or folder.
80
+ * @param source - The source of the event.
81
+ * @param leaf - The workspace leaf, if available.
82
+ * @returns Whether to add to the file menu.
83
+ */
84
+ protected shouldAddToAbstractFileMenu(abstractFile: TAbstractFile, source: string, leaf?: WorkspaceLeaf): boolean;
85
+ /**
86
+ * Filters to only show menu for TFile arrays.
87
+ *
88
+ * @param abstractFiles - The files or folders.
89
+ * @param source - The source of the event.
90
+ * @param leaf - The workspace leaf, if available.
91
+ * @returns Whether to add to the files menu.
92
+ */
93
+ protected shouldAddToAbstractFilesMenu(abstractFiles: TAbstractFile[], source: string, leaf?: WorkspaceLeaf): boolean;
94
+ /**
95
+ * Checks whether the command should appear in the single-file context menu.
96
+ *
97
+ * @param _file - The file.
98
+ * @param _source - The source of the event.
99
+ * @param _leaf - The workspace leaf, if available.
100
+ * @returns Whether to add to the file menu.
101
+ */
102
+ protected shouldAddToFileMenu(_file: TFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
103
+ /**
104
+ * Checks whether the command should appear in the multi-file context menu.
105
+ *
106
+ * @param _files - The files.
107
+ * @param _source - The source of the event.
108
+ * @param _leaf - The workspace leaf, if available.
109
+ * @returns Whether to add to the files menu.
110
+ */
111
+ protected shouldAddToFilesMenu(_files: TFile[], _source: string, _leaf?: WorkspaceLeaf): boolean;
112
+ }