@mnaoumov/obsidian-lib 10.5.1 → 10.7.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/inline-token-widgets/package.json +6 -0
- package/codemirror/settings-facet/package.json +6 -0
- package/command-handlers/open-discussion-command-handler/package.json +6 -0
- package/command-handlers/open-feature-request-command-handler/package.json +6 -0
- package/command-handlers/open-git-hub-command-handler/package.json +6 -0
- package/components/settings-facet-component/package.json +6 -0
- package/components/style-sheet-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +137 -1
- package/dist/lib/cjs/__merged.d.cts +26 -0
- package/dist/lib/cjs/anchored-suggest.cjs +232 -0
- package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
- package/dist/lib/cjs/broken-link-candidates.cjs +366 -0
- package/dist/lib/cjs/broken-link-candidates.d.cts +181 -0
- package/dist/lib/cjs/bug-report.cjs +4 -2
- package/dist/lib/cjs/bug-report.d.cts +1 -1
- package/dist/lib/cjs/code-block-render-handoff.cjs +272 -0
- package/dist/lib/cjs/code-block-render-handoff.d.cts +131 -0
- package/dist/lib/cjs/codemirror/index.cjs +7 -1
- package/dist/lib/cjs/codemirror/index.d.cts +2 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +250 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.d.cts +109 -0
- package/dist/lib/cjs/codemirror/settings-facet.cjs +132 -0
- package/dist/lib/cjs/codemirror/settings-facet.d.cts +19 -0
- package/dist/lib/cjs/command-handlers/index.cjs +10 -1
- package/dist/lib/cjs/command-handlers/index.d.cts +3 -0
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +9 -12
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +6 -8
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +127 -0
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.d.cts +45 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +119 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.d.cts +33 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +121 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.d.cts +43 -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/settings-facet-component.cjs +136 -0
- package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
- package/dist/lib/cjs/components/style-sheet-component.cjs +198 -0
- package/dist/lib/cjs/components/style-sheet-component.d.cts +79 -0
- package/dist/lib/cjs/css-class.cjs +8 -1
- package/dist/lib/cjs/css-class.d.cts +28 -0
- package/dist/lib/cjs/data-stores/data-store-transport.cjs +7 -4
- package/dist/lib/cjs/data-stores/data-store-transport.d.cts +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.cjs +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.d.cts +1 -1
- package/dist/lib/cjs/desktop-git-runner.cjs +117 -0
- package/dist/lib/cjs/desktop-git-runner.d.cts +17 -0
- package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
- package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
- package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
- package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
- package/dist/lib/cjs/editor-suggest.cjs +197 -0
- package/dist/lib/cjs/editor-suggest.d.cts +103 -0
- package/dist/lib/cjs/feature-request.cjs +115 -0
- package/dist/lib/cjs/feature-request.d.cts +54 -0
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/git-hub-discussion.cjs +101 -0
- package/dist/lib/cjs/git-hub-discussion.d.cts +28 -0
- package/dist/lib/cjs/git-rename-history.cjs +148 -0
- package/dist/lib/cjs/git-rename-history.d.cts +43 -0
- package/dist/lib/cjs/hotkey.cjs +185 -0
- package/dist/lib/cjs/hotkey.d.cts +59 -0
- package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
- package/dist/lib/cjs/index.cjs +46 -1
- package/dist/lib/cjs/index.d.cts +15 -0
- package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
- package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
- package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
- package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
- package/dist/lib/cjs/markdown.cjs +6 -1
- package/dist/lib/cjs/markdown.d.cts +10 -1
- package/dist/lib/cjs/rendered-markdown.cjs +306 -0
- package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
- package/dist/lib/cjs/request-url.cjs +523 -0
- package/dist/lib/cjs/request-url.d.cts +233 -0
- package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
- package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
- package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
- package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
- package/dist/lib/cjs/setting-components/index.cjs +13 -1
- package/dist/lib/cjs/setting-components/index.d.cts +4 -0
- package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
- package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
- package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
- package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
- package/dist/lib/cjs/setting-ex.cjs +51 -1
- package/dist/lib/cjs/setting-ex.d.cts +35 -1
- package/dist/lib/cjs/settings-tabs.cjs +258 -0
- package/dist/lib/cjs/settings-tabs.d.cts +101 -0
- package/dist/lib/cjs/vault.cjs +2 -2
- package/dist/lib/cjs/vault.d.cts +3 -1
- package/dist/lib/esm/__merged.d.mts +26 -0
- package/dist/lib/esm/__merged.mjs +139 -1
- package/dist/lib/esm/anchored-suggest.d.mts +116 -0
- package/dist/lib/esm/anchored-suggest.mjs +144 -0
- package/dist/lib/esm/broken-link-candidates.d.mts +181 -0
- package/dist/lib/esm/broken-link-candidates.mjs +275 -0
- package/dist/lib/esm/bug-report.d.mts +1 -1
- package/dist/lib/esm/bug-report.mjs +4 -2
- package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
- package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
- package/dist/lib/esm/codemirror/index.d.mts +2 -0
- package/dist/lib/esm/codemirror/index.mjs +5 -1
- package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
- package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
- package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
- package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
- package/dist/lib/esm/command-handlers/index.d.mts +3 -0
- package/dist/lib/esm/command-handlers/index.mjs +7 -1
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +6 -8
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +9 -12
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.d.mts +45 -0
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.mjs +39 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.d.mts +33 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.mjs +31 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.d.mts +43 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.mjs +33 -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/settings-facet-component.d.mts +68 -0
- package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
- package/dist/lib/esm/components/style-sheet-component.d.mts +79 -0
- package/dist/lib/esm/components/style-sheet-component.mjs +109 -0
- package/dist/lib/esm/css-class.d.mts +28 -0
- package/dist/lib/esm/css-class.mjs +8 -1
- package/dist/lib/esm/data-stores/data-store-transport.d.mts +1 -1
- package/dist/lib/esm/data-stores/data-store-transport.mjs +7 -4
- package/dist/lib/esm/data-stores/shared-data-store.d.mts +1 -1
- package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
- package/dist/lib/esm/desktop-git-runner.d.mts +17 -0
- package/dist/lib/esm/desktop-git-runner.mjs +19 -0
- package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
- package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
- package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
- package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
- package/dist/lib/esm/editor-suggest.d.mts +103 -0
- package/dist/lib/esm/editor-suggest.mjs +108 -0
- package/dist/lib/esm/feature-request.d.mts +54 -0
- package/dist/lib/esm/feature-request.mjs +25 -0
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/git-hub-discussion.d.mts +28 -0
- package/dist/lib/esm/git-hub-discussion.mjs +13 -0
- package/dist/lib/esm/git-rename-history.d.mts +43 -0
- package/dist/lib/esm/git-rename-history.mjs +59 -0
- package/dist/lib/esm/hotkey.d.mts +59 -0
- package/dist/lib/esm/hotkey.mjs +95 -0
- package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
- package/dist/lib/esm/i18n/locales/en.mjs +13 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
- package/dist/lib/esm/index.d.mts +15 -0
- package/dist/lib/esm/index.mjs +31 -1
- package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
- package/dist/lib/esm/inline-token-renderer.mjs +59 -0
- package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
- package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
- package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
- package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
- package/dist/lib/esm/markdown.d.mts +10 -1
- package/dist/lib/esm/markdown.mjs +9 -1
- package/dist/lib/esm/rendered-markdown.d.mts +77 -0
- package/dist/lib/esm/rendered-markdown.mjs +219 -0
- package/dist/lib/esm/request-url.d.mts +233 -0
- package/dist/lib/esm/request-url.mjs +428 -0
- package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
- package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
- package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
- package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
- package/dist/lib/esm/setting-components/index.d.mts +4 -0
- package/dist/lib/esm/setting-components/index.mjs +9 -1
- package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
- package/dist/lib/esm/setting-components/list-component.mjs +206 -0
- package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
- package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
- package/dist/lib/esm/setting-ex.d.mts +35 -1
- package/dist/lib/esm/setting-ex.mjs +51 -1
- package/dist/lib/esm/settings-tabs.d.mts +101 -0
- package/dist/lib/esm/settings-tabs.mjs +170 -0
- package/dist/lib/esm/vault.d.mts +3 -1
- package/dist/lib/esm/vault.mjs +2 -2
- package/dist/styles.css +83 -1
- package/package.json +2 -2
- package/setting-components/folder-list-component/package.json +6 -0
- package/setting-components/hotkey-component/package.json +6 -0
- package/setting-components/list-component/package.json +6 -0
- package/setting-components/tag-list-component/package.json +6 -0
|
@@ -155,7 +155,9 @@ async function getBugReportEnvironment(params) {
|
|
|
155
155
|
const { app, pluginId } = params;
|
|
156
156
|
const { installerVersion, operatingSystem } = await getAppAndOperatingSystem();
|
|
157
157
|
return {
|
|
158
|
-
|
|
158
|
+
// The loaded plugins, as Obsidian's Show debug info lists them: `enabledPlugins` also holds an id
|
|
159
|
+
// whose folder was deleted, or whose load failed.
|
|
160
|
+
enabledPlugins: Object.keys(app.plugins.plugins).filter((id) => id !== pluginId).sort().map((id) => getPluginInfo(app, id)),
|
|
159
161
|
installerVersion,
|
|
160
162
|
obsidianVersion: import_obsidian.apiVersion,
|
|
161
163
|
operatingSystem,
|
|
@@ -238,4 +240,4 @@ function getPluginInfo(app, pluginId) {
|
|
|
238
240
|
getBugReportIssueFormUrl,
|
|
239
241
|
getGitHubIssueFormUrl
|
|
240
242
|
});
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWctcmVwb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciBhIHBsdWdpbidzIGJ1ZyByZXBvcnRzOiB0aGUgZW52aXJvbm1lbnQgYSByZXBvcnQgbmVlZHMsIGFuZCBhIGxpbmsgdG8gYSBHaXRIdWIgaXNzdWUgZm9ybVxuICogcHJlZmlsbGVkIHdpdGggaXQuXG4gKlxuICogQ3Jvc3MtcGxhdGZvcm0tbG9hZGFibGU6IHRoZSBkZXNrdG9wIG9wZXJhdGluZy1zeXN0ZW0gbG9va3VwIHJlYWRzIGBub2RlOm9zYCwgc28gaXQgaXMgaW1wb3J0ZWRcbiAqIGR5bmFtaWNhbGx5LCBvbiBkZXNrdG9wIG9ubHkuXG4gKlxuICogVGhlIGRlc2t0b3AgaW5zdGFsbGVyIHZlcnNpb24gaXMgYFBsYXRmb3JtLmJ1aWxkYCwgd2hpY2ggbm8gcHVibGljIHR5cGluZyBkZWNsYXJlczogT2JzaWRpYW4ncyBkZXNrdG9wXG4gKiBzdGFydHVwIHNldHMgaXQgZnJvbSBFbGVjdHJvbidzIGBhcHAuZ2V0VmVyc2lvbigpYCAocmVhZCBmcm9tIE9ic2lkaWFuIGAxLjE1LjBgKSwgc28gaXQgaXMgcmVhZFxuICogc3RydWN0dXJhbGx5IGhlcmUsIGFuZCByZWFkcyBhcyBgdW5rbm93bmAgaWYgYSBsYXRlciB2ZXJzaW9uIGRyb3BzIGl0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBhcGlWZXJzaW9uLFxuICBQbGF0Zm9ybVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldE1vYmlsZUFwcEluZm8gfSBmcm9tICcuL21vYmlsZS1hcHAtaW5mby50cyc7XG5cbi8qKlxuICogVGhlIGlkcyBvZiB0aGUgYnVnLXJlcG9ydCBpc3N1ZSBmb3JtJ3MgZmllbGRzIHRoYXQge0BsaW5rIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybH0gcHJlZmlsbHMuIEdpdEh1YlxuICogcHJlZmlsbHMgYSBmaWVsZCBmcm9tIGEgcXVlcnkgcGFyYW1ldGVyIG5hbWVkIGFmdGVyIHRoZSBmaWVsZCdzIGBpZGAsIHNvIGEgZm9ybSBtdXN0IGdpdmUgaXRzIGZpZWxkc1xuICogdGhlc2UgaWRzIGZvciB0aGVtIHRvIGJlIGZpbGxlZC5cbiAqL1xuZXhwb3J0IGVudW0gQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZCB7XG4gIC8qKlxuICAgKiBUaGUgd2hvbGUgZW52aXJvbm1lbnQsIGFzIHtAbGluayBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudH0gcmVuZGVycyBpdC5cbiAgICovXG4gIEVudmlyb25tZW50ID0gJ2Vudmlyb25tZW50JyxcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIHZlcnNpb24uXG4gICAqL1xuICBPYnNpZGlhblZlcnNpb24gPSAnb2JzaWRpYW4tdmVyc2lvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKi9cbiAgT3BlcmF0aW5nU3lzdGVtID0gJ29wZXJhdGluZy1zeXN0ZW0nLFxuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3J0aW5nIHBsdWdpbidzIHZlcnNpb24uXG4gICAqL1xuICBQbHVnaW5WZXJzaW9uID0gJ3BsdWdpbi12ZXJzaW9uJ1xufVxuXG4vKipcbiAqIFRoZSBmaWxlIG5hbWUgb2YgdGhlIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSwgdW5kZXIgYC5naXRodWIvSVNTVUVfVEVNUExBVEVgLlxuICovXG5leHBvcnQgY29uc3QgQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFID0gJ2J1Z19yZXBvcnQueW1sJztcblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgYSBidWcgcmVwb3J0IG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Z1JlcG9ydEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBvdGhlciBlbmFibGVkIHBsdWdpbnMsIHNvcnRlZCBieSBpZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWRQbHVnaW5zOiByZWFkb25seSBCdWdSZXBvcnRQbHVnaW5JbmZvW107XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YWxsZWQgYXBwJ3MgdmVyc2lvbiwgd2hpY2ggY2FuIGxhZyBiZWhpbmQge0BsaW5rIG9ic2lkaWFuVmVyc2lvbn0uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JzaWRpYW5WZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgbmFtZSBhbmQgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGluZ1N5c3RlbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm06IGBBbmRyb2lkYCwgYGlPU2AsIGBtYWNPU2AsIGBXaW5kb3dzYCwgYExpbnV4YCBvciBgdW5rbm93bmAuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3J0aW5nIHBsdWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbjogQnVnUmVwb3J0UGx1Z2luSW5mbztcbn1cblxuLyoqXG4gKiBBIHBsdWdpbiwgYXMgYSBidWcgcmVwb3J0IG5hbWVzIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Z1JlcG9ydFBsdWdpbkluZm8ge1xuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGluc3RhbGxlZCB2ZXJzaW9uLCBvciBgbnVsbGAgd2hlbiBpdHMgbWFuaWZlc3QgaXMgbm90IGtub3duLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogbnVsbCB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEJ1Z1JlcG9ydEVudmlyb25tZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSByZXBvcnRpbmcgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QnVnUmVwb3J0SXNzdWVGb3JtVXJsfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRCdWdSZXBvcnRJc3N1ZUZvcm1VcmxQYXJhbXMgZXh0ZW5kcyBHZXRCdWdSZXBvcnRFbnZpcm9ubWVudFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgR2l0SHViIHJlcG9zaXRvcnksIGFzIGBvd25lci9uYW1lYC5cbiAgICovXG4gIHJlYWRvbmx5IGdpdEh1YlJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlzc3VlJ3MgdGl0bGUuIExlYXZlIGl0IG91dCB0byBrZWVwIHRoZSBmb3JtJ3Mgb3duIGRlZmF1bHQgdGl0bGUuXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0R2l0SHViSXNzdWVGb3JtVXJsfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRHaXRIdWJJc3N1ZUZvcm1VcmxQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhbHVlcyB0byBwcmVmaWxsLCBrZXllZCBieSBmaWVsZCBgaWRgLlxuICAgKi9cbiAgcmVhZG9ubHkgZmllbGRzPzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgYXMgYG93bmVyL25hbWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0SHViUmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSdzIGZpbGUgbmFtZSwgdW5kZXIgYC5naXRodWIvSVNTVUVfVEVNUExBVEVgLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlzc3VlJ3MgdGl0bGUuIExlYXZlIGl0IG91dCB0byBrZWVwIHRoZSBmb3JtJ3Mgb3duIGRlZmF1bHQgdGl0bGUuXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFwcEFuZE9wZXJhdGluZ1N5c3RlbSB7XG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgb3BlcmF0aW5nU3lzdGVtOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQbGF0Zm9ybVdpdGhCdWlsZCB7XG4gIHJlYWRvbmx5IGJ1aWxkPzogdW5rbm93bjtcbn1cblxuY29uc3QgVU5LTk9XTiA9ICd1bmtub3duJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgYnVnIHJlcG9ydCdzIGVudmlyb25tZW50IGFzIGEgTWFya2Rvd24gbGlzdC5cbiAqXG4gKiBAcGFyYW0gZW52aXJvbm1lbnQgLSBUaGUgZW52aXJvbm1lbnQuXG4gKiBAcmV0dXJucyBUaGUgTWFya2Rvd24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudChlbnZpcm9ubWVudDogQnVnUmVwb3J0RW52aXJvbm1lbnQpOiBzdHJpbmcge1xuICBjb25zdCBlbmFibGVkUGx1Z2lucyA9IGVudmlyb25tZW50LmVuYWJsZWRQbHVnaW5zLmxlbmd0aCA9PT0gMFxuICAgID8gJ25vbmUnXG4gICAgOiBlbnZpcm9ubWVudC5lbmFibGVkUGx1Z2lucy5tYXAoKHBsdWdpbkluZm8pID0+IGZvcm1hdFBsdWdpbkluZm8ocGx1Z2luSW5mbykpLmpvaW4oJywgJyk7XG5cbiAgcmV0dXJuIGAtIFBsdWdpbjogJHtmb3JtYXRQbHVnaW5JbmZvKGVudmlyb25tZW50LnBsdWdpbil9XFxuYFxuICAgICsgYC0gT2JzaWRpYW46ICR7ZW52aXJvbm1lbnQub2JzaWRpYW5WZXJzaW9ufSAoaW5zdGFsbGVyICR7ZW52aXJvbm1lbnQuaW5zdGFsbGVyVmVyc2lvbn0pXFxuYFxuICAgICsgYC0gUGxhdGZvcm06ICR7ZW52aXJvbm1lbnQucGxhdGZvcm19XFxuYFxuICAgICsgYC0gT3BlcmF0aW5nIHN5c3RlbTogJHtlbnZpcm9ubWVudC5vcGVyYXRpbmdTeXN0ZW19XFxuYFxuICAgICsgYC0gT3RoZXIgZW5hYmxlZCBwbHVnaW5zOiAke2VuYWJsZWRQbHVnaW5zfWA7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZW52aXJvbm1lbnQgYSBidWcgcmVwb3J0IG5lZWRzOiB0aGUgcGx1Z2luJ3MgdmVyc2lvbiwgdGhlIG90aGVyIGVuYWJsZWQgcGx1Z2lucywgdGhlXG4gKiBPYnNpZGlhbiBhbmQgaW5zdGFsbGVyIHZlcnNpb25zLCB0aGUgcGxhdGZvcm0gYW5kIHRoZSBvcGVyYXRpbmcgc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJ1Z1JlcG9ydEVudmlyb25tZW50KHBhcmFtczogR2V0QnVnUmVwb3J0RW52aXJvbm1lbnRQYXJhbXMpOiBQcm9taXNlPEJ1Z1JlcG9ydEVudmlyb25tZW50PiB7XG4gIGNvbnN0IHsgYXBwLCBwbHVnaW5JZCB9ID0gcGFyYW1zO1xuICBjb25zdCB7IGluc3RhbGxlclZlcnNpb24sIG9wZXJhdGluZ1N5c3RlbSB9ID0gYXdhaXQgZ2V0QXBwQW5kT3BlcmF0aW5nU3lzdGVtKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBlbmFibGVkUGx1Z2luczogWy4uLmFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zXVxuICAgICAgLmZpbHRlcigoaWQpID0+IGlkICE9PSBwbHVnaW5JZClcbiAgICAgIC5zb3J0KClcbiAgICAgIC5tYXAoKGlkKSA9PiBnZXRQbHVnaW5JbmZvKGFwcCwgaWQpKSxcbiAgICBpbnN0YWxsZXJWZXJzaW9uLFxuICAgIG9ic2lkaWFuVmVyc2lvbjogYXBpVmVyc2lvbixcbiAgICBvcGVyYXRpbmdTeXN0ZW0sXG4gICAgcGxhdGZvcm06IGdldFBsYXRmb3JtTmFtZSgpLFxuICAgIHBsdWdpbjogZ2V0UGx1Z2luSW5mbyhhcHAsIHBsdWdpbklkKVxuICB9O1xufVxuXG4vKipcbiAqIEdldHMgYSBsaW5rIHRvIGEgcGx1Z2luJ3MgYnVnLXJlcG9ydCBpc3N1ZSBmb3JtICh7QGxpbmsgQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFfSksIHByZWZpbGxlZCB3aXRoXG4gKiB0aGUgZW52aXJvbm1lbnQsIGluIHRoZSBmaWVsZHMge0BsaW5rIEJ1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWR9IG5hbWVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBsaW5rLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QnVnUmVwb3J0SXNzdWVGb3JtVXJsKHBhcmFtczogR2V0QnVnUmVwb3J0SXNzdWVGb3JtVXJsUGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBhd2FpdCBnZXRCdWdSZXBvcnRFbnZpcm9ubWVudChwYXJhbXMpO1xuXG4gIHJldHVybiBnZXRHaXRIdWJJc3N1ZUZvcm1Vcmwoe1xuICAgIGZpZWxkczoge1xuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuRW52aXJvbm1lbnRdOiBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudChlbnZpcm9ubWVudCksXG4gICAgICBbQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZC5PYnNpZGlhblZlcnNpb25dOiBlbnZpcm9ubWVudC5vYnNpZGlhblZlcnNpb24sXG4gICAgICBbQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZC5PcGVyYXRpbmdTeXN0ZW1dOiBlbnZpcm9ubWVudC5vcGVyYXRpbmdTeXN0ZW0sXG4gICAgICBbQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZC5QbHVnaW5WZXJzaW9uXTogZW52aXJvbm1lbnQucGx1Z2luLnZlcnNpb24gPz8gVU5LTk9XTlxuICAgIH0sXG4gICAgZ2l0SHViUmVwbzogcGFyYW1zLmdpdEh1YlJlcG8sXG4gICAgdGVtcGxhdGU6IEJVR19SRVBPUlRfSVNTVUVfRk9STV9URU1QTEFURSxcbiAgICAuLi5wYXJhbXMudGl0bGUgIT09IHVuZGVmaW5lZCAmJiB7IHRpdGxlOiBwYXJhbXMudGl0bGUgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXRzIGEgbGluayB0aGF0IG9wZW5zIGEgR2l0SHViIGlzc3VlIGZvcm0gd2l0aCBmaWVsZHMgcHJlZmlsbGVkLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBsaW5rLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2l0SHViSXNzdWVGb3JtVXJsKHBhcmFtczogR2V0R2l0SHViSXNzdWVGb3JtVXJsUGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IHRlbXBsYXRlOiBwYXJhbXMudGVtcGxhdGUgfSk7XG4gIGlmIChwYXJhbXMudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHNlYXJjaFBhcmFtcy5zZXQoJ3RpdGxlJywgcGFyYW1zLnRpdGxlKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgW2ZpZWxkSWQsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMuZmllbGRzID8/IHt9KSkge1xuICAgIHNlYXJjaFBhcmFtcy5zZXQoZmllbGRJZCwgdmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIGBodHRwczovL2dpdGh1Yi5jb20vJHtwYXJhbXMuZ2l0SHViUmVwb30vaXNzdWVzL25ldz8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfWA7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFBsdWdpbkluZm8ocGx1Z2luSW5mbzogQnVnUmVwb3J0UGx1Z2luSW5mbyk6IHN0cmluZyB7XG4gIHJldHVybiBgXFxgJHtwbHVnaW5JbmZvLmlkfVxcYCAke3BsdWdpbkluZm8udmVyc2lvbiA/PyBVTktOT1dOfWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFwcEFuZE9wZXJhdGluZ1N5c3RlbSgpOiBQcm9taXNlPEFwcEFuZE9wZXJhdGluZ1N5c3RlbT4ge1xuICBpZiAoUGxhdGZvcm0uaXNNb2JpbGVBcHApIHtcbiAgICBjb25zdCBtb2JpbGVBcHBJbmZvID0gYXdhaXQgZ2V0TW9iaWxlQXBwSW5mbygpO1xuICAgIHJldHVybiB7XG4gICAgICBpbnN0YWxsZXJWZXJzaW9uOiBtb2JpbGVBcHBJbmZvPy5pbnN0YWxsZXJWZXJzaW9uID8/IFVOS05PV04sXG4gICAgICBvcGVyYXRpbmdTeXN0ZW06IG1vYmlsZUFwcEluZm8/Lm9wZXJhdGluZ1N5c3RlbSA/PyBVTktOT1dOXG4gICAgfTtcbiAgfVxuXG4gIGlmICghUGxhdGZvcm0uaXNEZXNrdG9wQXBwKSB7XG4gICAgcmV0dXJuIHsgaW5zdGFsbGVyVmVyc2lvbjogVU5LTk9XTiwgb3BlcmF0aW5nU3lzdGVtOiBVTktOT1dOIH07XG4gIH1cblxuICAvLyBDb25kaXRpb25hbCBpbXBvcnQgb2YgdGhlIGRlc2t0b3Atb25seSBsb29rdXAsIHdoaWNoIHJlYWRzIGBub2RlOm9zYDsgdGhpcyBicmFuY2ggcnVucyBvbmx5IG9uIGRlc2t0b3AuXG4gIGNvbnN0IHsgZ2V0RGVza3RvcE9wZXJhdGluZ1N5c3RlbSB9ID0gYXdhaXQgaW1wb3J0KCcuL2Rlc2t0b3Atb3BlcmF0aW5nLXN5c3RlbS50cycpO1xuICBjb25zdCBidWlsZCA9IChQbGF0Zm9ybSBhcyBQbGF0Zm9ybVdpdGhCdWlsZCkuYnVpbGQ7XG4gIHJldHVybiB7XG4gICAgaW5zdGFsbGVyVmVyc2lvbjogdHlwZW9mIGJ1aWxkID09PSAnc3RyaW5nJyA/IGJ1aWxkIDogVU5LTk9XTixcbiAgICBvcGVyYXRpbmdTeXN0ZW06IGdldERlc2t0b3BPcGVyYXRpbmdTeXN0ZW0oKVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQbGF0Zm9ybU5hbWUoKTogc3RyaW5nIHtcbiAgaWYgKFBsYXRmb3JtLmlzQW5kcm9pZEFwcCkge1xuICAgIHJldHVybiAnQW5kcm9pZCc7XG4gIH1cbiAgaWYgKFBsYXRmb3JtLmlzSW9zQXBwKSB7XG4gICAgcmV0dXJuICdpT1MnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc01hY09TKSB7XG4gICAgcmV0dXJuICdtYWNPUyc7XG4gIH1cbiAgaWYgKFBsYXRmb3JtLmlzV2luKSB7XG4gICAgcmV0dXJuICdXaW5kb3dzJztcbiAgfVxuICByZXR1cm4gUGxhdGZvcm0uaXNMaW51eCA/ICdMaW51eCcgOiBVTktOT1dOO1xufVxuXG5mdW5jdGlvbiBnZXRQbHVnaW5JbmZvKGFwcDogQXBwLCBwbHVnaW5JZDogc3RyaW5nKTogQnVnUmVwb3J0UGx1Z2luSW5mbyB7XG4gIHJldHVybiB7XG4gICAgaWQ6IHBsdWdpbklkLFxuICAgIHZlcnNpb246IGFwcC5wbHVnaW5zLm1hbmlmZXN0c1twbHVnaW5JZF0/LnZlcnNpb24gPz8gbnVsbFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEsc0JBR087QUFFUCw2QkFBaUM7QUFPMUIsSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFJTCxFQUFBQSwyQkFBQSxpQkFBYztBQUtkLEVBQUFBLDJCQUFBLHFCQUFrQjtBQUtsQixFQUFBQSwyQkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBbkJOLFNBQUFBO0FBQUEsR0FBQTtBQXlCTCxNQUFNLGlDQUFpQztBQW9IOUMsTUFBTSxVQUFVO0FBUVQsU0FBUywyQkFBMkIsYUFBMkM7QUFDcEYsUUFBTSxpQkFBaUIsWUFBWSxlQUFlLFdBQVcsSUFDekQsU0FDQSxZQUFZLGVBQWUsSUFBSSxDQUFDLGVBQWUsaUJBQWlCLFVBQVUsQ0FBQyxFQUFFLEtBQUssSUFBSTtBQUUxRixTQUFPLGFBQWEsaUJBQWlCLFlBQVksTUFBTSxDQUFDO0FBQUEsY0FDckMsWUFBWSxlQUFlLGVBQWUsWUFBWSxnQkFBZ0I7QUFBQSxjQUN0RSxZQUFZLFFBQVE7QUFBQSxzQkFDWixZQUFZLGVBQWU7QUFBQSwyQkFDdEIsY0FBYztBQUNoRDtBQVNBLGVBQXNCLHdCQUF3QixRQUFzRTtBQUNsSCxRQUFNLEVBQUUsS0FBSyxTQUFTLElBQUk7QUFDMUIsUUFBTSxFQUFFLGtCQUFrQixnQkFBZ0IsSUFBSSxNQUFNLHlCQUF5QjtBQUU3RSxTQUFPO0FBQUEsSUFDTCxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksUUFBUSxjQUFjLEVBQzNDLE9BQU8sQ0FBQyxPQUFPLE9BQU8sUUFBUSxFQUM5QixLQUFLLEVBQ0wsSUFBSSxDQUFDLE9BQU8sY0FBYyxLQUFLLEVBQUUsQ0FBQztBQUFBLElBQ3JDO0FBQUEsSUFDQSxpQkFBaUI7QUFBQSxJQUNqQjtBQUFBLElBQ0EsVUFBVSxnQkFBZ0I7QUFBQSxJQUMxQixRQUFRLGNBQWMsS0FBSyxRQUFRO0FBQUEsRUFDckM7QUFDRjtBQVNBLGVBQXNCLHlCQUF5QixRQUF5RDtBQUN0RyxRQUFNLGNBQWMsTUFBTSx3QkFBd0IsTUFBTTtBQUV4RCxTQUFPLHNCQUFzQjtBQUFBLElBQzNCLFFBQVE7QUFBQSxNQUNOLENBQUMsK0JBQXFDLEdBQUcsMkJBQTJCLFdBQVc7QUFBQSxNQUMvRSxDQUFDLHdDQUF5QyxHQUFHLFlBQVk7QUFBQSxNQUN6RCxDQUFDLHdDQUF5QyxHQUFHLFlBQVk7QUFBQSxNQUN6RCxDQUFDLG9DQUF1QyxHQUFHLFlBQVksT0FBTyxXQUFXO0FBQUEsSUFDM0U7QUFBQSxJQUNBLFlBQVksT0FBTztBQUFBLElBQ25CLFVBQVU7QUFBQSxJQUNWLEdBQUcsT0FBTyxVQUFVLFVBQWEsRUFBRSxPQUFPLE9BQU8sTUFBTTtBQUFBLEVBQ3pELENBQUM7QUFDSDtBQVFPLFNBQVMsc0JBQXNCLFFBQTZDO0FBQ2pGLFFBQU0sZUFBZSxJQUFJLGdCQUFnQixFQUFFLFVBQVUsT0FBTyxTQUFTLENBQUM7QUFDdEUsTUFBSSxPQUFPLFVBQVUsUUFBVztBQUM5QixpQkFBYSxJQUFJLFNBQVMsT0FBTyxLQUFLO0FBQUEsRUFDeEM7QUFFQSxhQUFXLENBQUMsU0FBUyxLQUFLLEtBQUssT0FBTyxRQUFRLE9BQU8sVUFBVSxDQUFDLENBQUMsR0FBRztBQUNsRSxpQkFBYSxJQUFJLFNBQVMsS0FBSztBQUFBLEVBQ2pDO0FBRUEsU0FBTyxzQkFBc0IsT0FBTyxVQUFVLGVBQWUsYUFBYSxTQUFTLENBQUM7QUFDdEY7QUFFQSxTQUFTLGlCQUFpQixZQUF5QztBQUNqRSxTQUFPLEtBQUssV0FBVyxFQUFFLE1BQU0sV0FBVyxXQUFXLE9BQU87QUFDOUQ7QUFFQSxlQUFlLDJCQUEyRDtBQUN4RSxNQUFJLHlCQUFTLGFBQWE7QUFDeEIsVUFBTSxnQkFBZ0IsVUFBTSx5Q0FBaUI7QUFDN0MsV0FBTztBQUFBLE1BQ0wsa0JBQWtCLGVBQWUsb0JBQW9CO0FBQUEsTUFDckQsaUJBQWlCLGVBQWUsbUJBQW1CO0FBQUEsSUFDckQ7QUFBQSxFQUNGO0FBRUEsTUFBSSxDQUFDLHlCQUFTLGNBQWM7QUFDMUIsV0FBTyxFQUFFLGtCQUFrQixTQUFTLGlCQUFpQixRQUFRO0FBQUEsRUFDL0Q7QUFHQSxRQUFNLEVBQUUsMEJBQTBCLElBQUksTUFBTSxPQUFPLCtCQUErQjtBQUNsRixRQUFNLFFBQVMseUJBQStCO0FBQzlDLFNBQU87QUFBQSxJQUNMLGtCQUFrQixPQUFPLFVBQVUsV0FBVyxRQUFRO0FBQUEsSUFDdEQsaUJBQWlCLDBCQUEwQjtBQUFBLEVBQzdDO0FBQ0Y7QUFFQSxTQUFTLGtCQUEwQjtBQUNqQyxNQUFJLHlCQUFTLGNBQWM7QUFDekIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLHlCQUFTLFVBQVU7QUFDckIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLHlCQUFTLFNBQVM7QUFDcEIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLHlCQUFTLE9BQU87QUFDbEIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPLHlCQUFTLFVBQVUsVUFBVTtBQUN0QztBQUVBLFNBQVMsY0FBYyxLQUFVLFVBQXVDO0FBQ3RFLFNBQU87QUFBQSxJQUNMLElBQUk7QUFBQSxJQUNKLFNBQVMsSUFBSSxRQUFRLFVBQVUsUUFBUSxHQUFHLFdBQVc7QUFBQSxFQUN2RDtBQUNGOyIsIm5hbWVzIjpbIkJ1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQiXX0=
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWctcmVwb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciBhIHBsdWdpbidzIGJ1ZyByZXBvcnRzOiB0aGUgZW52aXJvbm1lbnQgYSByZXBvcnQgbmVlZHMsIGFuZCBhIGxpbmsgdG8gYSBHaXRIdWIgaXNzdWUgZm9ybVxuICogcHJlZmlsbGVkIHdpdGggaXQuXG4gKlxuICogQ3Jvc3MtcGxhdGZvcm0tbG9hZGFibGU6IHRoZSBkZXNrdG9wIG9wZXJhdGluZy1zeXN0ZW0gbG9va3VwIHJlYWRzIGBub2RlOm9zYCwgc28gaXQgaXMgaW1wb3J0ZWRcbiAqIGR5bmFtaWNhbGx5LCBvbiBkZXNrdG9wIG9ubHkuXG4gKlxuICogVGhlIGRlc2t0b3AgaW5zdGFsbGVyIHZlcnNpb24gaXMgYFBsYXRmb3JtLmJ1aWxkYCwgd2hpY2ggbm8gcHVibGljIHR5cGluZyBkZWNsYXJlczogT2JzaWRpYW4ncyBkZXNrdG9wXG4gKiBzdGFydHVwIHNldHMgaXQgZnJvbSBFbGVjdHJvbidzIGBhcHAuZ2V0VmVyc2lvbigpYCAocmVhZCBmcm9tIE9ic2lkaWFuIGAxLjE1LjBgKSwgc28gaXQgaXMgcmVhZFxuICogc3RydWN0dXJhbGx5IGhlcmUsIGFuZCByZWFkcyBhcyBgdW5rbm93bmAgaWYgYSBsYXRlciB2ZXJzaW9uIGRyb3BzIGl0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBhcGlWZXJzaW9uLFxuICBQbGF0Zm9ybVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldE1vYmlsZUFwcEluZm8gfSBmcm9tICcuL21vYmlsZS1hcHAtaW5mby50cyc7XG5cbi8qKlxuICogVGhlIGlkcyBvZiB0aGUgYnVnLXJlcG9ydCBpc3N1ZSBmb3JtJ3MgZmllbGRzIHRoYXQge0BsaW5rIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybH0gcHJlZmlsbHMuIEdpdEh1YlxuICogcHJlZmlsbHMgYSBmaWVsZCBmcm9tIGEgcXVlcnkgcGFyYW1ldGVyIG5hbWVkIGFmdGVyIHRoZSBmaWVsZCdzIGBpZGAsIHNvIGEgZm9ybSBtdXN0IGdpdmUgaXRzIGZpZWxkc1xuICogdGhlc2UgaWRzIGZvciB0aGVtIHRvIGJlIGZpbGxlZC5cbiAqL1xuZXhwb3J0IGVudW0gQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZCB7XG4gIC8qKlxuICAgKiBUaGUgd2hvbGUgZW52aXJvbm1lbnQsIGFzIHtAbGluayBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudH0gcmVuZGVycyBpdC5cbiAgICovXG4gIEVudmlyb25tZW50ID0gJ2Vudmlyb25tZW50JyxcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIHZlcnNpb24uXG4gICAqL1xuICBPYnNpZGlhblZlcnNpb24gPSAnb2JzaWRpYW4tdmVyc2lvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKi9cbiAgT3BlcmF0aW5nU3lzdGVtID0gJ29wZXJhdGluZy1zeXN0ZW0nLFxuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3J0aW5nIHBsdWdpbidzIHZlcnNpb24uXG4gICAqL1xuICBQbHVnaW5WZXJzaW9uID0gJ3BsdWdpbi12ZXJzaW9uJ1xufVxuXG4vKipcbiAqIFRoZSBmaWxlIG5hbWUgb2YgdGhlIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSwgdW5kZXIgYC5naXRodWIvSVNTVUVfVEVNUExBVEVgLlxuICovXG5leHBvcnQgY29uc3QgQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFID0gJ2J1Z19yZXBvcnQueW1sJztcblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgYSBidWcgcmVwb3J0IG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Z1JlcG9ydEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBvdGhlciBsb2FkZWQgcGx1Z2lucywgc29ydGVkIGJ5IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZFBsdWdpbnM6IHJlYWRvbmx5IEJ1Z1JlcG9ydFBsdWdpbkluZm9bXTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbGxlZCBhcHAncyB2ZXJzaW9uLCB3aGljaCBjYW4gbGFnIGJlaGluZCB7QGxpbmsgb2JzaWRpYW5WZXJzaW9ufS5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhblZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBuYW1lIGFuZCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW5nU3lzdGVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGF0Zm9ybTogYEFuZHJvaWRgLCBgaU9TYCwgYG1hY09TYCwgYFdpbmRvd3NgLCBgTGludXhgIG9yIGB1bmtub3duYC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvcnRpbmcgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luOiBCdWdSZXBvcnRQbHVnaW5JbmZvO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luLCBhcyBhIGJ1ZyByZXBvcnQgbmFtZXMgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVnUmVwb3J0UGx1Z2luSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgaWQuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgaW5zdGFsbGVkIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIGl0cyBtYW5pZmVzdCBpcyBub3Qga25vd24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRCdWdSZXBvcnRFbnZpcm9ubWVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnVnUmVwb3J0RW52aXJvbm1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIHJlcG9ydGluZyBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRCdWdSZXBvcnRJc3N1ZUZvcm1Vcmx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybFBhcmFtcyBleHRlbmRzIEdldEJ1Z1JlcG9ydEVudmlyb25tZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBHaXRIdWIgcmVwb3NpdG9yeSwgYXMgYG93bmVyL25hbWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0SHViUmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWUncyB0aXRsZS4gTGVhdmUgaXQgb3V0IHRvIGtlZXAgdGhlIGZvcm0ncyBvd24gZGVmYXVsdCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRHaXRIdWJJc3N1ZUZvcm1Vcmx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEdpdEh1Yklzc3VlRm9ybVVybFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIHRvIHByZWZpbGwsIGtleWVkIGJ5IGZpZWxkIGBpZGAuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM/OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiByZXBvc2l0b3J5LCBhcyBgb3duZXIvbmFtZWAuXG4gICAqL1xuICByZWFkb25seSBnaXRIdWJSZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtJ3MgZmlsZSBuYW1lLCB1bmRlciBgLmdpdGh1Yi9JU1NVRV9URU1QTEFURWAuXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWUncyB0aXRsZS4gTGVhdmUgaXQgb3V0IHRvIGtlZXAgdGhlIGZvcm0ncyBvd24gZGVmYXVsdCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBwQW5kT3BlcmF0aW5nU3lzdGVtIHtcbiAgcmVhZG9ubHkgaW5zdGFsbGVyVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBvcGVyYXRpbmdTeXN0ZW06IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtV2l0aEJ1aWxkIHtcbiAgcmVhZG9ubHkgYnVpbGQ/OiB1bmtub3duO1xufVxuXG5jb25zdCBVTktOT1dOID0gJ3Vua25vd24nO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBidWcgcmVwb3J0J3MgZW52aXJvbm1lbnQgYXMgYSBNYXJrZG93biBsaXN0LlxuICpcbiAqIEBwYXJhbSBlbnZpcm9ubWVudCAtIFRoZSBlbnZpcm9ubWVudC5cbiAqIEByZXR1cm5zIFRoZSBNYXJrZG93bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEJ1Z1JlcG9ydEVudmlyb25tZW50KGVudmlyb25tZW50OiBCdWdSZXBvcnRFbnZpcm9ubWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IGVuYWJsZWRQbHVnaW5zID0gZW52aXJvbm1lbnQuZW5hYmxlZFBsdWdpbnMubGVuZ3RoID09PSAwXG4gICAgPyAnbm9uZSdcbiAgICA6IGVudmlyb25tZW50LmVuYWJsZWRQbHVnaW5zLm1hcCgocGx1Z2luSW5mbykgPT4gZm9ybWF0UGx1Z2luSW5mbyhwbHVnaW5JbmZvKSkuam9pbignLCAnKTtcblxuICByZXR1cm4gYC0gUGx1Z2luOiAke2Zvcm1hdFBsdWdpbkluZm8oZW52aXJvbm1lbnQucGx1Z2luKX1cXG5gXG4gICAgKyBgLSBPYnNpZGlhbjogJHtlbnZpcm9ubWVudC5vYnNpZGlhblZlcnNpb259IChpbnN0YWxsZXIgJHtlbnZpcm9ubWVudC5pbnN0YWxsZXJWZXJzaW9ufSlcXG5gXG4gICAgKyBgLSBQbGF0Zm9ybTogJHtlbnZpcm9ubWVudC5wbGF0Zm9ybX1cXG5gXG4gICAgKyBgLSBPcGVyYXRpbmcgc3lzdGVtOiAke2Vudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbX1cXG5gXG4gICAgKyBgLSBPdGhlciBlbmFibGVkIHBsdWdpbnM6ICR7ZW5hYmxlZFBsdWdpbnN9YDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBlbnZpcm9ubWVudCBhIGJ1ZyByZXBvcnQgbmVlZHM6IHRoZSBwbHVnaW4ncyB2ZXJzaW9uLCB0aGUgb3RoZXIgZW5hYmxlZCBwbHVnaW5zLCB0aGVcbiAqIE9ic2lkaWFuIGFuZCBpbnN0YWxsZXIgdmVyc2lvbnMsIHRoZSBwbGF0Zm9ybSBhbmQgdGhlIG9wZXJhdGluZyBzeXN0ZW0uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnQocGFyYW1zOiBHZXRCdWdSZXBvcnRFbnZpcm9ubWVudFBhcmFtcyk6IFByb21pc2U8QnVnUmVwb3J0RW52aXJvbm1lbnQ+IHtcbiAgY29uc3QgeyBhcHAsIHBsdWdpbklkIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHsgaW5zdGFsbGVyVmVyc2lvbiwgb3BlcmF0aW5nU3lzdGVtIH0gPSBhd2FpdCBnZXRBcHBBbmRPcGVyYXRpbmdTeXN0ZW0oKTtcblxuICByZXR1cm4ge1xuICAgIC8vIFRoZSBsb2FkZWQgcGx1Z2lucywgYXMgT2JzaWRpYW4ncyBTaG93IGRlYnVnIGluZm8gbGlzdHMgdGhlbTogYGVuYWJsZWRQbHVnaW5zYCBhbHNvIGhvbGRzIGFuIGlkXG4gICAgLy8gd2hvc2UgZm9sZGVyIHdhcyBkZWxldGVkLCBvciB3aG9zZSBsb2FkIGZhaWxlZC5cbiAgICBlbmFibGVkUGx1Z2luczogT2JqZWN0LmtleXMoYXBwLnBsdWdpbnMucGx1Z2lucylcbiAgICAgIC5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gcGx1Z2luSWQpXG4gICAgICAuc29ydCgpXG4gICAgICAubWFwKChpZCkgPT4gZ2V0UGx1Z2luSW5mbyhhcHAsIGlkKSksXG4gICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICBvYnNpZGlhblZlcnNpb246IGFwaVZlcnNpb24sXG4gICAgb3BlcmF0aW5nU3lzdGVtLFxuICAgIHBsYXRmb3JtOiBnZXRQbGF0Zm9ybU5hbWUoKSxcbiAgICBwbHVnaW46IGdldFBsdWdpbkluZm8oYXBwLCBwbHVnaW5JZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXRzIGEgbGluayB0byBhIHBsdWdpbidzIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSAoe0BsaW5rIEJVR19SRVBPUlRfSVNTVUVfRk9STV9URU1QTEFURX0pLCBwcmVmaWxsZWQgd2l0aFxuICogdGhlIGVudmlyb25tZW50LCBpbiB0aGUgZmllbGRzIHtAbGluayBCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkfSBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbGluay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybChwYXJhbXM6IEdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybFBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGVudmlyb25tZW50ID0gYXdhaXQgZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnQocGFyYW1zKTtcblxuICByZXR1cm4gZ2V0R2l0SHViSXNzdWVGb3JtVXJsKHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIFtCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkLkVudmlyb25tZW50XTogZm9ybWF0QnVnUmVwb3J0RW52aXJvbm1lbnQoZW52aXJvbm1lbnQpLFxuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuT2JzaWRpYW5WZXJzaW9uXTogZW52aXJvbm1lbnQub2JzaWRpYW5WZXJzaW9uLFxuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuT3BlcmF0aW5nU3lzdGVtXTogZW52aXJvbm1lbnQub3BlcmF0aW5nU3lzdGVtLFxuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuUGx1Z2luVmVyc2lvbl06IGVudmlyb25tZW50LnBsdWdpbi52ZXJzaW9uID8/IFVOS05PV05cbiAgICB9LFxuICAgIGdpdEh1YlJlcG86IHBhcmFtcy5naXRIdWJSZXBvLFxuICAgIHRlbXBsYXRlOiBCVUdfUkVQT1JUX0lTU1VFX0ZPUk1fVEVNUExBVEUsXG4gICAgLi4ucGFyYW1zLnRpdGxlICE9PSB1bmRlZmluZWQgJiYgeyB0aXRsZTogcGFyYW1zLnRpdGxlIH1cbiAgfSk7XG59XG5cbi8qKlxuICogR2V0cyBhIGxpbmsgdGhhdCBvcGVucyBhIEdpdEh1YiBpc3N1ZSBmb3JtIHdpdGggZmllbGRzIHByZWZpbGxlZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdpdEh1Yklzc3VlRm9ybVVybChwYXJhbXM6IEdldEdpdEh1Yklzc3VlRm9ybVVybFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyB0ZW1wbGF0ZTogcGFyYW1zLnRlbXBsYXRlIH0pO1xuICBpZiAocGFyYW1zLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBzZWFyY2hQYXJhbXMuc2V0KCd0aXRsZScsIHBhcmFtcy50aXRsZSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IFtmaWVsZElkLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zLmZpZWxkcyA/PyB7fSkpIHtcbiAgICBzZWFyY2hQYXJhbXMuc2V0KGZpZWxkSWQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBgaHR0cHM6Ly9naXRodWIuY29tLyR7cGFyYW1zLmdpdEh1YlJlcG99L2lzc3Vlcy9uZXc/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQbHVnaW5JbmZvKHBsdWdpbkluZm86IEJ1Z1JlcG9ydFBsdWdpbkluZm8pOiBzdHJpbmcge1xuICByZXR1cm4gYFxcYCR7cGx1Z2luSW5mby5pZH1cXGAgJHtwbHVnaW5JbmZvLnZlcnNpb24gPz8gVU5LTk9XTn1gO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBcHBBbmRPcGVyYXRpbmdTeXN0ZW0oKTogUHJvbWlzZTxBcHBBbmRPcGVyYXRpbmdTeXN0ZW0+IHtcbiAgaWYgKFBsYXRmb3JtLmlzTW9iaWxlQXBwKSB7XG4gICAgY29uc3QgbW9iaWxlQXBwSW5mbyA9IGF3YWl0IGdldE1vYmlsZUFwcEluZm8oKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFsbGVyVmVyc2lvbjogbW9iaWxlQXBwSW5mbz8uaW5zdGFsbGVyVmVyc2lvbiA/PyBVTktOT1dOLFxuICAgICAgb3BlcmF0aW5nU3lzdGVtOiBtb2JpbGVBcHBJbmZvPy5vcGVyYXRpbmdTeXN0ZW0gPz8gVU5LTk9XTlxuICAgIH07XG4gIH1cblxuICBpZiAoIVBsYXRmb3JtLmlzRGVza3RvcEFwcCkge1xuICAgIHJldHVybiB7IGluc3RhbGxlclZlcnNpb246IFVOS05PV04sIG9wZXJhdGluZ1N5c3RlbTogVU5LTk9XTiB9O1xuICB9XG5cbiAgLy8gQ29uZGl0aW9uYWwgaW1wb3J0IG9mIHRoZSBkZXNrdG9wLW9ubHkgbG9va3VwLCB3aGljaCByZWFkcyBgbm9kZTpvc2A7IHRoaXMgYnJhbmNoIHJ1bnMgb25seSBvbiBkZXNrdG9wLlxuICBjb25zdCB7IGdldERlc2t0b3BPcGVyYXRpbmdTeXN0ZW0gfSA9IGF3YWl0IGltcG9ydCgnLi9kZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0udHMnKTtcbiAgY29uc3QgYnVpbGQgPSAoUGxhdGZvcm0gYXMgUGxhdGZvcm1XaXRoQnVpbGQpLmJ1aWxkO1xuICByZXR1cm4ge1xuICAgIGluc3RhbGxlclZlcnNpb246IHR5cGVvZiBidWlsZCA9PT0gJ3N0cmluZycgPyBidWlsZCA6IFVOS05PV04sXG4gICAgb3BlcmF0aW5nU3lzdGVtOiBnZXREZXNrdG9wT3BlcmF0aW5nU3lzdGVtKClcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UGxhdGZvcm1OYW1lKCk6IHN0cmluZyB7XG4gIGlmIChQbGF0Zm9ybS5pc0FuZHJvaWRBcHApIHtcbiAgICByZXR1cm4gJ0FuZHJvaWQnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc0lvc0FwcCkge1xuICAgIHJldHVybiAnaU9TJztcbiAgfVxuICBpZiAoUGxhdGZvcm0uaXNNYWNPUykge1xuICAgIHJldHVybiAnbWFjT1MnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc1dpbikge1xuICAgIHJldHVybiAnV2luZG93cyc7XG4gIH1cbiAgcmV0dXJuIFBsYXRmb3JtLmlzTGludXggPyAnTGludXgnIDogVU5LTk9XTjtcbn1cblxuZnVuY3Rpb24gZ2V0UGx1Z2luSW5mbyhhcHA6IEFwcCwgcGx1Z2luSWQ6IHN0cmluZyk6IEJ1Z1JlcG9ydFBsdWdpbkluZm8ge1xuICByZXR1cm4ge1xuICAgIGlkOiBwbHVnaW5JZCxcbiAgICB2ZXJzaW9uOiBhcHAucGx1Z2lucy5tYW5pZmVzdHNbcGx1Z2luSWRdPy52ZXJzaW9uID8/IG51bGxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLHNCQUdPO0FBRVAsNkJBQWlDO0FBTzFCLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBSUwsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEsMkJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQW5CTixTQUFBQTtBQUFBLEdBQUE7QUF5QkwsTUFBTSxpQ0FBaUM7QUFvSDlDLE1BQU0sVUFBVTtBQVFULFNBQVMsMkJBQTJCLGFBQTJDO0FBQ3BGLFFBQU0saUJBQWlCLFlBQVksZUFBZSxXQUFXLElBQ3pELFNBQ0EsWUFBWSxlQUFlLElBQUksQ0FBQyxlQUFlLGlCQUFpQixVQUFVLENBQUMsRUFBRSxLQUFLLElBQUk7QUFFMUYsU0FBTyxhQUFhLGlCQUFpQixZQUFZLE1BQU0sQ0FBQztBQUFBLGNBQ3JDLFlBQVksZUFBZSxlQUFlLFlBQVksZ0JBQWdCO0FBQUEsY0FDdEUsWUFBWSxRQUFRO0FBQUEsc0JBQ1osWUFBWSxlQUFlO0FBQUEsMkJBQ3RCLGNBQWM7QUFDaEQ7QUFTQSxlQUFzQix3QkFBd0IsUUFBc0U7QUFDbEgsUUFBTSxFQUFFLEtBQUssU0FBUyxJQUFJO0FBQzFCLFFBQU0sRUFBRSxrQkFBa0IsZ0JBQWdCLElBQUksTUFBTSx5QkFBeUI7QUFFN0UsU0FBTztBQUFBO0FBQUE7QUFBQSxJQUdMLGdCQUFnQixPQUFPLEtBQUssSUFBSSxRQUFRLE9BQU8sRUFDNUMsT0FBTyxDQUFDLE9BQU8sT0FBTyxRQUFRLEVBQzlCLEtBQUssRUFDTCxJQUFJLENBQUMsT0FBTyxjQUFjLEtBQUssRUFBRSxDQUFDO0FBQUEsSUFDckM7QUFBQSxJQUNBLGlCQUFpQjtBQUFBLElBQ2pCO0FBQUEsSUFDQSxVQUFVLGdCQUFnQjtBQUFBLElBQzFCLFFBQVEsY0FBYyxLQUFLLFFBQVE7QUFBQSxFQUNyQztBQUNGO0FBU0EsZUFBc0IseUJBQXlCLFFBQXlEO0FBQ3RHLFFBQU0sY0FBYyxNQUFNLHdCQUF3QixNQUFNO0FBRXhELFNBQU8sc0JBQXNCO0FBQUEsSUFDM0IsUUFBUTtBQUFBLE1BQ04sQ0FBQywrQkFBcUMsR0FBRywyQkFBMkIsV0FBVztBQUFBLE1BQy9FLENBQUMsd0NBQXlDLEdBQUcsWUFBWTtBQUFBLE1BQ3pELENBQUMsd0NBQXlDLEdBQUcsWUFBWTtBQUFBLE1BQ3pELENBQUMsb0NBQXVDLEdBQUcsWUFBWSxPQUFPLFdBQVc7QUFBQSxJQUMzRTtBQUFBLElBQ0EsWUFBWSxPQUFPO0FBQUEsSUFDbkIsVUFBVTtBQUFBLElBQ1YsR0FBRyxPQUFPLFVBQVUsVUFBYSxFQUFFLE9BQU8sT0FBTyxNQUFNO0FBQUEsRUFDekQsQ0FBQztBQUNIO0FBUU8sU0FBUyxzQkFBc0IsUUFBNkM7QUFDakYsUUFBTSxlQUFlLElBQUksZ0JBQWdCLEVBQUUsVUFBVSxPQUFPLFNBQVMsQ0FBQztBQUN0RSxNQUFJLE9BQU8sVUFBVSxRQUFXO0FBQzlCLGlCQUFhLElBQUksU0FBUyxPQUFPLEtBQUs7QUFBQSxFQUN4QztBQUVBLGFBQVcsQ0FBQyxTQUFTLEtBQUssS0FBSyxPQUFPLFFBQVEsT0FBTyxVQUFVLENBQUMsQ0FBQyxHQUFHO0FBQ2xFLGlCQUFhLElBQUksU0FBUyxLQUFLO0FBQUEsRUFDakM7QUFFQSxTQUFPLHNCQUFzQixPQUFPLFVBQVUsZUFBZSxhQUFhLFNBQVMsQ0FBQztBQUN0RjtBQUVBLFNBQVMsaUJBQWlCLFlBQXlDO0FBQ2pFLFNBQU8sS0FBSyxXQUFXLEVBQUUsTUFBTSxXQUFXLFdBQVcsT0FBTztBQUM5RDtBQUVBLGVBQWUsMkJBQTJEO0FBQ3hFLE1BQUkseUJBQVMsYUFBYTtBQUN4QixVQUFNLGdCQUFnQixVQUFNLHlDQUFpQjtBQUM3QyxXQUFPO0FBQUEsTUFDTCxrQkFBa0IsZUFBZSxvQkFBb0I7QUFBQSxNQUNyRCxpQkFBaUIsZUFBZSxtQkFBbUI7QUFBQSxJQUNyRDtBQUFBLEVBQ0Y7QUFFQSxNQUFJLENBQUMseUJBQVMsY0FBYztBQUMxQixXQUFPLEVBQUUsa0JBQWtCLFNBQVMsaUJBQWlCLFFBQVE7QUFBQSxFQUMvRDtBQUdBLFFBQU0sRUFBRSwwQkFBMEIsSUFBSSxNQUFNLE9BQU8sK0JBQStCO0FBQ2xGLFFBQU0sUUFBUyx5QkFBK0I7QUFDOUMsU0FBTztBQUFBLElBQ0wsa0JBQWtCLE9BQU8sVUFBVSxXQUFXLFFBQVE7QUFBQSxJQUN0RCxpQkFBaUIsMEJBQTBCO0FBQUEsRUFDN0M7QUFDRjtBQUVBLFNBQVMsa0JBQTBCO0FBQ2pDLE1BQUkseUJBQVMsY0FBYztBQUN6QixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUkseUJBQVMsVUFBVTtBQUNyQixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUkseUJBQVMsU0FBUztBQUNwQixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUkseUJBQVMsT0FBTztBQUNsQixXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8seUJBQVMsVUFBVSxVQUFVO0FBQ3RDO0FBRUEsU0FBUyxjQUFjLEtBQVUsVUFBdUM7QUFDdEUsU0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osU0FBUyxJQUFJLFFBQVEsVUFBVSxRQUFRLEdBQUcsV0FBVztBQUFBLEVBQ3ZEO0FBQ0Y7IiwibmFtZXMiOlsiQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZCJdfQ==
|
|
@@ -45,7 +45,7 @@ export declare const BUG_REPORT_ISSUE_FORM_TEMPLATE = "bug_report.yml";
|
|
|
45
45
|
*/
|
|
46
46
|
export interface BugReportEnvironment {
|
|
47
47
|
/**
|
|
48
|
-
* The other
|
|
48
|
+
* The other loaded plugins, sorted by id.
|
|
49
49
|
*/
|
|
50
50
|
readonly enabledPlugins: readonly BugReportPluginInfo[];
|
|
51
51
|
/**
|
|
@@ -0,0 +1,272 @@
|
|
|
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
|
+
(function patchObsidianRequire() {
|
|
33
|
+
const originalRequire = require;
|
|
34
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
require = Object.assign(
|
|
38
|
+
(id) => requirePatched(id),
|
|
39
|
+
originalRequire,
|
|
40
|
+
{
|
|
41
|
+
__isPatched: true
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
function extractDefault($module) {
|
|
45
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
46
|
+
}
|
|
47
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
48
|
+
"@codemirror/autocomplete",
|
|
49
|
+
"@codemirror/collab",
|
|
50
|
+
"@codemirror/commands",
|
|
51
|
+
"@codemirror/language",
|
|
52
|
+
"@codemirror/lint",
|
|
53
|
+
"@codemirror/search",
|
|
54
|
+
"@codemirror/state",
|
|
55
|
+
"@codemirror/text",
|
|
56
|
+
"@codemirror/view",
|
|
57
|
+
"@lezer/common",
|
|
58
|
+
"@lezer/highlight",
|
|
59
|
+
"@lezer/lr",
|
|
60
|
+
"obsidian"
|
|
61
|
+
]);
|
|
62
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
63
|
+
"@codemirror/closebrackets",
|
|
64
|
+
"@codemirror/comment",
|
|
65
|
+
"@codemirror/fold",
|
|
66
|
+
"@codemirror/gutter",
|
|
67
|
+
"@codemirror/highlight",
|
|
68
|
+
"@codemirror/history",
|
|
69
|
+
"@codemirror/matchbrackets",
|
|
70
|
+
"@codemirror/panel",
|
|
71
|
+
"@codemirror/rangeset",
|
|
72
|
+
"@codemirror/rectangular-selection",
|
|
73
|
+
"@codemirror/stream-parser",
|
|
74
|
+
"@codemirror/tooltip"
|
|
75
|
+
]);
|
|
76
|
+
function requirePatched(id) {
|
|
77
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
|
+
return originalRequire?.(id);
|
|
79
|
+
}
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
82
|
+
if (id === "process" || id === "node:process") {
|
|
83
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
84
|
+
return process;
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
const $module = originalRequire?.(id);
|
|
88
|
+
if ($module) {
|
|
89
|
+
return extractDefault($module);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
})();
|
|
96
|
+
|
|
97
|
+
"use strict";
|
|
98
|
+
var __defProp = Object.defineProperty;
|
|
99
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
100
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
101
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
102
|
+
var __export = (target, all) => {
|
|
103
|
+
for (var name in all)
|
|
104
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
105
|
+
};
|
|
106
|
+
var __copyProps = (to, from, except, desc) => {
|
|
107
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
108
|
+
for (let key of __getOwnPropNames(from))
|
|
109
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
110
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
111
|
+
}
|
|
112
|
+
return to;
|
|
113
|
+
};
|
|
114
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
115
|
+
var code_block_render_handoff_exports = {};
|
|
116
|
+
__export(code_block_render_handoff_exports, {
|
|
117
|
+
CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS: () => CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS,
|
|
118
|
+
captureCodeBlockFocus: () => captureCodeBlockFocus,
|
|
119
|
+
claimCodeBlockRenderHandoff: () => claimCodeBlockRenderHandoff,
|
|
120
|
+
recordCodeBlockRenderHandoff: () => recordCodeBlockRenderHandoff,
|
|
121
|
+
restoreCodeBlockFocus: () => restoreCodeBlockFocus
|
|
122
|
+
});
|
|
123
|
+
module.exports = __toCommonJS(code_block_render_handoff_exports);
|
|
124
|
+
var import_async = require('@mnaoumov/typescript-lib/async');
|
|
125
|
+
var import_reg_exp = require('@mnaoumov/typescript-lib/reg-exp');
|
|
126
|
+
var import_string = require('@mnaoumov/typescript-lib/string');
|
|
127
|
+
var import_code_block_reg_exp = require('./code-block-reg-exp.cjs');
|
|
128
|
+
var import_obsidian_lib_state = require('./obsidian-lib-state.cjs');
|
|
129
|
+
const CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS = 1e4;
|
|
130
|
+
const HANDOFF_STATE_KEY = "codeBlockRenderHandoffV1";
|
|
131
|
+
const MAX_FRAMES_TO_WAIT_FOR_CONNECTION = 60;
|
|
132
|
+
function captureCodeBlockFocus(el) {
|
|
133
|
+
const activeElement = el.ownerDocument.activeElement;
|
|
134
|
+
if (!activeElement || activeElement === el || !el.contains(activeElement)) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
const childIndexPath = [];
|
|
138
|
+
let current = activeElement;
|
|
139
|
+
while (current && current !== el) {
|
|
140
|
+
let index = 0;
|
|
141
|
+
for (let sibling = current.previousElementSibling; sibling; sibling = sibling.previousElementSibling) {
|
|
142
|
+
index++;
|
|
143
|
+
}
|
|
144
|
+
childIndexPath.unshift(index);
|
|
145
|
+
current = current.parentElement;
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
childIndexPath,
|
|
149
|
+
selection: getTextSelection(activeElement)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function claimCodeBlockRenderHandoff(params) {
|
|
153
|
+
const { context, el, source } = params;
|
|
154
|
+
const entries = getHandoffEntries();
|
|
155
|
+
pruneExpiredEntries(entries);
|
|
156
|
+
const key = getHandoffKey(context.sourcePath, getLanguageFromElement(el), (0, import_string.ensureLfEndings)(source));
|
|
157
|
+
const queue = entries.get(key);
|
|
158
|
+
const entry = queue?.shift();
|
|
159
|
+
if (!queue || !entry) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
if (queue.length === 0) {
|
|
163
|
+
entries.delete(key);
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
hasFocus: entry.focus !== null,
|
|
167
|
+
async restoreFocus() {
|
|
168
|
+
return entry.focus ? await restoreCodeBlockFocus(el, entry.focus) : false;
|
|
169
|
+
},
|
|
170
|
+
state: entry.state
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function recordCodeBlockRenderHandoff(params) {
|
|
174
|
+
const { focus, newCodeBlock, sourcePath, state } = params;
|
|
175
|
+
const matches = [...(0, import_string.ensureLfEndings)(newCodeBlock).matchAll((0, import_code_block_reg_exp.createCodeBlockRegExp)())];
|
|
176
|
+
const match = matches[0];
|
|
177
|
+
if (matches.length !== 1 || !match) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
const linePrefix = (0, import_reg_exp.getMandatoryNamedGroup)(match, "LinePrefix");
|
|
181
|
+
const language = (0, import_reg_exp.getMandatoryNamedGroup)(match, "CodeBlockLanguage");
|
|
182
|
+
const content = ((0, import_reg_exp.getOptionalNamedGroup)(match, "CodeBlockContent") ?? "").split("\n").map((line) => line.slice(linePrefix.length)).join("\n");
|
|
183
|
+
const entries = getHandoffEntries();
|
|
184
|
+
pruneExpiredEntries(entries);
|
|
185
|
+
const key = getHandoffKey(sourcePath, language, content);
|
|
186
|
+
let queue = entries.get(key);
|
|
187
|
+
if (!queue) {
|
|
188
|
+
queue = [];
|
|
189
|
+
entries.set(key, queue);
|
|
190
|
+
}
|
|
191
|
+
queue.push({
|
|
192
|
+
expiresAt: Date.now() + CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS,
|
|
193
|
+
focus,
|
|
194
|
+
state
|
|
195
|
+
});
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
async function restoreCodeBlockFocus(el, focus) {
|
|
199
|
+
for (let frame = 0; !el.isConnected && frame < MAX_FRAMES_TO_WAIT_FOR_CONNECTION; frame++) {
|
|
200
|
+
await (0, import_async.requestAnimationFrameAsync)();
|
|
201
|
+
}
|
|
202
|
+
if (!el.isConnected) {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
let target = el;
|
|
206
|
+
for (const index of focus.childIndexPath) {
|
|
207
|
+
target = target.children[index];
|
|
208
|
+
if (!target) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (!isHTMLElementLike(target)) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
target.focus({ preventScroll: true });
|
|
216
|
+
if (el.ownerDocument.activeElement !== target) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
if (focus.selection && isTextSelectionElement(target)) {
|
|
220
|
+
target.setSelectionRange(focus.selection.start, focus.selection.end, focus.selection.direction);
|
|
221
|
+
}
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
function getHandoffEntries() {
|
|
225
|
+
return (0, import_obsidian_lib_state.getObsidianLibState)(HANDOFF_STATE_KEY, /* @__PURE__ */ new Map()).value;
|
|
226
|
+
}
|
|
227
|
+
function getHandoffKey(sourcePath, language, content) {
|
|
228
|
+
return JSON.stringify([sourcePath, language, content]);
|
|
229
|
+
}
|
|
230
|
+
function getLanguageFromElement(element) {
|
|
231
|
+
const BLOCK_LANGUAGE_PREFIX = "block-language-";
|
|
232
|
+
return [...element.classList].find((cls) => cls.startsWith(BLOCK_LANGUAGE_PREFIX))?.slice(BLOCK_LANGUAGE_PREFIX.length) ?? "";
|
|
233
|
+
}
|
|
234
|
+
function getTextSelection(element) {
|
|
235
|
+
if (!isTextSelectionElement(element)) {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
if (element.selectionStart === null || element.selectionEnd === null) {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
direction: element.selectionDirection ?? "none",
|
|
243
|
+
end: element.selectionEnd,
|
|
244
|
+
start: element.selectionStart
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
function isHTMLElementLike(element) {
|
|
248
|
+
return typeof element.focus === "function";
|
|
249
|
+
}
|
|
250
|
+
function isTextSelectionElement(element) {
|
|
251
|
+
return element.tagName === "INPUT" || element.tagName === "TEXTAREA";
|
|
252
|
+
}
|
|
253
|
+
function pruneExpiredEntries(entries) {
|
|
254
|
+
const now = Date.now();
|
|
255
|
+
for (const [key, queue] of entries) {
|
|
256
|
+
const liveEntries = queue.filter((entry) => entry.expiresAt > now);
|
|
257
|
+
if (liveEntries.length === 0) {
|
|
258
|
+
entries.delete(key);
|
|
259
|
+
} else if (liveEntries.length !== queue.length) {
|
|
260
|
+
entries.set(key, liveEntries);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
265
|
+
0 && (module.exports = {
|
|
266
|
+
CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS,
|
|
267
|
+
captureCodeBlockFocus,
|
|
268
|
+
claimCodeBlockRenderHandoff,
|
|
269
|
+
recordCodeBlockRenderHandoff,
|
|
270
|
+
restoreCodeBlockFocus
|
|
271
|
+
});
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2RlLWJsb2NrLXJlbmRlci1oYW5kb2ZmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDYXJyaWVzIGZvY3VzIGFuZCBwbHVnaW4gc3RhdGUgZnJvbSBhIGNvZGUgYmxvY2sgdG8gaXRzIG5leHQgcmVuZGVyLlxuICpcbiAqIE9ic2lkaWFuIHJlbmRlcnMgYSBjb2RlIGJsb2NrIGFnYWluIHdoZW5ldmVyIGl0cyBzb3VyY2UgdGV4dCBjaGFuZ2VzOiBSZWFkaW5nIHZpZXcgcmUtcmVuZGVycyB0aGUgc2VjdGlvbiBhbmQgTGl2ZVxuICogUHJldmlldyByZXBsYWNlcyB0aGUgd2lkZ2V0LiBTbyBhIGJsb2NrIHRoYXQgZWRpdHMgaXRzIG93biBzb3VyY2UgKGEgY291bnRlciwgYSBjaGVja2JveCwgYSBzZXR0aW5ncyBmb3JtKSBsb3NlcyB0aGVcbiAqIGVsZW1lbnQgdGhlIHVzZXIgd2FzIGludGVyYWN0aW5nIHdpdGgsIGl0cyBmb2N1cyBhbmQgd2hhdGV2ZXIgdGhlIHBsdWdpbiBrZXB0IG9uIGl0LiBUaGUgZWxlbWVudCBpdHNlbGYgY2Fubm90IGJlXG4gKiBrZXB0IHdpdGhvdXQgcGF0Y2hpbmcgT2JzaWRpYW4ncyByZW5kZXJlcnMsIHNvIHRoZSB3cml0ZSByZWNvcmRzIGEgaGFuZG9mZiBpbnN0ZWFkLCBhbmQgdGhlIHByb2Nlc3NvciByZW5kZXJpbmcgdGhlXG4gKiBuZXcgc291cmNlIGNsYWltcyBpdDogaXQgZ2V0cyBiYWNrIHRoZSBzdGF0ZSB0aGUgd3JpdGUgcGFzc2VkIGFuZCBjYW4gcHV0IHRoZSBmb2N1cyBiYWNrIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG4gKlxuICogVGhlIGhhbmRvZmYgaXMgbWF0Y2hlZCBieSBzb3VyY2UgcGF0aCwgbGFuZ3VhZ2UgYW5kIHRoZSBuZXcgYmxvY2sgY29udGVudCwgYW5kIGl0IGxpdmVzIGZvclxuICoge0BsaW5rIENPREVfQkxPQ0tfUkVOREVSX0hBTkRPRkZfTElGRVRJTUVfSU5fTUlMTElTRUNPTkRTfS4gVGhlIGZpcnN0IHJlbmRlciB0byBjbGFpbSBpdCBjb25zdW1lcyBpdCwgc28gd2hlbiB0aGVcbiAqIG5vdGUgaXMgb3BlbiBpbiB0d28gcGFuZXMgb25seSBvbmUgb2YgdGhlIG5ldyByZW5kZXJzIGdldHMgaXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQge1xuICBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwLFxuICBnZXRPcHRpb25hbE5hbWVkR3JvdXBcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3JlZy1leHAnO1xuaW1wb3J0IHsgZW5zdXJlTGZFbmRpbmdzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5cbmltcG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmltcG9ydCB7IGdldE9ic2lkaWFuTGliU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbi8qKlxuICogSG93IGxvbmcgYSByZWNvcmRlZCBoYW5kb2ZmIHdhaXRzIGZvciB0aGUgcmVuZGVyIHRoYXQgY2xhaW1zIGl0LlxuICovXG5leHBvcnQgY29uc3QgQ09ERV9CTE9DS19SRU5ERVJfSEFORE9GRl9MSUZFVElNRV9JTl9NSUxMSVNFQ09ORFMgPSAxMF8wMDA7XG5cbmNvbnN0IEhBTkRPRkZfU1RBVEVfS0VZID0gJ2NvZGVCbG9ja1JlbmRlckhhbmRvZmZWMSc7XG5jb25zdCBNQVhfRlJBTUVTX1RPX1dBSVRfRk9SX0NPTk5FQ1RJT04gPSA2MDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgY2xhaW1Db2RlQmxvY2tSZW5kZXJIYW5kb2ZmfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHtAbGluayBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0fSB0aGUgcHJvY2Vzc29yIHJlY2VpdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhlIHByb2Nlc3NvciByZW5kZXJzIGludG8uXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgdGhlIHByb2Nlc3NvciByZWNlaXZlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoZXJlIHRoZSBmb2N1cyB3YXMgaW5zaWRlIGEgcmVuZGVyZWQgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQmxvY2tGb2N1c1NuYXBzaG90IHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBpbmRpY2VzIGxlYWRpbmcgZnJvbSB0aGUgY29kZSBibG9jayBlbGVtZW50IHRvIHRoZSBmb2N1c2VkIGVsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBjaGlsZEluZGV4UGF0aDogcmVhZG9ubHkgbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHNlbGVjdGlvbiBvZiBhIGZvY3VzZWQgaW5wdXQgb3IgdGV4dCBhcmVhLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0aW9uOiBudWxsIHwgVGV4dFNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBBIGhhbmRvZmYgY2xhaW1lZCBieSB0aGUgcmVuZGVyIG9mIGEgY29kZSBibG9jayB3aG9zZSBzb3VyY2UgYSB3cml0ZSBqdXN0IGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJsb2NrUmVuZGVySGFuZG9mZiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB3cml0ZSByZWNvcmRlZCBhIGZvY3VzZWQgZWxlbWVudCB0byByZXN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFzRm9jdXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFB1dHMgdGhlIGZvY3VzIGJhY2sgb24gdGhlIGVsZW1lbnQgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW5zaWRlIHRoZSBuZXcgcmVuZGVyLCB3aXRoIHRoZSBzYW1lIHRleHQgc2VsZWN0aW9uLlxuICAgKlxuICAgKiBDYWxsIGl0IG9uY2UgdGhlIHByb2Nlc3NvciBoYXMgcmVuZGVyZWQgdGhlIGJsb2NrLiBJdCB3YWl0cyBmb3IgdGhlIGVsZW1lbnQgdG8gYmUgYXR0YWNoZWQgdG8gYSBkb2N1bWVudC5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciBhbiBlbGVtZW50IHdhcyBmb2N1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdG9yZUZvY3VzOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGUgcGFzc2VkIHRvIHRoZSB3cml0ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBub25lIHdhcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZWNvcmRDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmb2N1cyBjYXB0dXJlZCBmcm9tIHRoZSBvbGQgcmVuZGVyIHdpdGgge0BsaW5rIGNhcHR1cmVDb2RlQmxvY2tGb2N1c30uXG4gICAqL1xuICByZWFkb25seSBmb2N1czogQ29kZUJsb2NrRm9jdXNTbmFwc2hvdCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIGJsb2NrIHdyaXR0ZW4gdG8gdGhlIG5vdGUsIGZlbmNlcyBpbmNsdWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5ld0NvZGVCbG9jazogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgbm90ZSB0aGUgY29kZSBibG9jayBpcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRlIHRvIHBhc3MgdG8gdGhlIG5leHQgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGU6IHVua25vd247XG59XG5cbmludGVyZmFjZSBIYW5kb2ZmRW50cnkge1xuICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgZm9jdXM6IENvZGVCbG9ja0ZvY3VzU25hcHNob3QgfCBudWxsO1xuICByZWFkb25seSBzdGF0ZTogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIFRleHRTZWxlY3Rpb24ge1xuICByZWFkb25seSBkaXJlY3Rpb246ICdiYWNrd2FyZCcgfCAnZm9yd2FyZCcgfCAnbm9uZSc7XG4gIHJlYWRvbmx5IGVuZDogbnVtYmVyO1xuICByZWFkb25seSBzdGFydDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgVGV4dFNlbGVjdGlvbkVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkRpcmVjdGlvbjogJ2JhY2t3YXJkJyB8ICdmb3J3YXJkJyB8ICdub25lJyB8IG51bGw7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkVuZDogbnVsbCB8IG51bWJlcjtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uU3RhcnQ6IG51bGwgfCBudW1iZXI7XG4gIHJlYWRvbmx5IHNldFNlbGVjdGlvblJhbmdlOiAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIGRpcmVjdGlvbj86ICdiYWNrd2FyZCcgfCAnZm9yd2FyZCcgfCAnbm9uZScpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQ2FwdHVyZXMgd2hlcmUgdGhlIGZvY3VzIGlzIGluc2lkZSBhIHJlbmRlcmVkIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIGVsIC0gVGhlIGNvZGUgYmxvY2sgZWxlbWVudC5cbiAqIEByZXR1cm5zIFRoZSBzbmFwc2hvdCwgb3IgYG51bGxgIHdoZW4gdGhlIGZvY3VzIGlzIG5vdCBpbnNpZGUgdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlQ29kZUJsb2NrRm9jdXMoZWw6IEhUTUxFbGVtZW50KTogQ29kZUJsb2NrRm9jdXNTbmFwc2hvdCB8IG51bGwge1xuICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWwub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQgfHwgYWN0aXZlRWxlbWVudCA9PT0gZWwgfHwgIWVsLmNvbnRhaW5zKGFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaGlsZEluZGV4UGF0aDogbnVtYmVyW10gPSBbXTtcbiAgbGV0IGN1cnJlbnQ6IEVsZW1lbnQgfCBudWxsID0gYWN0aXZlRWxlbWVudDtcbiAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gZWwpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGZvciAobGV0IHNpYmxpbmcgPSBjdXJyZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7IHNpYmxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuICAgIGNoaWxkSW5kZXhQYXRoLnVuc2hpZnQoaW5kZXgpO1xuICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoaWxkSW5kZXhQYXRoLFxuICAgIHNlbGVjdGlvbjogZ2V0VGV4dFNlbGVjdGlvbihhY3RpdmVFbGVtZW50KVxuICB9O1xufVxuXG4vKipcbiAqIENsYWltcyB0aGUgaGFuZG9mZiBhIHdyaXRlIHJlY29yZGVkIGZvciB0aGUgY29kZSBibG9jayBiZWluZyByZW5kZXJlZC5cbiAqXG4gKiBDYWxsIGl0IGZyb20gYSBjb2RlIGJsb2NrIHByb2Nlc3Nvci4gSXQgcmV0dXJucyBgbnVsbGAgd2hlbiBubyB3cml0ZSBpcyB3YWl0aW5nIGZvciB0aGlzIHJlbmRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBoYW5kb2ZmLCBvciBgbnVsbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmYocGFyYW1zOiBDbGFpbUNvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMpOiBDb2RlQmxvY2tSZW5kZXJIYW5kb2ZmIHwgbnVsbCB7XG4gIGNvbnN0IHsgY29udGV4dCwgZWwsIHNvdXJjZSB9ID0gcGFyYW1zO1xuICBjb25zdCBlbnRyaWVzID0gZ2V0SGFuZG9mZkVudHJpZXMoKTtcbiAgcHJ1bmVFeHBpcmVkRW50cmllcyhlbnRyaWVzKTtcblxuICBjb25zdCBrZXkgPSBnZXRIYW5kb2ZmS2V5KGNvbnRleHQuc291cmNlUGF0aCwgZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbCksIGVuc3VyZUxmRW5kaW5ncyhzb3VyY2UpKTtcbiAgY29uc3QgcXVldWUgPSBlbnRyaWVzLmdldChrZXkpO1xuICBjb25zdCBlbnRyeSA9IHF1ZXVlPy5zaGlmdCgpO1xuICBpZiAoIXF1ZXVlIHx8ICFlbnRyeSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgIGVudHJpZXMuZGVsZXRlKGtleSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhhc0ZvY3VzOiBlbnRyeS5mb2N1cyAhPT0gbnVsbCxcbiAgICBhc3luYyByZXN0b3JlRm9jdXMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICByZXR1cm4gZW50cnkuZm9jdXMgPyAoYXdhaXQgcmVzdG9yZUNvZGVCbG9ja0ZvY3VzKGVsLCBlbnRyeS5mb2N1cykpIDogZmFsc2U7XG4gICAgfSxcbiAgICBzdGF0ZTogZW50cnkuc3RhdGVcbiAgfTtcbn1cblxuLyoqXG4gKiBSZWNvcmRzIGEgaGFuZG9mZiBmb3IgdGhlIG5leHQgcmVuZGVyIG9mIGEgY29kZSBibG9jayBhIHdyaXRlIGlzIGFib3V0IHRvIGNoYW5nZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBoYW5kb2ZmIHdhcyByZWNvcmRlZDogYGZhbHNlYCB3aGVuIHRoZSBuZXcgdGV4dCBpcyBub3QgZXhhY3RseSBvbmUgY29kZSBibG9jay5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vY29uc2lzdGVudC1ib29sZWFuLW5hbWUgLS0gQSB2ZXJiIG5hbWVzIHRoZSBhY3Rpb247IHRoZSBib29sZWFuIG9ubHkgcmVwb3J0cyB3aGV0aGVyIGl0IHRvb2sgcGxhY2UuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkQ29kZUJsb2NrUmVuZGVySGFuZG9mZihwYXJhbXM6IFJlY29yZENvZGVCbG9ja1JlbmRlckhhbmRvZmZQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBmb2N1cywgbmV3Q29kZUJsb2NrLCBzb3VyY2VQYXRoLCBzdGF0ZSB9ID0gcGFyYW1zO1xuICBjb25zdCBtYXRjaGVzID0gWy4uLmVuc3VyZUxmRW5kaW5ncyhuZXdDb2RlQmxvY2spLm1hdGNoQWxsKGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCgpKV07XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlc1swXTtcbiAgaWYgKG1hdGNoZXMubGVuZ3RoICE9PSAxIHx8ICFtYXRjaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVQcmVmaXggPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAnTGluZVByZWZpeCcpO1xuICBjb25zdCBsYW5ndWFnZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdDb2RlQmxvY2tMYW5ndWFnZScpO1xuICBjb25zdCBjb250ZW50ID0gKGdldE9wdGlvbmFsTmFtZWRHcm91cChtYXRjaCwgJ0NvZGVCbG9ja0NvbnRlbnQnKSA/PyAnJykuc3BsaXQoJ1xcbicpLm1hcCgobGluZSkgPT4gbGluZS5zbGljZShsaW5lUHJlZml4Lmxlbmd0aCkpLmpvaW4oJ1xcbicpO1xuXG4gIGNvbnN0IGVudHJpZXMgPSBnZXRIYW5kb2ZmRW50cmllcygpO1xuICBwcnVuZUV4cGlyZWRFbnRyaWVzKGVudHJpZXMpO1xuICBjb25zdCBrZXkgPSBnZXRIYW5kb2ZmS2V5KHNvdXJjZVBhdGgsIGxhbmd1YWdlLCBjb250ZW50KTtcbiAgbGV0IHF1ZXVlID0gZW50cmllcy5nZXQoa2V5KTtcbiAgaWYgKCFxdWV1ZSkge1xuICAgIHF1ZXVlID0gW107XG4gICAgZW50cmllcy5zZXQoa2V5LCBxdWV1ZSk7XG4gIH1cbiAgcXVldWUucHVzaCh7XG4gICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQ09ERV9CTE9DS19SRU5ERVJfSEFORE9GRl9MSUZFVElNRV9JTl9NSUxMSVNFQ09ORFMsXG4gICAgZm9jdXMsXG4gICAgc3RhdGVcbiAgfSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFB1dHMgdGhlIGZvY3VzIGJhY2sgb24gdGhlIGVsZW1lbnQgYSB7QGxpbmsgQ29kZUJsb2NrRm9jdXNTbmFwc2hvdH0gZGVzY3JpYmVzLlxuICpcbiAqIEBwYXJhbSBlbCAtIFRoZSBuZXcgY29kZSBibG9jayBlbGVtZW50LlxuICogQHBhcmFtIGZvY3VzIC0gVGhlIHNuYXBzaG90IGNhcHR1cmVkIGZyb20gdGhlIG9sZCByZW5kZXIuXG4gKiBAcmV0dXJucyBXaGV0aGVyIGFuIGVsZW1lbnQgd2FzIGZvY3VzZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2NvbnNpc3RlbnQtYm9vbGVhbi1uYW1lIC0tIEEgdmVyYiBuYW1lcyB0aGUgYWN0aW9uOyB0aGUgYm9vbGVhbiBvbmx5IHJlcG9ydHMgd2hldGhlciBpdCB0b29rIHBsYWNlLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVDb2RlQmxvY2tGb2N1cyhlbDogSFRNTEVsZW1lbnQsIGZvY3VzOiBDb2RlQmxvY2tGb2N1c1NuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGZvciAobGV0IGZyYW1lID0gMDsgIWVsLmlzQ29ubmVjdGVkICYmIGZyYW1lIDwgTUFYX0ZSQU1FU19UT19XQUlUX0ZPUl9DT05ORUNUSU9OOyBmcmFtZSsrKSB7XG4gICAgYXdhaXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMoKTtcbiAgfVxuXG4gIGlmICghZWwuaXNDb25uZWN0ZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsZXQgdGFyZ2V0OiBFbGVtZW50IHwgdW5kZWZpbmVkID0gZWw7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgZm9jdXMuY2hpbGRJbmRleFBhdGgpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQuY2hpbGRyZW5baW5kZXhdO1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc0hUTUxFbGVtZW50TGlrZSh0YXJnZXQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdGFyZ2V0LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgaWYgKGVsLm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGFyZ2V0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGZvY3VzLnNlbGVjdGlvbiAmJiBpc1RleHRTZWxlY3Rpb25FbGVtZW50KHRhcmdldCkpIHtcbiAgICB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2UoZm9jdXMuc2VsZWN0aW9uLnN0YXJ0LCBmb2N1cy5zZWxlY3Rpb24uZW5kLCBmb2N1cy5zZWxlY3Rpb24uZGlyZWN0aW9uKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBnZXRIYW5kb2ZmRW50cmllcygpOiBNYXA8c3RyaW5nLCBIYW5kb2ZmRW50cnlbXT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5MaWJTdGF0ZShIQU5ET0ZGX1NUQVRFX0tFWSwgbmV3IE1hcDxzdHJpbmcsIEhhbmRvZmZFbnRyeVtdPigpKS52YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0SGFuZG9mZktleShzb3VyY2VQYXRoOiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShbc291cmNlUGF0aCwgbGFuZ3VhZ2UsIGNvbnRlbnRdKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VGcm9tRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IEJMT0NLX0xBTkdVQUdFX1BSRUZJWCA9ICdibG9jay1sYW5ndWFnZS0nO1xuICByZXR1cm4gWy4uLmVsZW1lbnQuY2xhc3NMaXN0XS5maW5kKChjbHMpID0+IGNscy5zdGFydHNXaXRoKEJMT0NLX0xBTkdVQUdFX1BSRUZJWCkpPy5zbGljZShCTE9DS19MQU5HVUFHRV9QUkVGSVgubGVuZ3RoKSA/PyAnJztcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dFNlbGVjdGlvbihlbGVtZW50OiBFbGVtZW50KTogbnVsbCB8IFRleHRTZWxlY3Rpb24ge1xuICBpZiAoIWlzVGV4dFNlbGVjdGlvbkVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEFuIGlucHV0IHR5cGUgd2l0aG91dCBhIHRleHQgc2VsZWN0aW9uIChhIGNoZWNrYm94LCBhIG51bWJlciBmaWVsZCkgcmVhZHMgYG51bGxgIGhlcmUuXG4gIGlmIChlbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSBudWxsIHx8IGVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRpcmVjdGlvbjogZWxlbWVudC5zZWxlY3Rpb25EaXJlY3Rpb24gPz8gJ25vbmUnLFxuICAgIGVuZDogZWxlbWVudC5zZWxlY3Rpb25FbmQsXG4gICAgc3RhcnQ6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNIVE1MRWxlbWVudExpa2UoZWxlbWVudDogRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTEVsZW1lbnQge1xuICByZXR1cm4gdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8SFRNTEVsZW1lbnQ+KS5mb2N1cyA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZnVuY3Rpb24gaXNUZXh0U2VsZWN0aW9uRWxlbWVudChlbGVtZW50OiBFbGVtZW50KTogZWxlbWVudCBpcyBUZXh0U2VsZWN0aW9uRWxlbWVudCB7XG4gIHJldHVybiBlbGVtZW50LnRhZ05hbWUgPT09ICdJTlBVVCcgfHwgZWxlbWVudC50YWdOYW1lID09PSAnVEVYVEFSRUEnO1xufVxuXG5mdW5jdGlvbiBwcnVuZUV4cGlyZWRFbnRyaWVzKGVudHJpZXM6IE1hcDxzdHJpbmcsIEhhbmRvZmZFbnRyeVtdPik6IHZvaWQge1xuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBmb3IgKGNvbnN0IFtrZXksIHF1ZXVlXSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgbGl2ZUVudHJpZXMgPSBxdWV1ZS5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeS5leHBpcmVzQXQgPiBub3cpO1xuICAgIGlmIChsaXZlRW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGVudHJpZXMuZGVsZXRlKGtleSk7XG4gICAgfSBlbHNlIGlmIChsaXZlRW50cmllcy5sZW5ndGggIT09IHF1ZXVlLmxlbmd0aCkge1xuICAgICAgZW50cmllcy5zZXQoa2V5LCBsaXZlRW50cmllcyk7XG4gICAgfVxuICB9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
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/// <reference lib="dom" />
|
|
3
|
+
/**
|
|
4
|
+
* @file
|
|
5
|
+
*
|
|
6
|
+
* Carries focus and plugin state from a code block to its next render.
|
|
7
|
+
*
|
|
8
|
+
* Obsidian renders a code block again whenever its source text changes: Reading view re-renders the section and Live
|
|
9
|
+
* Preview replaces the widget. So a block that edits its own source (a counter, a checkbox, a settings form) loses the
|
|
10
|
+
* element the user was interacting with, its focus and whatever the plugin kept on it. The element itself cannot be
|
|
11
|
+
* kept without patching Obsidian's renderers, so the write records a handoff instead, and the processor rendering the
|
|
12
|
+
* new source claims it: it gets back the state the write passed and can put the focus back on the same element.
|
|
13
|
+
*
|
|
14
|
+
* The handoff is matched by source path, language and the new block content, and it lives for
|
|
15
|
+
* {@link CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS}. The first render to claim it consumes it, so when the
|
|
16
|
+
* note is open in two panes only one of the new renders gets it.
|
|
17
|
+
*/
|
|
18
|
+
import type { MarkdownPostProcessorContext } from 'obsidian' with { 'resolution-mode': 'import' };
|
|
19
|
+
/**
|
|
20
|
+
* How long a recorded handoff waits for the render that claims it.
|
|
21
|
+
*/
|
|
22
|
+
export declare const CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS = 10000;
|
|
23
|
+
/**
|
|
24
|
+
* Options for {@link claimCodeBlockRenderHandoff}.
|
|
25
|
+
*/
|
|
26
|
+
export interface ClaimCodeBlockRenderHandoffParams {
|
|
27
|
+
/**
|
|
28
|
+
* The {@link MarkdownPostProcessorContext} the processor received.
|
|
29
|
+
*/
|
|
30
|
+
readonly context: MarkdownPostProcessorContext;
|
|
31
|
+
/**
|
|
32
|
+
* The element the processor renders into.
|
|
33
|
+
*/
|
|
34
|
+
readonly el: HTMLElement;
|
|
35
|
+
/**
|
|
36
|
+
* The source the processor received.
|
|
37
|
+
*/
|
|
38
|
+
readonly source: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Where the focus was inside a rendered code block.
|
|
42
|
+
*/
|
|
43
|
+
export interface CodeBlockFocusSnapshot {
|
|
44
|
+
/**
|
|
45
|
+
* The child indices leading from the code block element to the focused element.
|
|
46
|
+
*/
|
|
47
|
+
readonly childIndexPath: readonly number[];
|
|
48
|
+
/**
|
|
49
|
+
* The text selection of a focused input or text area.
|
|
50
|
+
*/
|
|
51
|
+
readonly selection: null | TextSelection;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* A handoff claimed by the render of a code block whose source a write just changed.
|
|
55
|
+
*/
|
|
56
|
+
export interface CodeBlockRenderHandoff {
|
|
57
|
+
/**
|
|
58
|
+
* Whether the write recorded a focused element to restore.
|
|
59
|
+
*/
|
|
60
|
+
readonly hasFocus: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Puts the focus back on the element at the same position inside the new render, with the same text selection.
|
|
63
|
+
*
|
|
64
|
+
* Call it once the processor has rendered the block. It waits for the element to be attached to a document.
|
|
65
|
+
*
|
|
66
|
+
* @returns Whether an element was focused.
|
|
67
|
+
*/
|
|
68
|
+
readonly restoreFocus: () => Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* The state passed to the write, or `undefined` when none was.
|
|
71
|
+
*/
|
|
72
|
+
readonly state: unknown;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Options for {@link recordCodeBlockRenderHandoff}.
|
|
76
|
+
*/
|
|
77
|
+
export interface RecordCodeBlockRenderHandoffParams {
|
|
78
|
+
/**
|
|
79
|
+
* The focus captured from the old render with {@link captureCodeBlockFocus}.
|
|
80
|
+
*/
|
|
81
|
+
readonly focus: CodeBlockFocusSnapshot | null;
|
|
82
|
+
/**
|
|
83
|
+
* The code block written to the note, fences included.
|
|
84
|
+
*/
|
|
85
|
+
readonly newCodeBlock: string;
|
|
86
|
+
/**
|
|
87
|
+
* The path of the note the code block is in.
|
|
88
|
+
*/
|
|
89
|
+
readonly sourcePath: string;
|
|
90
|
+
/**
|
|
91
|
+
* The state to pass to the next render.
|
|
92
|
+
*/
|
|
93
|
+
readonly state: unknown;
|
|
94
|
+
}
|
|
95
|
+
interface TextSelection {
|
|
96
|
+
readonly direction: 'backward' | 'forward' | 'none';
|
|
97
|
+
readonly end: number;
|
|
98
|
+
readonly start: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Captures where the focus is inside a rendered code block.
|
|
102
|
+
*
|
|
103
|
+
* @param el - The code block element.
|
|
104
|
+
* @returns The snapshot, or `null` when the focus is not inside the element.
|
|
105
|
+
*/
|
|
106
|
+
export declare function captureCodeBlockFocus(el: HTMLElement): CodeBlockFocusSnapshot | null;
|
|
107
|
+
/**
|
|
108
|
+
* Claims the handoff a write recorded for the code block being rendered.
|
|
109
|
+
*
|
|
110
|
+
* Call it from a code block processor. It returns `null` when no write is waiting for this render.
|
|
111
|
+
*
|
|
112
|
+
* @param params - The parameters for the function.
|
|
113
|
+
* @returns The handoff, or `null`.
|
|
114
|
+
*/
|
|
115
|
+
export declare function claimCodeBlockRenderHandoff(params: ClaimCodeBlockRenderHandoffParams): CodeBlockRenderHandoff | null;
|
|
116
|
+
/**
|
|
117
|
+
* Records a handoff for the next render of a code block a write is about to change.
|
|
118
|
+
*
|
|
119
|
+
* @param params - The parameters for the function.
|
|
120
|
+
* @returns Whether a handoff was recorded: `false` when the new text is not exactly one code block.
|
|
121
|
+
*/
|
|
122
|
+
export declare function recordCodeBlockRenderHandoff(params: RecordCodeBlockRenderHandoffParams): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Puts the focus back on the element a {@link CodeBlockFocusSnapshot} describes.
|
|
125
|
+
*
|
|
126
|
+
* @param el - The new code block element.
|
|
127
|
+
* @param focus - The snapshot captured from the old render.
|
|
128
|
+
* @returns Whether an element was focused.
|
|
129
|
+
*/
|
|
130
|
+
export declare function restoreCodeBlockFocus(el: HTMLElement, focus: CodeBlockFocusSnapshot): Promise<boolean>;
|
|
131
|
+
export {};
|
|
@@ -98,20 +98,26 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
98
98
|
var codemirror_exports = {};
|
|
99
99
|
__export(codemirror_exports, {
|
|
100
100
|
"incremental-parse-state-field": () => incremental_parse_state_field,
|
|
101
|
+
"inline-token-widgets": () => inline_token_widgets,
|
|
101
102
|
"markdown-editor-views": () => markdown_editor_views,
|
|
102
103
|
"range-set": () => range_set,
|
|
104
|
+
"settings-facet": () => settings_facet,
|
|
103
105
|
"state-field-spec": () => state_field_spec
|
|
104
106
|
});
|
|
105
107
|
module.exports = __toCommonJS(codemirror_exports);
|
|
106
108
|
var incremental_parse_state_field = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./incremental-parse-state-field.cjs')), 1);
|
|
109
|
+
var inline_token_widgets = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./inline-token-widgets.cjs')), 1);
|
|
107
110
|
var markdown_editor_views = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./markdown-editor-views.cjs')), 1);
|
|
108
111
|
var range_set = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./range-set.cjs')), 1);
|
|
112
|
+
var settings_facet = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./settings-facet.cjs')), 1);
|
|
109
113
|
var state_field_spec = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./state-field-spec.cjs')), 1);
|
|
110
114
|
// Annotate the CommonJS export names for ESM import in node:
|
|
111
115
|
0 && (module.exports = {
|
|
112
116
|
"incremental-parse-state-field": null,
|
|
117
|
+
"inline-token-widgets": null,
|
|
113
118
|
"markdown-editor-views": null,
|
|
114
119
|
"range-set": null,
|
|
120
|
+
"settings-facet": null,
|
|
115
121
|
"state-field-spec": null
|
|
116
122
|
});
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2RlbWlycm9yL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnaW5jcmVtZW50YWwtcGFyc2Utc3RhdGUtZmllbGQnIGZyb20gJy4vaW5jcmVtZW50YWwtcGFyc2Utc3RhdGUtZmllbGQudHMnO1xuZXhwb3J0ICogYXMgJ2lubGluZS10b2tlbi13aWRnZXRzJyBmcm9tICcuL2lubGluZS10b2tlbi13aWRnZXRzLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1lZGl0b3Itdmlld3MnIGZyb20gJy4vbWFya2Rvd24tZWRpdG9yLXZpZXdzLnRzJztcbmV4cG9ydCAqIGFzICdyYW5nZS1zZXQnIGZyb20gJy4vcmFuZ2Utc2V0LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5ncy1mYWNldCcgZnJvbSAnLi9zZXR0aW5ncy1mYWNldC50cyc7XG5leHBvcnQgKiBhcyAnc3RhdGUtZmllbGQtc3BlYycgZnJvbSAnLi9zdGF0ZS1maWVsZC1zcGVjLnRzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSx5Q0FBQUE7QUFBQSxFQUFBLDhCQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxtQkFBQUM7QUFBQSxFQUFBLHdCQUFBQztBQUFBLEVBQUEsMEJBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUFMLGdDQUFpRDtBQUNqRCxJQUFBQyx1QkFBd0M7QUFDeEMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGlCQUFrQztBQUNsQyxJQUFBQyxtQkFBb0M7IiwibmFtZXMiOlsiaW5jcmVtZW50YWwtcGFyc2Utc3RhdGUtZmllbGQiLCJpbmxpbmUtdG9rZW4td2lkZ2V0cyIsIm1hcmtkb3duLWVkaXRvci12aWV3cyIsInJhbmdlLXNldCIsInNldHRpbmdzLWZhY2V0Iiwic3RhdGUtZmllbGQtc3BlYyJdfQ==
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference path="../library-references.d.cts" />
|
|
2
2
|
export * as 'incremental-parse-state-field' from './incremental-parse-state-field.cjs';
|
|
3
|
+
export * as 'inline-token-widgets' from './inline-token-widgets.cjs';
|
|
3
4
|
export * as 'markdown-editor-views' from './markdown-editor-views.cjs';
|
|
4
5
|
export * as 'range-set' from './range-set.cjs';
|
|
6
|
+
export * as 'settings-facet' from './settings-facet.cjs';
|
|
5
7
|
export * as 'state-field-spec' from './state-field-spec.cjs';
|