@mnaoumov/obsidian-lib 10.4.1 → 10.5.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/codemirror/incremental-parse-state-field/package.json +6 -0
- package/codemirror/markdown-editor-views/package.json +6 -0
- package/codemirror/range-set/package.json +6 -0
- package/command-handlers/open-bug-report-command-handler/package.json +6 -0
- package/components/embeddable-markdown-editor-component/package.json +6 -0
- package/components/reconfigurable-editor-extension-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +46 -1
- package/dist/lib/cjs/__merged.d.cts +11 -0
- package/dist/lib/cjs/attachment-path.cjs +3 -2
- package/dist/lib/cjs/bug-report.cjs +241 -0
- package/dist/lib/cjs/bug-report.d.cts +161 -0
- package/dist/lib/cjs/codemirror/incremental-parse-state-field.cjs +162 -0
- package/dist/lib/cjs/codemirror/incremental-parse-state-field.d.cts +37 -0
- package/dist/lib/cjs/codemirror/index.cjs +10 -1
- package/dist/lib/cjs/codemirror/index.d.cts +3 -0
- package/dist/lib/cjs/codemirror/markdown-editor-views.cjs +142 -0
- package/dist/lib/cjs/codemirror/markdown-editor-views.d.cts +34 -0
- package/dist/lib/cjs/codemirror/range-set.cjs +106 -0
- package/dist/lib/cjs/codemirror/range-set.d.cts +35 -0
- package/dist/lib/cjs/command-handlers/index.cjs +4 -1
- package/dist/lib/cjs/command-handlers/index.d.cts +1 -0
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +139 -0
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +53 -0
- package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +6 -3
- package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +374 -0
- package/dist/lib/cjs/components/embeddable-markdown-editor-component.d.cts +221 -0
- package/dist/lib/cjs/components/index.cjs +7 -1
- package/dist/lib/cjs/components/index.d.cts +2 -0
- package/dist/lib/cjs/components/plugin-gate-component.cjs +6 -3
- package/dist/lib/cjs/components/reconfigurable-editor-extension-component.cjs +200 -0
- package/dist/lib/cjs/components/reconfigurable-editor-extension-component.d.cts +96 -0
- package/dist/lib/cjs/desktop-operating-system.cjs +101 -0
- package/dist/lib/cjs/desktop-operating-system.d.cts +15 -0
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/index.cjs +16 -1
- package/dist/lib/cjs/index.d.cts +5 -0
- package/dist/lib/cjs/menu.cjs +118 -0
- package/dist/lib/cjs/menu.d.cts +65 -0
- package/dist/lib/cjs/mobile-app-info.cjs +167 -0
- package/dist/lib/cjs/mobile-app-info.d.cts +32 -0
- package/dist/lib/cjs/obsidian-settings.cjs +2 -2
- package/dist/lib/cjs/settings-modal.cjs +103 -0
- package/dist/lib/cjs/settings-modal.d.cts +33 -0
- package/dist/lib/esm/__merged.d.mts +11 -0
- package/dist/lib/esm/__merged.mjs +39 -1
- package/dist/lib/esm/attachment-path.mjs +3 -2
- package/dist/lib/esm/bug-report.d.mts +161 -0
- package/dist/lib/esm/bug-report.mjs +141 -0
- package/dist/lib/esm/codemirror/incremental-parse-state-field.d.mts +37 -0
- package/dist/lib/esm/codemirror/incremental-parse-state-field.mjs +74 -0
- package/dist/lib/esm/codemirror/index.d.mts +3 -0
- package/dist/lib/esm/codemirror/index.mjs +7 -1
- package/dist/lib/esm/codemirror/markdown-editor-views.d.mts +34 -0
- package/dist/lib/esm/codemirror/markdown-editor-views.mjs +53 -0
- package/dist/lib/esm/codemirror/range-set.d.mts +35 -0
- package/dist/lib/esm/codemirror/range-set.mjs +18 -0
- package/dist/lib/esm/command-handlers/index.d.mts +1 -0
- package/dist/lib/esm/command-handlers/index.mjs +3 -1
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +53 -0
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +51 -0
- package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +6 -3
- package/dist/lib/esm/components/embeddable-markdown-editor-component.d.mts +221 -0
- package/dist/lib/esm/components/embeddable-markdown-editor-component.mjs +293 -0
- package/dist/lib/esm/components/index.d.mts +2 -0
- package/dist/lib/esm/components/index.mjs +5 -1
- package/dist/lib/esm/components/plugin-gate-component.mjs +6 -3
- package/dist/lib/esm/components/reconfigurable-editor-extension-component.d.mts +96 -0
- package/dist/lib/esm/components/reconfigurable-editor-extension-component.mjs +112 -0
- package/dist/lib/esm/desktop-operating-system.d.mts +15 -0
- package/dist/lib/esm/desktop-operating-system.mjs +16 -0
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/index.d.mts +5 -0
- package/dist/lib/esm/index.mjs +11 -1
- package/dist/lib/esm/menu.d.mts +65 -0
- package/dist/lib/esm/menu.mjs +30 -0
- package/dist/lib/esm/mobile-app-info.d.mts +32 -0
- package/dist/lib/esm/mobile-app-info.mjs +84 -0
- package/dist/lib/esm/obsidian-settings.mjs +6 -3
- package/dist/lib/esm/settings-modal.d.mts +33 -0
- package/dist/lib/esm/settings-modal.mjs +15 -0
- package/package.json +7 -6
|
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
const LIBRARY_VERSION = "10.
|
|
6
|
+
const LIBRARY_VERSION = "10.5.0";
|
|
7
7
|
const LIBRARY_STYLES = ".obsidian-lib.code-highlighter-component textarea, .obsidian-lib.code-highlighter-component pre, .obsidian-lib.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-lib.code-highlighter-component textarea, .obsidian-lib.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-lib.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-lib.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-lib.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-lib.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-lib.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-lib-lock-indicator {\n display: inline-flex;\n align-items: center;\n color: var(--text-muted);\n}\n.obsidian-lib-lock-indicator .svg-icon {\n width: var(--icon-s);\n height: var(--icon-s);\n}\n\n@keyframes obsidian-lib-lock-indicator-flash {\n 40% {\n color: var(--text-error);\n transform: scale(1.4);\n }\n}\n.obsidian-lib-lock-indicator-flash {\n animation: obsidian-lib-lock-indicator-flash 0.35s ease-in-out;\n}\n\n.obsidian-lib input[type=url] {\n height: var(--input-height);\n}\n.obsidian-lib input[type=month],\n.obsidian-lib input[type=tel],\n.obsidian-lib input[type=time],\n.obsidian-lib input[type=url],\n.obsidian-lib input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-lib input[type=month]:hover,\n .obsidian-lib input[type=tel]:hover,\n .obsidian-lib input[type=time]:hover,\n .obsidian-lib input[type=url]:hover,\n .obsidian-lib input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-lib input[type=month]:active, .obsidian-lib input[type=month]:focus,\n.obsidian-lib input[type=tel]:active,\n.obsidian-lib input[type=tel]:focus,\n.obsidian-lib input[type=time]:active,\n.obsidian-lib input[type=time]:focus,\n.obsidian-lib input[type=url]:active,\n.obsidian-lib input[type=url]:focus,\n.obsidian-lib input[type=week]:active,\n.obsidian-lib input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-lib input[type=month]:active, .obsidian-lib input[type=month]:focus, .obsidian-lib input[type=month]:focus-visible,\n.obsidian-lib input[type=tel]:active,\n.obsidian-lib input[type=tel]:focus,\n.obsidian-lib input[type=tel]:focus-visible,\n.obsidian-lib input[type=time]:active,\n.obsidian-lib input[type=time]:focus,\n.obsidian-lib input[type=time]:focus-visible,\n.obsidian-lib input[type=url]:active,\n.obsidian-lib input[type=url]:focus,\n.obsidian-lib input[type=url]:focus-visible,\n.obsidian-lib input[type=week]:active,\n.obsidian-lib input[type=week]:focus,\n.obsidian-lib input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-lib input[type=month]::placeholder,\n.obsidian-lib input[type=tel]::placeholder,\n.obsidian-lib input[type=time]::placeholder,\n.obsidian-lib input[type=url]::placeholder,\n.obsidian-lib input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-lib input[type=month],\n.obsidian-lib input[type=time],\n.obsidian-lib input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-lib input[type=month]::-webkit-datetime-edit-text,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-text,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-lib input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-lib input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-lib input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-lib input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-lib input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-lib input[type=month], .is-rtl .obsidian-lib input[type=month], .rtl .obsidian-lib input[type=month],\n.mod-rtl .obsidian-lib input[type=time],\n.is-rtl .obsidian-lib input[type=time],\n.rtl .obsidian-lib input[type=time],\n.mod-rtl .obsidian-lib input[type=week],\n.is-rtl .obsidian-lib input[type=week],\n.rtl .obsidian-lib input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-lib input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-lib input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-lib input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-lib input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\nprogress.obsidian-lib.loop {\n min-width: 200px;\n}\n\n@keyframes obsidian-lib-minimized-modal-bar-pulse {\n 0%, 100% {\n box-shadow: var(--shadow-s);\n }\n 50% {\n box-shadow: 0 0 0 2px var(--interactive-accent);\n }\n}\n@keyframes obsidian-lib-minimized-modal-bar-attention {\n 0% {\n box-shadow: 0 0 0 0 var(--interactive-accent);\n }\n 40% {\n box-shadow: 0 0 0 4px var(--interactive-accent);\n }\n 100% {\n box-shadow: var(--shadow-s);\n }\n}\n.obsidian-lib.minimizable-modal .minimize-button {\n position: absolute;\n top: var(--size-4-2);\n right: calc(var(--size-4-2) + var(--size-4-9));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-lib.minimizable-modal .minimize-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n.obsidian-lib.minimized-modal-bar {\n position: fixed;\n right: var(--size-4-4);\n bottom: calc(var(--size-4-4) + var(--size-4-8));\n z-index: var(--layer-modal);\n display: flex;\n align-items: center;\n gap: var(--size-4-2);\n padding: var(--size-4-2) var(--size-4-3);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-m);\n background: var(--background-secondary);\n box-shadow: var(--shadow-s);\n cursor: pointer;\n animation: obsidian-lib-minimized-modal-bar-pulse 2s ease-in-out infinite;\n}\n.obsidian-lib.minimized-modal-bar:hover {\n background-image: linear-gradient(var(--background-modifier-hover), var(--background-modifier-hover));\n}\n.obsidian-lib.minimized-modal-bar.minimized-modal-bar-attention {\n animation: obsidian-lib-minimized-modal-bar-attention 0.35s ease-out;\n}\n.obsidian-lib.minimized-modal-bar .minimized-modal-bar-title {\n font-weight: var(--font-medium);\n}\n.obsidian-lib.minimized-modal-bar .restore-button,\n.obsidian-lib.minimized-modal-bar .cancel-button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-lib.minimized-modal-bar .restore-button:hover,\n.obsidian-lib.minimized-modal-bar .cancel-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n\n.obsidian-lib.modal-commands {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2-2);\n padding: var(--size-4-2) var(--size-4-3);\n border-top: 1px solid var(--background-modifier-border);\n}\n.obsidian-lib.modal-command-control {\n margin-inline-start: var(--size-2-2);\n vertical-align: middle;\n}\n.obsidian-lib.modal-command {\n display: inline-flex;\n align-items: baseline;\n gap: var(--size-2-2);\n min-height: var(--size-4-8);\n padding: var(--size-2-1) var(--size-4-2);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-s);\n background-color: var(--background-secondary);\n color: var(--text-muted);\n font-size: var(--font-ui-smaller);\n white-space: nowrap;\n cursor: pointer;\n}\n.obsidian-lib.modal-command:hover:not(:disabled):not(.is-active) {\n background-color: var(--background-modifier-hover);\n color: var(--text-normal);\n}\n.obsidian-lib.modal-command.is-active {\n border-color: var(--interactive-accent);\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n.obsidian-lib.modal-command:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.obsidian-lib.modal-command-hotkey {\n color: var(--text-faint);\n font-size: var(--font-smallest);\n}\n.modal-command.is-active .obsidian-lib.modal-command-hotkey {\n opacity: 0.7;\n color: var(--text-on-accent);\n}\n\n.obsidian-lib.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-lib.multiple-dropdown-component select,\n.obsidian-lib.multiple-dropdown-component select:focus,\n.obsidian-lib.multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-lib.multiple-dropdown-component select option:checked,\n.obsidian-lib.multiple-dropdown-component select:focus option:checked,\n.obsidian-lib.multiple-dropdown-component .dropdown option:checked {\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n\n.obsidian-lib.plugin-notice-name {\n color: var(--text-accent);\n display: inline-block;\n font-weight: var(--font-bold);\n margin-bottom: var(--size-4-2);\n}\n.obsidian-lib.plugin-notice-name code {\n color: inherit;\n}\n.obsidian-lib.plugin-notice-content {\n padding-right: var(--size-4-5);\n position: relative;\n}\n.obsidian-lib.plugin-notice-content .obsidian-lib.cancel-button {\n display: block;\n margin-top: var(--size-4-2);\n width: fit-content;\n}\n.obsidian-lib.plugin-notice-content .obsidian-lib.plugin-notice-close-button {\n position: absolute;\n right: var(--size-4-3);\n top: var(--size-4-3);\n}\n.obsidian-lib.plugin-notice-requires-explicit-close.notice {\n padding: 0;\n}\n.obsidian-lib.plugin-notice-requires-explicit-close.notice .obsidian-lib.plugin-notice-content {\n padding: var(--size-4-3) var(--size-4-4);\n}\n\n.obsidian-lib.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-lib.plugin-suggestion-banner {\n background-color: var(--background-secondary);\n border-left: var(--size-2-1) solid var(--text-accent);\n border-radius: var(--radius-s);\n display: flex;\n flex-direction: column;\n gap: var(--size-4-2);\n margin-bottom: var(--size-4-4);\n padding: var(--size-4-3) var(--size-4-4);\n}\n.obsidian-lib.plugin-suggestion-banner button {\n width: fit-content;\n}\n.obsidian-lib.plugin-suggestion-notice-buttons {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-4-2);\n margin-top: var(--size-4-2);\n}\n\n.obsidian-lib.popover {\n max-width: min(420px, 90vw);\n min-width: 320px;\n padding: var(--size-4-2) var(--size-4-3);\n position: absolute;\n z-index: var(--layer-menu);\n}\n.obsidian-lib.popover .setting-item {\n align-items: center;\n border-top: none;\n gap: var(--size-4-2);\n padding: var(--size-2-1) 0;\n}\n.obsidian-lib.popover .setting-item-info {\n margin-right: 0;\n}\n.obsidian-lib.popover .setting-item-control {\n flex-grow: 1;\n justify-content: flex-end;\n}\n.obsidian-lib.popover input[type=text] {\n width: 100%;\n}\n\n.obsidian-lib.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-lib button:not(.clickable-icon) {\n color: var(--text-color);\n}\n\n.obsidian-lib.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-lib :invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-lib input.metadata-input-text:active:invalid:not(.untouched), .obsidian-lib input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-lib input.metadata-input-text:focus:invalid:not(.untouched),\n.obsidian-lib input[type=date]:active:invalid:not(.untouched),\n.obsidian-lib input[type=date]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=date]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=datetime-local]:active:invalid:not(.untouched),\n.obsidian-lib input[type=datetime-local]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=datetime-local]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=email]:active:invalid:not(.untouched),\n.obsidian-lib input[type=email]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=email]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=number]:active:invalid:not(.untouched),\n.obsidian-lib input[type=number]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=number]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=password]:active:invalid:not(.untouched),\n.obsidian-lib input[type=password]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=password]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=search]:active:invalid:not(.untouched),\n.obsidian-lib input[type=search]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=search]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=text]:active:invalid:not(.untouched),\n.obsidian-lib input[type=text]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=text]:focus:invalid:not(.untouched),\n.obsidian-lib textarea:active:invalid:not(.untouched),\n.obsidian-lib textarea:focus-visible:invalid:not(.untouched),\n.obsidian-lib textarea:focus:invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-lib.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-lib.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-lib.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AC/CK;EACP;;;ACJJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;ACrEF;EACE;EACA;;;ACCF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACZN;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;ACrCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;;;ACjBF;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACUN;EACE;;;ACZE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-lib%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-lib%60.%5Cn.obsidian-lib-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-lib-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-lib-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-lib-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20Not%20%60&progress%60:%20that%20APPENDS%20the%20element%20name%20to%20the%20parent%20class,%20producing%20one%20long%20class%20that%20matches%5Cn%20%20//%20nothing.%20The%20element%20type%20has%20to%20lead%20the%20compound%20selector%20instead.%5Cn%20%20@at-root%20progress%23%7B&%7D.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-lib-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-lib-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-lib%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-lib-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-lib-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60%20%E2%80%94%20whose%20rule%20is%5Cn%20%20//%20unscoped,%20so%20it%20applies%20to%20a%20plain%20%60Modal%60%20too%20%E2%80%94%20and%20this%20one%20only%20re-tunes%20that%20rule's%20%60gap%60%20and%5Cn%20%20//%20%60padding%60%20and%20adds%20the%20separator;%20in%20%60Buttons%60%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20control%20the%20%60Instructions%60%20renderer%20injects%20into%20an%20instruction's%20purpose%20text%20%E2%80%94%20a%20checkbox,%20a%5Cn%20%20//%20dropdown.%20Obsidian%20styles%20the%20instruction%20bar%20itself,%20but%20its%20own%20bar%20never%20contains%20a%20control,%20so%5Cn%20%20//%20nothing%20upstream%20separates%20one%20from%20the%20label%20it%20belongs%20to.%20Sits%20on%20the%20control%20rather%20than%20on%20the%5Cn%20%20//%20strip,%20so%20it%20reaches%20a%20%60SuggestModal%60's%20native%20bar%20as%20well%20as%20a%20self-created%20one.%5Cn%20%20&.modal-command-control%20%7B%5Cn%20%20%20%20margin-inline-start:%20var(--size-2-2);%5Cn%20%20%20%20vertical-align:%20middle;%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20//%20Touch%20can%20leave%20:hover%20latched%20until%20the%20next%20tap.%20Keep%20the%20ON%20fill%20in%20that%20state%20too.%5Cn%20%20%20%20&:hover:not(:disabled):not(.is-active)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20Compound,%20not%20nested:%20%60addPluginCssClasses%60%20puts%20%60obsidian-lib%60%20and%20%60multiple-dropdown-component%60%20on%20the%5Cn%20%20//%20SAME%20element%20(the%20setting's%20control%20container),%20so%20a%20descendant%20selector%20matched%20nothing%20and%20every%20multiple%5Cn%20%20//%20dropdown%20rendered%20one%20row%20tall%20%E2%80%94%20Obsidian's%20%60.dropdown%60%20height,%20with%20no%20popup%20behind%20it%20to%20pick%20from.%5Cn%20%20&.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%5Cn%20%20%20%20//%20The%20name%20is%20inline%20code;%20it%20keeps%20the%20code%20background%20and%20font%20but%20takes%20the%20prefix's%20accent%20color.%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20color:%20inherit;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-lib.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-lib.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-lib.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20notice%20lays%20its%20buttons%20out%20inline%20with%20no%20spacing,%20so%20the%20action%20button%20would%20touch%20the%20decline%20button.%5Cn%20%20&.plugin-suggestion-notice-buttons%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-lib%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20inside%20the%5Cn//%20Library's%20own%20UI%20(specificity%200,2,1),%20which%20wins%20over%20tldraw's%20(0,1,1)%20while%20staying%20correct%5Cn//%20For%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20It%20MUST%20stay%20scoped%20to%20%60.obsidian-lib%60:%20an%20unscoped%20re-assert%20(it%20was%20%60body%20button%E2%80%A6%60,%5Cn//%200,1,2)%20lands%20on%20every%20button%20in%20the%20app%20and%20beats%20any%20other%20plugin's%20own%20button%20color%5Cn//%20Written%20at%200,1,1,%20which%20Obsidian's%20own%20rule%20used%20to%20lose%20to%20(obsidian-custom-attachment-location%2395).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cn.obsidian-lib%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-lib%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
|
8
8
|
export {
|
|
9
9
|
LIBRARY_STYLES,
|
package/dist/lib/esm/index.d.mts
CHANGED
|
@@ -8,6 +8,7 @@ export * as 'attachment-unit-folder' from './attachment-unit-folder.mjs';
|
|
|
8
8
|
export * as 'backlink-index' from './backlink-index.mjs';
|
|
9
9
|
export * as 'backlink' from './backlink.mjs';
|
|
10
10
|
export * as 'bases-view-registrar' from './bases-view-registrar.mjs';
|
|
11
|
+
export * as 'bug-report' from './bug-report.mjs';
|
|
11
12
|
export * as 'bulk-operation-progress' from './bulk-operation-progress.mjs';
|
|
12
13
|
export * as 'bulk-operation' from './bulk-operation.mjs';
|
|
13
14
|
export * as 'callout' from './callout.mjs';
|
|
@@ -32,6 +33,7 @@ export * as 'demo-vault-helper' from './demo-vault-helper.mjs';
|
|
|
32
33
|
export * as 'demo-vault-naming' from './demo-vault-naming.mjs';
|
|
33
34
|
export * as 'desktop-bulk-operation-git' from './desktop-bulk-operation-git.mjs';
|
|
34
35
|
export * as 'desktop-demo-vault-opener' from './desktop-demo-vault-opener.mjs';
|
|
36
|
+
export * as 'desktop-operating-system' from './desktop-operating-system.mjs';
|
|
35
37
|
export * as 'desktop-trusted-input' from './desktop-trusted-input.mjs';
|
|
36
38
|
export * as 'editor-extension-registrar' from './editor-extension-registrar.mjs';
|
|
37
39
|
export * as 'editor-suggest-registrar' from './editor-suggest-registrar.mjs';
|
|
@@ -64,7 +66,9 @@ export * as 'markdown-post-processor-registrar' from './markdown-post-processor-
|
|
|
64
66
|
export * as 'markdown-view' from './markdown-view.mjs';
|
|
65
67
|
export * as 'markdown' from './markdown.mjs';
|
|
66
68
|
export * as 'menu-event-registrar' from './menu-event-registrar.mjs';
|
|
69
|
+
export * as 'menu' from './menu.mjs';
|
|
67
70
|
export * as 'metadata-cache' from './metadata-cache.mjs';
|
|
71
|
+
export * as 'mobile-app-info' from './mobile-app-info.mjs';
|
|
68
72
|
export * as 'mobile-trusted-input' from './mobile-trusted-input.mjs';
|
|
69
73
|
export * as 'modals' from './modals/index.mjs';
|
|
70
74
|
export * as 'note-priority' from './note-priority.mjs';
|
|
@@ -90,6 +94,7 @@ export * as 'ribbon-icon-registrar' from './ribbon-icon-registrar.mjs';
|
|
|
90
94
|
export * as 'setting-components' from './setting-components/index.mjs';
|
|
91
95
|
export * as 'setting-ex' from './setting-ex.mjs';
|
|
92
96
|
export * as 'setting-group-ex' from './setting-group-ex.mjs';
|
|
97
|
+
export * as 'settings-modal' from './settings-modal.mjs';
|
|
93
98
|
export * as 'status-bar-item-registrar' from './status-bar-item-registrar.mjs';
|
|
94
99
|
export * as 'templater' from './templater.mjs';
|
|
95
100
|
export * as 'transformers' from './transformers/index.mjs';
|
package/dist/lib/esm/index.mjs
CHANGED
|
@@ -12,6 +12,7 @@ import * as attachment_unit_folder from "./attachment-unit-folder.mjs";
|
|
|
12
12
|
import * as backlink_index from "./backlink-index.mjs";
|
|
13
13
|
import * as backlink from "./backlink.mjs";
|
|
14
14
|
import * as bases_view_registrar from "./bases-view-registrar.mjs";
|
|
15
|
+
import * as bug_report from "./bug-report.mjs";
|
|
15
16
|
import * as bulk_operation_progress from "./bulk-operation-progress.mjs";
|
|
16
17
|
import * as bulk_operation from "./bulk-operation.mjs";
|
|
17
18
|
import * as callout from "./callout.mjs";
|
|
@@ -36,6 +37,7 @@ import * as demo_vault_helper from "./demo-vault-helper.mjs";
|
|
|
36
37
|
import * as demo_vault_naming from "./demo-vault-naming.mjs";
|
|
37
38
|
import * as desktop_bulk_operation_git from "./desktop-bulk-operation-git.mjs";
|
|
38
39
|
import * as desktop_demo_vault_opener from "./desktop-demo-vault-opener.mjs";
|
|
40
|
+
import * as desktop_operating_system from "./desktop-operating-system.mjs";
|
|
39
41
|
import * as desktop_trusted_input from "./desktop-trusted-input.mjs";
|
|
40
42
|
import * as editor_extension_registrar from "./editor-extension-registrar.mjs";
|
|
41
43
|
import * as editor_suggest_registrar from "./editor-suggest-registrar.mjs";
|
|
@@ -68,7 +70,9 @@ import * as markdown_post_processor_registrar from "./markdown-post-processor-re
|
|
|
68
70
|
import * as markdown_view from "./markdown-view.mjs";
|
|
69
71
|
import * as markdown from "./markdown.mjs";
|
|
70
72
|
import * as menu_event_registrar from "./menu-event-registrar.mjs";
|
|
73
|
+
import * as menu from "./menu.mjs";
|
|
71
74
|
import * as metadata_cache from "./metadata-cache.mjs";
|
|
75
|
+
import * as mobile_app_info from "./mobile-app-info.mjs";
|
|
72
76
|
import * as mobile_trusted_input from "./mobile-trusted-input.mjs";
|
|
73
77
|
import * as modals from "./modals/index.mjs";
|
|
74
78
|
import * as note_priority from "./note-priority.mjs";
|
|
@@ -94,6 +98,7 @@ import * as ribbon_icon_registrar from "./ribbon-icon-registrar.mjs";
|
|
|
94
98
|
import * as setting_components from "./setting-components/index.mjs";
|
|
95
99
|
import * as setting_ex from "./setting-ex.mjs";
|
|
96
100
|
import * as setting_group_ex from "./setting-group-ex.mjs";
|
|
101
|
+
import * as settings_modal from "./settings-modal.mjs";
|
|
97
102
|
import * as status_bar_item_registrar from "./status-bar-item-registrar.mjs";
|
|
98
103
|
import * as templater from "./templater.mjs";
|
|
99
104
|
import * as transformers from "./transformers/index.mjs";
|
|
@@ -114,6 +119,7 @@ export {
|
|
|
114
119
|
backlink,
|
|
115
120
|
backlink_index as "backlink-index",
|
|
116
121
|
bases_view_registrar as "bases-view-registrar",
|
|
122
|
+
bug_report as "bug-report",
|
|
117
123
|
bulk_operation as "bulk-operation",
|
|
118
124
|
bulk_operation_progress as "bulk-operation-progress",
|
|
119
125
|
callout,
|
|
@@ -138,6 +144,7 @@ export {
|
|
|
138
144
|
demo_vault_naming as "demo-vault-naming",
|
|
139
145
|
desktop_bulk_operation_git as "desktop-bulk-operation-git",
|
|
140
146
|
desktop_demo_vault_opener as "desktop-demo-vault-opener",
|
|
147
|
+
desktop_operating_system as "desktop-operating-system",
|
|
141
148
|
desktop_trusted_input as "desktop-trusted-input",
|
|
142
149
|
editor,
|
|
143
150
|
editor_extension_registrar as "editor-extension-registrar",
|
|
@@ -169,8 +176,10 @@ export {
|
|
|
169
176
|
markdown_code_block_processor_registrar as "markdown-code-block-processor-registrar",
|
|
170
177
|
markdown_post_processor_registrar as "markdown-post-processor-registrar",
|
|
171
178
|
markdown_view as "markdown-view",
|
|
179
|
+
menu,
|
|
172
180
|
menu_event_registrar as "menu-event-registrar",
|
|
173
181
|
metadata_cache as "metadata-cache",
|
|
182
|
+
mobile_app_info as "mobile-app-info",
|
|
174
183
|
mobile_trusted_input as "mobile-trusted-input",
|
|
175
184
|
modals,
|
|
176
185
|
note_priority as "note-priority",
|
|
@@ -196,6 +205,7 @@ export {
|
|
|
196
205
|
setting_components as "setting-components",
|
|
197
206
|
setting_ex as "setting-ex",
|
|
198
207
|
setting_group_ex as "setting-group-ex",
|
|
208
|
+
settings_modal as "settings-modal",
|
|
199
209
|
status_bar_item_registrar as "status-bar-item-registrar",
|
|
200
210
|
templater,
|
|
201
211
|
transformers,
|
|
@@ -207,4 +217,4 @@ export {
|
|
|
207
217
|
view_registrar as "view-registrar",
|
|
208
218
|
workspace
|
|
209
219
|
};
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ19fbWVyZ2VkJyBmcm9tICcuL19fbWVyZ2VkLnRzJztcbmV4cG9ydCAqIGFzICdhY3RpdmUtZmlsZS1wcm92aWRlcicgZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyAnYXBwJyBmcm9tICcuL2FwcC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtd2l0aC1ub3RpY2UnIGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0ICogYXMgJ2F0dGFjaG1lbnQtcGF0aCcgZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuZXhwb3J0ICogYXMgJ2F0dGFjaG1lbnQtdW5pdC1mb2xkZXInIGZyb20gJy4vYXR0YWNobWVudC11bml0LWZvbGRlci50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmstaW5kZXgnIGZyb20gJy4vYmFja2xpbmstaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2JhY2tsaW5rJyBmcm9tICcuL2JhY2tsaW5rLnRzJztcbmV4cG9ydCAqIGFzICdiYXNlcy12aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnYnVsay1vcGVyYXRpb24tcHJvZ3Jlc3MnIGZyb20gJy4vYnVsay1vcGVyYXRpb24tcHJvZ3Jlc3MudHMnO1xuZXhwb3J0ICogYXMgJ2J1bGstb3BlcmF0aW9uJyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29kZW1pcnJvcicgZnJvbSAnLi9jb2RlbWlycm9yL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLWhhbmRsZXJzJyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtcmVnaXN0cmFyJyBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjb21tdW5pdHktcGx1Z2lucycgZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50cycgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zdHJ1Y3RvcnMnIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjc3MtY2xhc3MnIGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLWhhbmRsZXInIGZyb20gJy4vZGF0YS1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLXN0b3JlcycgZnJvbSAnLi9kYXRhLXN0b3Jlcy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVidWcnIGZyb20gJy4vZGVidWcudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyLXNldHRpbmdzJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LWhlbHBlcicgZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1uYW1pbmcnIGZyb20gJy4vZGVtby12YXVsdC1uYW1pbmcudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtYnVsay1vcGVyYXRpb24tZ2l0JyBmcm9tICcuL2Rlc2t0b3AtYnVsay1vcGVyYXRpb24tZ2l0LnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtZXhwbG9yZXInIGZyb20gJy4vZmlsZS1leHBsb3Jlci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1tYW5hZ2VyJyBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1zeXN0ZW0nIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgJ2ZvbGRlci1ub3RlJyBmcm9tICcuL2ZvbGRlci1ub3RlLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlci1mb3JtYXR0aW5nJyBmcm9tICcuL2Zyb250bWF0dGVyLWZvcm1hdHRpbmcudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzJyBmcm9tICcuL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlcicgZnJvbSAnLi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgKiBhcyAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZCcgZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXInIGZyb20gJy4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdodG1sLWVsZW1lbnQnIGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCAqIGFzICdpMThuJyBmcm9tICcuL2kxOG4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2lzLWluLW9ic2lkaWFuJyBmcm9tICcuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5LXN0eWxlcycgZnJvbSAnLi9saWJyYXJ5LXN0eWxlcy50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeScgZnJvbSAnLi9saWJyYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLW5hbWUnIGZyb20gJy4vbGluay1uYW1lLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLXVwZGF0ZS1wcm9ncmVzcycgZnJvbSAnLi9saW5rLXVwZGF0ZS1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnbGluaycgZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCAqIGFzICdsb2dnZXInIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdsb29wJyBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi12aWV3JyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duJyBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzICdtZW51LWV2ZW50LXJlZ2lzdHJhcicgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWV0YWRhdGEtY2FjaGUnIGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuZXhwb3J0ICogYXMgJ21vYmlsZS10cnVzdGVkLWlucHV0JyBmcm9tICcuL21vYmlsZS10cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCAqIGFzICdtb2RhbHMnIGZyb20gJy4vbW9kYWxzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdub3RlLXByaW9yaXR5JyBmcm9tICcuL25vdGUtcHJpb3JpdHkudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvcicgZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLWxpYi1zdGF0ZScgZnJvbSAnLi9vYnNpZGlhbi1saWItc3RhdGUudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1zZXR0aW5ncycgZnJvbSAnLi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4td29yZC1jaGFyYWN0ZXJzJyBmcm9tICcuL29ic2lkaWFuLXdvcmQtY2hhcmFjdGVycy50cyc7XG5leHBvcnQgKiBhcyAncGFyc2UtbGluaycgZnJvbSAnLi9wYXJzZS1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdwYXRoLXNldHRpbmdzJyBmcm9tICcuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BkZicgZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbicgZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAncG9wb3ZlcnMnIGZyb20gJy4vcG9wb3ZlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3Bvc2l0aW9uJyBmcm9tICcuL3Bvc2l0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdwcm9wZXJ0eS1lbnRyeScgZnJvbSAnLi9wcm9wZXJ0eS1lbnRyeS50cyc7XG5leHBvcnQgKiBhcyAncXVldWUnIGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWN0JyBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdyZWZlcmVuY2UnIGZyb20gJy4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS1sb2NrJyBmcm9tICcuL3Jlc291cmNlLWxvY2sudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLXVybCcgZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0ICogYXMgJ3JpYmJvbi1pY29uLXJlZ2lzdHJhcicgZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctY29tcG9uZW50cycgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZXgnIGZyb20gJy4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1ncm91cC1leCcgZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyJyBmcm9tICcuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3RlbXBsYXRlcicgZnJvbSAnLi90ZW1wbGF0ZXIudHMnO1xuZXhwb3J0ICogYXMgJ3RyYW5zZm9ybWVycycgZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3RydXN0ZWQtaW5wdXQnIGZyb20gJy4vdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGlvbicgZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC1kZWxldGUnIGZyb20gJy4vdmF1bHQtZGVsZXRlLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC10cmFuc2FjdGlvbicgZnJvbSAnLi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQnIGZyb20gJy4vdmF1bHQudHMnO1xuZXhwb3J0ICogYXMgJ3ZpZXctcmVnaXN0cmFyJyBmcm9tICcuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd3b3Jrc3BhY2UnIGZyb20gJy4vd29ya3NwYWNlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWSxjQUFnQjtBQUM1QixZQUFZQSwwQkFBNEI7QUFDeEMsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxxQkFBdUI7QUFDbkMsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZLFdBQWE7QUFDekIsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZLFlBQWM7QUFDMUIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyx5Q0FBMkM7QUFDdkQsWUFBWSxpQkFBbUI7QUFDL0IsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWSxhQUFlO0FBQzNCLFlBQVlDLGVBQWlCO0FBQzdCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFVBQVk7QUFDeEIsWUFBWSxZQUFjO0FBQzFCLFlBQVksVUFBWTtBQUN4QixZQUFZQyw2Q0FBK0M7QUFDM0QsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLHVDQUF5QztBQUNyRCxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWSxlQUFpQjtBQUM3QixZQUFZLGtCQUFvQjtBQUNoQyxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZLFdBQWE7QUFDekIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksZUFBaUI7IiwKICAibmFtZXMiOiBbImFjdGl2ZS1maWxlLXByb3ZpZGVyIiwgImFzeW5jLXdpdGgtbm90aWNlIiwgImF0dGFjaG1lbnQtcGF0aCIsICJhdHRhY2htZW50LXVuaXQtZm9sZGVyIiwgImJhY2tsaW5rLWluZGV4IiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImJ1bGstb3BlcmF0aW9uLXByb2dyZXNzIiwgImJ1bGstb3BlcmF0aW9uIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YS1zdG9yZXMiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LW5hbWluZyIsICJkZXNrdG9wLWJ1bGstb3BlcmF0aW9uLWdpdCIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1leHBsb3JlciIsICJmaWxlLW1hbmFnZXIiLCAiZmlsZS1zeXN0ZW0iLCAiZm9sZGVyLW5vdGUiLCAiZnJvbnRtYXR0ZXItZm9ybWF0dGluZyIsICJmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cyIsICJnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGlicmFyeS1zdHlsZXMiLCAibGluay1uYW1lIiwgImxpbmstdXBkYXRlLXByb2dyZXNzIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3NvciIsICJtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tdmlldyIsICJtZW51LWV2ZW50LXJlZ2lzdHJhciIsICJtZXRhZGF0YS1jYWNoZSIsICJtb2JpbGUtdHJ1c3RlZC1pbnB1dCIsICJub3RlLXByaW9yaXR5IiwgIm5vdGVib29rLW5hdmlnYXRvciIsICJvYnNpZGlhbi1saWItc3RhdGUiLCAib2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIiLCAib2JzaWRpYW4tc2V0dGluZ3MiLCAib2JzaWRpYW4td29yZC1jaGFyYWN0ZXJzIiwgInBhcnNlLWxpbmsiLCAicGF0aC1zZXR0aW5ncyIsICJwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyIiwgInByb3BlcnR5LWVudHJ5IiwgInJlc291cmNlLWxvY2siLCAicmVzb3VyY2UtdXJsIiwgInJpYmJvbi1pY29uLXJlZ2lzdHJhciIsICJzZXR0aW5nLWNvbXBvbmVudHMiLCAic2V0dGluZy1leCIsICJzZXR0aW5nLWdyb3VwLWV4IiwgInN0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIiLCAidHJ1c3RlZC1pbnB1dCIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ19fbWVyZ2VkJyBmcm9tICcuL19fbWVyZ2VkLnRzJztcbmV4cG9ydCAqIGFzICdhY3RpdmUtZmlsZS1wcm92aWRlcicgZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgKiBhcyAnYXBwJyBmcm9tICcuL2FwcC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtd2l0aC1ub3RpY2UnIGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0ICogYXMgJ2F0dGFjaG1lbnQtcGF0aCcgZnJvbSAnLi9hdHRhY2htZW50LXBhdGgudHMnO1xuZXhwb3J0ICogYXMgJ2F0dGFjaG1lbnQtdW5pdC1mb2xkZXInIGZyb20gJy4vYXR0YWNobWVudC11bml0LWZvbGRlci50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmstaW5kZXgnIGZyb20gJy4vYmFja2xpbmstaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2JhY2tsaW5rJyBmcm9tICcuL2JhY2tsaW5rLnRzJztcbmV4cG9ydCAqIGFzICdiYXNlcy12aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnYnVnLXJlcG9ydCcgZnJvbSAnLi9idWctcmVwb3J0LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1wcm9ncmVzcycgZnJvbSAnLi9idWxrLW9wZXJhdGlvbi1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnYnVsay1vcGVyYXRpb24nIGZyb20gJy4vYnVsay1vcGVyYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ2NhbGxvdXQnIGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyAnY2FudmFzJyBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQgKiBhcyAnY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4JyBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbicgZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWJsb2NrLXJlZy1leHAnIGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlbWlycm9yJyBmcm9tICcuL2NvZGVtaXJyb3IvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtaGFuZGxlcnMnIGZyb20gJy4vY29tbWFuZC1oYW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1yZWdpc3RyYXInIGZyb20gJy4vY29tbWFuZC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW11bml0eS1wbHVnaW5zJyBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21wb25lbnRzJyBmcm9tICcuL2NvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbnN0cnVjdG9ycycgZnJvbSAnLi9jb25zdHJ1Y3RvcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Nzcy1jbGFzcycgZnJvbSAnLi9jc3MtY2xhc3MudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGEtaGFuZGxlcicgZnJvbSAnLi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGEtc3RvcmVzJyBmcm9tICcuL2RhdGEtc3RvcmVzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldy1saW5rJyBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGF2aWV3JyBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzICdkZWJ1ZycgZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LW5hbWluZycgZnJvbSAnLi9kZW1vLXZhdWx0LW5hbWluZy50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC1idWxrLW9wZXJhdGlvbi1naXQnIGZyb20gJy4vZGVza3RvcC1idWxrLW9wZXJhdGlvbi1naXQudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXInIGZyb20gJy4vZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC1vcGVyYXRpbmctc3lzdGVtJyBmcm9tICcuL2Rlc2t0b3Atb3BlcmF0aW5nLXN5c3RlbS50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC10cnVzdGVkLWlucHV0JyBmcm9tICcuL2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1leHBsb3JlcicgZnJvbSAnLi9maWxlLWV4cGxvcmVyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLW1hbmFnZXInIGZyb20gJy4vZmlsZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLXN5c3RlbScgZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQgKiBhcyAnZm9sZGVyLW5vdGUnIGZyb20gJy4vZm9sZGVyLW5vdGUudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyLWZvcm1hdHRpbmcnIGZyb20gJy4vZnJvbnRtYXR0ZXItZm9ybWF0dGluZy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMnIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyJyBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkJyBmcm9tICcuL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpYnJhcnktc3R5bGVzJyBmcm9tICcuL2xpYnJhcnktc3R5bGVzLnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5JyBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstbmFtZScgZnJvbSAnLi9saW5rLW5hbWUudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZW51JyBmcm9tICcuL21lbnUudHMnO1xuZXhwb3J0ICogYXMgJ21ldGFkYXRhLWNhY2hlJyBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzICdtb2JpbGUtYXBwLWluZm8nIGZyb20gJy4vbW9iaWxlLWFwcC1pbmZvLnRzJztcbmV4cG9ydCAqIGFzICdtb2JpbGUtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9tb2JpbGUtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZS1wcmlvcml0eScgZnJvbSAnLi9ub3RlLXByaW9yaXR5LnRzJztcbmV4cG9ydCAqIGFzICdub3RlYm9vay1uYXZpZ2F0b3InIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1saWItc3RhdGUnIGZyb20gJy4vb2JzaWRpYW4tbGliLXN0YXRlLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tc2V0dGluZ3MnIGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXdvcmQtY2hhcmFjdGVycycgZnJvbSAnLi9vYnNpZGlhbi13b3JkLWNoYXJhY3RlcnMudHMnO1xuZXhwb3J0ICogYXMgJ3BhcnNlLWxpbmsnIGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQgKiBhcyAncGF0aC1zZXR0aW5ncycgZnJvbSAnLi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwZGYnIGZyb20gJy4vcGRmLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4nIGZyb20gJy4vcGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3BvcG92ZXJzJyBmcm9tICcuL3BvcG92ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwb3NpdGlvbicgZnJvbSAnLi9wb3NpdGlvbi50cyc7XG5leHBvcnQgKiBhcyAncHJvcGVydHktZW50cnknIGZyb20gJy4vcHJvcGVydHktZW50cnkudHMnO1xuZXhwb3J0ICogYXMgJ3F1ZXVlJyBmcm9tICcuL3F1ZXVlLnRzJztcbmV4cG9ydCAqIGFzICdyZWFjdCcgZnJvbSAnLi9yZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncmVmZXJlbmNlJyBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtbG9jaycgZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS11cmwnIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzICdyaWJib24taWNvbi1yZWdpc3RyYXInIGZyb20gJy4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWNvbXBvbmVudHMnIGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWV4JyBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZ3JvdXAtZXgnIGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbW9kYWwnIGZyb20gJy4vc2V0dGluZ3MtbW9kYWwudHMnO1xuZXhwb3J0ICogYXMgJ3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXInIGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVyJyBmcm9tICcuL3RlbXBsYXRlci50cyc7XG5leHBvcnQgKiBhcyAndHJhbnNmb3JtZXJzJyBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAndHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0aW9uJyBmcm9tICcuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LWRlbGV0ZScgZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LXRyYW5zYWN0aW9uJyBmcm9tICcuL3ZhdWx0LXRyYW5zYWN0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdCcgZnJvbSAnLi92YXVsdC50cyc7XG5leHBvcnQgKiBhcyAndmlldy1yZWdpc3RyYXInIGZyb20gJy4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3dvcmtzcGFjZScgZnJvbSAnLi93b3Jrc3BhY2UudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZLGNBQWdCO0FBQzVCLFlBQVlBLDBCQUE0QjtBQUN4QyxZQUFZLFNBQVc7QUFDdkIsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZLFdBQWE7QUFDekIsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWSxZQUFjO0FBQzFCLFlBQVksWUFBYztBQUMxQixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVksaUJBQW1CO0FBQy9CLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyxpQ0FBbUM7QUFDL0MsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksYUFBZTtBQUMzQixZQUFZQyxlQUFpQjtBQUM3QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVksWUFBYztBQUMxQixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsNkNBQStDO0FBQzNELFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyx1Q0FBeUM7QUFDckQsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVksZUFBaUI7QUFDN0IsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxXQUFhO0FBQ3pCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZLGVBQWlCOyIsCiAgIm5hbWVzIjogWyJhY3RpdmUtZmlsZS1wcm92aWRlciIsICJhc3luYy13aXRoLW5vdGljZSIsICJhdHRhY2htZW50LXBhdGgiLCAiYXR0YWNobWVudC11bml0LWZvbGRlciIsICJiYWNrbGluay1pbmRleCIsICJiYXNlcy12aWV3LXJlZ2lzdHJhciIsICJidWctcmVwb3J0IiwgImJ1bGstb3BlcmF0aW9uLXByb2dyZXNzIiwgImJ1bGstb3BlcmF0aW9uIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YS1zdG9yZXMiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LW5hbWluZyIsICJkZXNrdG9wLWJ1bGstb3BlcmF0aW9uLWdpdCIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3Atb3BlcmF0aW5nLXN5c3RlbSIsICJkZXNrdG9wLXRydXN0ZWQtaW5wdXQiLCAiZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIiLCAiZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyIiwgImV4dGVuc2lvbnMtcmVnaXN0cmFyIiwgImZpbGUtY2hhbmdlIiwgImZpbGUtZXhwbG9yZXIiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZvbGRlci1ub3RlIiwgImZyb250bWF0dGVyLWZvcm1hdHRpbmciLCAiZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMiLCAiZ2VuZXJhdGVkLWR1cmluZy1idWlsZCIsICJob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIiLCAiaHRtbC1lbGVtZW50IiwgImlzLWluLW9ic2lkaWFuIiwgImxpYnJhcnktc3R5bGVzIiwgImxpbmstbmFtZSIsICJsaW5rLXVwZGF0ZS1wcm9ncmVzcyIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IiLCAibWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLXZpZXciLCAibWVudS1ldmVudC1yZWdpc3RyYXIiLCAibWV0YWRhdGEtY2FjaGUiLCAibW9iaWxlLWFwcC1pbmZvIiwgIm1vYmlsZS10cnVzdGVkLWlucHV0IiwgIm5vdGUtcHJpb3JpdHkiLCAibm90ZWJvb2stbmF2aWdhdG9yIiwgIm9ic2lkaWFuLWxpYi1zdGF0ZSIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJvYnNpZGlhbi13b3JkLWNoYXJhY3RlcnMiLCAicGFyc2UtbGluayIsICJwYXRoLXNldHRpbmdzIiwgInBsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIiLCAicHJvcGVydHktZW50cnkiLCAicmVzb3VyY2UtbG9jayIsICJyZXNvdXJjZS11cmwiLCAicmliYm9uLWljb24tcmVnaXN0cmFyIiwgInNldHRpbmctY29tcG9uZW50cyIsICJzZXR0aW5nLWV4IiwgInNldHRpbmctZ3JvdXAtZXgiLCAic2V0dGluZ3MtbW9kYWwiLCAic3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhciIsICJ0cnVzdGVkLWlucHV0IiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Helpers for Obsidian menus.
|
|
6
|
+
*/
|
|
7
|
+
import type { Menu, MenuItem } from 'obsidian';
|
|
8
|
+
/**
|
|
9
|
+
* Parameters for {@link addSingleChoiceMenuItems}.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam T - The type of the values to choose from.
|
|
12
|
+
*/
|
|
13
|
+
export interface AddSingleChoiceMenuItemsParams<T> {
|
|
14
|
+
/**
|
|
15
|
+
* The value checked when the menu opens.
|
|
16
|
+
*/
|
|
17
|
+
readonly currentValue: T;
|
|
18
|
+
/**
|
|
19
|
+
* The menu to add the items to.
|
|
20
|
+
*/
|
|
21
|
+
readonly menu: Menu;
|
|
22
|
+
/**
|
|
23
|
+
* Called with the chosen value when the user clicks an item.
|
|
24
|
+
*/
|
|
25
|
+
readonly onChange: (value: T) => void;
|
|
26
|
+
/**
|
|
27
|
+
* The choices, in menu order.
|
|
28
|
+
*/
|
|
29
|
+
readonly options: readonly SingleChoiceMenuOption<T>[];
|
|
30
|
+
/**
|
|
31
|
+
* The menu section to put the items in.
|
|
32
|
+
*/
|
|
33
|
+
readonly section?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* One choice of a single-choice menu group.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam T - The type of the value.
|
|
39
|
+
*/
|
|
40
|
+
export interface SingleChoiceMenuOption<T> {
|
|
41
|
+
/**
|
|
42
|
+
* The item's icon.
|
|
43
|
+
*/
|
|
44
|
+
readonly icon?: string;
|
|
45
|
+
/**
|
|
46
|
+
* The item's title.
|
|
47
|
+
*/
|
|
48
|
+
readonly title: string;
|
|
49
|
+
/**
|
|
50
|
+
* The value the item stands for.
|
|
51
|
+
*/
|
|
52
|
+
readonly value: T;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Adds a group of menu items of which exactly one is checked, like radio buttons.
|
|
56
|
+
*
|
|
57
|
+
* A click checks the clicked item and unchecks the rest of the group before calling `onChange`, so a menu
|
|
58
|
+
* that is shown again shows the new choice. Obsidian still closes the menu after a click (read from its
|
|
59
|
+
* `1.15.0` `MenuItem.handleEvent`). Values are compared with `===`.
|
|
60
|
+
*
|
|
61
|
+
* @typeParam T - The type of the values to choose from.
|
|
62
|
+
* @param params - The parameters.
|
|
63
|
+
* @returns The items added, in option order.
|
|
64
|
+
*/
|
|
65
|
+
export declare function addSingleChoiceMenuItems<T>(params: AddSingleChoiceMenuItemsParams<T>): MenuItem[];
|
|
@@ -0,0 +1,30 @@
|
|
|
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 addSingleChoiceMenuItems(params) {
|
|
7
|
+
const items = [];
|
|
8
|
+
for (const option of params.options) {
|
|
9
|
+
params.menu.addItem((item) => {
|
|
10
|
+
items.push(item);
|
|
11
|
+
item.setTitle(option.title).setChecked(option.value === params.currentValue).onClick(() => {
|
|
12
|
+
for (const groupItem of items) {
|
|
13
|
+
groupItem.setChecked(groupItem === item);
|
|
14
|
+
}
|
|
15
|
+
params.onChange(option.value);
|
|
16
|
+
});
|
|
17
|
+
if (option.icon !== void 0) {
|
|
18
|
+
item.setIcon(option.icon);
|
|
19
|
+
}
|
|
20
|
+
if (params.section !== void 0) {
|
|
21
|
+
item.setSection(params.section);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return items;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
addSingleChoiceMenuItems
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL21lbnUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciBPYnNpZGlhbiBtZW51cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIE1lbnUsXG4gIE1lbnVJdGVtXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYWRkU2luZ2xlQ2hvaWNlTWVudUl0ZW1zfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWVzIHRvIGNob29zZSBmcm9tLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZFNpbmdsZUNob2ljZU1lbnVJdGVtc1BhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgY2hlY2tlZCB3aGVuIHRoZSBtZW51IG9wZW5zLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudFZhbHVlOiBUO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVudSB0byBhZGQgdGhlIGl0ZW1zIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVudTogTWVudTtcblxuICAvKipcbiAgICogQ2FsbGVkIHdpdGggdGhlIGNob3NlbiB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyBhbiBpdGVtLlxuICAgKi9cbiAgcmVhZG9ubHkgb25DaGFuZ2U6ICh2YWx1ZTogVCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIGNob2ljZXMsIGluIG1lbnUgb3JkZXIuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zOiByZWFkb25seSBTaW5nbGVDaG9pY2VNZW51T3B0aW9uPFQ+W107XG5cbiAgLyoqXG4gICAqIFRoZSBtZW51IHNlY3Rpb24gdG8gcHV0IHRoZSBpdGVtcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3Rpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT25lIGNob2ljZSBvZiBhIHNpbmdsZS1jaG9pY2UgbWVudSBncm91cC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlQ2hvaWNlTWVudU9wdGlvbjxUPiB7XG4gIC8qKlxuICAgKiBUaGUgaXRlbSdzIGljb24uXG4gICAqL1xuICByZWFkb25seSBpY29uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXRlbSdzIHRpdGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHRoZSBpdGVtIHN0YW5kcyBmb3IuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogVDtcbn1cblxuLyoqXG4gKiBBZGRzIGEgZ3JvdXAgb2YgbWVudSBpdGVtcyBvZiB3aGljaCBleGFjdGx5IG9uZSBpcyBjaGVja2VkLCBsaWtlIHJhZGlvIGJ1dHRvbnMuXG4gKlxuICogQSBjbGljayBjaGVja3MgdGhlIGNsaWNrZWQgaXRlbSBhbmQgdW5jaGVja3MgdGhlIHJlc3Qgb2YgdGhlIGdyb3VwIGJlZm9yZSBjYWxsaW5nIGBvbkNoYW5nZWAsIHNvIGEgbWVudVxuICogdGhhdCBpcyBzaG93biBhZ2FpbiBzaG93cyB0aGUgbmV3IGNob2ljZS4gT2JzaWRpYW4gc3RpbGwgY2xvc2VzIHRoZSBtZW51IGFmdGVyIGEgY2xpY2sgKHJlYWQgZnJvbSBpdHNcbiAqIGAxLjE1LjBgIGBNZW51SXRlbS5oYW5kbGVFdmVudGApLiBWYWx1ZXMgYXJlIGNvbXBhcmVkIHdpdGggYD09PWAuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlcyB0byBjaG9vc2UgZnJvbS5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBpdGVtcyBhZGRlZCwgaW4gb3B0aW9uIG9yZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkU2luZ2xlQ2hvaWNlTWVudUl0ZW1zPFQ+KHBhcmFtczogQWRkU2luZ2xlQ2hvaWNlTWVudUl0ZW1zUGFyYW1zPFQ+KTogTWVudUl0ZW1bXSB7XG4gIGNvbnN0IGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG5cbiAgZm9yIChjb25zdCBvcHRpb24gb2YgcGFyYW1zLm9wdGlvbnMpIHtcbiAgICBwYXJhbXMubWVudS5hZGRJdGVtKChpdGVtKSA9PiB7XG4gICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUob3B0aW9uLnRpdGxlKVxuICAgICAgICAuc2V0Q2hlY2tlZChvcHRpb24udmFsdWUgPT09IHBhcmFtcy5jdXJyZW50VmFsdWUpXG4gICAgICAgIC5vbkNsaWNrKCgpID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwSXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgZ3JvdXBJdGVtLnNldENoZWNrZWQoZ3JvdXBJdGVtID09PSBpdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGFyYW1zLm9uQ2hhbmdlKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAob3B0aW9uLmljb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpdGVtLnNldEljb24ob3B0aW9uLmljb24pO1xuICAgICAgfVxuICAgICAgaWYgKHBhcmFtcy5zZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaXRlbS5zZXRTZWN0aW9uKHBhcmFtcy5zZWN0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBpdGVtcztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBNEVPLFNBQVMseUJBQTRCLFFBQXVEO0FBQ2pHLFFBQU0sUUFBb0IsQ0FBQztBQUUzQixhQUFXLFVBQVUsT0FBTyxTQUFTO0FBQ25DLFdBQU8sS0FBSyxRQUFRLENBQUMsU0FBUztBQUM1QixZQUFNLEtBQUssSUFBSTtBQUNmLFdBQ0csU0FBUyxPQUFPLEtBQUssRUFDckIsV0FBVyxPQUFPLFVBQVUsT0FBTyxZQUFZLEVBQy9DLFFBQVEsTUFBTTtBQUNiLG1CQUFXLGFBQWEsT0FBTztBQUM3QixvQkFBVSxXQUFXLGNBQWMsSUFBSTtBQUFBLFFBQ3pDO0FBQ0EsZUFBTyxTQUFTLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUM7QUFFSCxVQUFJLE9BQU8sU0FBUyxRQUFXO0FBQzdCLGFBQUssUUFBUSxPQUFPLElBQUk7QUFBQSxNQUMxQjtBQUNBLFVBQUksT0FBTyxZQUFZLFFBQVc7QUFDaEMsYUFBSyxXQUFXLE9BQU8sT0FBTztBQUFBLE1BQ2hDO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Reads the Obsidian mobile app's build and the device's operating system, for a bug report.
|
|
6
|
+
*
|
|
7
|
+
* Mobile only: it calls the Capacitor bridge's `nativePromise`, which Obsidian's own code uses but which
|
|
8
|
+
* no public typing declares, so the shapes are declared here, narrowed to the members read, and checked
|
|
9
|
+
* at run time. On any other runtime {@link getMobileAppInfo} resolves to `null`. Reach it through
|
|
10
|
+
* {@link ./bug-report.ts | bug-report}.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* What the mobile app and its device report about themselves.
|
|
14
|
+
*/
|
|
15
|
+
export interface MobileAppInfo {
|
|
16
|
+
/**
|
|
17
|
+
* The installed app's version and build, such as `1.15.0 (291)`, or `null` when the app did not say.
|
|
18
|
+
*/
|
|
19
|
+
readonly installerVersion: null | string;
|
|
20
|
+
/**
|
|
21
|
+
* The device's operating system, version and model, such as `android 15 (Google Pixel 8)`, or `null`
|
|
22
|
+
* when the device did not say.
|
|
23
|
+
*/
|
|
24
|
+
readonly operatingSystem: null | string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Gets what the mobile app and its device report about themselves.
|
|
28
|
+
*
|
|
29
|
+
* @returns The app's version and the device's operating system, or `null` where there is no Capacitor
|
|
30
|
+
* bridge. Each field is `null` when its call fails or answers in an unexpected shape.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getMobileAppInfo(): Promise<MobileAppInfo | null>;
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return "/";
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: "android"
|
|
14
|
+
};
|
|
15
|
+
const existingProcess = globalThis.process;
|
|
16
|
+
if (!existingProcess) {
|
|
17
|
+
globalThis.process = browserProcess;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (existingProcess.versions?.node) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const existingProcessRecord = existingProcess;
|
|
24
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
25
|
+
existingProcessRecord[key] ??= value;
|
|
26
|
+
}
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ensureBrowserProcess();
|
|
31
|
+
})();
|
|
32
|
+
|
|
33
|
+
import {
|
|
34
|
+
functionTypeGuard,
|
|
35
|
+
isString,
|
|
36
|
+
objectTypeGuard,
|
|
37
|
+
optionalTypeGuard
|
|
38
|
+
} from "@mnaoumov/typescript-lib/type-guards";
|
|
39
|
+
const isAppInfo = objectTypeGuard({
|
|
40
|
+
build: optionalTypeGuard(isString),
|
|
41
|
+
version: isString
|
|
42
|
+
});
|
|
43
|
+
const isCapacitorBridge = objectTypeGuard({
|
|
44
|
+
nativePromise: functionTypeGuard()
|
|
45
|
+
});
|
|
46
|
+
const isDeviceInfo = objectTypeGuard({
|
|
47
|
+
manufacturer: optionalTypeGuard(isString),
|
|
48
|
+
model: optionalTypeGuard(isString),
|
|
49
|
+
osVersion: isString,
|
|
50
|
+
platform: isString
|
|
51
|
+
});
|
|
52
|
+
async function getMobileAppInfo() {
|
|
53
|
+
const capacitor = window.Capacitor;
|
|
54
|
+
if (!isCapacitorBridge(capacitor)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const [appInfo, deviceInfo] = await Promise.all([
|
|
58
|
+
callGetInfo(capacitor, "App"),
|
|
59
|
+
callGetInfo(capacitor, "Device")
|
|
60
|
+
]);
|
|
61
|
+
return {
|
|
62
|
+
installerVersion: isAppInfo(appInfo) ? formatAppInfo(appInfo) : null,
|
|
63
|
+
operatingSystem: isDeviceInfo(deviceInfo) ? formatDeviceInfo(deviceInfo) : null
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async function callGetInfo(capacitor, pluginName) {
|
|
67
|
+
try {
|
|
68
|
+
return await capacitor.nativePromise(pluginName, "getInfo");
|
|
69
|
+
} catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function formatAppInfo(appInfo) {
|
|
74
|
+
return appInfo.build ? `${appInfo.version} (${appInfo.build})` : appInfo.version;
|
|
75
|
+
}
|
|
76
|
+
function formatDeviceInfo(deviceInfo) {
|
|
77
|
+
const operatingSystem = `${deviceInfo.platform} ${deviceInfo.osVersion}`;
|
|
78
|
+
const model = [deviceInfo.manufacturer, deviceInfo.model].filter(Boolean).join(" ");
|
|
79
|
+
return model ? `${operatingSystem} (${model})` : operatingSystem;
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
getMobileAppInfo
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2JpbGUtYXBwLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlYWRzIHRoZSBPYnNpZGlhbiBtb2JpbGUgYXBwJ3MgYnVpbGQgYW5kIHRoZSBkZXZpY2UncyBvcGVyYXRpbmcgc3lzdGVtLCBmb3IgYSBidWcgcmVwb3J0LlxuICpcbiAqIE1vYmlsZSBvbmx5OiBpdCBjYWxscyB0aGUgQ2FwYWNpdG9yIGJyaWRnZSdzIGBuYXRpdmVQcm9taXNlYCwgd2hpY2ggT2JzaWRpYW4ncyBvd24gY29kZSB1c2VzIGJ1dCB3aGljaFxuICogbm8gcHVibGljIHR5cGluZyBkZWNsYXJlcywgc28gdGhlIHNoYXBlcyBhcmUgZGVjbGFyZWQgaGVyZSwgbmFycm93ZWQgdG8gdGhlIG1lbWJlcnMgcmVhZCwgYW5kIGNoZWNrZWRcbiAqIGF0IHJ1biB0aW1lLiBPbiBhbnkgb3RoZXIgcnVudGltZSB7QGxpbmsgZ2V0TW9iaWxlQXBwSW5mb30gcmVzb2x2ZXMgdG8gYG51bGxgLiBSZWFjaCBpdCB0aHJvdWdoXG4gKiB7QGxpbmsgLi9idWctcmVwb3J0LnRzIHwgYnVnLXJlcG9ydH0uXG4gKi9cblxuaW1wb3J0IHtcbiAgZnVuY3Rpb25UeXBlR3VhcmQsXG4gIGlzU3RyaW5nLFxuICBvYmplY3RUeXBlR3VhcmQsXG4gIG9wdGlvbmFsVHlwZUd1YXJkXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbi8qKlxuICogV2hhdCB0aGUgbW9iaWxlIGFwcCBhbmQgaXRzIGRldmljZSByZXBvcnQgYWJvdXQgdGhlbXNlbHZlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2JpbGVBcHBJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YWxsZWQgYXBwJ3MgdmVyc2lvbiBhbmQgYnVpbGQsIHN1Y2ggYXMgYDEuMTUuMCAoMjkxKWAsIG9yIGBudWxsYCB3aGVuIHRoZSBhcHAgZGlkIG5vdCBzYXkuXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGV2aWNlJ3Mgb3BlcmF0aW5nIHN5c3RlbSwgdmVyc2lvbiBhbmQgbW9kZWwsIHN1Y2ggYXMgYGFuZHJvaWQgMTUgKEdvb2dsZSBQaXhlbCA4KWAsIG9yIGBudWxsYFxuICAgKiB3aGVuIHRoZSBkZXZpY2UgZGlkIG5vdCBzYXkuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpbmdTeXN0ZW06IG51bGwgfCBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBcHBJbmZvIHtcbiAgcmVhZG9ubHkgYnVpbGQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhcGFjaXRvckJyaWRnZSB7XG4gIHJlYWRvbmx5IG5hdGl2ZVByb21pc2U6IChwbHVnaW5OYW1lOiBzdHJpbmcsIG1ldGhvZE5hbWU6IHN0cmluZykgPT4gUHJvbWlzZTx1bmtub3duPjtcbn1cblxuaW50ZXJmYWNlIERldmljZUluZm8ge1xuICByZWFkb25seSBtYW51ZmFjdHVyZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IG1vZGVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBvc1ZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcGxhdGZvcm06IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFdpbmRvd1dpdGhDYXBhY2l0b3Ige1xuICByZWFkb25seSBDYXBhY2l0b3I/OiB1bmtub3duO1xufVxuXG5jb25zdCBpc0FwcEluZm8gPSBvYmplY3RUeXBlR3VhcmQ8QXBwSW5mbz4oe1xuICBidWlsZDogb3B0aW9uYWxUeXBlR3VhcmQoaXNTdHJpbmcpLFxuICB2ZXJzaW9uOiBpc1N0cmluZ1xufSk7XG5cbmNvbnN0IGlzQ2FwYWNpdG9yQnJpZGdlID0gb2JqZWN0VHlwZUd1YXJkPENhcGFjaXRvckJyaWRnZT4oe1xuICBuYXRpdmVQcm9taXNlOiBmdW5jdGlvblR5cGVHdWFyZDxDYXBhY2l0b3JCcmlkZ2VbJ25hdGl2ZVByb21pc2UnXT4oKVxufSk7XG5cbmNvbnN0IGlzRGV2aWNlSW5mbyA9IG9iamVjdFR5cGVHdWFyZDxEZXZpY2VJbmZvPih7XG4gIG1hbnVmYWN0dXJlcjogb3B0aW9uYWxUeXBlR3VhcmQoaXNTdHJpbmcpLFxuICBtb2RlbDogb3B0aW9uYWxUeXBlR3VhcmQoaXNTdHJpbmcpLFxuICBvc1ZlcnNpb246IGlzU3RyaW5nLFxuICBwbGF0Zm9ybTogaXNTdHJpbmdcbn0pO1xuXG4vKipcbiAqIEdldHMgd2hhdCB0aGUgbW9iaWxlIGFwcCBhbmQgaXRzIGRldmljZSByZXBvcnQgYWJvdXQgdGhlbXNlbHZlcy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXBwJ3MgdmVyc2lvbiBhbmQgdGhlIGRldmljZSdzIG9wZXJhdGluZyBzeXN0ZW0sIG9yIGBudWxsYCB3aGVyZSB0aGVyZSBpcyBubyBDYXBhY2l0b3JcbiAqICAgYnJpZGdlLiBFYWNoIGZpZWxkIGlzIGBudWxsYCB3aGVuIGl0cyBjYWxsIGZhaWxzIG9yIGFuc3dlcnMgaW4gYW4gdW5leHBlY3RlZCBzaGFwZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE1vYmlsZUFwcEluZm8oKTogUHJvbWlzZTxNb2JpbGVBcHBJbmZvIHwgbnVsbD4ge1xuICBjb25zdCBjYXBhY2l0b3IgPSAod2luZG93IGFzIFdpbmRvd1dpdGhDYXBhY2l0b3IpLkNhcGFjaXRvcjtcbiAgaWYgKCFpc0NhcGFjaXRvckJyaWRnZShjYXBhY2l0b3IpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBbYXBwSW5mbywgZGV2aWNlSW5mb10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgY2FsbEdldEluZm8oY2FwYWNpdG9yLCAnQXBwJyksXG4gICAgY2FsbEdldEluZm8oY2FwYWNpdG9yLCAnRGV2aWNlJylcbiAgXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnN0YWxsZXJWZXJzaW9uOiBpc0FwcEluZm8oYXBwSW5mbykgPyBmb3JtYXRBcHBJbmZvKGFwcEluZm8pIDogbnVsbCxcbiAgICBvcGVyYXRpbmdTeXN0ZW06IGlzRGV2aWNlSW5mbyhkZXZpY2VJbmZvKSA/IGZvcm1hdERldmljZUluZm8oZGV2aWNlSW5mbykgOiBudWxsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNhbGxHZXRJbmZvKGNhcGFjaXRvcjogQ2FwYWNpdG9yQnJpZGdlLCBwbHVnaW5OYW1lOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgY2FwYWNpdG9yLm5hdGl2ZVByb21pc2UocGx1Z2luTmFtZSwgJ2dldEluZm8nKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9ybWF0QXBwSW5mbyhhcHBJbmZvOiBBcHBJbmZvKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFwcEluZm8uYnVpbGQgPyBgJHthcHBJbmZvLnZlcnNpb259ICgke2FwcEluZm8uYnVpbGR9KWAgOiBhcHBJbmZvLnZlcnNpb247XG59XG5cbmZ1bmN0aW9uIGZvcm1hdERldmljZUluZm8oZGV2aWNlSW5mbzogRGV2aWNlSW5mbyk6IHN0cmluZyB7XG4gIGNvbnN0IG9wZXJhdGluZ1N5c3RlbSA9IGAke2RldmljZUluZm8ucGxhdGZvcm19ICR7ZGV2aWNlSW5mby5vc1ZlcnNpb259YDtcbiAgY29uc3QgbW9kZWwgPSBbZGV2aWNlSW5mby5tYW51ZmFjdHVyZXIsIGRldmljZUluZm8ubW9kZWxdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyk7XG4gIHJldHVybiBtb2RlbCA/IGAke29wZXJhdGluZ1N5c3RlbX0gKCR7bW9kZWx9KWAgOiBvcGVyYXRpbmdTeXN0ZW07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQXNDUCxNQUFNLFlBQVksZ0JBQXlCO0FBQUEsRUFDekMsT0FBTyxrQkFBa0IsUUFBUTtBQUFBLEVBQ2pDLFNBQVM7QUFDWCxDQUFDO0FBRUQsTUFBTSxvQkFBb0IsZ0JBQWlDO0FBQUEsRUFDekQsZUFBZSxrQkFBb0Q7QUFDckUsQ0FBQztBQUVELE1BQU0sZUFBZSxnQkFBNEI7QUFBQSxFQUMvQyxjQUFjLGtCQUFrQixRQUFRO0FBQUEsRUFDeEMsT0FBTyxrQkFBa0IsUUFBUTtBQUFBLEVBQ2pDLFdBQVc7QUFBQSxFQUNYLFVBQVU7QUFDWixDQUFDO0FBUUQsZUFBc0IsbUJBQWtEO0FBQ3RFLFFBQU0sWUFBYSxPQUErQjtBQUNsRCxNQUFJLENBQUMsa0JBQWtCLFNBQVMsR0FBRztBQUNqQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sQ0FBQyxTQUFTLFVBQVUsSUFBSSxNQUFNLFFBQVEsSUFBSTtBQUFBLElBQzlDLFlBQVksV0FBVyxLQUFLO0FBQUEsSUFDNUIsWUFBWSxXQUFXLFFBQVE7QUFBQSxFQUNqQyxDQUFDO0FBRUQsU0FBTztBQUFBLElBQ0wsa0JBQWtCLFVBQVUsT0FBTyxJQUFJLGNBQWMsT0FBTyxJQUFJO0FBQUEsSUFDaEUsaUJBQWlCLGFBQWEsVUFBVSxJQUFJLGlCQUFpQixVQUFVLElBQUk7QUFBQSxFQUM3RTtBQUNGO0FBRUEsZUFBZSxZQUFZLFdBQTRCLFlBQXNDO0FBQzNGLE1BQUk7QUFDRixXQUFPLE1BQU0sVUFBVSxjQUFjLFlBQVksU0FBUztBQUFBLEVBQzVELFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsU0FBUyxjQUFjLFNBQTBCO0FBQy9DLFNBQU8sUUFBUSxRQUFRLEdBQUcsUUFBUSxPQUFPLEtBQUssUUFBUSxLQUFLLE1BQU0sUUFBUTtBQUMzRTtBQUVBLFNBQVMsaUJBQWlCLFlBQWdDO0FBQ3hELFFBQU0sa0JBQWtCLEdBQUcsV0FBVyxRQUFRLElBQUksV0FBVyxTQUFTO0FBQ3RFLFFBQU0sUUFBUSxDQUFDLFdBQVcsY0FBYyxXQUFXLEtBQUssRUFBRSxPQUFPLE9BQU8sRUFBRSxLQUFLLEdBQUc7QUFDbEYsU0FBTyxRQUFRLEdBQUcsZUFBZSxLQUFLLEtBQUssTUFBTTtBQUNuRDsiLCJuYW1lcyI6W119
|
|
@@ -30,7 +30,10 @@ function ensureBrowserProcess() {
|
|
|
30
30
|
ensureBrowserProcess();
|
|
31
31
|
})();
|
|
32
32
|
|
|
33
|
-
import {
|
|
33
|
+
import {
|
|
34
|
+
assertNever,
|
|
35
|
+
ensureNonNullable
|
|
36
|
+
} from "@mnaoumov/typescript-lib/type-guards";
|
|
34
37
|
var SpellcheckMode = /* @__PURE__ */ ((SpellcheckMode2) => {
|
|
35
38
|
SpellcheckMode2["AlwaysOn"] = "AlwaysOn";
|
|
36
39
|
SpellcheckMode2["FollowObsidianSetting"] = "FollowObsidianSetting";
|
|
@@ -38,7 +41,7 @@ var SpellcheckMode = /* @__PURE__ */ ((SpellcheckMode2) => {
|
|
|
38
41
|
return SpellcheckMode2;
|
|
39
42
|
})(SpellcheckMode || {});
|
|
40
43
|
function getNewLinkFormat(app) {
|
|
41
|
-
return app.vault.getConfig("newLinkFormat");
|
|
44
|
+
return ensureNonNullable(app.vault.getConfig("newLinkFormat"));
|
|
42
45
|
}
|
|
43
46
|
function isSpellcheckEnabled(app) {
|
|
44
47
|
return Boolean(app.vault.getConfig("spellcheck"));
|
|
@@ -69,4 +72,4 @@ export {
|
|
|
69
72
|
isSpellcheckEnabledForMode,
|
|
70
73
|
shouldUseWikilinks
|
|
71
74
|
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1zZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgYXNzZXJ0TmV2ZXIsXG4gIGVuc3VyZU5vbk51bGxhYmxlXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbi8qKlxuICogQSB3YXkgYW4gaW5wdXQgZGVjaWRlcyB3aGV0aGVyIGl0IGlzIHNwZWxsLWNoZWNrZWQuXG4gKlxuICogVGhlIGBzcGVsbGNoZWNrYCBhdHRyaWJ1dGUgaXMgdGhlIHdob2xlIG1lY2hhbmlzbTogT2JzaWRpYW4gbmV2ZXIgY2FsbHMgRWxlY3Ryb24nc1xuICogYHNldFNwZWxsQ2hlY2tlckVuYWJsZWRgLCBpdCBvbmx5IHNldHMgdGhlIGF0dHJpYnV0ZSBwZXIgZWxlbWVudC4gU28gYEFsd2F5c09uYCByZWFsbHkgZG9lcyBzcGVsbC1jaGVja1xuICogd2l0aCBgRWRpdG9yID4gU3BlbGxjaGVja2Agb2ZmLCBhbmQgd2hhdCBpdCBpbnZva2VzIGlzIENocm9taXVtJ3MgYnVpbHQtaW4gY2hlY2tlci5cbiAqL1xuZXhwb3J0IGVudW0gU3BlbGxjaGVja01vZGUge1xuICAvKipcbiAgICogQWx3YXlzIHNwZWxsLWNoZWNrIHRoZSBpbnB1dCwgd2hhdGV2ZXIgYEVkaXRvciA+IFNwZWxsY2hlY2tgIHNheXMuXG4gICAqL1xuICBBbHdheXNPbiA9ICdBbHdheXNPbicsXG5cbiAgLyoqXG4gICAqIEZvbGxvdyBgRWRpdG9yID4gU3BlbGxjaGVja2AsIHRoZSB3YXkgT2JzaWRpYW4ncyBvd24gbmFtZS1lbnRyeSBzdXJmYWNlcyBkbyDigJQgdGhlIGlubGluZSBub3RlIHRpdGxlLFxuICAgKiB0aGUgZmlsZSBleHBsb3JlcidzIGlubGluZSByZW5hbWUsIHRoZSBwcm9wZXJ0aWVzIGZpZWxkcy5cbiAgICovXG4gIEZvbGxvd09ic2lkaWFuU2V0dGluZyA9ICdGb2xsb3dPYnNpZGlhblNldHRpbmcnLFxuXG4gIC8qKlxuICAgKiBOZXZlciBzcGVsbC1jaGVjayB0aGUgaW5wdXQsIHdoYXRldmVyIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCBzYXlzLlxuICAgKi9cbiAgT2ZmID0gJ09mZidcbn1cblxuLyoqXG4gKiBBIGZvcm1hdCBvZiB0aGUgbmV3IGxpbmsuXG4gKi9cbmV4cG9ydCB0eXBlIE5ld0xpbmtGb3JtYXQgPSAnYWJzb2x1dGUnIHwgJ3JlbGF0aXZlJyB8ICdzaG9ydGVzdCc7XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdG8gdXNlIHJlbGF0aXZlIGxpbmtzIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdG8gdXNlIHJlbGF0aXZlIGxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3TGlua0Zvcm1hdChhcHA6IEFwcCk6IE5ld0xpbmtGb3JtYXQge1xuICAvLyBgZ2V0Q29uZmlnYCBmYWxscyBiYWNrIHRvIE9ic2lkaWFuJ3MgZGVmYXVsdCBmb3IgYSBrZXkgdGhlIHVzZXIgbmV2ZXIgc2V0LCBzbyBpdCBhbHdheXMgaGFzIGEgdmFsdWUuXG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZShhcHAudmF1bHQuZ2V0Q29uZmlnKCduZXdMaW5rRm9ybWF0JykpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRoZSBzcGVsbGNoZWNrIGlzIGVuYWJsZWQgYmFzZWQgb24gdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgc3BlbGxjaGVjayBpcyBlbmFibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTcGVsbGNoZWNrRW5hYmxlZChhcHA6IEFwcCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihhcHAudmF1bHQuZ2V0Q29uZmlnKCdzcGVsbGNoZWNrJykpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEge0BsaW5rIFNwZWxsY2hlY2tNb2RlfSBhZ2FpbnN0IHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBzcGVsbGNoZWNrTW9kZSAtIFRoZSBtb2RlIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBpbnB1dCBzaG91bGQgYmUgc3BlbGwtY2hlY2tlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3BlbGxjaGVja0VuYWJsZWRGb3JNb2RlKGFwcDogQXBwLCBzcGVsbGNoZWNrTW9kZTogU3BlbGxjaGVja01vZGUpOiBib29sZWFuIHtcbiAgc3dpdGNoIChzcGVsbGNoZWNrTW9kZSkge1xuICAgIGNhc2UgU3BlbGxjaGVja01vZGUuQWx3YXlzT246IHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXNlIFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZzoge1xuICAgICAgcmV0dXJuIGlzU3BlbGxjaGVja0VuYWJsZWQoYXBwKTtcbiAgICB9XG4gICAgY2FzZSBTcGVsbGNoZWNrTW9kZS5PZmY6IHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgYXNzZXJ0TmV2ZXIoc3BlbGxjaGVja01vZGUpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB3aGV0aGVyIHRvIHVzZSB3aWtpbGlua3MgYmFzZWQgb24gdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgV2hldGhlciB0byB1c2Ugd2lraWxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkVXNlV2lraWxpbmtzKGFwcDogQXBwKTogYm9vbGVhbiB7XG4gIHJldHVybiAhYXBwLnZhdWx0LmdldENvbmZpZygndXNlTWFya2Rvd25MaW5rcycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBU0EsSUFBSyxpQkFBTCxrQkFBS0Esb0JBQUw7QUFJTCxFQUFBQSxnQkFBQSxjQUFXO0FBTVgsRUFBQUEsZ0JBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLGdCQUFBLFNBQU07QUFmSSxTQUFBQTtBQUFBLEdBQUE7QUE2QkwsU0FBUyxpQkFBaUIsS0FBeUI7QUFFeEQsU0FBTyxrQkFBa0IsSUFBSSxNQUFNLFVBQVUsZUFBZSxDQUFDO0FBQy9EO0FBUU8sU0FBUyxvQkFBb0IsS0FBbUI7QUFDckQsU0FBTyxRQUFRLElBQUksTUFBTSxVQUFVLFlBQVksQ0FBQztBQUNsRDtBQVNPLFNBQVMsMkJBQTJCLEtBQVUsZ0JBQXlDO0FBQzVGLFVBQVEsZ0JBQWdCO0FBQUEsSUFDdEIsS0FBSywyQkFBeUI7QUFDNUIsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLEtBQUsscURBQXNDO0FBQ3pDLGFBQU8sb0JBQW9CLEdBQUc7QUFBQSxJQUNoQztBQUFBLElBQ0EsS0FBSyxpQkFBb0I7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLFNBQVM7QUFDUCxrQkFBWSxjQUFjO0FBQUEsSUFDNUI7QUFBQSxFQUNGO0FBQ0Y7QUFRTyxTQUFTLG1CQUFtQixLQUFtQjtBQUNwRCxTQUFPLENBQUMsSUFBSSxNQUFNLFVBQVUsa0JBQWtCO0FBQ2hEOyIsIm5hbWVzIjpbIlNwZWxsY2hlY2tNb2RlIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Helpers for Obsidian's Settings modal.
|
|
6
|
+
*/
|
|
7
|
+
import type { App, SettingTab } from 'obsidian';
|
|
8
|
+
/**
|
|
9
|
+
* Parameters for {@link openSettingTab}.
|
|
10
|
+
*/
|
|
11
|
+
export interface OpenSettingTabParams {
|
|
12
|
+
/**
|
|
13
|
+
* The Obsidian app instance.
|
|
14
|
+
*/
|
|
15
|
+
readonly app: App;
|
|
16
|
+
/**
|
|
17
|
+
* The id of the tab to open: a plugin's id for its own tab, or a core tab id such as `'hotkeys'`.
|
|
18
|
+
*/
|
|
19
|
+
readonly tabId: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Opens Settings on a tab, without opening that tab a second time when it is already the active one.
|
|
23
|
+
*
|
|
24
|
+
* Opening a tab hides the active tab and renders the new one, so opening the tab that is already shown
|
|
25
|
+
* runs its `display()` again for nothing, and a tab whose mount logic does not expect that can break.
|
|
26
|
+
* Settings re-opens its last tab by itself when it opens on desktop and tablet, but not on a phone, where
|
|
27
|
+
* it shows the tab list instead. So the check is on the tab that is active after Settings opened, not on
|
|
28
|
+
* the last tab id, which on a phone would leave the user on the list.
|
|
29
|
+
*
|
|
30
|
+
* @param params - The parameters.
|
|
31
|
+
* @returns The tab now shown, or `null` when no tab has that id.
|
|
32
|
+
*/
|
|
33
|
+
export declare function openSettingTab(params: OpenSettingTabParams): null | SettingTab;
|
|
@@ -0,0 +1,15 @@
|
|
|
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 openSettingTab(params) {
|
|
7
|
+
const { app, tabId } = params;
|
|
8
|
+
app.setting.open();
|
|
9
|
+
const activeTab = app.setting.activeTab;
|
|
10
|
+
return activeTab?.id === tabId ? activeTab : app.setting.openTabById(tabId);
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
openSettingTab
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHRpbmdzLW1vZGFsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSGVscGVycyBmb3IgT2JzaWRpYW4ncyBTZXR0aW5ncyBtb2RhbC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgU2V0dGluZ1RhYlxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG9wZW5TZXR0aW5nVGFifS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuU2V0dGluZ1RhYlBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgdGFiIHRvIG9wZW46IGEgcGx1Z2luJ3MgaWQgZm9yIGl0cyBvd24gdGFiLCBvciBhIGNvcmUgdGFiIGlkIHN1Y2ggYXMgYCdob3RrZXlzJ2AuXG4gICAqL1xuICByZWFkb25seSB0YWJJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wZW5zIFNldHRpbmdzIG9uIGEgdGFiLCB3aXRob3V0IG9wZW5pbmcgdGhhdCB0YWIgYSBzZWNvbmQgdGltZSB3aGVuIGl0IGlzIGFscmVhZHkgdGhlIGFjdGl2ZSBvbmUuXG4gKlxuICogT3BlbmluZyBhIHRhYiBoaWRlcyB0aGUgYWN0aXZlIHRhYiBhbmQgcmVuZGVycyB0aGUgbmV3IG9uZSwgc28gb3BlbmluZyB0aGUgdGFiIHRoYXQgaXMgYWxyZWFkeSBzaG93blxuICogcnVucyBpdHMgYGRpc3BsYXkoKWAgYWdhaW4gZm9yIG5vdGhpbmcsIGFuZCBhIHRhYiB3aG9zZSBtb3VudCBsb2dpYyBkb2VzIG5vdCBleHBlY3QgdGhhdCBjYW4gYnJlYWsuXG4gKiBTZXR0aW5ncyByZS1vcGVucyBpdHMgbGFzdCB0YWIgYnkgaXRzZWxmIHdoZW4gaXQgb3BlbnMgb24gZGVza3RvcCBhbmQgdGFibGV0LCBidXQgbm90IG9uIGEgcGhvbmUsIHdoZXJlXG4gKiBpdCBzaG93cyB0aGUgdGFiIGxpc3QgaW5zdGVhZC4gU28gdGhlIGNoZWNrIGlzIG9uIHRoZSB0YWIgdGhhdCBpcyBhY3RpdmUgYWZ0ZXIgU2V0dGluZ3Mgb3BlbmVkLCBub3Qgb25cbiAqIHRoZSBsYXN0IHRhYiBpZCwgd2hpY2ggb24gYSBwaG9uZSB3b3VsZCBsZWF2ZSB0aGUgdXNlciBvbiB0aGUgbGlzdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgdGFiIG5vdyBzaG93biwgb3IgYG51bGxgIHdoZW4gbm8gdGFiIGhhcyB0aGF0IGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3BlblNldHRpbmdUYWIocGFyYW1zOiBPcGVuU2V0dGluZ1RhYlBhcmFtcyk6IG51bGwgfCBTZXR0aW5nVGFiIHtcbiAgY29uc3QgeyBhcHAsIHRhYklkIH0gPSBwYXJhbXM7XG4gIGFwcC5zZXR0aW5nLm9wZW4oKTtcbiAgY29uc3QgYWN0aXZlVGFiID0gYXBwLnNldHRpbmcuYWN0aXZlVGFiO1xuICByZXR1cm4gYWN0aXZlVGFiPy5pZCA9PT0gdGFiSWQgPyBhY3RpdmVUYWIgOiBhcHAuc2V0dGluZy5vcGVuVGFiQnlJZCh0YWJJZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQXNDTyxTQUFTLGVBQWUsUUFBaUQ7QUFDOUUsUUFBTSxFQUFFLEtBQUssTUFBTSxJQUFJO0FBQ3ZCLE1BQUksUUFBUSxLQUFLO0FBQ2pCLFFBQU0sWUFBWSxJQUFJLFFBQVE7QUFDOUIsU0FBTyxXQUFXLE9BQU8sUUFBUSxZQUFZLElBQUksUUFBUSxZQUFZLEtBQUs7QUFDNUU7IiwKICAibmFtZXMiOiBbXQp9Cg==
|