obsidian-dev-utils 22.1.1-beta.9 → 23.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +145 -0
- package/dist/eslint.config.mts +2 -0
- package/dist/lib/cjs/@types/debug.d.cts +1 -0
- package/dist/lib/cjs/{obsidian/Components/PlaceholderComponent.cjs → Array.cjs} +18 -8
- package/dist/lib/cjs/Array.d.cts +12 -0
- package/dist/lib/cjs/Async.cjs +6 -1
- package/dist/lib/cjs/Async.d.cts +26 -18
- package/dist/lib/cjs/AsyncEvents.cjs +216 -0
- package/dist/lib/cjs/AsyncEvents.d.cts +144 -0
- package/dist/lib/cjs/Blob.cjs +1 -1
- package/dist/lib/cjs/Blob.d.cts +9 -8
- package/dist/lib/cjs/CssClass.cjs +5 -1
- package/dist/lib/cjs/CssClass.d.cts +18 -1
- package/dist/lib/cjs/Debug.cjs +1 -1
- package/dist/lib/cjs/Debug.d.cts +2 -1
- package/dist/lib/cjs/DebugController.cjs +1 -1
- package/dist/lib/cjs/DebugController.d.cts +1 -0
- package/dist/lib/cjs/Enum.cjs +1 -1
- package/dist/lib/cjs/Enum.d.cts +2 -1
- package/dist/lib/cjs/Error.cjs +8 -6
- package/dist/lib/cjs/Error.d.cts +3 -2
- package/dist/lib/cjs/Function.cjs +1 -1
- package/dist/lib/cjs/Function.d.cts +2 -1
- package/dist/lib/cjs/HTMLElement.cjs +1 -1
- package/dist/lib/cjs/HTMLElement.d.cts +4 -2
- package/dist/lib/cjs/Library.cjs +2 -2
- package/dist/lib/cjs/Library.d.cts +2 -1
- package/dist/lib/cjs/Object.cjs +38 -3
- package/dist/lib/cjs/Object.d.cts +18 -13
- package/dist/lib/cjs/Path.cjs +2 -2
- package/dist/lib/cjs/Path.d.cts +2 -1
- package/dist/lib/cjs/RegExp.cjs +1 -1
- package/dist/lib/cjs/RegExp.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/CliUtils.cjs +7 -7
- package/dist/lib/cjs/ScriptUtils/CliUtils.d.cts +12 -11
- package/dist/lib/cjs/ScriptUtils/CodeGenerator.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/CodeGenerator.d.cts +3 -2
- package/dist/lib/cjs/ScriptUtils/ESLint/@types/@guardian__eslint-plugin-tsdoc-required.d.cts +1 -0
- package/dist/lib/cjs/ScriptUtils/ESLint/@types/eslint-plugin-modules-newlines.d.cts +1 -0
- package/dist/lib/cjs/ScriptUtils/ESLint/@types/eslint-plugin-verify-tsdoc.d.cts +1 -0
- package/dist/lib/cjs/ScriptUtils/ESLint/ESLint.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/ESLint/ESLint.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.cjs +13 -10
- package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.d.cts +2 -3
- package/dist/lib/cjs/ScriptUtils/Exec.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Exec.d.cts +4 -3
- package/dist/lib/cjs/ScriptUtils/Fs.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Fs.d.cts +5 -4
- package/dist/lib/cjs/ScriptUtils/JSON.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/JSON.d.cts +5 -4
- package/dist/lib/cjs/ScriptUtils/NodeModules.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/NodeModules.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/Npm.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Npm.d.cts +9 -10
- package/dist/lib/cjs/ScriptUtils/NpmPublish.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/NpmPublish.d.cts +3 -1
- package/dist/lib/cjs/ScriptUtils/NpmRun.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/NpmRun.d.cts +5 -0
- package/dist/lib/cjs/ScriptUtils/ObsidianDevUtilsRepoPaths.cjs +1 -10
- package/dist/lib/cjs/ScriptUtils/ObsidianDevUtilsRepoPaths.d.cts +45 -61
- package/dist/lib/cjs/ScriptUtils/Root.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Root.d.cts +4 -3
- package/dist/lib/cjs/ScriptUtils/build.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/build.d.cts +7 -6
- package/dist/lib/cjs/ScriptUtils/cli.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/cli.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/Dependency.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/Dependency.d.cts +4 -3
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +4 -3
- package/dist/lib/cjs/ScriptUtils/esbuild/changeExtensionPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/changeExtensionPlugin.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/customEsbuildOptionsPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/customEsbuildOptionsPlugin.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/fixEsmPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/fixEsmPlugin.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/fixSourceMapsPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/fixSourceMapsPlugin.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/preprocessPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/preprocessPlugin.d.cts +2 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/renameCssPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/renameCssPlugin.d.cts +5 -0
- package/dist/lib/cjs/ScriptUtils/esbuild/svelteWrapperPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/svelteWrapperPlugin.d.cts +5 -0
- package/dist/lib/cjs/ScriptUtils/format.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/format.d.cts +4 -2
- package/dist/lib/cjs/ScriptUtils/spellcheck.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/spellcheck.d.cts +4 -3
- package/dist/lib/cjs/ScriptUtils/version.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/version.d.cts +12 -11
- package/dist/lib/cjs/String.cjs +1 -1
- package/dist/lib/cjs/String.d.cts +4 -3
- package/dist/lib/cjs/Transformers/DateTransformer.cjs +3 -1
- package/dist/lib/cjs/Transformers/DateTransformer.d.cts +4 -1
- package/dist/lib/cjs/Transformers/DurationTransformer.cjs +5 -1
- package/dist/lib/cjs/Transformers/DurationTransformer.d.cts +6 -1
- package/dist/lib/cjs/Transformers/GroupTransformer.cjs +7 -4
- package/dist/lib/cjs/Transformers/GroupTransformer.d.cts +9 -5
- package/dist/lib/cjs/Transformers/SkipPrivatePropertyTransformer.cjs +3 -1
- package/dist/lib/cjs/Transformers/SkipPrivatePropertyTransformer.d.cts +4 -1
- package/dist/lib/cjs/Transformers/Transformer.cjs +9 -2
- package/dist/lib/cjs/Transformers/Transformer.d.cts +2 -1
- package/dist/lib/cjs/Transformers/TypedTransformer.cjs +1 -1
- package/dist/lib/cjs/Transformers/TypedTransformer.d.cts +2 -1
- package/dist/lib/cjs/Type.cjs +24 -0
- package/dist/lib/cjs/Type.d.cts +17 -0
- package/dist/lib/cjs/ValueProvider.cjs +1 -1
- package/dist/lib/cjs/ValueProvider.d.cts +3 -2
- package/dist/lib/cjs/codemirror/StateFieldSpec.cjs +1 -1
- package/dist/lib/cjs/codemirror/StateFieldSpec.d.cts +2 -1
- package/dist/lib/cjs/index.cjs +10 -1
- package/dist/lib/cjs/index.d.cts +3 -0
- package/dist/lib/cjs/obsidian/App.cjs +1 -1
- package/dist/lib/cjs/obsidian/App.d.cts +2 -1
- package/dist/lib/cjs/obsidian/AttachmentPath.cjs +1 -1
- package/dist/lib/cjs/obsidian/AttachmentPath.d.cts +7 -5
- package/dist/lib/cjs/obsidian/Backlink.cjs +1 -1
- package/dist/lib/cjs/obsidian/Backlink.d.cts +3 -2
- package/dist/lib/cjs/obsidian/Callout.cjs +1 -1
- package/dist/lib/cjs/obsidian/Callout.d.cts +3 -2
- package/dist/lib/cjs/obsidian/Components/CheckboxComponent.cjs +99 -0
- package/dist/lib/cjs/obsidian/Components/CheckboxComponent.d.cts +59 -0
- package/dist/lib/cjs/obsidian/Components/DateComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/DateComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/DateTimeComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/DateTimeComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/EmailComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/EmailComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/FileComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/FileComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/MonthComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/MonthComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/MultipleDropdownComponent.cjs +4 -2
- package/dist/lib/cjs/obsidian/Components/MultipleDropdownComponent.d.cts +4 -1
- package/dist/lib/cjs/obsidian/Components/MultipleEmailComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/MultipleEmailComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/MultipleFileComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/MultipleFileComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/MultipleTextComponent.cjs +30 -3
- package/dist/lib/cjs/obsidian/Components/MultipleTextComponent.d.cts +22 -3
- package/dist/lib/cjs/obsidian/Components/NumberComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/NumberComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/TextBasedComponent.cjs +65 -0
- package/dist/lib/cjs/obsidian/Components/TextBasedComponent.d.cts +37 -0
- package/dist/lib/cjs/obsidian/Components/TimeComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/TimeComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/TriStateCheckboxComponent.cjs +100 -0
- package/dist/lib/cjs/obsidian/Components/TriStateCheckboxComponent.d.cts +59 -0
- package/dist/lib/cjs/obsidian/Components/TypedDropdownComponent.cjs +129 -0
- package/dist/lib/cjs/obsidian/Components/TypedDropdownComponent.d.cts +78 -0
- package/dist/lib/cjs/obsidian/Components/TypedMultipleDropdownComponent.cjs +131 -0
- package/dist/lib/cjs/obsidian/Components/TypedMultipleDropdownComponent.d.cts +79 -0
- package/dist/lib/cjs/obsidian/Components/TypedRangeTextComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/TypedRangeTextComponent.d.cts +4 -1
- package/dist/lib/cjs/obsidian/Components/TypedTextComponent.cjs +30 -4
- package/dist/lib/cjs/obsidian/Components/TypedTextComponent.d.cts +25 -3
- package/dist/lib/cjs/obsidian/Components/UrlComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/UrlComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/ValidatorComponent.cjs +23 -29
- package/dist/lib/cjs/obsidian/Components/ValidatorComponent.d.cts +6 -6
- package/dist/lib/cjs/obsidian/Components/ValueComponentWithChangeTracking.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/ValueComponentWithChangeTracking.d.cts +4 -1
- package/dist/lib/cjs/obsidian/Components/WeekComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/WeekComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/index.cjs +16 -4
- package/dist/lib/cjs/obsidian/Components/index.d.cts +5 -1
- package/dist/lib/cjs/obsidian/Dataview.cjs +1 -1
- package/dist/lib/cjs/obsidian/Dataview.d.cts +11 -12
- package/dist/lib/cjs/obsidian/DataviewLink.cjs +1 -1
- package/dist/lib/cjs/obsidian/DataviewLink.d.cts +4 -3
- package/dist/lib/cjs/obsidian/FileChange.cjs +1 -1
- package/dist/lib/cjs/obsidian/FileChange.d.cts +4 -3
- package/dist/lib/cjs/obsidian/FileManager.cjs +1 -1
- package/dist/lib/cjs/obsidian/FileManager.d.cts +6 -5
- package/dist/lib/cjs/obsidian/FileSystem.cjs +1 -1
- package/dist/lib/cjs/obsidian/FileSystem.d.cts +3 -1
- package/dist/lib/cjs/obsidian/Frontmatter.cjs +1 -1
- package/dist/lib/cjs/obsidian/Frontmatter.d.cts +5 -1
- package/dist/lib/cjs/obsidian/Link.cjs +1 -1
- package/dist/lib/cjs/obsidian/Link.d.cts +7 -6
- package/dist/lib/cjs/obsidian/Logger.cjs +1 -1
- package/dist/lib/cjs/obsidian/Logger.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Loop.cjs +1 -1
- package/dist/lib/cjs/obsidian/Loop.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Markdown.cjs +5 -8
- package/dist/lib/cjs/obsidian/Markdown.d.cts +2 -1
- package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.cjs +1 -1
- package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.d.cts +2 -1
- package/dist/lib/cjs/obsidian/MarkdownView.cjs +1 -1
- package/dist/lib/cjs/obsidian/MarkdownView.d.cts +2 -1
- package/dist/lib/cjs/obsidian/MetadataCache.cjs +1 -1
- package/dist/lib/cjs/obsidian/MetadataCache.d.cts +7 -5
- package/dist/lib/cjs/obsidian/Modals/Alert.cjs +3 -1
- package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +3 -2
- package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +3 -1
- package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +3 -2
- package/dist/lib/cjs/obsidian/Modals/ModalBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/ModalBase.d.cts +2 -2
- package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +3 -1
- package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +5 -3
- package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +2 -1
- package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +4 -2
- package/dist/lib/cjs/obsidian/MonkeyAround.cjs +1 -1
- package/dist/lib/cjs/obsidian/MonkeyAround.d.cts +5 -3
- package/dist/lib/cjs/obsidian/ObsidianSettings.cjs +1 -1
- package/dist/lib/cjs/obsidian/ObsidianSettings.d.cts +3 -0
- package/dist/lib/cjs/obsidian/Pdf.cjs +1 -1
- package/dist/lib/cjs/obsidian/Pdf.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +6 -2
- package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.d.cts +38 -29
- package/dist/lib/cjs/obsidian/Plugin/Plugin.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/Plugin.d.cts +4 -3
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.cjs +121 -32
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.d.cts +52 -21
- package/dist/lib/cjs/obsidian/Plugin/PluginContext.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginContext.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginId.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginId.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +76 -48
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.d.cts +39 -21
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.cjs +18 -10
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.d.cts +18 -11
- package/dist/lib/cjs/obsidian/Plugin/PluginTypesBase.cjs +24 -0
- package/dist/lib/cjs/obsidian/Plugin/PluginTypesBase.d.cts +55 -0
- package/dist/lib/cjs/obsidian/Plugin/index.cjs +6 -3
- package/dist/lib/cjs/obsidian/Plugin/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/Queue.cjs +1 -1
- package/dist/lib/cjs/obsidian/Queue.d.cts +3 -2
- package/dist/lib/cjs/obsidian/React/AppContext.cjs +3 -3
- package/dist/lib/cjs/obsidian/React/AppContext.d.cts +8 -1
- package/dist/lib/cjs/obsidian/Reference.cjs +1 -1
- package/dist/lib/cjs/obsidian/Reference.d.cts +2 -1
- package/dist/lib/cjs/obsidian/RenameDeleteHandler.cjs +75 -75
- package/dist/lib/cjs/obsidian/RenameDeleteHandler.d.cts +3 -2
- package/dist/lib/cjs/obsidian/ResourceUrl.cjs +1 -1
- package/dist/lib/cjs/obsidian/ResourceUrl.d.cts +2 -1
- package/dist/lib/cjs/obsidian/SettingEx.cjs +41 -1
- package/dist/lib/cjs/obsidian/SettingEx.d.cts +35 -2
- package/dist/lib/cjs/obsidian/ValidationMessage.cjs +1 -1
- package/dist/lib/cjs/obsidian/ValidationMessage.d.cts +5 -0
- package/dist/lib/cjs/obsidian/Vault.cjs +1 -1
- package/dist/lib/cjs/obsidian/Vault.d.cts +15 -10
- package/dist/lib/cjs/obsidian/VaultEx.cjs +1 -1
- package/dist/lib/cjs/obsidian/VaultEx.d.cts +4 -3
- package/dist/lib/cjs/url.cjs +1 -1
- package/dist/lib/cjs/url.d.cts +2 -1
- package/dist/lib/esm/@types/debug.d.mts +1 -0
- package/dist/lib/esm/Array.d.mts +12 -0
- package/dist/lib/esm/Array.mjs +24 -0
- package/dist/lib/esm/Async.d.mts +26 -18
- package/dist/lib/esm/Async.mjs +5 -1
- package/dist/lib/esm/AsyncEvents.d.mts +144 -0
- package/dist/lib/esm/AsyncEvents.mjs +192 -0
- package/dist/lib/esm/Blob.d.mts +9 -8
- package/dist/lib/esm/Blob.mjs +1 -1
- package/dist/lib/esm/CssClass.d.mts +18 -1
- package/dist/lib/esm/CssClass.mjs +5 -1
- package/dist/lib/esm/Debug.d.mts +2 -1
- package/dist/lib/esm/Debug.mjs +1 -1
- package/dist/lib/esm/DebugController.d.mts +1 -0
- package/dist/lib/esm/Enum.d.mts +2 -1
- package/dist/lib/esm/Enum.mjs +1 -1
- package/dist/lib/esm/Error.d.mts +3 -2
- package/dist/lib/esm/Error.mjs +8 -6
- package/dist/lib/esm/Function.d.mts +2 -1
- package/dist/lib/esm/Function.mjs +1 -1
- package/dist/lib/esm/HTMLElement.d.mts +4 -2
- package/dist/lib/esm/HTMLElement.mjs +1 -1
- package/dist/lib/esm/Library.d.mts +2 -1
- package/dist/lib/esm/Library.mjs +2 -2
- package/dist/lib/esm/Object.d.mts +18 -13
- package/dist/lib/esm/Object.mjs +36 -3
- package/dist/lib/esm/Path.d.mts +2 -1
- package/dist/lib/esm/Path.mjs +2 -2
- package/dist/lib/esm/RegExp.d.mts +2 -1
- package/dist/lib/esm/RegExp.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/CliUtils.d.mts +12 -11
- package/dist/lib/esm/ScriptUtils/CliUtils.mjs +7 -7
- package/dist/lib/esm/ScriptUtils/CodeGenerator.d.mts +3 -2
- package/dist/lib/esm/ScriptUtils/CodeGenerator.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/ESLint/@types/@guardian__eslint-plugin-tsdoc-required.d.mts +1 -0
- package/dist/lib/esm/ScriptUtils/ESLint/@types/eslint-plugin-modules-newlines.d.mts +1 -0
- package/dist/lib/esm/ScriptUtils/ESLint/@types/eslint-plugin-verify-tsdoc.d.mts +1 -0
- package/dist/lib/esm/ScriptUtils/ESLint/ESLint.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/ESLint/ESLint.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.d.mts +2 -3
- package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.mjs +13 -10
- package/dist/lib/esm/ScriptUtils/Exec.d.mts +4 -3
- package/dist/lib/esm/ScriptUtils/Exec.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/Fs.d.mts +5 -4
- package/dist/lib/esm/ScriptUtils/Fs.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/JSON.d.mts +5 -4
- package/dist/lib/esm/ScriptUtils/JSON.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/NodeModules.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/NodeModules.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/Npm.d.mts +9 -10
- package/dist/lib/esm/ScriptUtils/Npm.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/NpmPublish.d.mts +3 -1
- package/dist/lib/esm/ScriptUtils/NpmPublish.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/NpmRun.d.mts +5 -0
- package/dist/lib/esm/ScriptUtils/NpmRun.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/ObsidianDevUtilsRepoPaths.d.mts +45 -61
- package/dist/lib/esm/ScriptUtils/ObsidianDevUtilsRepoPaths.mjs +1 -10
- package/dist/lib/esm/ScriptUtils/Root.d.mts +4 -3
- package/dist/lib/esm/ScriptUtils/Root.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/build.d.mts +7 -6
- package/dist/lib/esm/ScriptUtils/build.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/cli.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/cli.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/Dependency.d.mts +4 -3
- package/dist/lib/esm/ScriptUtils/esbuild/Dependency.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +4 -3
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/changeExtensionPlugin.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/esbuild/changeExtensionPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/customEsbuildOptionsPlugin.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/esbuild/customEsbuildOptionsPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/fixEsmPlugin.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/esbuild/fixEsmPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/fixSourceMapsPlugin.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/esbuild/fixSourceMapsPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/preprocessPlugin.d.mts +2 -1
- package/dist/lib/esm/ScriptUtils/esbuild/preprocessPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/renameCssPlugin.d.mts +5 -0
- package/dist/lib/esm/ScriptUtils/esbuild/renameCssPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/svelteWrapperPlugin.d.mts +5 -0
- package/dist/lib/esm/ScriptUtils/esbuild/svelteWrapperPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/format.d.mts +4 -2
- package/dist/lib/esm/ScriptUtils/format.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/spellcheck.d.mts +4 -3
- package/dist/lib/esm/ScriptUtils/spellcheck.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/version.d.mts +12 -11
- package/dist/lib/esm/ScriptUtils/version.mjs +1 -1
- package/dist/lib/esm/String.d.mts +4 -3
- package/dist/lib/esm/String.mjs +1 -1
- package/dist/lib/esm/Transformers/DateTransformer.d.mts +4 -1
- package/dist/lib/esm/Transformers/DateTransformer.mjs +3 -1
- package/dist/lib/esm/Transformers/DurationTransformer.d.mts +6 -1
- package/dist/lib/esm/Transformers/DurationTransformer.mjs +5 -1
- package/dist/lib/esm/Transformers/GroupTransformer.d.mts +9 -5
- package/dist/lib/esm/Transformers/GroupTransformer.mjs +7 -4
- package/dist/lib/esm/Transformers/SkipPrivatePropertyTransformer.d.mts +4 -1
- package/dist/lib/esm/Transformers/SkipPrivatePropertyTransformer.mjs +3 -1
- package/dist/lib/esm/Transformers/Transformer.d.mts +2 -1
- package/dist/lib/esm/Transformers/Transformer.mjs +9 -2
- package/dist/lib/esm/Transformers/TypedTransformer.d.mts +2 -1
- package/dist/lib/esm/Transformers/TypedTransformer.mjs +1 -1
- package/dist/lib/esm/Type.d.mts +17 -0
- package/dist/lib/esm/Type.mjs +8 -0
- package/dist/lib/esm/ValueProvider.d.mts +3 -2
- package/dist/lib/esm/ValueProvider.mjs +1 -1
- package/dist/lib/esm/codemirror/StateFieldSpec.d.mts +2 -1
- package/dist/lib/esm/index.d.mts +3 -0
- package/dist/lib/esm/index.mjs +7 -1
- package/dist/lib/esm/obsidian/App.d.mts +2 -1
- package/dist/lib/esm/obsidian/App.mjs +1 -1
- package/dist/lib/esm/obsidian/AttachmentPath.d.mts +7 -5
- package/dist/lib/esm/obsidian/AttachmentPath.mjs +1 -1
- package/dist/lib/esm/obsidian/Backlink.d.mts +3 -2
- package/dist/lib/esm/obsidian/Backlink.mjs +1 -1
- package/dist/lib/esm/obsidian/Callout.d.mts +3 -2
- package/dist/lib/esm/obsidian/Callout.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/CheckboxComponent.d.mts +59 -0
- package/dist/lib/esm/obsidian/Components/CheckboxComponent.mjs +75 -0
- package/dist/lib/esm/obsidian/Components/DateComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/DateComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/DateTimeComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/DateTimeComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/EmailComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/EmailComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/FileComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/FileComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/MonthComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/MonthComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/MultipleDropdownComponent.d.mts +4 -1
- package/dist/lib/esm/obsidian/Components/MultipleDropdownComponent.mjs +4 -2
- package/dist/lib/esm/obsidian/Components/MultipleEmailComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/MultipleEmailComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/MultipleFileComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/MultipleFileComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/MultipleTextComponent.d.mts +22 -3
- package/dist/lib/esm/obsidian/Components/MultipleTextComponent.mjs +30 -3
- package/dist/lib/esm/obsidian/Components/NumberComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/NumberComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/TextBasedComponent.d.mts +37 -0
- package/dist/lib/esm/obsidian/Components/TextBasedComponent.mjs +41 -0
- package/dist/lib/esm/obsidian/Components/TimeComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/TimeComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/TriStateCheckboxComponent.d.mts +59 -0
- package/dist/lib/esm/obsidian/Components/TriStateCheckboxComponent.mjs +76 -0
- package/dist/lib/esm/obsidian/Components/TypedDropdownComponent.d.mts +78 -0
- package/dist/lib/esm/obsidian/Components/TypedDropdownComponent.mjs +108 -0
- package/dist/lib/esm/obsidian/Components/TypedMultipleDropdownComponent.d.mts +79 -0
- package/dist/lib/esm/obsidian/Components/TypedMultipleDropdownComponent.mjs +110 -0
- package/dist/lib/esm/obsidian/Components/TypedRangeTextComponent.d.mts +4 -1
- package/dist/lib/esm/obsidian/Components/TypedRangeTextComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/TypedTextComponent.d.mts +25 -3
- package/dist/lib/esm/obsidian/Components/TypedTextComponent.mjs +30 -4
- package/dist/lib/esm/obsidian/Components/UrlComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/UrlComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/ValidatorComponent.d.mts +6 -6
- package/dist/lib/esm/obsidian/Components/ValidatorComponent.mjs +25 -30
- package/dist/lib/esm/obsidian/Components/ValueComponentWithChangeTracking.d.mts +4 -1
- package/dist/lib/esm/obsidian/Components/WeekComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/WeekComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/index.d.mts +5 -1
- package/dist/lib/esm/obsidian/Components/index.mjs +11 -3
- package/dist/lib/esm/obsidian/Dataview.d.mts +11 -12
- package/dist/lib/esm/obsidian/Dataview.mjs +1 -1
- package/dist/lib/esm/obsidian/DataviewLink.d.mts +4 -3
- package/dist/lib/esm/obsidian/DataviewLink.mjs +1 -1
- package/dist/lib/esm/obsidian/FileChange.d.mts +4 -3
- package/dist/lib/esm/obsidian/FileChange.mjs +1 -1
- package/dist/lib/esm/obsidian/FileManager.d.mts +6 -5
- package/dist/lib/esm/obsidian/FileManager.mjs +1 -1
- package/dist/lib/esm/obsidian/FileSystem.d.mts +3 -1
- package/dist/lib/esm/obsidian/FileSystem.mjs +1 -1
- package/dist/lib/esm/obsidian/Frontmatter.d.mts +5 -1
- package/dist/lib/esm/obsidian/Frontmatter.mjs +1 -1
- package/dist/lib/esm/obsidian/Link.d.mts +7 -6
- package/dist/lib/esm/obsidian/Link.mjs +1 -1
- package/dist/lib/esm/obsidian/Logger.d.mts +2 -1
- package/dist/lib/esm/obsidian/Logger.mjs +1 -1
- package/dist/lib/esm/obsidian/Loop.d.mts +2 -1
- package/dist/lib/esm/obsidian/Loop.mjs +1 -1
- package/dist/lib/esm/obsidian/Markdown.d.mts +2 -1
- package/dist/lib/esm/obsidian/Markdown.mjs +5 -8
- package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.d.mts +2 -1
- package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.mjs +1 -1
- package/dist/lib/esm/obsidian/MarkdownView.d.mts +2 -1
- package/dist/lib/esm/obsidian/MarkdownView.mjs +1 -1
- package/dist/lib/esm/obsidian/MetadataCache.d.mts +7 -5
- package/dist/lib/esm/obsidian/MetadataCache.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Alert.d.mts +3 -2
- package/dist/lib/esm/obsidian/Modals/Alert.mjs +3 -1
- package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +3 -2
- package/dist/lib/esm/obsidian/Modals/Confirm.mjs +3 -1
- package/dist/lib/esm/obsidian/Modals/ModalBase.d.mts +2 -2
- package/dist/lib/esm/obsidian/Modals/ModalBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +5 -3
- package/dist/lib/esm/obsidian/Modals/Prompt.mjs +3 -1
- package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +4 -2
- package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +2 -1
- package/dist/lib/esm/obsidian/MonkeyAround.d.mts +5 -3
- package/dist/lib/esm/obsidian/MonkeyAround.mjs +1 -1
- package/dist/lib/esm/obsidian/ObsidianSettings.d.mts +3 -0
- package/dist/lib/esm/obsidian/ObsidianSettings.mjs +1 -1
- package/dist/lib/esm/obsidian/Pdf.d.mts +2 -1
- package/dist/lib/esm/obsidian/Pdf.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.d.mts +38 -29
- package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.mjs +6 -2
- package/dist/lib/esm/obsidian/Plugin/Plugin.d.mts +4 -3
- package/dist/lib/esm/obsidian/Plugin/Plugin.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginBase.d.mts +52 -21
- package/dist/lib/esm/obsidian/Plugin/PluginBase.mjs +128 -38
- package/dist/lib/esm/obsidian/Plugin/PluginContext.d.mts +2 -1
- package/dist/lib/esm/obsidian/Plugin/PluginContext.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginId.d.mts +2 -1
- package/dist/lib/esm/obsidian/Plugin/PluginId.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.d.mts +39 -21
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +80 -49
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.d.mts +18 -11
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.mjs +22 -11
- package/dist/lib/esm/obsidian/Plugin/PluginTypesBase.d.mts +55 -0
- package/dist/lib/esm/obsidian/Plugin/PluginTypesBase.mjs +8 -0
- package/dist/lib/esm/obsidian/Plugin/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/Plugin/index.mjs +4 -2
- package/dist/lib/esm/obsidian/Queue.d.mts +3 -2
- package/dist/lib/esm/obsidian/Queue.mjs +1 -1
- package/dist/lib/esm/obsidian/React/AppContext.d.mts +8 -1
- package/dist/lib/esm/obsidian/React/AppContext.mjs +3 -3
- package/dist/lib/esm/obsidian/Reference.d.mts +2 -1
- package/dist/lib/esm/obsidian/Reference.mjs +1 -1
- package/dist/lib/esm/obsidian/RenameDeleteHandler.d.mts +3 -2
- package/dist/lib/esm/obsidian/RenameDeleteHandler.mjs +75 -75
- package/dist/lib/esm/obsidian/ResourceUrl.d.mts +2 -1
- package/dist/lib/esm/obsidian/ResourceUrl.mjs +1 -1
- package/dist/lib/esm/obsidian/SettingEx.d.mts +35 -2
- package/dist/lib/esm/obsidian/SettingEx.mjs +41 -1
- package/dist/lib/esm/obsidian/ValidationMessage.d.mts +5 -0
- package/dist/lib/esm/obsidian/ValidationMessage.mjs +1 -1
- package/dist/lib/esm/obsidian/Vault.d.mts +15 -10
- package/dist/lib/esm/obsidian/Vault.mjs +1 -1
- package/dist/lib/esm/obsidian/VaultEx.d.mts +4 -3
- package/dist/lib/esm/obsidian/VaultEx.mjs +1 -1
- package/dist/lib/esm/url.d.mts +2 -1
- package/dist/lib/esm/url.mjs +1 -1
- package/obsidian/Components/CheckboxComponent/package.json +6 -0
- package/obsidian/Components/TextBasedComponent/package.json +6 -0
- package/obsidian/Components/TriStateCheckboxComponent/package.json +6 -0
- package/obsidian/Components/TypedDropdownComponent/package.json +6 -0
- package/obsidian/Components/TypedMultipleDropdownComponent/package.json +6 -0
- package/obsidian/Plugin/PluginTypesBase/package.json +6 -0
- package/package.json +8 -9
- package/dist/lib/cjs/obsidian/Components/PlaceholderComponent.d.cts +0 -19
- package/dist/lib/esm/obsidian/Components/PlaceholderComponent.d.mts +0 -19
- package/dist/lib/esm/obsidian/Components/PlaceholderComponent.mjs +0 -14
- package/obsidian/Components/PlaceholderComponent/package.json +0 -6
@@ -1,21 +1,25 @@
|
|
1
1
|
/**
|
2
|
-
* @packageDocumentation
|
2
|
+
* @packageDocumentation
|
3
|
+
*
|
3
4
|
* Base class for Obsidian plugins providing utility methods for settings management, error handling, and notifications.
|
4
5
|
*
|
5
6
|
* This class simplifies the process of managing plugin settings, displaying notifications, and handling errors.
|
6
7
|
* Subclasses should implement methods to create default settings and settings tabs, and complete plugin-specific
|
7
8
|
* loading tasks.
|
8
9
|
*/
|
9
|
-
import type {
|
10
|
-
import
|
11
|
-
import {
|
12
|
-
import {
|
10
|
+
import type { ReadonlyDeep } from 'type-fest';
|
11
|
+
import { Plugin as ObsidianPlugin } from 'obsidian';
|
12
|
+
import type { AsyncEventRef } from '../../AsyncEvents.mjs';
|
13
|
+
import type { ExtractPluginSettings, ExtractPluginSettingsManager, ExtractPluginSettingsTab, PluginTypesBase } from './PluginTypesBase.mjs';
|
14
|
+
import { AsyncEvents } from '../../AsyncEvents.mjs';
|
15
|
+
type LifecycleEventName = 'layoutReady' | 'load' | 'unload';
|
13
16
|
/**
|
14
17
|
* Base class for creating Obsidian plugins with built-in support for settings management, error handling, and notifications.
|
15
18
|
*
|
16
19
|
* @typeParam PluginSettings - The type representing the plugin settings object.
|
17
20
|
*/
|
18
|
-
export declare abstract class PluginBase<
|
21
|
+
export declare abstract class PluginBase<PluginTypes extends PluginTypesBase> extends ObsidianPlugin {
|
22
|
+
readonly events: AsyncEvents;
|
19
23
|
/**
|
20
24
|
* Gets the AbortSignal used for aborting long-running operations.
|
21
25
|
*
|
@@ -27,10 +31,13 @@ export declare abstract class PluginBase<PluginSettings extends object = object>
|
|
27
31
|
*
|
28
32
|
* @returns The readonly plugin settings.
|
29
33
|
*/
|
30
|
-
get settings(): ReadonlyDeep<
|
31
|
-
get settingsManager():
|
34
|
+
get settings(): ReadonlyDeep<ExtractPluginSettings<PluginTypes>>;
|
35
|
+
get settingsManager(): ExtractPluginSettingsManager<PluginTypes>;
|
36
|
+
get settingsTab(): ExtractPluginSettingsTab<PluginTypes>;
|
32
37
|
private _abortSignal;
|
33
38
|
private _settingsManager;
|
39
|
+
private _settingsTab;
|
40
|
+
private lifecycleEventNames;
|
34
41
|
private notice?;
|
35
42
|
/**
|
36
43
|
* Logs a message to the console.
|
@@ -53,44 +60,68 @@ export declare abstract class PluginBase<PluginSettings extends object = object>
|
|
53
60
|
* Called when the plugin is loaded
|
54
61
|
*/
|
55
62
|
onload(): Promise<void>;
|
63
|
+
/**
|
64
|
+
* Called when the plugin settings are loaded or reloaded.
|
65
|
+
*
|
66
|
+
* @param _settings - The settings.
|
67
|
+
*/
|
68
|
+
onLoadSettings(_settings: ExtractPluginSettings<PluginTypes>): Promise<void>;
|
56
69
|
/**
|
57
70
|
* Called when the plugin settings are saved.
|
58
71
|
*
|
59
72
|
* @param _newSettings - The new settings.
|
60
73
|
* @param _oldSettings - The old settings.
|
61
|
-
* @returns A promise or void indicating the completion of the save process.
|
62
74
|
*/
|
63
|
-
onSaveSettings(_newSettings:
|
75
|
+
onSaveSettings(_newSettings: ExtractPluginSettings<PluginTypes>, _oldSettings: ExtractPluginSettings<PluginTypes>): Promise<void>;
|
76
|
+
onunload(): void;
|
77
|
+
/**
|
78
|
+
* Registers an async event.
|
79
|
+
* Unregisters the event when the plugin is unloaded.
|
80
|
+
*
|
81
|
+
* @param eventRef - The event reference.
|
82
|
+
*/
|
83
|
+
registerAsyncEvent(eventRef: AsyncEventRef): void;
|
64
84
|
/**
|
65
|
-
*
|
85
|
+
* Waits for a lifecycle event to be triggered.
|
86
|
+
*
|
87
|
+
* If you `await` this method during lifecycle event, it might cause a deadlock.
|
88
|
+
*
|
89
|
+
* Consider wrapping this call with {@link invokeAsyncSafely}.
|
90
|
+
*
|
91
|
+
* @param name - The name of the event.
|
92
|
+
* @returns A {@link Promise} that resolves when the event is triggered.
|
93
|
+
*/
|
94
|
+
waitForLifecycleEvent(name: LifecycleEventName): Promise<void>;
|
95
|
+
/**
|
96
|
+
* Creates a plugin settings tab.
|
66
97
|
*
|
67
98
|
* @returns The settings tab or null if not applicable.
|
68
99
|
*/
|
69
|
-
protected
|
100
|
+
protected createPluginSettingsTab(): ExtractPluginSettingsTab<PluginTypes> | null;
|
70
101
|
/**
|
71
102
|
* Creates the plugin settings manager. This method must be implemented by subclasses.
|
72
103
|
*
|
73
104
|
* @returns The plugin settings manager.
|
74
105
|
*/
|
75
|
-
protected
|
106
|
+
protected createSettingsManager(): ExtractPluginSettingsManager<PluginTypes> | null;
|
76
107
|
/**
|
77
108
|
* Called when the layout is ready. This method can be overridden by subclasses to perform actions once
|
78
109
|
* the layout is ready.
|
79
|
-
*
|
80
|
-
* @returns A promise or void indicating the completion of the layout setup.
|
81
110
|
*/
|
82
|
-
protected onLayoutReady():
|
111
|
+
protected onLayoutReady(): Promise<void>;
|
112
|
+
protected onloadImpl(): Promise<void>;
|
83
113
|
/**
|
84
|
-
* Called when the plugin
|
85
|
-
* any additional setup required after loading is complete.
|
86
|
-
*
|
87
|
-
* @returns A promise or void indicating the completion of the load process.
|
114
|
+
* Called when the plugin is unloaded.
|
88
115
|
*/
|
89
|
-
protected
|
116
|
+
protected onunloadImpl(): Promise<void>;
|
90
117
|
/**
|
91
118
|
* Displays a notice message to the user.
|
92
119
|
*
|
93
120
|
* @param message - The message to display.
|
94
121
|
*/
|
95
122
|
protected showNotice(message: string): void;
|
123
|
+
private afterLoad;
|
124
|
+
private onLayoutReadyBase;
|
125
|
+
private triggerLifecycleEvent;
|
96
126
|
}
|
127
|
+
export {};
|
@@ -7,17 +7,20 @@ if you want to view the source, please visit the github repository of this plugi
|
|
7
7
|
|
8
8
|
import {
|
9
9
|
Notice,
|
10
|
-
Plugin
|
10
|
+
Plugin as ObsidianPlugin
|
11
11
|
} from "obsidian";
|
12
|
+
import {
|
13
|
+
convertAsyncToSync,
|
14
|
+
invokeAsyncSafely,
|
15
|
+
invokeAsyncSafelyAfterDelay
|
16
|
+
} from "../../Async.mjs";
|
17
|
+
import { AsyncEvents } from "../../AsyncEvents.mjs";
|
12
18
|
import { getDebugger } from "../../Debug.mjs";
|
13
19
|
import { registerAsyncErrorEventHandler } from "../../Error.mjs";
|
14
|
-
import {
|
15
|
-
noop,
|
16
|
-
noopAsync
|
17
|
-
} from "../../Function.mjs";
|
20
|
+
import { noopAsync } from "../../Function.mjs";
|
18
21
|
import { initPluginContext } from "./PluginContext.mjs";
|
19
|
-
|
20
|
-
|
22
|
+
class PluginBase extends ObsidianPlugin {
|
23
|
+
events = new AsyncEvents();
|
21
24
|
/**
|
22
25
|
* Gets the AbortSignal used for aborting long-running operations.
|
23
26
|
*
|
@@ -35,10 +38,21 @@ class PluginBase extends Plugin {
|
|
35
38
|
return this.settingsManager.safeSettings;
|
36
39
|
}
|
37
40
|
get settingsManager() {
|
41
|
+
if (!this._settingsManager) {
|
42
|
+
throw new Error("Settings manager not defined");
|
43
|
+
}
|
38
44
|
return this._settingsManager;
|
39
45
|
}
|
46
|
+
get settingsTab() {
|
47
|
+
if (!this._settingsTab) {
|
48
|
+
throw new Error("Settings tab not defined");
|
49
|
+
}
|
50
|
+
return this._settingsTab;
|
51
|
+
}
|
40
52
|
_abortSignal;
|
41
|
-
_settingsManager;
|
53
|
+
_settingsManager = null;
|
54
|
+
_settingsTab = null;
|
55
|
+
lifecycleEventNames = /* @__PURE__ */ new Set();
|
42
56
|
notice;
|
43
57
|
/**
|
44
58
|
* Logs a message to the console.
|
@@ -61,12 +75,99 @@ class PluginBase extends Plugin {
|
|
61
75
|
* Called when the external settings change.
|
62
76
|
*/
|
63
77
|
async onExternalSettingsChange() {
|
64
|
-
await
|
78
|
+
await super.onExternalSettingsChange?.();
|
79
|
+
await this._settingsManager?.loadFromFile();
|
65
80
|
}
|
66
81
|
/**
|
67
82
|
* Called when the plugin is loaded
|
68
83
|
*/
|
69
84
|
async onload() {
|
85
|
+
await super.onload();
|
86
|
+
await this.onloadImpl();
|
87
|
+
invokeAsyncSafelyAfterDelay(this.afterLoad.bind(this));
|
88
|
+
}
|
89
|
+
/**
|
90
|
+
* Called when the plugin settings are loaded or reloaded.
|
91
|
+
*
|
92
|
+
* @param _settings - The settings.
|
93
|
+
*/
|
94
|
+
async onLoadSettings(_settings) {
|
95
|
+
await noopAsync();
|
96
|
+
}
|
97
|
+
/**
|
98
|
+
* Called when the plugin settings are saved.
|
99
|
+
*
|
100
|
+
* @param _newSettings - The new settings.
|
101
|
+
* @param _oldSettings - The old settings.
|
102
|
+
*/
|
103
|
+
async onSaveSettings(_newSettings, _oldSettings) {
|
104
|
+
await noopAsync();
|
105
|
+
}
|
106
|
+
onunload() {
|
107
|
+
super.onunload();
|
108
|
+
invokeAsyncSafely(async () => {
|
109
|
+
try {
|
110
|
+
await this.onunloadImpl();
|
111
|
+
} finally {
|
112
|
+
await this.triggerLifecycleEvent("unload");
|
113
|
+
}
|
114
|
+
});
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Registers an async event.
|
118
|
+
* Unregisters the event when the plugin is unloaded.
|
119
|
+
*
|
120
|
+
* @param eventRef - The event reference.
|
121
|
+
*/
|
122
|
+
registerAsyncEvent(eventRef) {
|
123
|
+
this.register(() => {
|
124
|
+
eventRef.asyncEvents.offref(eventRef);
|
125
|
+
});
|
126
|
+
}
|
127
|
+
/**
|
128
|
+
* Waits for a lifecycle event to be triggered.
|
129
|
+
*
|
130
|
+
* If you `await` this method during lifecycle event, it might cause a deadlock.
|
131
|
+
*
|
132
|
+
* Consider wrapping this call with {@link invokeAsyncSafely}.
|
133
|
+
*
|
134
|
+
* @param name - The name of the event.
|
135
|
+
* @returns A {@link Promise} that resolves when the event is triggered.
|
136
|
+
*/
|
137
|
+
async waitForLifecycleEvent(name) {
|
138
|
+
if (this.lifecycleEventNames.has(name)) {
|
139
|
+
return;
|
140
|
+
}
|
141
|
+
await new Promise((resolve) => {
|
142
|
+
this.events.once(name, () => {
|
143
|
+
resolve();
|
144
|
+
});
|
145
|
+
});
|
146
|
+
}
|
147
|
+
/**
|
148
|
+
* Creates a plugin settings tab.
|
149
|
+
*
|
150
|
+
* @returns The settings tab or null if not applicable.
|
151
|
+
*/
|
152
|
+
createPluginSettingsTab() {
|
153
|
+
return null;
|
154
|
+
}
|
155
|
+
/**
|
156
|
+
* Creates the plugin settings manager. This method must be implemented by subclasses.
|
157
|
+
*
|
158
|
+
* @returns The plugin settings manager.
|
159
|
+
*/
|
160
|
+
createSettingsManager() {
|
161
|
+
return null;
|
162
|
+
}
|
163
|
+
/**
|
164
|
+
* Called when the layout is ready. This method can be overridden by subclasses to perform actions once
|
165
|
+
* the layout is ready.
|
166
|
+
*/
|
167
|
+
async onLayoutReady() {
|
168
|
+
await noopAsync();
|
169
|
+
}
|
170
|
+
async onloadImpl() {
|
70
171
|
initPluginContext(this.app, this.manifest.id);
|
71
172
|
this.register(registerAsyncErrorEventHandler(() => {
|
72
173
|
this.showNotice("An unhandled error occurred. Please check the console for more information.");
|
@@ -82,39 +183,13 @@ class PluginBase extends Plugin {
|
|
82
183
|
this.register(() => {
|
83
184
|
abortController.abort();
|
84
185
|
});
|
85
|
-
await this.onloadComplete();
|
86
|
-
setTimeout(() => {
|
87
|
-
this.app.workspace.onLayoutReady(this.onLayoutReady.bind(this));
|
88
|
-
}, 0);
|
89
186
|
}
|
90
187
|
/**
|
91
|
-
* Called when the plugin
|
92
|
-
*
|
93
|
-
* @param _newSettings - The new settings.
|
94
|
-
* @param _oldSettings - The old settings.
|
95
|
-
* @returns A promise or void indicating the completion of the save process.
|
188
|
+
* Called when the plugin is unloaded.
|
96
189
|
*/
|
97
|
-
async
|
190
|
+
async onunloadImpl() {
|
98
191
|
await noopAsync();
|
99
192
|
}
|
100
|
-
/**
|
101
|
-
* Called when the layout is ready. This method can be overridden by subclasses to perform actions once
|
102
|
-
* the layout is ready.
|
103
|
-
*
|
104
|
-
* @returns A promise or void indicating the completion of the layout setup.
|
105
|
-
*/
|
106
|
-
onLayoutReady() {
|
107
|
-
noop();
|
108
|
-
}
|
109
|
-
/**
|
110
|
-
* Called when the plugin loading is complete. This method must be implemented by subclasses to perform
|
111
|
-
* any additional setup required after loading is complete.
|
112
|
-
*
|
113
|
-
* @returns A promise or void indicating the completion of the load process.
|
114
|
-
*/
|
115
|
-
onloadComplete() {
|
116
|
-
noop();
|
117
|
-
}
|
118
193
|
/**
|
119
194
|
* Displays a notice message to the user.
|
120
195
|
*
|
@@ -127,8 +202,23 @@ class PluginBase extends Plugin {
|
|
127
202
|
this.notice = new Notice(`${this.manifest.name}
|
128
203
|
${message}`);
|
129
204
|
}
|
205
|
+
async afterLoad() {
|
206
|
+
await this.triggerLifecycleEvent("load");
|
207
|
+
this.app.workspace.onLayoutReady(convertAsyncToSync(this.onLayoutReadyBase.bind(this)));
|
208
|
+
}
|
209
|
+
async onLayoutReadyBase() {
|
210
|
+
try {
|
211
|
+
await this.onLayoutReady();
|
212
|
+
} finally {
|
213
|
+
await this.triggerLifecycleEvent("layoutReady");
|
214
|
+
}
|
215
|
+
}
|
216
|
+
async triggerLifecycleEvent(name) {
|
217
|
+
this.lifecycleEventNames.add(name);
|
218
|
+
await this.events.triggerAsync(name);
|
219
|
+
}
|
130
220
|
}
|
131
221
|
export {
|
132
222
|
PluginBase
|
133
223
|
};
|
134
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBQbHVnaW5CYXNlXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNsYXNzIHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgbWFuYWdpbmcgcGx1Z2luIHNldHRpbmdzLCBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIGFuZCBoYW5kbGluZyBlcnJvcnMuXG4gKiBTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgbWV0aG9kcyB0byBjcmVhdGUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgc2V0dGluZ3MgdGFicywgYW5kIGNvbXBsZXRlIHBsdWdpbi1zcGVjaWZpY1xuICogbG9hZGluZyB0YXNrcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBOb3RpY2UsXG4gIFBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vRXJyb3IudHMnO1xuaW1wb3J0IHtcbiAgbm9vcCxcbiAgbm9vcEFzeW5jXG59IGZyb20gJy4uLy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi9QbHVnaW5Db250ZXh0LnRzJztcbmltcG9ydCB7IFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzTWFuYWdlckJhc2UudHMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIE9ic2lkaWFuIHBsdWdpbnMgd2l0aCBidWlsdC1pbiBzdXBwb3J0IGZvciBzZXR0aW5ncyBtYW5hZ2VtZW50LCBlcnJvciBoYW5kbGluZywgYW5kIG5vdGlmaWNhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIHJlcHJlc2VudGluZyB0aGUgcGx1Z2luIHNldHRpbmdzIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+IGV4dGVuZHMgUGx1Z2luIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIEFib3J0U2lnbmFsIHVzZWQgZm9yIGFib3J0aW5nIGxvbmctcnVubmluZyBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcHVibGljIGdldCBhYm9ydFNpZ25hbCgpOiBBYm9ydFNpZ25hbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fib3J0U2lnbmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlYWRvbmx5IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlYWRvbmx5IHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogUmVhZG9ubHlEZWVwPFBsdWdpblNldHRpbmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NNYW5hZ2VyLnNhZmVTZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NNYW5hZ2VyKCk6IFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2U8UGx1Z2luU2V0dGluZ3M+IHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3NNYW5hZ2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWJvcnRTaWduYWwhOiBBYm9ydFNpZ25hbDtcblxuICBwcml2YXRlIF9zZXR0aW5nc01hbmFnZXIhOiBQbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlPFBsdWdpblNldHRpbmdzPjtcblxuICBwcml2YXRlIG5vdGljZT86IE5vdGljZTtcblxuICAvKipcbiAgICogTG9ncyBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuXG4gICAqXG4gICAqIFVzZSBpbnN0ZWFkIG9mIGBjb25zb2xlLmRlYnVnKClgLlxuICAgKlxuICAgKiBUaG9zZSBtZXNzYWdlcyBhcmUgbm90IHNob3duIGJ5IGRlZmF1bHQsIGJ1dCB0aGV5IGNhbiBiZSBzaG93biBieSBlbmFibGluZyBgeW91ci1wbHVnaW4taWRgIGRlYnVnZ2VyIG5hbWVzcGFjZS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy8/dGFiPXJlYWRtZS1vdi1maWxlI2RlYnVnZ2luZ30gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gbG9nLlxuICAgKiBAcGFyYW0gYXJncyAtIFRoZSBhcmd1bWVudHMgdG8gbG9nLlxuICAgKi9cbiAgcHVibGljIGNvbnNvbGVEZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuICAgIC8vIFNraXAgdGhlIGBjb25zb2xlRGVidWcoKWAgY2FsbCBpdHNlbGZcbiAgICBjb25zdCBGUkFNRVNfVE9fU0tJUCA9IDE7XG4gICAgY29uc3QgX2RlYnVnZ2VyID0gZ2V0RGVidWdnZXIodGhpcy5tYW5pZmVzdC5pZCwgRlJBTUVTX1RPX1NLSVApO1xuICAgIF9kZWJ1Z2dlcihtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzTWFuYWdlci5sb2FkRnJvbUZpbGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpbml0UGx1Z2luQ29udGV4dCh0aGlzLmFwcCwgdGhpcy5tYW5pZmVzdC5pZCk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH0pKTtcblxuICAgIHRoaXMuX3NldHRpbmdzTWFuYWdlciA9IHRoaXMuY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpO1xuICAgIGNvbnN0IHBsdWdpblNldHRpbmdzVGFiID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5nc1RhYigpO1xuICAgIGlmIChwbHVnaW5TZXR0aW5nc1RhYikge1xuICAgICAgdGhpcy5hZGRTZXR0aW5nVGFiKHBsdWdpblNldHRpbmdzVGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fYWJvcnRTaWduYWwgPSBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5vbmxvYWRDb21wbGV0ZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkodGhpcy5vbkxheW91dFJlYWR5LmJpbmQodGhpcykpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKlxuICAgKiBAcGFyYW0gX25ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncy5cbiAgICogQHBhcmFtIF9vbGRTZXR0aW5ncyAtIFRoZSBvbGQgc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIHNhdmUgcHJvY2Vzcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBvblNhdmVTZXR0aW5ncyhfbmV3U2V0dGluZ3M6IFBhcnRpYWw8UGx1Z2luU2V0dGluZ3M+LCBfb2xkU2V0dGluZ3M6IFBhcnRpYWw8UGx1Z2luU2V0dGluZ3M+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIHRhYiBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk6IG51bGwgfCBQbHVnaW5TZXR0aW5nVGFiO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MgbWFuYWdlci4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk6IFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2U8UGx1Z2luU2V0dGluZ3M+O1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IFByb21pc2FibGU8dm9pZD4ge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGxvYWRpbmcgaXMgY29tcGxldGUuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcyB0byBwZXJmb3JtXG4gICAqIGFueSBhZGRpdGlvbmFsIHNldHVwIHJlcXVpcmVkIGFmdGVyIGxvYWRpbmcgaXMgY29tcGxldGUuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxvYWQgcHJvY2Vzcy5cbiAgICovXG4gIHByb3RlY3RlZCBvbmxvYWRDb21wbGV0ZSgpOiBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFlQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLFNBQVMsbUJBQW1CO0FBQzVCLFNBQVMsc0NBQXNDO0FBQy9DO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyxpQ0FBaUM7QUFPbkMsTUFBZSxtQkFBMkQsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU10RixJQUFXLGNBQTJCO0FBQ3BDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLFdBQXlDO0FBQ2xELFdBQU8sS0FBSyxnQkFBZ0I7QUFBQSxFQUM5QjtBQUFBLEVBRUEsSUFBVyxrQkFBNkQ7QUFDdEUsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRVE7QUFBQSxFQUVBO0FBQUEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBY0QsYUFBYSxZQUFvQixNQUF1QjtBQUU3RCxVQUFNLGlCQUFpQjtBQUN2QixVQUFNLFlBQVksWUFBWSxLQUFLLFNBQVMsSUFBSSxjQUFjO0FBQzlELGNBQVUsU0FBUyxHQUFHLElBQUk7QUFBQSxFQUM1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsMkJBQTBDO0FBQzlELFVBQU0sS0FBSyxnQkFBZ0IsYUFBYTtBQUFBLEVBQzFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUFzQixTQUF3QjtBQUM1QyxzQkFBa0IsS0FBSyxLQUFLLEtBQUssU0FBUyxFQUFFO0FBRTVDLFNBQUssU0FBUywrQkFBK0IsTUFBTTtBQUNqRCxXQUFLLFdBQVcsNkVBQTZFO0FBQUEsSUFDL0YsQ0FBQyxDQUFDO0FBRUYsU0FBSyxtQkFBbUIsS0FBSyxzQkFBc0I7QUFFbkQsVUFBTSxLQUFLLHlCQUF5QjtBQUNwQyxVQUFNLG9CQUFvQixLQUFLLHdCQUF3QjtBQUN2RCxRQUFJLG1CQUFtQjtBQUNyQixXQUFLLGNBQWMsaUJBQWlCO0FBQUEsSUFDdEM7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUNELFVBQU0sS0FBSyxlQUFlO0FBQzFCLGVBQVcsTUFBTTtBQUNmLFdBQUssSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUssSUFBSSxDQUFDO0FBQUEsSUFDaEUsR0FBRyxDQUFDO0FBQUEsRUFDTjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxNQUFhLGVBQWUsY0FBdUMsY0FBc0Q7QUFDdkgsVUFBTSxVQUFVO0FBQUEsRUFDbEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXNCVSxnQkFBa0M7QUFDMUMsU0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFVLGlCQUFtQztBQUMzQyxTQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFdBQVcsU0FBdUI7QUFDMUMsUUFBSSxLQUFLLFFBQVE7QUFDZixXQUFLLE9BQU8sS0FBSztBQUFBLElBQ25CO0FBRUEsU0FBSyxTQUFTLElBQUksT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJO0FBQUEsRUFBSyxPQUFPLEVBQUU7QUFBQSxFQUM5RDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
224
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVhZG9ubHlEZWVwIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgTm90aWNlLFxuICBQbHVnaW4gYXMgT2JzaWRpYW5QbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEFzeW5jRXZlbnRSZWYgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzTWFuYWdlcixcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzVGFiLFxuICBQbHVnaW5UeXBlc0Jhc2Vcbn0gZnJvbSAnLi9QbHVnaW5UeXBlc0Jhc2UudHMnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5LFxuICBpbnZva2VBc3luY1NhZmVseUFmdGVyRGVsYXlcbn0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uLy4uL0RlYnVnLnRzJztcbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJy4uLy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi9QbHVnaW5Db250ZXh0LnRzJztcblxudHlwZSBMaWZlY3ljbGVFdmVudE5hbWUgPSAnbGF5b3V0UmVhZHknIHwgJ2xvYWQnIHwgJ3VubG9hZCc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5UeXBlcyBleHRlbmRzIFBsdWdpblR5cGVzQmFzZT4gZXh0ZW5kcyBPYnNpZGlhblBsdWdpbiB7XG4gIHB1YmxpYyByZWFkb25seSBldmVudHMgPSBuZXcgQXN5bmNFdmVudHMoKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVhZG9ubHkgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcmVhZG9ubHkgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5ncygpOiBSZWFkb25seURlZXA8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzTWFuYWdlci5zYWZlU2V0dGluZ3MgYXMgUmVhZG9ubHlEZWVwPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+O1xuICB9XG5cbiAgcHVibGljIGdldCBzZXR0aW5nc01hbmFnZXIoKTogRXh0cmFjdFBsdWdpblNldHRpbmdzTWFuYWdlcjxQbHVnaW5UeXBlcz4ge1xuICAgIGlmICghdGhpcy5fc2V0dGluZ3NNYW5hZ2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldHRpbmdzIG1hbmFnZXIgbm90IGRlZmluZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3NNYW5hZ2VyO1xuICB9XG5cbiAgcHVibGljIGdldCBzZXR0aW5nc1RhYigpOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NUYWI8UGx1Z2luVHlwZXM+IHtcbiAgICBpZiAoIXRoaXMuX3NldHRpbmdzVGFiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NldHRpbmdzIHRhYiBub3QgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zZXR0aW5nc1RhYjtcbiAgfVxuXG4gIHByaXZhdGUgX2Fib3J0U2lnbmFsITogQWJvcnRTaWduYWw7XG4gIHByaXZhdGUgX3NldHRpbmdzTWFuYWdlcjogRXh0cmFjdFBsdWdpblNldHRpbmdzTWFuYWdlcjxQbHVnaW5UeXBlcz4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc2V0dGluZ3NUYWI6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYjxQbHVnaW5UeXBlcz4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsaWZlY3ljbGVFdmVudE5hbWVzID0gbmV3IFNldDxMaWZlY3ljbGVFdmVudE5hbWU+KCk7XG4gIHByaXZhdGUgbm90aWNlPzogTm90aWNlO1xuXG4gIC8qKlxuICAgKiBMb2dzIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZS5cbiAgICpcbiAgICogVXNlIGluc3RlYWQgb2YgYGNvbnNvbGUuZGVidWcoKWAuXG4gICAqXG4gICAqIFRob3NlIG1lc3NhZ2VzIGFyZSBub3Qgc2hvd24gYnkgZGVmYXVsdCwgYnV0IHRoZXkgY2FuIGJlIHNob3duIGJ5IGVuYWJsaW5nIGB5b3VyLXBsdWdpbi1pZGAgZGVidWdnZXIgbmFtZXNwYWNlLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzLz90YWI9cmVhZG1lLW92LWZpbGUjZGVidWdnaW5nfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2cuXG4gICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBsb2cuXG4gICAqL1xuICBwdWJsaWMgY29uc29sZURlYnVnKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgLy8gU2tpcCB0aGUgYGNvbnNvbGVEZWJ1ZygpYCBjYWxsIGl0c2VsZlxuICAgIGNvbnN0IEZSQU1FU19UT19TS0lQID0gMTtcbiAgICBjb25zdCBfZGVidWdnZXIgPSBnZXREZWJ1Z2dlcih0aGlzLm1hbmlmZXN0LmlkLCBGUkFNRVNfVE9fU0tJUCk7XG4gICAgX2RlYnVnZ2VyKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy5fc2V0dGluZ3NNYW5hZ2VyPy5sb2FkRnJvbUZpbGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vbmxvYWQoKTtcbiAgICBhd2FpdCB0aGlzLm9ubG9hZEltcGwoKTtcbiAgICBpbnZva2VBc3luY1NhZmVseUFmdGVyRGVsYXkodGhpcy5hZnRlckxvYWQuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBzZXR0aW5ncyBhcmUgbG9hZGVkIG9yIHJlbG9hZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gX3NldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9uTG9hZFNldHRpbmdzKF9zZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKlxuICAgKiBAcGFyYW0gX25ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncy5cbiAgICogQHBhcmFtIF9vbGRTZXR0aW5ncyAtIFRoZSBvbGQgc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgb25TYXZlU2V0dGluZ3MoX25ld1NldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBfb2xkU2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbnVubG9hZCgpO1xuICAgIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMub251bmxvYWRJbXBsKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgndW5sb2FkJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIGFzeW5jIGV2ZW50LlxuICAgKiBVbnJlZ2lzdGVycyB0aGUgZXZlbnQgd2hlbiB0aGUgcGx1Z2luIGlzIHVubG9hZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRSZWYgLSBUaGUgZXZlbnQgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyQXN5bmNFdmVudChldmVudFJlZjogQXN5bmNFdmVudFJlZik6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgZXZlbnRSZWYuYXN5bmNFdmVudHMub2ZmcmVmKGV2ZW50UmVmKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0cyBmb3IgYSBsaWZlY3ljbGUgZXZlbnQgdG8gYmUgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBJZiB5b3UgYGF3YWl0YCB0aGlzIG1ldGhvZCBkdXJpbmcgbGlmZWN5Y2xlIGV2ZW50LCBpdCBtaWdodCBjYXVzZSBhIGRlYWRsb2NrLlxuICAgKlxuICAgKiBDb25zaWRlciB3cmFwcGluZyB0aGlzIGNhbGwgd2l0aCB7QGxpbmsgaW52b2tlQXN5bmNTYWZlbHl9LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2FpdEZvckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmxpZmVjeWNsZUV2ZW50TmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzLm9uY2UobmFtZSwgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIHRhYiBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYjxQbHVnaW5UeXBlcz4gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MgbWFuYWdlci4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc01hbmFnZXI8UGx1Z2luVHlwZXM+IHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGxheW91dCBpcyByZWFkeS4gVGhpcyBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBwZXJmb3JtIGFjdGlvbnMgb25jZVxuICAgKiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25sb2FkSW1wbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpbml0UGx1Z2luQ29udGV4dCh0aGlzLmFwcCwgdGhpcy5tYW5pZmVzdC5pZCk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH0pKTtcblxuICAgIHRoaXMuX3NldHRpbmdzTWFuYWdlciA9IHRoaXMuY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpO1xuICAgIGNvbnN0IHBsdWdpblNldHRpbmdzVGFiID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5nc1RhYigpO1xuICAgIGlmIChwbHVnaW5TZXR0aW5nc1RhYikge1xuICAgICAgdGhpcy5hZGRTZXR0aW5nVGFiKHBsdWdpblNldHRpbmdzVGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fYWJvcnRTaWduYWwgPSBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbnVubG9hZEltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFmdGVyTG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbG9hZCcpO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGNvbnZlcnRBc3luY1RvU3luYyh0aGlzLm9uTGF5b3V0UmVhZHlCYXNlLmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25MYXlvdXRSZWFkeUJhc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMub25MYXlvdXRSZWFkeSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbGF5b3V0UmVhZHknKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyaWdnZXJMaWZlY3ljbGVFdmVudChuYW1lOiBMaWZlY3ljbGVFdmVudE5hbWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxpZmVjeWNsZUV2ZW50TmFtZXMuYWRkKG5hbWUpO1xuICAgIGF3YWl0IHRoaXMuZXZlbnRzLnRyaWdnZXJBc3luYyhuYW1lKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQVlBO0FBQUEsRUFDRTtBQUFBLEVBQ0EsVUFBVTtBQUFBLE9BQ0w7QUFVUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLG1CQUFtQjtBQUM1QixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHlCQUF5QjtBQVMzQixNQUFlLG1CQUF3RCxlQUFlO0FBQUEsRUFDM0UsU0FBUyxJQUFJLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPekMsSUFBVyxjQUEyQjtBQUNwQyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxXQUE2RDtBQUN0RSxXQUFPLEtBQUssZ0JBQWdCO0FBQUEsRUFDOUI7QUFBQSxFQUVBLElBQVcsa0JBQTZEO0FBQ3RFLFFBQUksQ0FBQyxLQUFLLGtCQUFrQjtBQUMxQixZQUFNLElBQUksTUFBTSw4QkFBOEI7QUFBQSxJQUNoRDtBQUVBLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVBLElBQVcsY0FBcUQ7QUFDOUQsUUFBSSxDQUFDLEtBQUssY0FBYztBQUN0QixZQUFNLElBQUksTUFBTSwwQkFBMEI7QUFBQSxJQUM1QztBQUVBLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVRO0FBQUEsRUFDQSxtQkFBcUU7QUFBQSxFQUNyRSxlQUE2RDtBQUFBLEVBQzdELHNCQUFzQixvQkFBSSxJQUF3QjtBQUFBLEVBQ2xEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFjRCxhQUFhLFlBQW9CLE1BQXVCO0FBRTdELFVBQU0saUJBQWlCO0FBQ3ZCLFVBQU0sWUFBWSxZQUFZLEtBQUssU0FBUyxJQUFJLGNBQWM7QUFDOUQsY0FBVSxTQUFTLEdBQUcsSUFBSTtBQUFBLEVBQzVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUFzQiwyQkFBMEM7QUFDOUQsVUFBTSxNQUFNLDJCQUEyQjtBQUN2QyxVQUFNLEtBQUssa0JBQWtCLGFBQWE7QUFBQSxFQUM1QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsU0FBd0I7QUFDNUMsVUFBTSxNQUFNLE9BQU87QUFDbkIsVUFBTSxLQUFLLFdBQVc7QUFDdEIsZ0NBQTRCLEtBQUssVUFBVSxLQUFLLElBQUksQ0FBQztBQUFBLEVBQ3ZEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBYSxlQUFlLFdBQThEO0FBQ3hGLFVBQU0sVUFBVTtBQUFBLEVBQ2xCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFhLGVBQWUsY0FBa0QsY0FBaUU7QUFDN0ksVUFBTSxVQUFVO0FBQUEsRUFDbEI7QUFBQSxFQUVnQixXQUFpQjtBQUMvQixVQUFNLFNBQVM7QUFDZixzQkFBa0IsWUFBWTtBQUM1QixVQUFJO0FBQ0YsY0FBTSxLQUFLLGFBQWE7QUFBQSxNQUMxQixVQUFFO0FBQ0EsY0FBTSxLQUFLLHNCQUFzQixRQUFRO0FBQUEsTUFDM0M7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxtQkFBbUIsVUFBK0I7QUFDdkQsU0FBSyxTQUFTLE1BQU07QUFDbEIsZUFBUyxZQUFZLE9BQU8sUUFBUTtBQUFBLElBQ3RDLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVlBLE1BQWEsc0JBQXNCLE1BQXlDO0FBQzFFLFFBQUksS0FBSyxvQkFBb0IsSUFBSSxJQUFJLEdBQUc7QUFDdEM7QUFBQSxJQUNGO0FBRUEsVUFBTSxJQUFJLFFBQWMsQ0FBQyxZQUFZO0FBQ25DLFdBQUssT0FBTyxLQUFLLE1BQU0sTUFBTTtBQUMzQixnQkFBUTtBQUFBLE1BQ1YsQ0FBQztBQUFBLElBQ0gsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSwwQkFBd0U7QUFDaEYsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSx3QkFBMEU7QUFDbEYsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsTUFBZ0IsZ0JBQStCO0FBQzdDLFVBQU0sVUFBVTtBQUFBLEVBQ2xCO0FBQUEsRUFFQSxNQUFnQixhQUE0QjtBQUMxQyxzQkFBa0IsS0FBSyxLQUFLLEtBQUssU0FBUyxFQUFFO0FBRTVDLFNBQUssU0FBUywrQkFBK0IsTUFBTTtBQUNqRCxXQUFLLFdBQVcsNkVBQTZFO0FBQUEsSUFDL0YsQ0FBQyxDQUFDO0FBRUYsU0FBSyxtQkFBbUIsS0FBSyxzQkFBc0I7QUFFbkQsVUFBTSxLQUFLLHlCQUF5QjtBQUNwQyxVQUFNLG9CQUFvQixLQUFLLHdCQUF3QjtBQUN2RCxRQUFJLG1CQUFtQjtBQUNyQixXQUFLLGNBQWMsaUJBQWlCO0FBQUEsSUFDdEM7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWdCLGVBQThCO0FBQzVDLFVBQU0sVUFBVTtBQUFBLEVBQ2xCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1UsV0FBVyxTQUF1QjtBQUMxQyxRQUFJLEtBQUssUUFBUTtBQUNmLFdBQUssT0FBTyxLQUFLO0FBQUEsSUFDbkI7QUFFQSxTQUFLLFNBQVMsSUFBSSxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUk7QUFBQSxFQUFLLE9BQU8sRUFBRTtBQUFBLEVBQzlEO0FBQUEsRUFFQSxNQUFjLFlBQTJCO0FBQ3ZDLFVBQU0sS0FBSyxzQkFBc0IsTUFBTTtBQUN2QyxTQUFLLElBQUksVUFBVSxjQUFjLG1CQUFtQixLQUFLLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQUEsRUFDeEY7QUFBQSxFQUVBLE1BQWMsb0JBQW1DO0FBQy9DLFFBQUk7QUFDRixZQUFNLEtBQUssY0FBYztBQUFBLElBQzNCLFVBQUU7QUFDQSxZQUFNLEtBQUssc0JBQXNCLGFBQWE7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFBQSxFQUVBLE1BQWMsc0JBQXNCLE1BQXlDO0FBQzNFLFNBQUssb0JBQW9CLElBQUksSUFBSTtBQUNqQyxVQUFNLEtBQUssT0FBTyxhQUFhLElBQUk7QUFBQSxFQUNyQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -42,4 +42,4 @@ function getPluginContextWindow() {
|
|
42
42
|
export {
|
43
43
|
initPluginContext
|
44
44
|
};
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHR5cGUgeyBEZWJ1Z0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9EZWJ1Z0NvbnRyb2xsZXIudHMnO1xuXG5pbXBvcnQge1xuICBnZXREZWJ1Z0NvbnRyb2xsZXIsXG4gIHNob3dJbml0aWFsRGVidWdNZXNzYWdlXG59IGZyb20gJy4uLy4uL0RlYnVnLnRzJztcbmltcG9ydCB7XG4gIExJQlJBUllfTkFNRSxcbiAgTElCUkFSWV9TVFlMRVMsXG4gIExJQlJBUllfVkVSU0lPTlxufSBmcm9tICcuLi8uLi9MaWJyYXJ5LnRzJztcbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4uL0FwcC50cyc7XG5pbXBvcnQgeyBzZXRQbHVnaW5JZCB9IGZyb20gJy4vUGx1Z2luSWQudHMnO1xuXG5pbnRlcmZhY2UgUGx1Z2luQ29udGV4dFdpbmRvdyB7XG4gIERFQlVHOiBEZWJ1Z0NvbnRyb2xsZXI7XG59XG5cbmNvbnN0IFNUWUxFU19JRCA9IGAke0xJQlJBUllfTkFNRX0tc3R5bGVzYDtcblxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgcGx1Z2luIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIElELlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdFBsdWdpbkNvbnRleHQoYXBwOiBBcHAsIHBsdWdpbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgc2V0UGx1Z2luSWQocGx1Z2luSWQpO1xuICBzaG93SW5pdGlhbERlYnVnTWVzc2FnZShwbHVnaW5JZCk7XG5cbiAgY29uc3QgbGFzdExpYnJhcnlWZXJzaW9uV3JhcHBlciA9IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZShhcHAsICdsYXN0TGlicmFyeVZlcnNpb24nLCAnMC4wLjAnKTtcbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhMSUJSQVJZX1ZFUlNJT04sIGxhc3RMaWJyYXJ5VmVyc2lvbldyYXBwZXIudmFsdWUpIDw9IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsYXN0TGlicmFyeVZlcnNpb25XcmFwcGVyLnZhbHVlID0gTElCUkFSWV9WRVJTSU9OO1xuXG4gIGNvbnN0IHBsdWdpbkNvbnRleHRXaW5kb3cgPSBnZXRQbHVnaW5Db250ZXh0V2luZG93KCk7XG4gIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBnZXREZWJ1Z0NvbnRyb2xsZXIoKTtcblxuICBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoYCMke1NUWUxFU19JRH1gKT8ucmVtb3ZlKCk7XG4gIGRvY3VtZW50LmhlYWQuY3JlYXRlRWwoJ3N0eWxlJywge1xuICAgIGF0dHI6IHtcbiAgICAgIGlkOiBTVFlMRVNfSURcbiAgICB9LFxuICAgIHRleHQ6IExJQlJBUllfU1RZTEVTXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRQbHVnaW5Db250ZXh0V2luZG93KCk6IFBhcnRpYWw8UGx1Z2luQ29udGV4dFdpbmRvdz4ge1xuICByZXR1cm4gd2luZG93IGFzIFBhcnRpYWw8UGx1Z2luQ29udGV4dFdpbmRvdz47XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBUUEsU0FBUyx1QkFBdUI7QUFJaEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGdDQUFnQztBQUN6QyxTQUFTLG1CQUFtQjtBQU01QixNQUFNLFlBQVksR0FBRyxZQUFZO0FBUTFCLFNBQVMsa0JBQWtCLEtBQVUsVUFBd0I7QUFDbEUsY0FBWSxRQUFRO0FBQ3BCLDBCQUF3QixRQUFRO0FBRWhDLFFBQU0sNEJBQTRCLHlCQUF5QixLQUFLLHNCQUFzQixPQUFPO0FBQzdGLE1BQUksZ0JBQWdCLGlCQUFpQiwwQkFBMEIsS0FBSyxLQUFLLEdBQUc7QUFDMUU7QUFBQSxFQUNGO0FBRUEsNEJBQTBCLFFBQVE7QUFFbEMsUUFBTSxzQkFBc0IsdUJBQXVCO0FBQ25ELHNCQUFvQixRQUFRLG1CQUFtQjtBQUUvQyxXQUFTLEtBQUssY0FBYyxJQUFJLFNBQVMsRUFBRSxHQUFHLE9BQU87QUFDckQsV0FBUyxLQUFLLFNBQVMsU0FBUztBQUFBLElBQzlCLE1BQU07QUFBQSxNQUNKLElBQUk7QUFBQSxJQUNOO0FBQUEsSUFDQSxNQUFNO0FBQUEsRUFDUixDQUFDO0FBQ0g7QUFFQSxTQUFTLHlCQUF1RDtBQUM5RCxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -20,4 +20,4 @@ export {
|
|
20
20
|
getPluginId,
|
21
21
|
setPluginId
|
22
22
|
};
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
23
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5JZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBIb2xkZXIgZm9yIHRoZSBwbHVnaW4gSUQuXG4gKi9cblxuLyoqXG4gKiBUaGUgcGx1Z2luIElEIGZvciBubyBwbHVnaW4uXG4gKi9cbmV4cG9ydCBjb25zdCBOT19QTFVHSU5fSURfSU5JVElBTElaRUQgPSAnX19uby1wbHVnaW4taWQtaW5pdGlhbGl6ZWRfXyc7XG5cbmxldCBwbHVnaW5JZCA9IE5PX1BMVUdJTl9JRF9JTklUSUFMSVpFRDtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwbHVnaW4gSUQuXG4gKlxuICogQHJldHVybnMgVGhlIHBsdWdpbiBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpbklkKCk6IHN0cmluZyB7XG4gIHJldHVybiBwbHVnaW5JZDtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBwbHVnaW4gSUQuXG4gKlxuICogQHBhcmFtIG5ld1BsdWdpbklkIC0gVGhlIG5ldyBwbHVnaW4gSUQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRQbHVnaW5JZChuZXdQbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChuZXdQbHVnaW5JZCkge1xuICAgIHBsdWdpbklkID0gbmV3UGx1Z2luSWQ7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFTTyxNQUFNLDJCQUEyQjtBQUV4QyxJQUFJLFdBQVc7QUFPUixTQUFTLGNBQXNCO0FBQ3BDLFNBQU87QUFDVDtBQU9PLFNBQVMsWUFBWSxhQUEyQjtBQUNyRCxNQUFJLGFBQWE7QUFDZixlQUFXO0FBQUEsRUFDYjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -1,36 +1,55 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation
|
3
|
+
*
|
4
|
+
* Plugin settings manager base class.
|
5
|
+
*/
|
6
|
+
import type { App } from 'obsidian';
|
1
7
|
import type { Promisable, ReadonlyDeep } from 'type-fest';
|
2
|
-
import type { MaybeReturn, StringKeys } from '../../Object.mjs';
|
3
8
|
import type { Transformer } from '../../Transformers/Transformer.mjs';
|
4
|
-
import type {
|
9
|
+
import type { MaybeReturn, StringKeys } from '../../Type.mjs';
|
10
|
+
import type { ExtractPlugin, ExtractPluginSettings, PluginTypesBase } from './PluginTypesBase.mjs';
|
5
11
|
type Validator<T> = (value: T) => Promisable<MaybeReturn<string>>;
|
6
12
|
/**
|
7
13
|
* Base class for managing plugin settings.
|
8
14
|
*
|
9
15
|
* @typeParam PluginSettings - The type representing the plugin settings object.
|
10
16
|
*/
|
11
|
-
export declare abstract class PluginSettingsManagerBase<
|
12
|
-
|
13
|
-
readonly
|
17
|
+
export declare abstract class PluginSettingsManagerBase<PluginTypes extends PluginTypesBase> {
|
18
|
+
readonly plugin: ExtractPlugin<PluginTypes>;
|
19
|
+
readonly app: App;
|
20
|
+
readonly safeSettings: ReadonlyDeep<ExtractPluginSettings<PluginTypes>>;
|
14
21
|
private defaultSettings;
|
15
22
|
private properties;
|
16
23
|
private validators;
|
17
|
-
constructor(plugin:
|
18
|
-
editAndSave(editor: (settings:
|
19
|
-
getProperty<PropertyName extends StringKeys<
|
24
|
+
constructor(plugin: ExtractPlugin<PluginTypes>);
|
25
|
+
editAndSave(editor: (settings: ExtractPluginSettings<PluginTypes>) => Promisable<void>): Promise<void>;
|
26
|
+
getProperty<PropertyName extends StringKeys<ExtractPluginSettings<PluginTypes>>>(propertyName: PropertyName): PluginSettingsProperty<ExtractPluginSettings<PluginTypes>[PropertyName]>;
|
20
27
|
loadFromFile(): Promise<void>;
|
21
28
|
/**
|
22
29
|
* Saves the new plugin settings.
|
23
30
|
*
|
24
|
-
* @returns A
|
31
|
+
* @returns A {@link Promise} that resolves when the settings are saved.
|
25
32
|
*/
|
26
33
|
saveToFile(): Promise<void>;
|
27
|
-
protected
|
28
|
-
protected addValidators(): void;
|
29
|
-
protected abstract createDefaultSettings(): PluginSettings;
|
34
|
+
protected abstract createDefaultSettings(): ExtractPluginSettings<PluginTypes>;
|
30
35
|
protected getTransformer(): Transformer;
|
31
|
-
|
36
|
+
/**
|
37
|
+
* Called when the plugin settings are loaded.
|
38
|
+
*
|
39
|
+
* @param _record - The record.
|
40
|
+
*/
|
41
|
+
protected onLoadRecord(_record: Record<string, unknown>): Promise<void>;
|
42
|
+
/**
|
43
|
+
* Called when the plugin settings are saving.
|
44
|
+
*
|
45
|
+
* @param _record - The record.
|
46
|
+
*/
|
47
|
+
protected onSavingRecord(_record: Record<string, unknown>): Promise<void>;
|
48
|
+
protected registerValidator<PropertyName extends StringKeys<ExtractPluginSettings<PluginTypes>>>(propertyName: PropertyName, validator: Validator<ExtractPluginSettings<PluginTypes>[PropertyName]>): void;
|
49
|
+
protected registerValidators(): void;
|
32
50
|
private getSavedSettings;
|
33
51
|
private prepareRecordToSave;
|
52
|
+
private saveToFileImpl;
|
34
53
|
}
|
35
54
|
/**
|
36
55
|
* A property of a plugin settings.
|
@@ -41,19 +60,18 @@ export declare class PluginSettingsProperty<T> {
|
|
41
60
|
private readonly propertyName;
|
42
61
|
readonly defaultValue: T;
|
43
62
|
private readonly validator;
|
63
|
+
get currentValue(): T;
|
64
|
+
get lastSavedValue(): T;
|
65
|
+
get safeValue(): T;
|
44
66
|
get validationMessage(): string;
|
67
|
+
private _currentValue;
|
68
|
+
private _lastSavedValue;
|
45
69
|
private _validationMessage;
|
46
|
-
private lastSavedValue;
|
47
|
-
private modifiedValue;
|
48
70
|
constructor(propertyName: string, defaultValue: T, validator: Validator<T>);
|
49
|
-
|
50
|
-
getLastSavedValue(): T | undefined;
|
51
|
-
getModifiedOrDefaultValue(): T;
|
52
|
-
getModifiedValue(): T | undefined;
|
53
|
-
getSafeValue(): T;
|
71
|
+
reset(): void;
|
54
72
|
save(): boolean;
|
55
73
|
setValidationMessage(validationMessage: string): void;
|
56
|
-
setValue(value: T
|
74
|
+
setValue(value: T): void;
|
57
75
|
setValueAndValidate(value: T): Promise<void>;
|
58
76
|
private showWarning;
|
59
77
|
}
|