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.
- package/CHANGELOG.md +6 -0
- package/dist/lib/cjs/abort-controller.cjs +6 -4
- package/dist/lib/cjs/array.cjs +5 -3
- package/dist/lib/cjs/async-events.cjs +7 -5
- package/dist/lib/cjs/async.cjs +6 -4
- package/dist/lib/cjs/blob.cjs +6 -4
- package/dist/lib/cjs/codemirror/index.cjs +5 -3
- package/dist/lib/cjs/codemirror/state-field-spec.cjs +5 -3
- package/dist/lib/cjs/css-class.cjs +5 -3
- package/dist/lib/cjs/debug-controller.cjs +5 -3
- package/dist/lib/cjs/debug.cjs +5 -3
- package/dist/lib/cjs/enum.cjs +5 -3
- package/dist/lib/cjs/error.cjs +5 -3
- package/dist/lib/cjs/function.cjs +5 -3
- package/dist/lib/cjs/html-element.cjs +18 -16
- package/dist/lib/cjs/index.cjs +5 -3
- package/dist/lib/cjs/library.cjs +6 -4
- package/dist/lib/cjs/object-utils.cjs +5 -3
- package/dist/lib/cjs/obsidian/@types/i18next.d.cts +3 -3
- package/dist/lib/cjs/obsidian/app.cjs +5 -3
- package/dist/lib/cjs/obsidian/async-with-notice.cjs +8 -6
- package/dist/lib/cjs/obsidian/attachment-path.cjs +5 -3
- package/dist/lib/cjs/obsidian/backlink.cjs +5 -3
- package/dist/lib/cjs/obsidian/callout.cjs +5 -3
- package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +5 -3
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +355 -0
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +178 -0
- package/dist/lib/cjs/obsidian/{commands/index.cjs → command-handlers/app-active-file-provider.cjs} +29 -34
- package/dist/lib/cjs/obsidian/command-handlers/app-active-file-provider.d.cts +25 -0
- package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +173 -0
- package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +41 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +164 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +26 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +174 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +143 -0
- package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +269 -0
- package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +114 -0
- package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +261 -0
- package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +112 -0
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +261 -0
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +112 -0
- package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +177 -0
- package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +38 -0
- package/dist/lib/cjs/obsidian/command-handlers/index.cjs +170 -0
- package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +9 -0
- package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +6 -4
- package/dist/lib/cjs/obsidian/components/async-component.cjs +164 -0
- package/dist/lib/cjs/obsidian/components/async-component.d.cts +28 -0
- package/dist/lib/cjs/obsidian/components/async-events-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/index.cjs +8 -3
- package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +7 -5
- package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +5 -3
- package/dist/lib/cjs/obsidian/constructors/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/dataview-link.cjs +5 -3
- package/dist/lib/cjs/obsidian/dataview.cjs +6 -4
- package/dist/lib/cjs/obsidian/editor.cjs +5 -3
- package/dist/lib/cjs/obsidian/file-change.cjs +5 -3
- package/dist/lib/cjs/obsidian/file-manager.cjs +5 -3
- package/dist/lib/cjs/obsidian/file-system.cjs +5 -3
- package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +5 -3
- package/dist/lib/cjs/obsidian/frontmatter.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/{custom-type-options-base.cjs → custom-type-options.cjs} +7 -5
- package/dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts +37 -0
- package/dist/lib/cjs/obsidian/{plugin/plugin-settings-wrapper.cjs → i18n/default-translations.cjs} +8 -5
- package/dist/lib/cjs/obsidian/i18n/default-translations.d.cts +14 -0
- package/dist/lib/cjs/obsidian/i18n/i18n.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +2 -13
- package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -9
- package/dist/lib/cjs/obsidian/i18n/index.d.cts +2 -2
- package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -2
- package/dist/lib/cjs/obsidian/index.cjs +8 -6
- package/dist/lib/cjs/obsidian/index.d.cts +1 -1
- package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +5 -3
- package/dist/lib/cjs/obsidian/link.cjs +5 -3
- package/dist/lib/cjs/obsidian/logger.cjs +5 -3
- package/dist/lib/cjs/obsidian/loop.cjs +5 -3
- package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -3
- package/dist/lib/cjs/obsidian/markdown-view.cjs +5 -3
- package/dist/lib/cjs/obsidian/markdown.cjs +5 -3
- package/dist/lib/cjs/obsidian/metadata-cache.cjs +5 -3
- package/dist/lib/cjs/obsidian/modals/alert.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/confirm.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/index.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -1
- package/dist/lib/cjs/obsidian/modals/{modal-base.cjs → modal.cjs} +8 -6
- package/dist/lib/cjs/obsidian/modals/prompt.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/select-item.cjs +7 -5
- package/dist/lib/cjs/obsidian/monkey-around.cjs +5 -3
- package/dist/lib/cjs/obsidian/obsidian-settings.cjs +5 -3
- package/dist/lib/cjs/obsidian/pdf.cjs +8 -6
- package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.cjs +162 -0
- package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.d.cts +27 -0
- package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.cjs +165 -0
- package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.d.cts +29 -0
- package/dist/lib/cjs/obsidian/{commands/non-editor-command-base.cjs → plugin/components/console-debug-component.cjs} +26 -20
- package/dist/lib/cjs/obsidian/plugin/components/console-debug-component.d.cts +29 -0
- package/dist/lib/cjs/obsidian/{i18n/default-translations-base.cjs → plugin/components/i18n-component.cjs} +39 -6
- package/dist/lib/cjs/obsidian/plugin/components/i18n-component.d.cts +23 -0
- package/dist/lib/cjs/obsidian/plugin/components/index.cjs +170 -0
- package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +9 -0
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +207 -0
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +59 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.cjs +162 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.d.cts +25 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.cjs +161 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.d.cts +25 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +566 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.d.cts +296 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +166 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.d.cts +28 -0
- package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -18
- package/dist/lib/cjs/obsidian/plugin/index.d.cts +2 -5
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +5 -3
- package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +5 -3
- package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +16 -7
- package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +3 -2
- package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +5 -3
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +408 -0
- package/dist/lib/cjs/obsidian/plugin/{plugin-settings-tab-base.d.cts → plugin-settings-tab.d.cts} +28 -11
- package/dist/lib/cjs/obsidian/plugin/plugin.cjs +135 -3
- package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +106 -5
- package/dist/lib/cjs/obsidian/queue.cjs +5 -3
- package/dist/lib/cjs/obsidian/react/app-context.cjs +5 -3
- package/dist/lib/cjs/obsidian/react/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/reference.cjs +5 -3
- package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +5 -3
- package/dist/lib/cjs/obsidian/resource-url.cjs +5 -3
- package/dist/lib/cjs/obsidian/setting-ex.cjs +5 -3
- package/dist/lib/cjs/obsidian/setting-group-ex.cjs +5 -3
- package/dist/lib/cjs/obsidian/validation.cjs +5 -3
- package/dist/lib/cjs/obsidian/vault-delete.cjs +5 -3
- package/dist/lib/cjs/obsidian/vault.cjs +5 -3
- package/dist/lib/cjs/obsidian/workspace.cjs +5 -3
- package/dist/lib/cjs/path.cjs +5 -3
- package/dist/lib/cjs/reg-exp.cjs +5 -3
- package/dist/lib/cjs/script-utils/build.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +6 -4
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +8 -6
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/cli-utils.cjs +5 -3
- package/dist/lib/cjs/script-utils/code-generator.cjs +5 -3
- package/dist/lib/cjs/script-utils/commitlint-config.cjs +5 -3
- package/dist/lib/cjs/script-utils/exec.cjs +5 -3
- package/dist/lib/cjs/script-utils/formatters/dprint.cjs +6 -4
- package/dist/lib/cjs/script-utils/formatters/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/fs.cjs +5 -3
- package/dist/lib/cjs/script-utils/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/json.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +6 -4
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint.cjs +6 -4
- package/dist/lib/cjs/script-utils/linters/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +9 -5
- package/dist/lib/cjs/script-utils/nano-staged-config.cjs +5 -3
- package/dist/lib/cjs/script-utils/npm-publish.cjs +5 -3
- package/dist/lib/cjs/script-utils/npm-run.cjs +5 -3
- package/dist/lib/cjs/script-utils/npm.cjs +5 -3
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +5 -3
- package/dist/lib/cjs/script-utils/root.cjs +5 -3
- package/dist/lib/cjs/script-utils/test-runners/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +5 -3
- package/dist/lib/cjs/script-utils/version.cjs +5 -3
- package/dist/lib/cjs/strict-proxy.cjs +5 -3
- package/dist/lib/cjs/string.cjs +5 -3
- package/dist/lib/cjs/transformers/date-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/group-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/index.cjs +5 -3
- package/dist/lib/cjs/transformers/map-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/set-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/typed-transformer.cjs +5 -3
- package/dist/lib/cjs/two-way-map.cjs +5 -3
- package/dist/lib/cjs/type-guards.cjs +5 -3
- package/dist/lib/cjs/type.cjs +5 -3
- package/dist/lib/cjs/url.cjs +5 -3
- package/dist/lib/cjs/value-provider.cjs +5 -3
- package/dist/lib/esm/abort-controller.mjs +4 -2
- package/dist/lib/esm/array.mjs +3 -1
- package/dist/lib/esm/async-events.mjs +5 -3
- package/dist/lib/esm/async.mjs +4 -2
- package/dist/lib/esm/blob.mjs +4 -2
- package/dist/lib/esm/codemirror/index.mjs +3 -1
- package/dist/lib/esm/codemirror/state-field-spec.mjs +2 -0
- package/dist/lib/esm/css-class.mjs +3 -1
- package/dist/lib/esm/debug-controller.mjs +2 -0
- package/dist/lib/esm/debug.mjs +3 -1
- package/dist/lib/esm/enum.mjs +3 -1
- package/dist/lib/esm/error.mjs +3 -1
- package/dist/lib/esm/function.mjs +3 -1
- package/dist/lib/esm/html-element.mjs +16 -14
- package/dist/lib/esm/index.mjs +3 -1
- package/dist/lib/esm/library.mjs +4 -2
- package/dist/lib/esm/object-utils.mjs +3 -1
- package/dist/lib/esm/obsidian/@types/i18next.d.mts +3 -3
- package/dist/lib/esm/obsidian/app.mjs +3 -1
- package/dist/lib/esm/obsidian/async-with-notice.mjs +6 -4
- package/dist/lib/esm/obsidian/attachment-path.mjs +3 -1
- package/dist/lib/esm/obsidian/backlink.mjs +3 -1
- package/dist/lib/esm/obsidian/callout.mjs +3 -1
- package/dist/lib/esm/obsidian/code-block-markdown-information.mjs +2 -0
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +178 -0
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +247 -0
- package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.d.mts +25 -0
- package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +46 -0
- package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +41 -0
- package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +65 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +26 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +56 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +143 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +66 -0
- package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +114 -0
- package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +161 -0
- package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +112 -0
- package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +157 -0
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +112 -0
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +157 -0
- package/dist/lib/esm/obsidian/command-handlers/global-command-handler.d.mts +38 -0
- package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +69 -0
- package/dist/lib/esm/obsidian/command-handlers/index.d.mts +9 -0
- package/dist/lib/esm/obsidian/command-handlers/index.mjs +44 -0
- package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +4 -2
- package/dist/lib/esm/obsidian/components/async-component.d.mts +28 -0
- package/dist/lib/esm/obsidian/components/async-component.mjs +56 -0
- package/dist/lib/esm/obsidian/components/async-events-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/components/index.mjs +5 -1
- package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/index.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +5 -3
- package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.mjs +2 -0
- package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +3 -1
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +3 -1
- package/dist/lib/esm/obsidian/constructors/index.mjs +3 -1
- package/dist/lib/esm/obsidian/dataview-link.mjs +3 -1
- package/dist/lib/esm/obsidian/dataview.mjs +4 -2
- package/dist/lib/esm/obsidian/editor.mjs +3 -1
- package/dist/lib/esm/obsidian/file-change.mjs +3 -1
- package/dist/lib/esm/obsidian/file-manager.mjs +3 -1
- package/dist/lib/esm/obsidian/file-system.mjs +3 -1
- package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +3 -1
- package/dist/lib/esm/obsidian/frontmatter.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/custom-type-options.d.mts +37 -0
- package/dist/lib/esm/obsidian/i18n/custom-type-options.mjs +25 -0
- package/dist/lib/esm/obsidian/i18n/default-translations.d.mts +14 -0
- package/dist/lib/esm/obsidian/i18n/default-translations.mjs +25 -0
- package/dist/lib/esm/obsidian/i18n/i18n.d.mts +2 -13
- package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/index.d.mts +2 -2
- package/dist/lib/esm/obsidian/i18n/index.mjs +7 -5
- package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/locales/index.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -2
- package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +3 -1
- package/dist/lib/esm/obsidian/index.d.mts +1 -1
- package/dist/lib/esm/obsidian/index.mjs +5 -3
- package/dist/lib/esm/obsidian/is-in-obsidian.mjs +3 -1
- package/dist/lib/esm/obsidian/link.mjs +3 -1
- package/dist/lib/esm/obsidian/logger.mjs +3 -1
- package/dist/lib/esm/obsidian/loop.mjs +3 -1
- package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +3 -1
- package/dist/lib/esm/obsidian/markdown-view.mjs +3 -1
- package/dist/lib/esm/obsidian/markdown.mjs +3 -1
- package/dist/lib/esm/obsidian/metadata-cache.mjs +3 -1
- package/dist/lib/esm/obsidian/modals/alert.mjs +4 -2
- package/dist/lib/esm/obsidian/modals/confirm.mjs +4 -2
- package/dist/lib/esm/obsidian/modals/index.d.mts +1 -1
- package/dist/lib/esm/obsidian/modals/index.mjs +5 -3
- package/dist/lib/esm/obsidian/modals/modal.mjs +54 -0
- package/dist/lib/esm/obsidian/modals/prompt.mjs +4 -2
- package/dist/lib/esm/obsidian/modals/select-item.mjs +4 -2
- package/dist/lib/esm/obsidian/monkey-around.mjs +3 -1
- package/dist/lib/esm/obsidian/obsidian-settings.mjs +3 -1
- package/dist/lib/esm/obsidian/pdf.mjs +6 -4
- package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.d.mts +27 -0
- package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +54 -0
- package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.d.mts +29 -0
- package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +57 -0
- package/dist/lib/esm/obsidian/plugin/components/console-debug-component.d.mts +29 -0
- package/dist/lib/esm/obsidian/plugin/components/console-debug-component.mjs +52 -0
- package/dist/lib/esm/obsidian/plugin/components/i18n-component.d.mts +23 -0
- package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +48 -0
- package/dist/lib/esm/obsidian/plugin/components/index.d.mts +9 -0
- package/dist/lib/esm/obsidian/plugin/components/index.mjs +44 -0
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +59 -0
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +102 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.d.mts +25 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +57 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.d.mts +25 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.mjs +56 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.d.mts +296 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +463 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.d.mts +28 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +58 -0
- package/dist/lib/esm/obsidian/plugin/index.d.mts +2 -5
- package/dist/lib/esm/obsidian/plugin/index.mjs +7 -11
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +3 -1
- package/dist/lib/esm/obsidian/plugin/path-settings.mjs +3 -1
- package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +3 -2
- package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +14 -5
- package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +3 -1
- package/dist/lib/esm/obsidian/plugin/{plugin-settings-tab-base.d.mts → plugin-settings-tab.d.mts} +28 -11
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +309 -0
- package/dist/lib/esm/obsidian/plugin/plugin.d.mts +106 -5
- package/dist/lib/esm/obsidian/plugin/plugin.mjs +140 -2
- package/dist/lib/esm/obsidian/queue.mjs +3 -1
- package/dist/lib/esm/obsidian/react/app-context.mjs +3 -1
- package/dist/lib/esm/obsidian/react/index.mjs +3 -1
- package/dist/lib/esm/obsidian/reference.mjs +3 -1
- package/dist/lib/esm/obsidian/rename-delete-handler.mjs +3 -1
- package/dist/lib/esm/obsidian/resource-url.mjs +3 -1
- package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
- package/dist/lib/esm/obsidian/setting-group-ex.mjs +3 -1
- package/dist/lib/esm/obsidian/validation.mjs +3 -1
- package/dist/lib/esm/obsidian/vault-delete.mjs +3 -1
- package/dist/lib/esm/obsidian/vault.mjs +3 -1
- package/dist/lib/esm/obsidian/workspace.mjs +3 -1
- package/dist/lib/esm/path.mjs +3 -1
- package/dist/lib/esm/reg-exp.mjs +3 -1
- package/dist/lib/esm/script-utils/build.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +5 -3
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/index.mjs +3 -1
- package/dist/lib/esm/script-utils/cli-utils.mjs +3 -1
- package/dist/lib/esm/script-utils/code-generator.mjs +3 -1
- package/dist/lib/esm/script-utils/commitlint-config.mjs +3 -1
- package/dist/lib/esm/script-utils/exec.mjs +3 -1
- package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -1
- package/dist/lib/esm/script-utils/formatters/index.mjs +3 -1
- package/dist/lib/esm/script-utils/fs.mjs +3 -1
- package/dist/lib/esm/script-utils/index.mjs +3 -1
- package/dist/lib/esm/script-utils/json.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +4 -2
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/markdownlint.mjs +6 -2
- package/dist/lib/esm/script-utils/nano-staged-config.mjs +3 -1
- package/dist/lib/esm/script-utils/npm-publish.mjs +3 -1
- package/dist/lib/esm/script-utils/npm-run.mjs +3 -1
- package/dist/lib/esm/script-utils/npm.mjs +3 -1
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
- package/dist/lib/esm/script-utils/root.mjs +3 -1
- package/dist/lib/esm/script-utils/test-runners/index.mjs +3 -1
- package/dist/lib/esm/script-utils/test-runners/vitest.mjs +3 -1
- package/dist/lib/esm/script-utils/version.mjs +3 -1
- package/dist/lib/esm/strict-proxy.mjs +3 -1
- package/dist/lib/esm/string.mjs +3 -1
- package/dist/lib/esm/transformers/date-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/duration-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/group-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/index.mjs +3 -1
- package/dist/lib/esm/transformers/map-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/set-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/transformer.mjs +3 -1
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/typed-transformer.mjs +3 -1
- package/dist/lib/esm/two-way-map.mjs +3 -1
- package/dist/lib/esm/type-guards.mjs +3 -1
- package/dist/lib/esm/type.mjs +3 -1
- package/dist/lib/esm/url.mjs +3 -1
- package/dist/lib/esm/value-provider.mjs +3 -1
- package/obsidian/Components/async-component/package.json +6 -0
- package/obsidian/Modals/modal/package.json +6 -0
- package/obsidian/Plugin/components/abort-signal-component/package.json +6 -0
- package/obsidian/Plugin/components/async-error-handler-component/package.json +6 -0
- package/obsidian/Plugin/components/console-debug-component/package.json +6 -0
- package/obsidian/Plugin/components/i18n-component/package.json +6 -0
- package/obsidian/Plugin/components/index/package.json +6 -0
- package/obsidian/Plugin/components/lifecycle-events-component/package.json +6 -0
- package/obsidian/Plugin/components/package.json +6 -0
- package/obsidian/Plugin/components/plugin-context-component/package.json +6 -0
- package/obsidian/Plugin/components/plugin-notice-component/package.json +6 -0
- package/obsidian/Plugin/components/plugin-settings-component/package.json +6 -0
- package/obsidian/Plugin/components/plugin-settings-tab-component/package.json +6 -0
- package/obsidian/Plugin/{plugin-settings-wrapper → plugin-settings-tab}/package.json +3 -3
- package/obsidian/command-handlers/abstract-file-command-handler/package.json +6 -0
- package/obsidian/command-handlers/app-active-file-provider/package.json +6 -0
- package/obsidian/command-handlers/app-menu-event-registrar/package.json +6 -0
- package/obsidian/command-handlers/command-handler/package.json +6 -0
- package/obsidian/command-handlers/command-handler-component/package.json +6 -0
- package/obsidian/command-handlers/editor-command-handler/package.json +6 -0
- package/obsidian/command-handlers/file-command-handler/package.json +6 -0
- package/obsidian/command-handlers/folder-command-handler/package.json +6 -0
- package/obsidian/command-handlers/global-command-handler/package.json +6 -0
- package/obsidian/command-handlers/index/package.json +6 -0
- package/obsidian/command-handlers/package.json +6 -0
- package/obsidian/i18n/{custom-type-options-base → custom-type-options}/package.json +3 -3
- package/obsidian/i18n/{default-translations-base → default-translations}/package.json +3 -3
- package/package.json +33 -12
- package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +0 -441
- package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +0 -264
- package/dist/lib/cjs/obsidian/commands/command-base.cjs +0 -255
- package/dist/lib/cjs/obsidian/commands/command-base.d.cts +0 -125
- package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +0 -282
- package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +0 -139
- package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +0 -343
- package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +0 -191
- package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +0 -335
- package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +0 -184
- package/dist/lib/cjs/obsidian/commands/index.d.cts +0 -6
- package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +0 -34
- package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +0 -37
- package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +0 -25
- package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +0 -409
- package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +0 -176
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +0 -486
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +0 -186
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +0 -401
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +0 -25
- package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +0 -122
- package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +0 -87
- package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +0 -264
- package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +0 -329
- package/dist/lib/esm/obsidian/commands/command-base.d.mts +0 -125
- package/dist/lib/esm/obsidian/commands/command-base.mjs +0 -146
- package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +0 -139
- package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +0 -176
- package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +0 -191
- package/dist/lib/esm/obsidian/commands/file-command-base.mjs +0 -240
- package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +0 -184
- package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +0 -232
- package/dist/lib/esm/obsidian/commands/index.d.mts +0 -6
- package/dist/lib/esm/obsidian/commands/index.mjs +0 -36
- package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +0 -34
- package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +0 -46
- package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +0 -37
- package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +0 -23
- package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +0 -25
- package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +0 -23
- package/dist/lib/esm/obsidian/modals/modal-base.mjs +0 -52
- package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +0 -176
- package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +0 -317
- package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +0 -186
- package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +0 -385
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +0 -302
- package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +0 -25
- package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.mjs +0 -22
- package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +0 -87
- package/dist/lib/esm/obsidian/plugin/plugin-types-base.mjs +0 -22
- package/obsidian/Commands/abstract-file-command-base/package.json +0 -6
- package/obsidian/Commands/command-base/package.json +0 -6
- package/obsidian/Commands/editor-command-base/package.json +0 -6
- package/obsidian/Commands/file-command-base/package.json +0 -6
- package/obsidian/Commands/folder-command-base/package.json +0 -6
- package/obsidian/Commands/index/package.json +0 -6
- package/obsidian/Commands/non-editor-command-base/package.json +0 -6
- package/obsidian/Commands/package.json +0 -6
- package/obsidian/Modals/modal-base/package.json +0 -6
- package/obsidian/Plugin/plugin-base/package.json +0 -6
- package/obsidian/Plugin/plugin-settings-manager-base/package.json +0 -6
- package/obsidian/Plugin/plugin-settings-tab-base/package.json +0 -6
- package/obsidian/Plugin/plugin-types-base/package.json +0 -6
- /package/dist/lib/cjs/obsidian/modals/{modal-base.d.cts → modal.d.cts} +0 -0
- /package/dist/lib/esm/obsidian/modals/{modal-base.d.mts → modal.d.mts} +0 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Command handler for abstract file commands with file/files menu integration.
|
|
5
|
+
*/
|
|
6
|
+
import type { IconName, TAbstractFile, WorkspaceLeaf } from 'obsidian';
|
|
7
|
+
import type { CommandHandlerParams, CommandHandlerRegistrationContext } from './command-handler.mjs';
|
|
8
|
+
import { GlobalCommandHandler } from './global-command-handler.mjs';
|
|
9
|
+
/**
|
|
10
|
+
* Parameters for creating an abstract file command handler.
|
|
11
|
+
*/
|
|
12
|
+
export interface AbstractFileCommandHandlerParams extends CommandHandlerParams {
|
|
13
|
+
/**
|
|
14
|
+
* The item name to use in the single-file menu.
|
|
15
|
+
*/
|
|
16
|
+
readonly fileMenuItemName?: string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* The section to use in the single-file menu.
|
|
19
|
+
*/
|
|
20
|
+
readonly fileMenuSection?: string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The icon to use in the single-file menu submenu.
|
|
23
|
+
*/
|
|
24
|
+
readonly fileMenuSubmenuIcon?: IconName | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* The item name to use in the multi-file menu.
|
|
27
|
+
*/
|
|
28
|
+
readonly filesMenuItemName?: string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* The section to use in the multi-file menu.
|
|
31
|
+
*/
|
|
32
|
+
readonly filesMenuSection?: string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The icon to use in the multi-file menu submenu.
|
|
35
|
+
*/
|
|
36
|
+
readonly filesMenuSubmenuIcon?: IconName | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to add the command to a submenu.
|
|
39
|
+
*/
|
|
40
|
+
readonly shouldAddCommandToSubmenu?: boolean | undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Command handler for abstract file commands.
|
|
44
|
+
*
|
|
45
|
+
* Handles both single-file and multi-file context menus.
|
|
46
|
+
* Subclasses override {@link canExecuteAbstractFile} and {@link executeAbstractFile}.
|
|
47
|
+
*/
|
|
48
|
+
export declare abstract class AbstractFileCommandHandler extends GlobalCommandHandler {
|
|
49
|
+
/**
|
|
50
|
+
* Gets the item name to use in the single-file menu.
|
|
51
|
+
*
|
|
52
|
+
* @returns The item name, or `undefined` to use the command name.
|
|
53
|
+
*/
|
|
54
|
+
protected get fileMenuItemName(): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Gets the section to use in the single-file menu.
|
|
57
|
+
*
|
|
58
|
+
* @returns The section name, or `undefined` to use the plugin name.
|
|
59
|
+
*/
|
|
60
|
+
protected get fileMenuSection(): string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Gets the icon to use in the single-file menu submenu.
|
|
63
|
+
*
|
|
64
|
+
* @returns The icon, or `undefined` for no icon.
|
|
65
|
+
*/
|
|
66
|
+
protected get fileMenuSubmenuIcon(): IconName | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Gets the item name to use in the multi-file menu.
|
|
69
|
+
*
|
|
70
|
+
* @returns The item name, or `undefined` to fall back to single-file item name.
|
|
71
|
+
*/
|
|
72
|
+
protected get filesMenuItemName(): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Gets the section to use in the multi-file menu.
|
|
75
|
+
*
|
|
76
|
+
* @returns The section name, or `undefined` to fall back to single-file section.
|
|
77
|
+
*/
|
|
78
|
+
protected get filesMenuSection(): string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the icon to use in the multi-file menu submenu.
|
|
81
|
+
*
|
|
82
|
+
* @returns The icon, or `undefined` to fall back to single-file submenu icon.
|
|
83
|
+
*/
|
|
84
|
+
protected get filesMenuSubmenuIcon(): IconName | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Gets whether to add the command to a submenu.
|
|
87
|
+
*
|
|
88
|
+
* @returns Whether to add to a submenu.
|
|
89
|
+
*/
|
|
90
|
+
protected get shouldAddCommandToSubmenu(): boolean | undefined;
|
|
91
|
+
private readonly _fileMenuItemName?;
|
|
92
|
+
private readonly _fileMenuSection?;
|
|
93
|
+
private readonly _fileMenuSubmenuIcon?;
|
|
94
|
+
private readonly _filesMenuItemName?;
|
|
95
|
+
private readonly _filesMenuSection?;
|
|
96
|
+
private readonly _filesMenuSubmenuIcon?;
|
|
97
|
+
private readonly _shouldAddCommandToSubmenu?;
|
|
98
|
+
private activeFileProvider?;
|
|
99
|
+
/**
|
|
100
|
+
* Creates a new abstract file command handler.
|
|
101
|
+
*
|
|
102
|
+
* @param params - The parameters for the abstract file command handler.
|
|
103
|
+
*/
|
|
104
|
+
constructor(params: AbstractFileCommandHandlerParams);
|
|
105
|
+
/**
|
|
106
|
+
* Registers file-menu and files-menu event handlers.
|
|
107
|
+
*
|
|
108
|
+
* @param context - The registration context.
|
|
109
|
+
*/
|
|
110
|
+
onRegistered(context: CommandHandlerRegistrationContext): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Checks whether the command can execute from the command palette.
|
|
113
|
+
* Uses the active file as the target.
|
|
114
|
+
*
|
|
115
|
+
* @returns Whether the command can execute.
|
|
116
|
+
*/
|
|
117
|
+
protected canExecute(): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Checks whether the command can execute for a single abstract file.
|
|
120
|
+
*
|
|
121
|
+
* @param _abstractFile - The file or folder.
|
|
122
|
+
* @returns Whether the command can execute.
|
|
123
|
+
*/
|
|
124
|
+
protected canExecuteAbstractFile(_abstractFile: TAbstractFile): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Checks whether the command can execute for multiple abstract files.
|
|
127
|
+
* Default implementation checks each file individually.
|
|
128
|
+
*
|
|
129
|
+
* @param abstractFiles - The files or folders.
|
|
130
|
+
* @returns Whether the command can execute.
|
|
131
|
+
*/
|
|
132
|
+
protected canExecuteAbstractFiles(abstractFiles: TAbstractFile[]): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Executes the command from the command palette using the active file.
|
|
135
|
+
*/
|
|
136
|
+
protected execute(): Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Executes the command for a single abstract file.
|
|
139
|
+
*
|
|
140
|
+
* @param abstractFile - The file or folder.
|
|
141
|
+
*/
|
|
142
|
+
protected abstract executeAbstractFile(abstractFile: TAbstractFile): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Executes the command for multiple abstract files.
|
|
145
|
+
* Default implementation executes sequentially.
|
|
146
|
+
*
|
|
147
|
+
* @param abstractFiles - The files or folders.
|
|
148
|
+
*/
|
|
149
|
+
protected executeAbstractFiles(abstractFiles: TAbstractFile[]): Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Checks whether the command should appear in the single-file context menu.
|
|
152
|
+
*
|
|
153
|
+
* @param _abstractFile - The file or folder.
|
|
154
|
+
* @param _source - The source of the event.
|
|
155
|
+
* @param _leaf - The workspace leaf, if available.
|
|
156
|
+
* @returns Whether to add to the file menu.
|
|
157
|
+
*/
|
|
158
|
+
protected shouldAddToAbstractFileMenu(_abstractFile: TAbstractFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Checks whether the command should appear in the multi-file context menu.
|
|
161
|
+
* Default implementation checks each file individually.
|
|
162
|
+
*
|
|
163
|
+
* @param abstractFiles - The files or folders.
|
|
164
|
+
* @param source - The source of the event.
|
|
165
|
+
* @param leaf - The workspace leaf, if available.
|
|
166
|
+
* @returns Whether to add to the files menu.
|
|
167
|
+
*/
|
|
168
|
+
protected shouldAddToAbstractFilesMenu(abstractFiles: TAbstractFile[], source: string, leaf?: WorkspaceLeaf): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Checks whether the command should appear in the command palette.
|
|
171
|
+
*
|
|
172
|
+
* @returns Whether to add to the command palette.
|
|
173
|
+
*/
|
|
174
|
+
protected shouldAddToCommandPalette(): boolean;
|
|
175
|
+
private getActiveFile;
|
|
176
|
+
private handleAbstractFileMenu;
|
|
177
|
+
private handleAbstractFilesMenu;
|
|
178
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
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 { GlobalCommandHandler } from "./global-command-handler.mjs";
|
|
26
|
+
class AbstractFileCommandHandler extends GlobalCommandHandler {
|
|
27
|
+
/**
|
|
28
|
+
* Gets the item name to use in the single-file menu.
|
|
29
|
+
*
|
|
30
|
+
* @returns The item name, or `undefined` to use the command name.
|
|
31
|
+
*/
|
|
32
|
+
get fileMenuItemName() {
|
|
33
|
+
return this._fileMenuItemName;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Gets the section to use in the single-file menu.
|
|
37
|
+
*
|
|
38
|
+
* @returns The section name, or `undefined` to use the plugin name.
|
|
39
|
+
*/
|
|
40
|
+
get fileMenuSection() {
|
|
41
|
+
return this._fileMenuSection;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Gets the icon to use in the single-file menu submenu.
|
|
45
|
+
*
|
|
46
|
+
* @returns The icon, or `undefined` for no icon.
|
|
47
|
+
*/
|
|
48
|
+
get fileMenuSubmenuIcon() {
|
|
49
|
+
return this._fileMenuSubmenuIcon;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Gets the item name to use in the multi-file menu.
|
|
53
|
+
*
|
|
54
|
+
* @returns The item name, or `undefined` to fall back to single-file item name.
|
|
55
|
+
*/
|
|
56
|
+
get filesMenuItemName() {
|
|
57
|
+
return this._filesMenuItemName;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Gets the section to use in the multi-file menu.
|
|
61
|
+
*
|
|
62
|
+
* @returns The section name, or `undefined` to fall back to single-file section.
|
|
63
|
+
*/
|
|
64
|
+
get filesMenuSection() {
|
|
65
|
+
return this._filesMenuSection;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Gets the icon to use in the multi-file menu submenu.
|
|
69
|
+
*
|
|
70
|
+
* @returns The icon, or `undefined` to fall back to single-file submenu icon.
|
|
71
|
+
*/
|
|
72
|
+
get filesMenuSubmenuIcon() {
|
|
73
|
+
return this._filesMenuSubmenuIcon;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets whether to add the command to a submenu.
|
|
77
|
+
*
|
|
78
|
+
* @returns Whether to add to a submenu.
|
|
79
|
+
*/
|
|
80
|
+
get shouldAddCommandToSubmenu() {
|
|
81
|
+
return this._shouldAddCommandToSubmenu;
|
|
82
|
+
}
|
|
83
|
+
_fileMenuItemName;
|
|
84
|
+
_fileMenuSection;
|
|
85
|
+
_fileMenuSubmenuIcon;
|
|
86
|
+
_filesMenuItemName;
|
|
87
|
+
_filesMenuSection;
|
|
88
|
+
_filesMenuSubmenuIcon;
|
|
89
|
+
_shouldAddCommandToSubmenu;
|
|
90
|
+
activeFileProvider;
|
|
91
|
+
/**
|
|
92
|
+
* Creates a new abstract file command handler.
|
|
93
|
+
*
|
|
94
|
+
* @param params - The parameters for the abstract file command handler.
|
|
95
|
+
*/
|
|
96
|
+
constructor(params) {
|
|
97
|
+
super(params);
|
|
98
|
+
this._fileMenuItemName = params.fileMenuItemName;
|
|
99
|
+
this._fileMenuSection = params.fileMenuSection;
|
|
100
|
+
this._fileMenuSubmenuIcon = params.fileMenuSubmenuIcon;
|
|
101
|
+
this._filesMenuItemName = params.filesMenuItemName;
|
|
102
|
+
this._filesMenuSection = params.filesMenuSection;
|
|
103
|
+
this._filesMenuSubmenuIcon = params.filesMenuSubmenuIcon;
|
|
104
|
+
this._shouldAddCommandToSubmenu = params.shouldAddCommandToSubmenu;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Registers file-menu and files-menu event handlers.
|
|
108
|
+
*
|
|
109
|
+
* @param context - The registration context.
|
|
110
|
+
*/
|
|
111
|
+
async onRegistered(context) {
|
|
112
|
+
await super.onRegistered(context);
|
|
113
|
+
this.activeFileProvider = context.activeFileProvider;
|
|
114
|
+
context.menuEventRegistrar.registerFileMenuEventHandler(this.handleAbstractFileMenu.bind(this));
|
|
115
|
+
context.menuEventRegistrar.registerFilesMenuEventHandler(this.handleAbstractFilesMenu.bind(this));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Checks whether the command can execute from the command palette.
|
|
119
|
+
* Uses the active file as the target.
|
|
120
|
+
*
|
|
121
|
+
* @returns Whether the command can execute.
|
|
122
|
+
*/
|
|
123
|
+
canExecute() {
|
|
124
|
+
if (!this.shouldAddToCommandPalette()) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
const activeFile = this.getActiveFile();
|
|
128
|
+
return !!activeFile && this.canExecuteAbstractFile(activeFile);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Checks whether the command can execute for a single abstract file.
|
|
132
|
+
*
|
|
133
|
+
* @param _abstractFile - The file or folder.
|
|
134
|
+
* @returns Whether the command can execute.
|
|
135
|
+
*/
|
|
136
|
+
canExecuteAbstractFile(_abstractFile) {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Checks whether the command can execute for multiple abstract files.
|
|
141
|
+
* Default implementation checks each file individually.
|
|
142
|
+
*
|
|
143
|
+
* @param abstractFiles - The files or folders.
|
|
144
|
+
* @returns Whether the command can execute.
|
|
145
|
+
*/
|
|
146
|
+
canExecuteAbstractFiles(abstractFiles) {
|
|
147
|
+
return abstractFiles.length > 0 && abstractFiles.every((f) => this.canExecuteAbstractFile(f));
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Executes the command from the command palette using the active file.
|
|
151
|
+
*/
|
|
152
|
+
async execute() {
|
|
153
|
+
const activeFile = this.getActiveFile();
|
|
154
|
+
if (activeFile) {
|
|
155
|
+
await this.executeAbstractFile(activeFile);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Executes the command for multiple abstract files.
|
|
160
|
+
* Default implementation executes sequentially.
|
|
161
|
+
*
|
|
162
|
+
* @param abstractFiles - The files or folders.
|
|
163
|
+
*/
|
|
164
|
+
async executeAbstractFiles(abstractFiles) {
|
|
165
|
+
for (const file of abstractFiles) {
|
|
166
|
+
await this.executeAbstractFile(file);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Checks whether the command should appear in the single-file context menu.
|
|
171
|
+
*
|
|
172
|
+
* @param _abstractFile - The file or folder.
|
|
173
|
+
* @param _source - The source of the event.
|
|
174
|
+
* @param _leaf - The workspace leaf, if available.
|
|
175
|
+
* @returns Whether to add to the file menu.
|
|
176
|
+
*/
|
|
177
|
+
shouldAddToAbstractFileMenu(_abstractFile, _source, _leaf) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Checks whether the command should appear in the multi-file context menu.
|
|
182
|
+
* Default implementation checks each file individually.
|
|
183
|
+
*
|
|
184
|
+
* @param abstractFiles - The files or folders.
|
|
185
|
+
* @param source - The source of the event.
|
|
186
|
+
* @param leaf - The workspace leaf, if available.
|
|
187
|
+
* @returns Whether to add to the files menu.
|
|
188
|
+
*/
|
|
189
|
+
shouldAddToAbstractFilesMenu(abstractFiles, source, leaf) {
|
|
190
|
+
return abstractFiles.every((f) => this.shouldAddToAbstractFileMenu(f, source, leaf));
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Checks whether the command should appear in the command palette.
|
|
194
|
+
*
|
|
195
|
+
* @returns Whether to add to the command palette.
|
|
196
|
+
*/
|
|
197
|
+
shouldAddToCommandPalette() {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
getActiveFile() {
|
|
201
|
+
return this.activeFileProvider?.getActiveFile() ?? null;
|
|
202
|
+
}
|
|
203
|
+
handleAbstractFileMenu(menu, abstractFile, source, leaf) {
|
|
204
|
+
if (!this.shouldAddToAbstractFileMenu(abstractFile, source, leaf)) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (!this.canExecuteAbstractFile(abstractFile)) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const section = this.fileMenuSection ?? this.pluginName;
|
|
211
|
+
if (this.shouldAddCommandToSubmenu) {
|
|
212
|
+
menu.setSectionSubmenu(section, {
|
|
213
|
+
icon: this.fileMenuSubmenuIcon ?? "",
|
|
214
|
+
title: section
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
menu.addItem((item) => {
|
|
218
|
+
item.setTitle(this.fileMenuItemName ?? this.name).setIcon(this.icon).setSection(section).onClick(() => {
|
|
219
|
+
invokeAsyncSafely(() => this.executeAbstractFile(abstractFile));
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
handleAbstractFilesMenu(menu, abstractFiles, source, leaf) {
|
|
224
|
+
if (!this.shouldAddToAbstractFilesMenu(abstractFiles, source, leaf)) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (!this.canExecuteAbstractFiles(abstractFiles)) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
const section = this.filesMenuSection ?? this.fileMenuSection ?? this.pluginName;
|
|
231
|
+
if (this.shouldAddCommandToSubmenu) {
|
|
232
|
+
menu.setSectionSubmenu(section, {
|
|
233
|
+
icon: this.filesMenuSubmenuIcon ?? this.fileMenuSubmenuIcon ?? "",
|
|
234
|
+
title: section
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
menu.addItem((item) => {
|
|
238
|
+
item.setTitle(this.filesMenuItemName ?? this.fileMenuItemName ?? this.name).setIcon(this.icon).setSection(section).onClick(() => {
|
|
239
|
+
invokeAsyncSafely(() => this.executeAbstractFiles(abstractFiles));
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
export {
|
|
245
|
+
AbstractFileCommandHandler
|
|
246
|
+
};
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvYWJzdHJhY3QtZmlsZS1jb21tYW5kLWhhbmRsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21tYW5kIGhhbmRsZXIgZm9yIGFic3RyYWN0IGZpbGUgY29tbWFuZHMgd2l0aCBmaWxlL2ZpbGVzIG1lbnUgaW50ZWdyYXRpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBJY29uTmFtZSxcbiAgTWVudSxcbiAgVEFic3RyYWN0RmlsZSxcbiAgV29ya3NwYWNlTGVhZlxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWN0aXZlRmlsZVByb3ZpZGVyLFxuICBDb21tYW5kSGFuZGxlclBhcmFtcyxcbiAgQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0XG59IGZyb20gJy4vY29tbWFuZC1oYW5kbGVyLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi8uLi9hc3luYy50cyc7XG5pbXBvcnQgeyBHbG9iYWxDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vZ2xvYmFsLWNvbW1hbmQtaGFuZGxlci50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYW4gYWJzdHJhY3QgZmlsZSBjb21tYW5kIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXJQYXJhbXMgZXh0ZW5kcyBDb21tYW5kSGFuZGxlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgaXRlbSBuYW1lIHRvIHVzZSBpbiB0aGUgc2luZ2xlLWZpbGUgbWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVNZW51SXRlbU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9uIHRvIHVzZSBpbiB0aGUgc2luZ2xlLWZpbGUgbWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVNZW51U2VjdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGljb24gdG8gdXNlIGluIHRoZSBzaW5nbGUtZmlsZSBtZW51IHN1Ym1lbnUuXG4gICAqL1xuICByZWFkb25seSBmaWxlTWVudVN1Ym1lbnVJY29uPzogSWNvbk5hbWUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpdGVtIG5hbWUgdG8gdXNlIGluIHRoZSBtdWx0aS1maWxlIG1lbnUuXG4gICAqL1xuICByZWFkb25seSBmaWxlc01lbnVJdGVtTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHNlY3Rpb24gdG8gdXNlIGluIHRoZSBtdWx0aS1maWxlIG1lbnUuXG4gICAqL1xuICByZWFkb25seSBmaWxlc01lbnVTZWN0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaWNvbiB0byB1c2UgaW4gdGhlIG11bHRpLWZpbGUgbWVudSBzdWJtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXNNZW51U3VibWVudUljb24/OiBJY29uTmFtZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhZGQgdGhlIGNvbW1hbmQgdG8gYSBzdWJtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29tbWFuZCBoYW5kbGVyIGZvciBhYnN0cmFjdCBmaWxlIGNvbW1hbmRzLlxuICpcbiAqIEhhbmRsZXMgYm90aCBzaW5nbGUtZmlsZSBhbmQgbXVsdGktZmlsZSBjb250ZXh0IG1lbnVzLlxuICogU3ViY2xhc3NlcyBvdmVycmlkZSB7QGxpbmsgY2FuRXhlY3V0ZUFic3RyYWN0RmlsZX0gYW5kIHtAbGluayBleGVjdXRlQWJzdHJhY3RGaWxlfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIGV4dGVuZHMgR2xvYmFsQ29tbWFuZEhhbmRsZXIge1xuICAvKipcbiAgICogR2V0cyB0aGUgaXRlbSBuYW1lIHRvIHVzZSBpbiB0aGUgc2luZ2xlLWZpbGUgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGl0ZW0gbmFtZSwgb3IgYHVuZGVmaW5lZGAgdG8gdXNlIHRoZSBjb21tYW5kIG5hbWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZpbGVNZW51SXRlbU5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZU1lbnVJdGVtTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWN0aW9uIHRvIHVzZSBpbiB0aGUgc2luZ2xlLWZpbGUgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNlY3Rpb24gbmFtZSwgb3IgYHVuZGVmaW5lZGAgdG8gdXNlIHRoZSBwbHVnaW4gbmFtZS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZmlsZU1lbnVTZWN0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVNZW51U2VjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpY29uIHRvIHVzZSBpbiB0aGUgc2luZ2xlLWZpbGUgbWVudSBzdWJtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaWNvbiwgb3IgYHVuZGVmaW5lZGAgZm9yIG5vIGljb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZpbGVNZW51U3VibWVudUljb24oKTogSWNvbk5hbWUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9maWxlTWVudVN1Ym1lbnVJY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGl0ZW0gbmFtZSB0byB1c2UgaW4gdGhlIG11bHRpLWZpbGUgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGl0ZW0gbmFtZSwgb3IgYHVuZGVmaW5lZGAgdG8gZmFsbCBiYWNrIHRvIHNpbmdsZS1maWxlIGl0ZW0gbmFtZS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNNZW51SXRlbU5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZXNNZW51SXRlbU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIG11bHRpLWZpbGUgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNlY3Rpb24gbmFtZSwgb3IgYHVuZGVmaW5lZGAgdG8gZmFsbCBiYWNrIHRvIHNpbmdsZS1maWxlIHNlY3Rpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZpbGVzTWVudVNlY3Rpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZXNNZW51U2VjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpY29uIHRvIHVzZSBpbiB0aGUgbXVsdGktZmlsZSBtZW51IHN1Ym1lbnUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpY29uLCBvciBgdW5kZWZpbmVkYCB0byBmYWxsIGJhY2sgdG8gc2luZ2xlLWZpbGUgc3VibWVudSBpY29uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmaWxlc01lbnVTdWJtZW51SWNvbigpOiBJY29uTmFtZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVzTWVudVN1Ym1lbnVJY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgd2hldGhlciB0byBhZGQgdGhlIGNvbW1hbmQgdG8gYSBzdWJtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byBhIHN1Ym1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9maWxlTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWxlTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVNZW51U3VibWVudUljb24/OiBJY29uTmFtZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsZXNNZW51SXRlbU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVzTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVzTWVudVN1Ym1lbnVJY29uPzogSWNvbk5hbWUgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGFjdGl2ZUZpbGVQcm92aWRlcj86IEFjdGl2ZUZpbGVQcm92aWRlcjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhYnN0cmFjdCBmaWxlIGNvbW1hbmQgaGFuZGxlci5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYWJzdHJhY3QgZmlsZSBjb21tYW5kIGhhbmRsZXIuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlclBhcmFtcykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy5fZmlsZU1lbnVJdGVtTmFtZSA9IHBhcmFtcy5maWxlTWVudUl0ZW1OYW1lO1xuICAgIHRoaXMuX2ZpbGVNZW51U2VjdGlvbiA9IHBhcmFtcy5maWxlTWVudVNlY3Rpb247XG4gICAgdGhpcy5fZmlsZU1lbnVTdWJtZW51SWNvbiA9IHBhcmFtcy5maWxlTWVudVN1Ym1lbnVJY29uO1xuICAgIHRoaXMuX2ZpbGVzTWVudUl0ZW1OYW1lID0gcGFyYW1zLmZpbGVzTWVudUl0ZW1OYW1lO1xuICAgIHRoaXMuX2ZpbGVzTWVudVNlY3Rpb24gPSBwYXJhbXMuZmlsZXNNZW51U2VjdGlvbjtcbiAgICB0aGlzLl9maWxlc01lbnVTdWJtZW51SWNvbiA9IHBhcmFtcy5maWxlc01lbnVTdWJtZW51SWNvbjtcbiAgICB0aGlzLl9zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51ID0gcGFyYW1zLnNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGZpbGUtbWVudSBhbmQgZmlsZXMtbWVudSBldmVudCBoYW5kbGVycy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgcmVnaXN0cmF0aW9uIGNvbnRleHQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25SZWdpc3RlcmVkKGNvbnRleHQ6IENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uUmVnaXN0ZXJlZChjb250ZXh0KTtcbiAgICB0aGlzLmFjdGl2ZUZpbGVQcm92aWRlciA9IGNvbnRleHQuYWN0aXZlRmlsZVByb3ZpZGVyO1xuICAgIGNvbnRleHQubWVudUV2ZW50UmVnaXN0cmFyLnJlZ2lzdGVyRmlsZU1lbnVFdmVudEhhbmRsZXIodGhpcy5oYW5kbGVBYnN0cmFjdEZpbGVNZW51LmJpbmQodGhpcykpO1xuICAgIGNvbnRleHQubWVudUV2ZW50UmVnaXN0cmFyLnJlZ2lzdGVyRmlsZXNNZW51RXZlbnRIYW5kbGVyKHRoaXMuaGFuZGxlQWJzdHJhY3RGaWxlc01lbnUuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgZnJvbSB0aGUgY29tbWFuZCBwYWxldHRlLlxuICAgKiBVc2VzIHRoZSBhY3RpdmUgZmlsZSBhcyB0aGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNob3VsZEFkZFRvQ29tbWFuZFBhbGV0dGUoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZUZpbGUgPSB0aGlzLmdldEFjdGl2ZUZpbGUoKTtcbiAgICByZXR1cm4gISFhY3RpdmVGaWxlICYmIHRoaXMuY2FuRXhlY3V0ZUFic3RyYWN0RmlsZShhY3RpdmVGaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBmb3IgYSBzaW5nbGUgYWJzdHJhY3QgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIF9hYnN0cmFjdEZpbGUgLSBUaGUgZmlsZSBvciBmb2xkZXIuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FuRXhlY3V0ZUFic3RyYWN0RmlsZShfYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgZm9yIG11bHRpcGxlIGFic3RyYWN0IGZpbGVzLlxuICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGNoZWNrcyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlcyAtIFRoZSBmaWxlcyBvciBmb2xkZXJzLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNhbkV4ZWN1dGVBYnN0cmFjdEZpbGVzKGFic3RyYWN0RmlsZXM6IFRBYnN0cmFjdEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhYnN0cmFjdEZpbGVzLmxlbmd0aCA+IDAgJiYgYWJzdHJhY3RGaWxlcy5ldmVyeSgoZikgPT4gdGhpcy5jYW5FeGVjdXRlQWJzdHJhY3RGaWxlKGYpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgY29tbWFuZCBmcm9tIHRoZSBjb21tYW5kIHBhbGV0dGUgdXNpbmcgdGhlIGFjdGl2ZSBmaWxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGV4ZWN1dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWN0aXZlRmlsZSA9IHRoaXMuZ2V0QWN0aXZlRmlsZSgpO1xuICAgIGlmIChhY3RpdmVGaWxlKSB7XG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBYnN0cmFjdEZpbGUoYWN0aXZlRmlsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kIGZvciBhIHNpbmdsZSBhYnN0cmFjdCBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGV4ZWN1dGVBYnN0cmFjdEZpbGUoYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGNvbW1hbmQgZm9yIG11bHRpcGxlIGFic3RyYWN0IGZpbGVzLlxuICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGV4ZWN1dGVzIHNlcXVlbnRpYWxseS5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgZmlsZXMgb3IgZm9sZGVycy5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBleGVjdXRlQWJzdHJhY3RGaWxlcyhhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgYWJzdHJhY3RGaWxlcykge1xuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlQWJzdHJhY3RGaWxlKGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYXBwZWFyIGluIHRoZSBzaW5nbGUtZmlsZSBjb250ZXh0IG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBfYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyLlxuICAgKiBAcGFyYW0gX3NvdXJjZSAtIFRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gX2xlYWYgLSBUaGUgd29ya3NwYWNlIGxlYWYsIGlmIGF2YWlsYWJsZS5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoX2Fic3RyYWN0RmlsZTogVEFic3RyYWN0RmlsZSwgX3NvdXJjZTogc3RyaW5nLCBfbGVhZj86IFdvcmtzcGFjZUxlYWYpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgbXVsdGktZmlsZSBjb250ZXh0IG1lbnUuXG4gICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gY2hlY2tzIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGVzIC0gVGhlIGZpbGVzIG9yIGZvbGRlcnMuXG4gICAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGxlYWYgLSBUaGUgd29ya3NwYWNlIGxlYWYsIGlmIGF2YWlsYWJsZS5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGZpbGVzIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9BYnN0cmFjdEZpbGVzTWVudShhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10sIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhYnN0cmFjdEZpbGVzLmV2ZXJ5KChmKSA9PiB0aGlzLnNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudShmLCBzb3VyY2UsIGxlYWYpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYXBwZWFyIGluIHRoZSBjb21tYW5kIHBhbGV0dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRvIHRoZSBjb21tYW5kIHBhbGV0dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlRmlsZSgpOiBudWxsIHwgVEFic3RyYWN0RmlsZSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsZVByb3ZpZGVyPy5nZXRBY3RpdmVGaWxlKCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWJzdHJhY3RGaWxlTWVudShtZW51OiBNZW51LCBhYnN0cmFjdEZpbGU6IFRBYnN0cmFjdEZpbGUsIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlLCBzb3VyY2UsIGxlYWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNhbkV4ZWN1dGVBYnN0cmFjdEZpbGUoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmZpbGVNZW51U2VjdGlvbiA/PyB0aGlzLnBsdWdpbk5hbWU7XG4gICAgaWYgKHRoaXMuc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudSkge1xuICAgICAgbWVudS5zZXRTZWN0aW9uU3VibWVudShzZWN0aW9uLCB7XG4gICAgICAgIGljb246IHRoaXMuZmlsZU1lbnVTdWJtZW51SWNvbiA/PyAnJyxcbiAgICAgICAgdGl0bGU6IHNlY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG1lbnUuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5maWxlTWVudUl0ZW1OYW1lID8/IHRoaXMubmFtZSlcbiAgICAgICAgLnNldEljb24odGhpcy5pY29uKVxuICAgICAgICAuc2V0U2VjdGlvbihzZWN0aW9uKVxuICAgICAgICAub25DbGljaygoKSA9PiB7XG4gICAgICAgICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdGhpcy5leGVjdXRlQWJzdHJhY3RGaWxlKGFic3RyYWN0RmlsZSkpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWJzdHJhY3RGaWxlc01lbnUobWVudTogTWVudSwgYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdLCBzb3VyY2U6IHN0cmluZywgbGVhZj86IFdvcmtzcGFjZUxlYWYpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9BYnN0cmFjdEZpbGVzTWVudShhYnN0cmFjdEZpbGVzLCBzb3VyY2UsIGxlYWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNhbkV4ZWN1dGVBYnN0cmFjdEZpbGVzKGFic3RyYWN0RmlsZXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuZmlsZXNNZW51U2VjdGlvbiA/PyB0aGlzLmZpbGVNZW51U2VjdGlvbiA/PyB0aGlzLnBsdWdpbk5hbWU7XG4gICAgaWYgKHRoaXMuc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudSkge1xuICAgICAgbWVudS5zZXRTZWN0aW9uU3VibWVudShzZWN0aW9uLCB7XG4gICAgICAgIGljb246IHRoaXMuZmlsZXNNZW51U3VibWVudUljb24gPz8gdGhpcy5maWxlTWVudVN1Ym1lbnVJY29uID8/ICcnLFxuICAgICAgICB0aXRsZTogc2VjdGlvblxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWVudS5hZGRJdGVtKChpdGVtKSA9PiB7XG4gICAgICBpdGVtXG4gICAgICAgIC5zZXRUaXRsZSh0aGlzLmZpbGVzTWVudUl0ZW1OYW1lID8/IHRoaXMuZmlsZU1lbnVJdGVtTmFtZSA/PyB0aGlzLm5hbWUpXG4gICAgICAgIC5zZXRJY29uKHRoaXMuaWNvbilcbiAgICAgICAgLnNldFNlY3Rpb24oc2VjdGlvbilcbiAgICAgICAgLm9uQ2xpY2soKCkgPT4ge1xuICAgICAgICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHRoaXMuZXhlY3V0ZUFic3RyYWN0RmlsZXMoYWJzdHJhY3RGaWxlcykpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyw0QkFBNEI7QUFnRDlCLE1BQWUsbUNBQW1DLHFCQUFxQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU01RSxJQUFjLG1CQUF1QztBQUNuRCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxrQkFBc0M7QUFDbEQsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsc0JBQTRDO0FBQ3hELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLG9CQUF3QztBQUNwRCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxtQkFBdUM7QUFDbkQsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsdUJBQTZDO0FBQ3pELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLDRCQUFpRDtBQUM3RCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFaUI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0QsWUFBWSxRQUEwQztBQUMzRCxVQUFNLE1BQU07QUFDWixTQUFLLG9CQUFvQixPQUFPO0FBQ2hDLFNBQUssbUJBQW1CLE9BQU87QUFDL0IsU0FBSyx1QkFBdUIsT0FBTztBQUNuQyxTQUFLLHFCQUFxQixPQUFPO0FBQ2pDLFNBQUssb0JBQW9CLE9BQU87QUFDaEMsU0FBSyx3QkFBd0IsT0FBTztBQUNwQyxTQUFLLDZCQUE2QixPQUFPO0FBQUEsRUFDM0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFzQixhQUFhLFNBQTJEO0FBQzVGLFVBQU0sTUFBTSxhQUFhLE9BQU87QUFDaEMsU0FBSyxxQkFBcUIsUUFBUTtBQUNsQyxZQUFRLG1CQUFtQiw2QkFBNkIsS0FBSyx1QkFBdUIsS0FBSyxJQUFJLENBQUM7QUFDOUYsWUFBUSxtQkFBbUIsOEJBQThCLEtBQUssd0JBQXdCLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDbEc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFtQixhQUFzQjtBQUN2QyxRQUFJLENBQUMsS0FBSywwQkFBMEIsR0FBRztBQUNyQyxhQUFPO0FBQUEsSUFDVDtBQUVBLFVBQU0sYUFBYSxLQUFLLGNBQWM7QUFDdEMsV0FBTyxDQUFDLENBQUMsY0FBYyxLQUFLLHVCQUF1QixVQUFVO0FBQUEsRUFDL0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFVLHVCQUF1QixlQUF1QztBQUN0RSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTVSx3QkFBd0IsZUFBeUM7QUFDekUsV0FBTyxjQUFjLFNBQVMsS0FBSyxjQUFjLE1BQU0sQ0FBQyxNQUFNLEtBQUssdUJBQXVCLENBQUMsQ0FBQztBQUFBLEVBQzlGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUF5QixVQUF5QjtBQUNoRCxVQUFNLGFBQWEsS0FBSyxjQUFjO0FBQ3RDLFFBQUksWUFBWTtBQUNkLFlBQU0sS0FBSyxvQkFBb0IsVUFBVTtBQUFBLElBQzNDO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZUEsTUFBZ0IscUJBQXFCLGVBQStDO0FBQ2xGLGVBQVcsUUFBUSxlQUFlO0FBQ2hDLFlBQU0sS0FBSyxvQkFBb0IsSUFBSTtBQUFBLElBQ3JDO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVVLDRCQUE0QixlQUE4QixTQUFpQixPQUFnQztBQUNuSCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV1UsNkJBQTZCLGVBQWdDLFFBQWdCLE1BQStCO0FBQ3BILFdBQU8sY0FBYyxNQUFNLENBQUMsTUFBTSxLQUFLLDRCQUE0QixHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDckY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSw0QkFBcUM7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVRLGdCQUFzQztBQUM1QyxXQUFPLEtBQUssb0JBQW9CLGNBQWMsS0FBSztBQUFBLEVBQ3JEO0FBQUEsRUFFUSx1QkFBdUIsTUFBWSxjQUE2QixRQUFnQixNQUE0QjtBQUNsSCxRQUFJLENBQUMsS0FBSyw0QkFBNEIsY0FBYyxRQUFRLElBQUksR0FBRztBQUNqRTtBQUFBLElBQ0Y7QUFFQSxRQUFJLENBQUMsS0FBSyx1QkFBdUIsWUFBWSxHQUFHO0FBQzlDO0FBQUEsSUFDRjtBQUVBLFVBQU0sVUFBVSxLQUFLLG1CQUFtQixLQUFLO0FBQzdDLFFBQUksS0FBSywyQkFBMkI7QUFDbEMsV0FBSyxrQkFBa0IsU0FBUztBQUFBLFFBQzlCLE1BQU0sS0FBSyx1QkFBdUI7QUFBQSxRQUNsQyxPQUFPO0FBQUEsTUFDVCxDQUFDO0FBQUEsSUFDSDtBQUVBLFNBQUssUUFBUSxDQUFDLFNBQVM7QUFDckIsV0FDRyxTQUFTLEtBQUssb0JBQW9CLEtBQUssSUFBSSxFQUMzQyxRQUFRLEtBQUssSUFBSSxFQUNqQixXQUFXLE9BQU8sRUFDbEIsUUFBUSxNQUFNO0FBQ2IsMEJBQWtCLE1BQU0sS0FBSyxvQkFBb0IsWUFBWSxDQUFDO0FBQUEsTUFDaEUsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVRLHdCQUF3QixNQUFZLGVBQWdDLFFBQWdCLE1BQTRCO0FBQ3RILFFBQUksQ0FBQyxLQUFLLDZCQUE2QixlQUFlLFFBQVEsSUFBSSxHQUFHO0FBQ25FO0FBQUEsSUFDRjtBQUVBLFFBQUksQ0FBQyxLQUFLLHdCQUF3QixhQUFhLEdBQUc7QUFDaEQ7QUFBQSxJQUNGO0FBRUEsVUFBTSxVQUFVLEtBQUssb0JBQW9CLEtBQUssbUJBQW1CLEtBQUs7QUFDdEUsUUFBSSxLQUFLLDJCQUEyQjtBQUNsQyxXQUFLLGtCQUFrQixTQUFTO0FBQUEsUUFDOUIsTUFBTSxLQUFLLHdCQUF3QixLQUFLLHVCQUF1QjtBQUFBLFFBQy9ELE9BQU87QUFBQSxNQUNULENBQUM7QUFBQSxJQUNIO0FBRUEsU0FBSyxRQUFRLENBQUMsU0FBUztBQUNyQixXQUNHLFNBQVMsS0FBSyxxQkFBcUIsS0FBSyxvQkFBb0IsS0FBSyxJQUFJLEVBQ3JFLFFBQVEsS0FBSyxJQUFJLEVBQ2pCLFdBQVcsT0FBTyxFQUNsQixRQUFRLE1BQU07QUFDYiwwQkFBa0IsTUFBTSxLQUFLLHFCQUFxQixhQUFhLENBQUM7QUFBQSxNQUNsRSxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* App-backed implementation of {@link ActiveFileProvider}.
|
|
5
|
+
*/
|
|
6
|
+
import type { App, TFile } from 'obsidian';
|
|
7
|
+
import type { ActiveFileProvider } from './command-handler.mjs';
|
|
8
|
+
/**
|
|
9
|
+
* {@link ActiveFileProvider} backed by Obsidian's {@link App}.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AppActiveFileProvider implements ActiveFileProvider {
|
|
12
|
+
private readonly app;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new app-backed active file provider.
|
|
15
|
+
*
|
|
16
|
+
* @param app - The Obsidian app instance.
|
|
17
|
+
*/
|
|
18
|
+
constructor(app: App);
|
|
19
|
+
/**
|
|
20
|
+
* Gets the currently active file from the workspace.
|
|
21
|
+
*
|
|
22
|
+
* @returns The active file, or `null` if no file is active.
|
|
23
|
+
*/
|
|
24
|
+
getActiveFile(): null | TFile;
|
|
25
|
+
}
|
|
@@ -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/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
|
+
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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvYXBwLWFjdGl2ZS1maWxlLXByb3ZpZGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXBwLWJhY2tlZCBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgQWN0aXZlRmlsZVByb3ZpZGVyfS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEFjdGl2ZUZpbGVQcm92aWRlciB9IGZyb20gJy4vY29tbWFuZC1oYW5kbGVyLnRzJztcblxuLyoqXG4gKiB7QGxpbmsgQWN0aXZlRmlsZVByb3ZpZGVyfSBiYWNrZWQgYnkgT2JzaWRpYW4ncyB7QGxpbmsgQXBwfS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcEFjdGl2ZUZpbGVQcm92aWRlciBpbXBsZW1lbnRzIEFjdGl2ZUZpbGVQcm92aWRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFwcC1iYWNrZWQgYWN0aXZlIGZpbGUgcHJvdmlkZXIuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHApIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZmlsZSBmcm9tIHRoZSB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhY3RpdmUgZmlsZSwgb3IgYG51bGxgIGlmIG5vIGZpbGUgaXMgYWN0aXZlLlxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZUZpbGUoKTogbnVsbCB8IFRGaWxlIHtcbiAgICByZXR1cm4gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZUZpbGUoKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQk8sTUFBTSxzQkFBb0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNeEQsWUFBNkIsS0FBVTtBQUFWO0FBQUEsRUFBVztBQUFBLEVBQVg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPN0IsZ0JBQThCO0FBQ25DLFdBQU8sS0FBSyxJQUFJLFVBQVUsY0FBYztBQUFBLEVBQzFDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* App-backed implementation of {@link MenuEventRegistrar}.
|
|
5
|
+
*/
|
|
6
|
+
import type { App, Component } from 'obsidian';
|
|
7
|
+
import type { EditorMenuEventHandler, FileMenuEventHandler, FilesMenuEventHandler, MenuEventRegistrar } from './command-handler.mjs';
|
|
8
|
+
/**
|
|
9
|
+
* {@link MenuEventRegistrar} backed by Obsidian's {@link App} workspace events.
|
|
10
|
+
*
|
|
11
|
+
* Event handlers are registered with the provided {@link Component} for lifecycle management.
|
|
12
|
+
*/
|
|
13
|
+
export declare class AppMenuEventRegistrar implements MenuEventRegistrar {
|
|
14
|
+
private readonly app;
|
|
15
|
+
private readonly component;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new app-backed menu event registrar.
|
|
18
|
+
*
|
|
19
|
+
* @param app - The Obsidian app instance.
|
|
20
|
+
* @param component - The component for lifecycle management.
|
|
21
|
+
*/
|
|
22
|
+
constructor(app: App, component: Component);
|
|
23
|
+
/**
|
|
24
|
+
* Registers a handler for the editor context menu event.
|
|
25
|
+
*
|
|
26
|
+
* @param handler - The handler to register.
|
|
27
|
+
*/
|
|
28
|
+
registerEditorMenuEventHandler(handler: EditorMenuEventHandler): void;
|
|
29
|
+
/**
|
|
30
|
+
* Registers a handler for the single-file context menu event.
|
|
31
|
+
*
|
|
32
|
+
* @param handler - The handler to register.
|
|
33
|
+
*/
|
|
34
|
+
registerFileMenuEventHandler(handler: FileMenuEventHandler): void;
|
|
35
|
+
/**
|
|
36
|
+
* Registers a handler for the multi-file context menu event.
|
|
37
|
+
*
|
|
38
|
+
* @param handler - The handler to register.
|
|
39
|
+
*/
|
|
40
|
+
registerFilesMenuEventHandler(handler: FilesMenuEventHandler): void;
|
|
41
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
class AppMenuEventRegistrar {
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new app-backed menu event registrar.
|
|
27
|
+
*
|
|
28
|
+
* @param app - The Obsidian app instance.
|
|
29
|
+
* @param component - The component for lifecycle management.
|
|
30
|
+
*/
|
|
31
|
+
constructor(app, component) {
|
|
32
|
+
this.app = app;
|
|
33
|
+
this.component = component;
|
|
34
|
+
}
|
|
35
|
+
app;
|
|
36
|
+
component;
|
|
37
|
+
/**
|
|
38
|
+
* Registers a handler for the editor context menu event.
|
|
39
|
+
*
|
|
40
|
+
* @param handler - The handler to register.
|
|
41
|
+
*/
|
|
42
|
+
registerEditorMenuEventHandler(handler) {
|
|
43
|
+
this.component.registerEvent(this.app.workspace.on("editor-menu", handler));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Registers a handler for the single-file context menu event.
|
|
47
|
+
*
|
|
48
|
+
* @param handler - The handler to register.
|
|
49
|
+
*/
|
|
50
|
+
registerFileMenuEventHandler(handler) {
|
|
51
|
+
this.component.registerEvent(this.app.workspace.on("file-menu", handler));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Registers a handler for the multi-file context menu event.
|
|
55
|
+
*
|
|
56
|
+
* @param handler - The handler to register.
|
|
57
|
+
*/
|
|
58
|
+
registerFilesMenuEventHandler(handler) {
|
|
59
|
+
this.component.registerEvent(this.app.workspace.on("files-menu", handler));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
AppMenuEventRegistrar
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvYXBwLW1lbnUtZXZlbnQtcmVnaXN0cmFyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXBwLWJhY2tlZCBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgTWVudUV2ZW50UmVnaXN0cmFyfS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgQ29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBFZGl0b3JNZW51RXZlbnRIYW5kbGVyLFxuICBGaWxlTWVudUV2ZW50SGFuZGxlcixcbiAgRmlsZXNNZW51RXZlbnRIYW5kbGVyLFxuICBNZW51RXZlbnRSZWdpc3RyYXJcbn0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXIudHMnO1xuXG4vKipcbiAqIHtAbGluayBNZW51RXZlbnRSZWdpc3RyYXJ9IGJhY2tlZCBieSBPYnNpZGlhbidzIHtAbGluayBBcHB9IHdvcmtzcGFjZSBldmVudHMuXG4gKlxuICogRXZlbnQgaGFuZGxlcnMgYXJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgcHJvdmlkZWQge0BsaW5rIENvbXBvbmVudH0gZm9yIGxpZmVjeWNsZSBtYW5hZ2VtZW50LlxuICovXG5leHBvcnQgY2xhc3MgQXBwTWVudUV2ZW50UmVnaXN0cmFyIGltcGxlbWVudHMgTWVudUV2ZW50UmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgYXBwLWJhY2tlZCBtZW51IGV2ZW50IHJlZ2lzdHJhci5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGZvciBsaWZlY3ljbGUgbWFuYWdlbWVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcDogQXBwLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBDb21wb25lbnRcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZWRpdG9yIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckVkaXRvck1lbnVFdmVudEhhbmRsZXIoaGFuZGxlcjogRWRpdG9yTWVudUV2ZW50SGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50LnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKCdlZGl0b3ItbWVudScsIGhhbmRsZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgc2luZ2xlLWZpbGUgY29udGV4dCBtZW51IGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRmlsZU1lbnVFdmVudEhhbmRsZXIoaGFuZGxlcjogRmlsZU1lbnVFdmVudEhhbmRsZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudC5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbignZmlsZS1tZW51JywgaGFuZGxlcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGhhbmRsZXIgZm9yIHRoZSBtdWx0aS1maWxlIGNvbnRleHQgbWVudSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byByZWdpc3Rlci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckZpbGVzTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlc01lbnVFdmVudEhhbmRsZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudC5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbignZmlsZXMtbWVudScsIGhhbmRsZXIpKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sTUFBTSxzQkFBb0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU94RCxZQUNZLEtBQ0EsV0FDakI7QUFGaUI7QUFDQTtBQUFBLEVBQ2hCO0FBQUEsRUFGZ0I7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVosK0JBQStCLFNBQXVDO0FBQzNFLFNBQUssVUFBVSxjQUFjLEtBQUssSUFBSSxVQUFVLEdBQUcsZUFBZSxPQUFPLENBQUM7QUFBQSxFQUM1RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLDZCQUE2QixTQUFxQztBQUN2RSxTQUFLLFVBQVUsY0FBYyxLQUFLLElBQUksVUFBVSxHQUFHLGFBQWEsT0FBTyxDQUFDO0FBQUEsRUFDMUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyw4QkFBOEIsU0FBc0M7QUFDekUsU0FBSyxVQUFVLGNBQWMsS0FBSyxJQUFJLFVBQVUsR0FBRyxjQUFjLE9BQU8sQ0FBQztBQUFBLEVBQzNFO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Component that wraps a {@link CommandHandler} and manages its registration with Obsidian.
|
|
5
|
+
*/
|
|
6
|
+
import type { Plugin } from 'obsidian';
|
|
7
|
+
import type { CommandHandler } from './command-handler.mjs';
|
|
8
|
+
import { AsyncComponentBase } from '../components/async-component.mjs';
|
|
9
|
+
/**
|
|
10
|
+
* Wraps a {@link CommandHandler} and registers it with Obsidian on load.
|
|
11
|
+
*/
|
|
12
|
+
export declare class CommandHandlerComponent extends AsyncComponentBase {
|
|
13
|
+
private readonly plugin;
|
|
14
|
+
readonly handler: CommandHandler;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new command handler component.
|
|
17
|
+
*
|
|
18
|
+
* @param plugin - The Obsidian plugin instance.
|
|
19
|
+
* @param handler - The command handler to register.
|
|
20
|
+
*/
|
|
21
|
+
constructor(plugin: Plugin, handler: CommandHandler);
|
|
22
|
+
/**
|
|
23
|
+
* Registers the command with Obsidian and provides runtime context to the handler.
|
|
24
|
+
*/
|
|
25
|
+
onload(): Promise<void>;
|
|
26
|
+
}
|