obsidian-dev-utils 52.2.0 → 53.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/lib/cjs/library.cjs +1 -1
  3. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +190 -0
  4. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.d.cts +44 -0
  5. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +6 -1
  6. package/dist/lib/cjs/obsidian/components/async-events-component.d.cts +5 -0
  7. package/dist/lib/cjs/obsidian/components/index.cjs +4 -1
  8. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  9. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +3 -49
  10. package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +0 -24
  11. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +3 -6
  12. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.d.cts +0 -1
  13. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +13 -4
  14. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +12 -6
  15. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +3 -1
  16. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +217 -0
  17. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -0
  18. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +180 -0
  19. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +13 -0
  20. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
  21. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +135 -0
  22. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +17 -0
  23. package/dist/lib/esm/library.mjs +1 -1
  24. package/dist/lib/esm/obsidian/components/all-windows-event-handler.d.mts +44 -0
  25. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +84 -0
  26. package/dist/lib/esm/obsidian/components/async-events-component.d.mts +5 -0
  27. package/dist/lib/esm/obsidian/components/async-events-component.mjs +6 -1
  28. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  29. package/dist/lib/esm/obsidian/components/index.mjs +3 -1
  30. package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +0 -24
  31. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +3 -49
  32. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.d.mts +0 -1
  33. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +3 -6
  34. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +13 -4
  35. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +3 -1
  36. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +8 -4
  37. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -0
  38. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +117 -0
  39. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +13 -0
  40. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +73 -0
  41. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +5 -3
  42. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.d.mts +17 -0
  43. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +29 -0
  44. package/obsidian/Components/all-windows-event-handler/package.json +6 -0
  45. package/package.json +5 -2
  46. package/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
  47. package/script-utils/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
  48. package/script-utils/linters/eslint-rules/{no-used-underscore-params → rule-tester-helper}/package.json +3 -3
  49. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.cjs +0 -174
  50. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.d.cts +0 -12
  51. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.d.mts +0 -12
  52. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.mjs +0 -68
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 53.0.0
4
+
5
+ - refactor: extract multi-window handling into AllWindowsEventHandler
6
+ - refactor: expose AsyncEventComponent.asyncEvents
7
+
8
+ ## 52.3.0
9
+
10
+ - fix: check if .gitignore exists
11
+ - chore: new eslint rule
12
+
3
13
  ## 52.2.0
4
14
 
5
15
  - feat: more advanced enabling
@@ -126,7 +126,7 @@ __export(library_exports, {
126
126
  LIBRARY_VERSION: () => LIBRARY_VERSION
127
127
  });
128
128
  module.exports = __toCommonJS(library_exports);
129
- const LIBRARY_VERSION = "52.2.0";
129
+ const LIBRARY_VERSION = "53.0.0";
130
130
  const LIBRARY_NAME = "obsidian-dev-utils";
131
131
  const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.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-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils 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-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils 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-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils 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-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils 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-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils 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-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils 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-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils 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-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utilsprogress.loop {\n min-width: 200px;\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid, .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid, .obsidian-dev-utils input.metadata-input-text:focus:invalid,\n.obsidian-dev-utils input[type=date]:active:invalid,\n.obsidian-dev-utils input[type=date]:focus-visible:invalid,\n.obsidian-dev-utils input[type=date]:focus:invalid,\n.obsidian-dev-utils input[type=datetime-local]:active:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid,\n.obsidian-dev-utils input[type=email]:active:invalid,\n.obsidian-dev-utils input[type=email]:focus-visible:invalid,\n.obsidian-dev-utils input[type=email]:focus:invalid,\n.obsidian-dev-utils input[type=number]:active:invalid,\n.obsidian-dev-utils input[type=number]:focus-visible:invalid,\n.obsidian-dev-utils input[type=number]:focus:invalid,\n.obsidian-dev-utils input[type=password]:active:invalid,\n.obsidian-dev-utils input[type=password]:focus-visible:invalid,\n.obsidian-dev-utils input[type=password]:focus:invalid,\n.obsidian-dev-utils input[type=search]:active:invalid,\n.obsidian-dev-utils input[type=search]:focus-visible:invalid,\n.obsidian-dev-utils input[type=search]:focus:invalid,\n.obsidian-dev-utils input[type=text]:active:invalid,\n.obsidian-dev-utils input[type=text]:focus-visible:invalid,\n.obsidian-dev-utils input[type=text]:focus:invalid,\n.obsidian-dev-utils textarea:active:invalid,\n.obsidian-dev-utils textarea:focus-visible:invalid,\n.obsidian-dev-utils textarea:focus:invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.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-dev-utils.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/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/prompt-modal.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;;;ACzCJ;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;;;ACjDJ;EACE;;;ACAA;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACRJ;EACE;;;ACDF;EACE;;;ACDF;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;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-dev-utils%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.obsidian-dev-utils%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-dev-utils%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-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%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-dev-utils%20%7B%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:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%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-dev-utils%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.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%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%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";
132
132
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,190 @@
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 initCjs() {
7
+ const globalThisRecord = globalThis;
8
+ globalThisRecord['__name'] ??= name;
9
+ const originalRequire = require;
10
+ if (originalRequire && !originalRequire.__isPatched) {
11
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
+ require = Object.assign(
13
+ (id) => requirePatched(id),
14
+ originalRequire,
15
+ {
16
+ __isPatched: true
17
+ }
18
+ );
19
+ }
20
+
21
+ const newFuncs = {
22
+ __extractDefault() {
23
+ return extractDefault;
24
+ },
25
+ process() {
26
+ const browserProcess = {
27
+ browser: true,
28
+ cwd() {
29
+ return '/';
30
+ },
31
+ env: {},
32
+ platform: 'android'
33
+ };
34
+ return browserProcess;
35
+ }
36
+ };
37
+
38
+ for (const key of Object.keys(newFuncs)) {
39
+ globalThisRecord[key] ??= newFuncs[key]?.();
40
+ }
41
+
42
+ function name(obj) {
43
+ return obj;
44
+ }
45
+
46
+ function extractDefault(module) {
47
+ return module && module.__esModule && 'default' in module ? module.default : module;
48
+ }
49
+
50
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
+ 'obsidian',
52
+ '@codemirror/autocomplete',
53
+ '@codemirror/collab',
54
+ '@codemirror/commands',
55
+ '@codemirror/language',
56
+ '@codemirror/lint',
57
+ '@codemirror/search',
58
+ '@codemirror/state',
59
+ '@codemirror/text',
60
+ '@codemirror/view',
61
+ '@lezer/common',
62
+ '@lezer/lr',
63
+ '@lezer/highlight'];
64
+
65
+
66
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
+ '@codemirror/closebrackets',
68
+ '@codemirror/comment',
69
+ '@codemirror/fold',
70
+ '@codemirror/gutter',
71
+ '@codemirror/highlight',
72
+ '@codemirror/history',
73
+ '@codemirror/matchbrackets',
74
+ '@codemirror/panel',
75
+ '@codemirror/rangeset',
76
+ '@codemirror/rectangular-selection',
77
+ '@codemirror/stream-parser',
78
+ '@codemirror/tooltip'];
79
+
80
+
81
+ function requirePatched(id) {
82
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
+ return originalRequire?.(id);
84
+ }
85
+
86
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
+ if (globalThis?.app?.isMobile) {
88
+ if (id === 'process' || id === 'node:process') {
89
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
+ return globalThis.process;
91
+ }
92
+ } else {
93
+ const module = originalRequire?.(id);
94
+ if (module) {
95
+ return extractDefault(module);
96
+ }
97
+ }
98
+
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var all_windows_event_handler_exports = {};
123
+ __export(all_windows_event_handler_exports, {
124
+ AllWindowsEventHandler: () => AllWindowsEventHandler
125
+ });
126
+ module.exports = __toCommonJS(all_windows_event_handler_exports);
127
+ var import_workspace = require('../workspace.cjs');
128
+ class AllWindowsEventHandler {
129
+ /**
130
+ * Creates a new instance of the `AllWindowsEventHandler` class.
131
+ *
132
+ * @param app - The Obsidian app instance.
133
+ * @param component - The component to register the event on.
134
+ */
135
+ constructor(app, component) {
136
+ this.app = app;
137
+ this.component = component;
138
+ }
139
+ /**
140
+ * Registers a DOM event for all documents (main window document and all existing/future popup window documents).
141
+ *
142
+ * @typeParam DocumentEventType - The type of the event.
143
+ * @param type - The type of the event.
144
+ * @param callback - The callback to execute.
145
+ * @param options - The options for the event.
146
+ */
147
+ registerAllDocumentsDomEvent(type, callback, options) {
148
+ this.registerAllWindowsHandler((win) => {
149
+ this.component.registerDomEvent(win.document, type, callback, options);
150
+ });
151
+ }
152
+ /**
153
+ * Registers a DOM event for all windows (main window and all existing/future popup windows).
154
+ *
155
+ * @typeParam WindowEventType - The type of the event.
156
+ * @param type - The type of the event.
157
+ * @param callback - The callback to execute.
158
+ * @param options - The options for the event.
159
+ */
160
+ registerAllWindowsDomEvent(type, callback, options) {
161
+ this.registerAllWindowsHandler((win) => {
162
+ this.component.registerDomEvent(win, type, callback, options);
163
+ });
164
+ }
165
+ /**
166
+ * Registers a handler for all windows (main window and all existing/future popup windows).
167
+ *
168
+ * @param allWindowsHandler - The handler for all windows.
169
+ */
170
+ registerAllWindowsHandler(allWindowsHandler) {
171
+ const mainWindow = window;
172
+ allWindowsHandler(mainWindow);
173
+ this.app.workspace.onLayoutReady(() => {
174
+ for (const win of (0, import_workspace.getAllDomWindows)(this.app)) {
175
+ if (win === mainWindow) {
176
+ continue;
177
+ }
178
+ allWindowsHandler(win);
179
+ }
180
+ this.component.registerEvent(this.app.workspace.on("window-open", (workspaceWindow) => {
181
+ allWindowsHandler(workspaceWindow.win);
182
+ }));
183
+ });
184
+ }
185
+ }
186
+ // Annotate the CommonJS export names for ESM import in node:
187
+ 0 && (module.exports = {
188
+ AllWindowsEventHandler
189
+ });
190
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvYWxsLXdpbmRvd3MtZXZlbnQtaGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBIYW5kbGVzIHJlZ2lzdGVyaW5nIERPTSBldmVudHMgYW5kIGhhbmRsZXJzIGZvciBhbGwgd2luZG93cyAobWFpbiB3aW5kb3cgYW5kIGFsbCBleGlzdGluZy9mdXR1cmUgcG9wdXAgd2luZG93cykgYW5kIHRoZWlyIGRvY3VtZW50cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgQ29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0QWxsRG9tV2luZG93cyB9IGZyb20gJy4uL3dvcmtzcGFjZS50cyc7XG5cbi8qKlxuICogSGFuZGxlcyByZWdpc3RlcmluZyBET00gZXZlbnRzIGFuZCBoYW5kbGVycyBmb3IgYWxsIHdpbmRvd3MgKG1haW4gd2luZG93IGFuZCBhbGwgZXhpc3RpbmcvZnV0dXJlIHBvcHVwIHdpbmRvd3MpIGFuZCB0aGVpciBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGxXaW5kb3dzRXZlbnRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGBBbGxXaW5kb3dzRXZlbnRIYW5kbGVyYCBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRvIHJlZ2lzdGVyIHRoZSBldmVudCBvbi5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFwcDogQXBwLCBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudDogQ29tcG9uZW50KSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBET00gZXZlbnQgZm9yIGFsbCBkb2N1bWVudHMgKG1haW4gd2luZG93IGRvY3VtZW50IGFuZCBhbGwgZXhpc3RpbmcvZnV0dXJlIHBvcHVwIHdpbmRvdyBkb2N1bWVudHMpLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIERvY3VtZW50RXZlbnRUeXBlIC0gVGhlIHR5cGUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckFsbERvY3VtZW50c0RvbUV2ZW50PERvY3VtZW50RXZlbnRUeXBlIGV4dGVuZHMga2V5b2YgRG9jdW1lbnRFdmVudE1hcD4oXG4gICAgdHlwZTogRG9jdW1lbnRFdmVudFR5cGUsXG4gICAgY2FsbGJhY2s6ICh0aGlzOiBIVE1MRWxlbWVudCwgZXZ0OiBEb2N1bWVudEV2ZW50TWFwW0RvY3VtZW50RXZlbnRUeXBlXSkgPT4gdW5rbm93bixcbiAgICBvcHRpb25zPzogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgfCBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJBbGxXaW5kb3dzSGFuZGxlcigod2luKSA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5yZWdpc3RlckRvbUV2ZW50KHdpbi5kb2N1bWVudCwgdHlwZSwgY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIERPTSBldmVudCBmb3IgYWxsIHdpbmRvd3MgKG1haW4gd2luZG93IGFuZCBhbGwgZXhpc3RpbmcvZnV0dXJlIHBvcHVwIHdpbmRvd3MpLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFdpbmRvd0V2ZW50VHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIHR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBleGVjdXRlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJBbGxXaW5kb3dzRG9tRXZlbnQ8V2luZG93RXZlbnRUeXBlIGV4dGVuZHMga2V5b2YgV2luZG93RXZlbnRNYXA+KFxuICAgIHR5cGU6IFdpbmRvd0V2ZW50VHlwZSxcbiAgICBjYWxsYmFjazogKHRoaXM6IEhUTUxFbGVtZW50LCBldnQ6IFdpbmRvd0V2ZW50TWFwW1dpbmRvd0V2ZW50VHlwZV0pID0+IHVua25vd24sXG4gICAgb3B0aW9ucz86IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIHwgYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyQWxsV2luZG93c0hhbmRsZXIoKHdpbikgPT4ge1xuICAgICAgdGhpcy5jb21wb25lbnQucmVnaXN0ZXJEb21FdmVudCh3aW4sIHR5cGUsIGNhbGxiYWNrLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciBhbGwgd2luZG93cyAobWFpbiB3aW5kb3cgYW5kIGFsbCBleGlzdGluZy9mdXR1cmUgcG9wdXAgd2luZG93cykuXG4gICAqXG4gICAqIEBwYXJhbSBhbGxXaW5kb3dzSGFuZGxlciAtIFRoZSBoYW5kbGVyIGZvciBhbGwgd2luZG93cy5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckFsbFdpbmRvd3NIYW5kbGVyKGFsbFdpbmRvd3NIYW5kbGVyOiAod2luOiBXaW5kb3cpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCBtYWluV2luZG93ID0gd2luZG93O1xuICAgIGFsbFdpbmRvd3NIYW5kbGVyKG1haW5XaW5kb3cpO1xuXG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCB3aW4gb2YgZ2V0QWxsRG9tV2luZG93cyh0aGlzLmFwcCkpIHtcbiAgICAgICAgaWYgKHdpbiA9PT0gbWFpbldpbmRvdykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgYWxsV2luZG93c0hhbmRsZXIod2luKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb21wb25lbnQucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oJ3dpbmRvdy1vcGVuJywgKHdvcmtzcGFjZVdpbmRvdykgPT4ge1xuICAgICAgICBhbGxXaW5kb3dzSGFuZGxlcih3b3Jrc3BhY2VXaW5kb3cud2luKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSx1QkFBaUM7QUFLMUIsTUFBTSx1QkFBdUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU8zQixZQUE2QixLQUEyQixXQUFzQjtBQUFqRDtBQUEyQjtBQUFBLEVBQXVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVS9FLDZCQUNMLE1BQ0EsVUFDQSxTQUNNO0FBQ04sU0FBSywwQkFBMEIsQ0FBQyxRQUFRO0FBQ3RDLFdBQUssVUFBVSxpQkFBaUIsSUFBSSxVQUFVLE1BQU0sVUFBVSxPQUFPO0FBQUEsSUFDdkUsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVTywyQkFDTCxNQUNBLFVBQ0EsU0FDTTtBQUNOLFNBQUssMEJBQTBCLENBQUMsUUFBUTtBQUN0QyxXQUFLLFVBQVUsaUJBQWlCLEtBQUssTUFBTSxVQUFVLE9BQU87QUFBQSxJQUM5RCxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLDBCQUEwQixtQkFBZ0Q7QUFDL0UsVUFBTSxhQUFhO0FBQ25CLHNCQUFrQixVQUFVO0FBRTVCLFNBQUssSUFBSSxVQUFVLGNBQWMsTUFBTTtBQUNyQyxpQkFBVyxXQUFPLG1DQUFpQixLQUFLLEdBQUcsR0FBRztBQUM1QyxZQUFJLFFBQVEsWUFBWTtBQUN0QjtBQUFBLFFBQ0Y7QUFFQSwwQkFBa0IsR0FBRztBQUFBLE1BQ3ZCO0FBRUEsV0FBSyxVQUFVLGNBQWMsS0FBSyxJQUFJLFVBQVUsR0FBRyxlQUFlLENBQUMsb0JBQW9CO0FBQ3JGLDBCQUFrQixnQkFBZ0IsR0FBRztBQUFBLE1BQ3ZDLENBQUMsQ0FBQztBQUFBLElBQ0osQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Handles registering DOM events and handlers for all windows (main window and all existing/future popup windows) and their documents.
5
+ */
6
+ import type { App, Component } from 'obsidian';
7
+ /**
8
+ * Handles registering DOM events and handlers for all windows (main window and all existing/future popup windows) and their documents.
9
+ */
10
+ export declare class AllWindowsEventHandler {
11
+ private readonly app;
12
+ private readonly component;
13
+ /**
14
+ * Creates a new instance of the `AllWindowsEventHandler` class.
15
+ *
16
+ * @param app - The Obsidian app instance.
17
+ * @param component - The component to register the event on.
18
+ */
19
+ constructor(app: App, component: Component);
20
+ /**
21
+ * Registers a DOM event for all documents (main window document and all existing/future popup window documents).
22
+ *
23
+ * @typeParam DocumentEventType - The type of the event.
24
+ * @param type - The type of the event.
25
+ * @param callback - The callback to execute.
26
+ * @param options - The options for the event.
27
+ */
28
+ registerAllDocumentsDomEvent<DocumentEventType extends keyof DocumentEventMap>(type: DocumentEventType, callback: (this: HTMLElement, evt: DocumentEventMap[DocumentEventType]) => unknown, options?: AddEventListenerOptions | boolean): void;
29
+ /**
30
+ * Registers a DOM event for all windows (main window and all existing/future popup windows).
31
+ *
32
+ * @typeParam WindowEventType - The type of the event.
33
+ * @param type - The type of the event.
34
+ * @param callback - The callback to execute.
35
+ * @param options - The options for the event.
36
+ */
37
+ registerAllWindowsDomEvent<WindowEventType extends keyof WindowEventMap>(type: WindowEventType, callback: (this: HTMLElement, evt: WindowEventMap[WindowEventType]) => unknown, options?: AddEventListenerOptions | boolean): void;
38
+ /**
39
+ * Registers a handler for all windows (main window and all existing/future popup windows).
40
+ *
41
+ * @param allWindowsHandler - The handler for all windows.
42
+ */
43
+ registerAllWindowsHandler(allWindowsHandler: (win: Window) => void): void;
44
+ }
@@ -126,7 +126,12 @@ __export(async_events_component_exports, {
126
126
  });
127
127
  module.exports = __toCommonJS(async_events_component_exports);
128
128
  var import_obsidian = require('obsidian');
129
+ var import_async_events = require('../../async-events.cjs');
129
130
  class AsyncEventsComponent extends import_obsidian.Component {
131
+ /**
132
+ * The async events.
133
+ */
134
+ asyncEvents = new import_async_events.AsyncEvents();
130
135
  /**
131
136
  * Registers an async event.
132
137
  *
@@ -146,4 +151,4 @@ function registerAsyncEvent(component, eventRef) {
146
151
  AsyncEventsComponent,
147
152
  registerAsyncEvent
148
153
  });
149
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCBhbmQgYSBoZWxwZXIgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgYXN5bmMgZXZlbnRzLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBBc3luY0V2ZW50UmVmIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGNhbiByZWdpc3RlciBhc3luYyBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3luY0V2ZW50c0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gYXN5bmMgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudFJlZiAtIFRoZSBldmVudCByZWZlcmVuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJBc3luY0V2ZW50KGV2ZW50UmVmOiBBc3luY0V2ZW50UmVmKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMsIGV2ZW50UmVmKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBhc3luYyBldmVudC5cbiAqXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBldmVudFJlZiAtIFRoZSBldmVudCByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFzeW5jRXZlbnQoY29tcG9uZW50OiBDb21wb25lbnQsIGV2ZW50UmVmOiBBc3luY0V2ZW50UmVmKTogdm9pZCB7XG4gIGNvbXBvbmVudC5yZWdpc3RlcigoKSA9PiB7XG4gICAgZXZlbnRSZWYuYXN5bmNFdmVudHMub2ZmcmVmKGV2ZW50UmVmKTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBQTBCO0FBT25CLE1BQU0sNkJBQTZCLDBCQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTTNDLG1CQUFtQixVQUErQjtBQUN2RCx1QkFBbUIsTUFBTSxRQUFRO0FBQUEsRUFDbkM7QUFDRjtBQVFPLFNBQVMsbUJBQW1CLFdBQXNCLFVBQStCO0FBQ3RGLFlBQVUsU0FBUyxNQUFNO0FBQ3ZCLGFBQVMsWUFBWSxPQUFPLFFBQVE7QUFBQSxFQUN0QyxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
154
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCBhbmQgYSBoZWxwZXIgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgYXN5bmMgZXZlbnRzLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBBc3luY0V2ZW50UmVmIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9hc3luYy1ldmVudHMudHMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgY2FuIHJlZ2lzdGVyIGFzeW5jIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzeW5jRXZlbnRzQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBhc3luYyBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXN5bmNFdmVudHMgPSBuZXcgQXN5bmNFdmVudHMoKTtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIGFzeW5jIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRSZWYgLSBUaGUgZXZlbnQgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyQXN5bmNFdmVudChldmVudFJlZjogQXN5bmNFdmVudFJlZik6IHZvaWQge1xuICAgIHJlZ2lzdGVyQXN5bmNFdmVudCh0aGlzLCBldmVudFJlZik7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYW4gYXN5bmMgZXZlbnQuXG4gKlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gZXZlbnRSZWYgLSBUaGUgZXZlbnQgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJBc3luY0V2ZW50KGNvbXBvbmVudDogQ29tcG9uZW50LCBldmVudFJlZjogQXN5bmNFdmVudFJlZik6IHZvaWQge1xuICBjb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIGV2ZW50UmVmLmFzeW5jRXZlbnRzLm9mZnJlZihldmVudFJlZik7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHNCQUEwQjtBQUkxQiwwQkFBNEI7QUFLckIsTUFBTSw2QkFBNkIsMEJBQVU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlsQyxjQUFjLElBQUksZ0NBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPdkMsbUJBQW1CLFVBQStCO0FBQ3ZELHVCQUFtQixNQUFNLFFBQVE7QUFBQSxFQUNuQztBQUNGO0FBUU8sU0FBUyxtQkFBbUIsV0FBc0IsVUFBK0I7QUFDdEYsWUFBVSxTQUFTLE1BQU07QUFDdkIsYUFBUyxZQUFZLE9BQU8sUUFBUTtBQUFBLEVBQ3RDLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -5,10 +5,15 @@
5
5
  */
6
6
  import { Component } from 'obsidian';
7
7
  import type { AsyncEventRef } from '../../async-events.cjs';
8
+ import { AsyncEvents } from '../../async-events.cjs';
8
9
  /**
9
10
  * A component that can register async events.
10
11
  */
11
12
  export declare class AsyncEventsComponent extends Component {
13
+ /**
14
+ * The async events.
15
+ */
16
+ readonly asyncEvents: AsyncEvents;
12
17
  /**
13
18
  * Registers an async event.
14
19
  *
@@ -131,15 +131,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
131
131
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
132
132
  var components_exports = {};
133
133
  __export(components_exports, {
134
+ all_windows_event_handler: () => all_windows_event_handler,
134
135
  async_events_component: () => async_events_component,
135
136
  setting_components: () => setting_components
136
137
  });
137
138
  module.exports = __toCommonJS(components_exports);
139
+ var all_windows_event_handler = __toESM(__extractDefault(require('./all-windows-event-handler.cjs')), 1);
138
140
  var async_events_component = __toESM(__extractDefault(require('./async-events-component.cjs')), 1);
139
141
  var setting_components = __toESM(__extractDefault(require('./setting-components/index.cjs')), 1);
140
142
  // Annotate the CommonJS export names for ESM import in node:
141
143
  0 && (module.exports = {
144
+ all_windows_event_handler,
142
145
  async_events_component,
143
146
  setting_components
144
147
  });
145
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyBhc3luY19ldmVudHNfY29tcG9uZW50IGZyb20gJy4vYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBzZXR0aW5nX2NvbXBvbmVudHMgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSw2QkFBd0M7QUFDeEMseUJBQW9DOyIsCiAgIm5hbWVzIjogW10KfQo=
148
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyBhbGxfd2luZG93c19ldmVudF9oYW5kbGVyIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyBhc3luY19ldmVudHNfY29tcG9uZW50IGZyb20gJy4vYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBzZXR0aW5nX2NvbXBvbmVudHMgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLGdDQUEyQztBQUMzQyw2QkFBd0M7QUFDeEMseUJBQW9DOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,2 +1,3 @@
1
+ export * as all_windows_event_handler from './all-windows-event-handler.cjs';
1
2
  export * as async_events_component from './async-events-component.cjs';
2
3
  export * as setting_components from './setting-components/index.cjs';
@@ -130,10 +130,10 @@ var import_async = require('../../async.cjs');
130
130
  var import_debug = require('../../debug.cjs');
131
131
  var import_error = require('../../error.cjs');
132
132
  var import_function = require('../../function.cjs');
133
+ var import_all_windows_event_handler = require('../components/all-windows-event-handler.cjs');
133
134
  var import_async_events_component = require('../components/async-events-component.cjs');
134
135
  var import_i18n = require('../i18n/i18n.cjs');
135
136
  var import_translationsMap = require('../i18n/locales/translationsMap.cjs');
136
- var import_workspace = require('../workspace.cjs');
137
137
  var import_plugin_context = require('./plugin-context.cjs');
138
138
  class PluginBase extends import_obsidian.Plugin {
139
139
  /**
@@ -244,26 +244,6 @@ class PluginBase extends import_obsidian.Plugin {
244
244
  }
245
245
  });
246
246
  }
247
- /**
248
- * Registers a DOM window handler.
249
- *
250
- * @param domWindowHandler - The DOM window handler.
251
- */
252
- registerDomWindowHandler(domWindowHandler) {
253
- const mainWindow = window;
254
- domWindowHandler(mainWindow);
255
- this.app.workspace.onLayoutReady(() => {
256
- for (const win of (0, import_workspace.getAllDomWindows)(this.app)) {
257
- if (win === mainWindow) {
258
- continue;
259
- }
260
- domWindowHandler(win);
261
- }
262
- this.registerEvent(this.app.workspace.on("window-open", (workspaceWindow) => {
263
- domWindowHandler(workspaceWindow.win);
264
- }));
265
- });
266
- }
267
247
  /**
268
248
  * Registers a callback to be executed when a lifecycle event is triggered.
269
249
  *
@@ -276,32 +256,6 @@ class PluginBase extends import_obsidian.Plugin {
276
256
  await callback();
277
257
  });
278
258
  }
279
- /**
280
- * Registers a DOM event for all popup window documents.
281
- *
282
- * @typeParam DocumentEventType - The type of the event.
283
- * @param type - The type of the event.
284
- * @param callback - The callback to execute.
285
- * @param options - The options for the event.
286
- */
287
- registerPopupDocumentDomEvent(type, callback, options) {
288
- this.registerDomWindowHandler((win) => {
289
- this.registerDomEvent(win.document, type, callback, options);
290
- });
291
- }
292
- /**
293
- * Registers a DOM event for all popup windows.
294
- *
295
- * @typeParam WindowEventType - The type of the event.
296
- * @param type - The type of the event.
297
- * @param callback - The callback to execute.
298
- * @param options - The options for the event.
299
- */
300
- registerPopupWindowDomEvent(type, callback, options) {
301
- this.registerDomWindowHandler((win) => {
302
- this.registerDomEvent(win, type, callback, options);
303
- });
304
- }
305
259
  /**
306
260
  * Waits for a lifecycle event to be triggered.
307
261
  *
@@ -369,7 +323,7 @@ class PluginBase extends import_obsidian.Plugin {
369
323
  */
370
324
  async onloadImpl() {
371
325
  (0, import_plugin_context.initPluginContext)(this.app, this.manifest.id);
372
- this.registerDomWindowHandler((win) => {
326
+ new import_all_windows_event_handler.AllWindowsEventHandler(this.app, this).registerAllWindowsHandler((win) => {
373
327
  (0, import_plugin_context.initDebugController)(win);
374
328
  });
375
329
  await (0, import_i18n.initI18N)(this.createTranslationsMap());
@@ -450,4 +404,4 @@ ${message}`);
450
404
  0 && (module.exports = {
451
405
  PluginBase
452
406
  });
453
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tYmFzZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNsYXNzIHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgbWFuYWdpbmcgcGx1Z2luIHNldHRpbmdzLCBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIGFuZCBoYW5kbGluZyBlcnJvcnMuXG4gKiBTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgbWV0aG9kcyB0byBjcmVhdGUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgc2V0dGluZ3MgdGFicywgYW5kIGNvbXBsZXRlIHBsdWdpbi1zcGVjaWZpY1xuICogbG9hZGluZyB0YXNrcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlYWRvbmx5RGVlcCB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luIGFzIE9ic2lkaWFuUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0UGx1Z2luU2V0dGluZ3MsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc01hbmFnZXIsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYixcbiAgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyLFxuICBQbHVnaW5UeXBlc0Jhc2Vcbn0gZnJvbSAnLi9wbHVnaW4tdHlwZXMtYmFzZS50cyc7XG5cbmltcG9ydCB7IEFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHksXG4gIGludm9rZUFzeW5jU2FmZWx5QWZ0ZXJEZWxheVxufSBmcm9tICcuLi8uLi9hc3luYy50cyc7XG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcixcbiAgU2lsZW50RXJyb3Jcbn0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJBc3luY0V2ZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmltcG9ydCB7XG4gIGluaXRJMThOLFxuICB0XG59IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJhbnNsYXRpb25zTWFwIH0gZnJvbSAnLi4vaTE4bi9sb2NhbGVzL3RyYW5zbGF0aW9uc01hcC50cyc7XG5pbXBvcnQgeyBnZXRBbGxEb21XaW5kb3dzIH0gZnJvbSAnLi4vd29ya3NwYWNlLnRzJztcbmltcG9ydCB7XG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG50eXBlIExpZmVjeWNsZUV2ZW50TmFtZSA9ICdsYXlvdXRSZWFkeScgfCAnbG9hZCcgfCAndW5sb2FkJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYnVpbHQtaW4gc3VwcG9ydCBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luVHlwZXMgLSBQbHVnaW4tc3BlY2lmaWMgdHlwZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlPFBsdWdpblR5cGVzIGV4dGVuZHMgUGx1Z2luVHlwZXNCYXNlPiBleHRlbmRzIE9ic2lkaWFuUGx1Z2luIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudHMgb2YgdGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBldmVudHMgPSBuZXcgQXN5bmNFdmVudHMoKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqIEB0aHJvd3MgSWYgdGhlIGFib3J0IHNpZ25hbCBpcyBub3QgZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIGlmICghdGhpcy5fYWJvcnRTaWduYWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWJvcnQgc2lnbmFsIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hYm9ydFNpZ25hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByZWFkb25seSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWFkb25seSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IFJlYWRvbmx5RGVlcDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NNYW5hZ2VyLnNldHRpbmdzV3JhcHBlci5zYWZlU2V0dGluZ3MgYXMgUmVhZG9ubHlEZWVwPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzTWFuYWdlcigpOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NNYW5hZ2VyPFBsdWdpblR5cGVzPiB7XG4gICAgaWYgKCF0aGlzLl9zZXR0aW5nc01hbmFnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3MgbWFuYWdlciBub3QgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zZXR0aW5nc01hbmFnZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzVGFiKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYjxQbHVnaW5UeXBlcz4ge1xuICAgIGlmICghdGhpcy5fc2V0dGluZ3NUYWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3MgdGFiIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzVGFiO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgcHJpdmF0ZSBfc2V0dGluZ3NNYW5hZ2VyOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NNYW5hZ2VyPFBsdWdpblR5cGVzPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zZXR0aW5nc1RhYjogRXh0cmFjdFBsdWdpblNldHRpbmdzVGFiPFBsdWdpblR5cGVzPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGxpZmVjeWNsZUV2ZW50TmFtZXMgPSBuZXcgU2V0PExpZmVjeWNsZUV2ZW50TmFtZT4oKTtcbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBVc2UgaW5zdGVhZCBvZiBgY29uc29sZS5kZWJ1ZygpYC5cbiAgICpcbiAgICogVGhvc2UgbWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0LCBidXQgdGhleSBjYW4gYmUgc2hvd24gYnkgZW5hYmxpbmcgYHlvdXItcGx1Z2luLWlkYCBkZWJ1Z2dlciBuYW1lc3BhY2UuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvYmxvYi9tYWluL2RvY3MvZGVidWdnaW5nLm1kfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2cuXG4gICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBsb2cuXG4gICAqL1xuICBwdWJsaWMgY29uc29sZURlYnVnKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgLy8gU2tpcCB0aGUgYGNvbnNvbGVEZWJ1ZygpYCBjYWxsIGl0c2VsZlxuICAgIGNvbnN0IEZSQU1FU19UT19TS0lQID0gMTtcbiAgICBjb25zdCBwbHVnaW5EZWJ1Z2dlciA9IGdldERlYnVnZ2VyKHRoaXMubWFuaWZlc3QuaWQsIEZSQU1FU19UT19TS0lQKTtcbiAgICBwbHVnaW5EZWJ1Z2dlcihtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBVc3VhbGx5LCB5b3UgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZC4gQ29uc2lkZXIgdXNpbmcge0BsaW5rIG9uTG9hZFNldHRpbmdzfSBpbnN0ZWFkLlxuICAgKlxuICAgKiBJZiB5b3Ugc3RpbGwgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlPy4oKTtcbiAgICBhd2FpdCB0aGlzLl9zZXR0aW5nc01hbmFnZXI/LmxvYWRGcm9tRmlsZShmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWRcbiAgICpcbiAgICogVXN1YWxseSwgeW91IGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2QuIENvbnNpZGVyIHVzaW5nIHtAbGluayBvbmxvYWRJbXBsfSBpbnN0ZWFkLlxuICAgKlxuICAgKiBJZiB5b3Ugc3RpbGwgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9ubG9hZCgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25sb2FkKCk7XG4gICAgYXdhaXQgdGhpcy5vbmxvYWRJbXBsKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5KHRoaXMuYWZ0ZXJMb2FkLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgdW5sb2FkZWQuXG4gICAqXG4gICAqIFVzdWFsbHksIHlvdSBkb24ndCBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiBDb25zaWRlciB1c2luZyB7QGxpbmsgb251bmxvYWRJbXBsfSBpbnN0ZWFkLlxuICAgKlxuICAgKiBJZiB5b3Ugc3RpbGwgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIGNhbGwgYHN1cGVyLm9udW5sb2FkKClgIGZpcnN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9udW5sb2FkKCk6IHZvaWQge1xuICAgIHN1cGVyLm9udW5sb2FkKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5vbnVubG9hZEltcGwoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCd1bmxvYWQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBET00gd2luZG93IGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBkb21XaW5kb3dIYW5kbGVyIC0gVGhlIERPTSB3aW5kb3cgaGFuZGxlci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckRvbVdpbmRvd0hhbmRsZXIoZG9tV2luZG93SGFuZGxlcjogKHdpbjogV2luZG93KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgbWFpbldpbmRvdyA9IHdpbmRvdztcbiAgICBkb21XaW5kb3dIYW5kbGVyKG1haW5XaW5kb3cpO1xuXG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCB3aW4gb2YgZ2V0QWxsRG9tV2luZG93cyh0aGlzLmFwcCkpIHtcbiAgICAgICAgaWYgKHdpbiA9PT0gbWFpbldpbmRvdykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZG9tV2luZG93SGFuZGxlcih3aW4pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAud29ya3NwYWNlLm9uKCd3aW5kb3ctb3BlbicsICh3b3Jrc3BhY2VXaW5kb3cpID0+IHtcbiAgICAgICAgZG9tV2luZG93SGFuZGxlcih3b3Jrc3BhY2VXaW5kb3cud2luKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayB0byBiZSBleGVjdXRlZCB3aGVuIGEgbGlmZWN5Y2xlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRm9yTGlmZWN5Y2xlRXZlbnQobmFtZTogTGlmZWN5Y2xlRXZlbnROYW1lLCBjYWxsYmFjazogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICAgIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvckxpZmVjeWNsZUV2ZW50KG5hbWUpO1xuICAgICAgYXdhaXQgY2FsbGJhY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBET00gZXZlbnQgZm9yIGFsbCBwb3B1cCB3aW5kb3cgZG9jdW1lbnRzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIERvY3VtZW50RXZlbnRUeXBlIC0gVGhlIHR5cGUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclBvcHVwRG9jdW1lbnREb21FdmVudDxEb2N1bWVudEV2ZW50VHlwZSBleHRlbmRzIGtleW9mIERvY3VtZW50RXZlbnRNYXA+KFxuICAgIHR5cGU6IERvY3VtZW50RXZlbnRUeXBlLFxuICAgIGNhbGxiYWNrOiAodGhpczogSFRNTEVsZW1lbnQsIGV2dDogRG9jdW1lbnRFdmVudE1hcFtEb2N1bWVudEV2ZW50VHlwZV0pID0+IHVua25vd24sXG4gICAgb3B0aW9ucz86IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIHwgYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyRG9tV2luZG93SGFuZGxlcigod2luKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyRG9tRXZlbnQod2luLmRvY3VtZW50LCB0eXBlLCBjYWxsYmFjaywgb3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgRE9NIGV2ZW50IGZvciBhbGwgcG9wdXAgd2luZG93cy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBXaW5kb3dFdmVudFR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSB0eXBlIC0gVGhlIHR5cGUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gZXhlY3V0ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyUG9wdXBXaW5kb3dEb21FdmVudDxXaW5kb3dFdmVudFR5cGUgZXh0ZW5kcyBrZXlvZiBXaW5kb3dFdmVudE1hcD4oXG4gICAgdHlwZTogV2luZG93RXZlbnRUeXBlLFxuICAgIGNhbGxiYWNrOiAodGhpczogSFRNTEVsZW1lbnQsIGV2dDogV2luZG93RXZlbnRNYXBbV2luZG93RXZlbnRUeXBlXSkgPT4gdW5rbm93bixcbiAgICBvcHRpb25zPzogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgfCBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJEb21XaW5kb3dIYW5kbGVyKCh3aW4pID0+IHtcbiAgICAgIHRoaXMucmVnaXN0ZXJEb21FdmVudCh3aW4sIHR5cGUsIGNhbGxiYWNrLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0cyBmb3IgYSBsaWZlY3ljbGUgZXZlbnQgdG8gYmUgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBJZiB5b3UgYGF3YWl0YCB0aGlzIG1ldGhvZCBkdXJpbmcgbGlmZWN5Y2xlIGV2ZW50LCBpdCBtaWdodCBjYXVzZSBhIGRlYWRsb2NrLlxuICAgKlxuICAgKiBDb25zaWRlciB3cmFwcGluZyB0aGlzIGNhbGwgd2l0aCB7QGxpbmsgaW52b2tlQXN5bmNTYWZlbHl9LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2FpdEZvckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmxpZmVjeWNsZUV2ZW50TmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzLm9uY2UobmFtZSwgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MgbWFuYWdlci4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc01hbmFnZXI8UGx1Z2luVHlwZXM+IHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyB0YWIgb3IgYG51bGxgIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVNldHRpbmdzVGFiKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYjxQbHVnaW5UeXBlcz4gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdHJhbnNsYXRpb25zIG1hcC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHRyYW5zbGF0aW9ucyBtYXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlVHJhbnNsYXRpb25zTWFwKCk6IFRyYW5zbGF0aW9uc01hcDxQbHVnaW5UeXBlcz4ge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNsYXRpb25zTWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFuIGFzeW5jIGVycm9yIG9jY3Vycy5cbiAgICpcbiAgICogQHBhcmFtIF9hc3luY0Vycm9yIC0gVGhlIGFzeW5jIGVycm9yLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUFzeW5jRXJyb3IoX2FzeW5jRXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnNob3dOb3RpY2UodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLm5vdGljZXMudW5oYW5kbGVkRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogSWYgdGhpcyBtZXRob2QgZmFpbHMsIHRoZSBwbHVnaW4gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVubG9hZGVkLlxuICAgKlxuICAgKiBAcmVtYXJrcyBJdCBpcyBpbXBvcnRhbnQgdG8gY2FsbCBgc3VwZXIub25sb2FkSW1wbCgpYCBpbiBvdmVycmlkZGVuIG1ldGhvZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbmxvYWRJbXBsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGluaXRQbHVnaW5Db250ZXh0KHRoaXMuYXBwLCB0aGlzLm1hbmlmZXN0LmlkKTtcbiAgICB0aGlzLnJlZ2lzdGVyRG9tV2luZG93SGFuZGxlcigod2luKSA9PiB7XG4gICAgICBpbml0RGVidWdDb250cm9sbGVyKHdpbik7XG4gICAgfSk7XG4gICAgYXdhaXQgaW5pdEkxOE48UGx1Z2luVHlwZXM+KHRoaXMuY3JlYXRlVHJhbnNsYXRpb25zTWFwKCkpO1xuXG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIodGhpcy5oYW5kbGVBc3luY0Vycm9yLmJpbmQodGhpcykpKTtcblxuICAgIHRoaXMuX3NldHRpbmdzTWFuYWdlciA9IHRoaXMuY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk7XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzTWFuYWdlcikge1xuICAgICAgcmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMsIHRoaXMuX3NldHRpbmdzTWFuYWdlci5vbignbG9hZFNldHRpbmdzJywgdGhpcy5vbkxvYWRTZXR0aW5ncy5iaW5kKHRoaXMpKSk7XG4gICAgICByZWdpc3RlckFzeW5jRXZlbnQodGhpcywgdGhpcy5fc2V0dGluZ3NNYW5hZ2VyLm9uKCdzYXZlU2V0dGluZ3MnLCB0aGlzLm9uU2F2ZVNldHRpbmdzLmJpbmQodGhpcykpKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLl9zZXR0aW5nc01hbmFnZXI/LmxvYWRGcm9tRmlsZSh0cnVlKTtcbiAgICB0aGlzLl9zZXR0aW5nc1RhYiA9IHRoaXMuY3JlYXRlU2V0dGluZ3NUYWIoKTtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3NUYWIpIHtcbiAgICAgIHRoaXMuYWRkU2V0dGluZ1RhYih0aGlzLl9zZXR0aW5nc1RhYik7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydChuZXcgU2lsZW50RXJyb3IoYFBsdWdpbiAke3RoaXMubWFuaWZlc3QuaWR9IGhhZCBiZWVuIHVubG9hZGVkYCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIGxvYWRlZCBvciByZWxvYWRlZC5cbiAgICpcbiAgICogQHBhcmFtIF9sb2FkZWRTZXR0aW5ncyAtIFRoZSBsb2FkZWQgc2V0dGluZ3Mgd3JhcHBlci5cbiAgICogQHBhcmFtIF9pc0luaXRpYWxMb2FkIC0gV2hldGhlciB0aGUgc2V0dGluZ3MgYXJlIGJlaW5nIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25Mb2FkU2V0dGluZ3MoX2xvYWRlZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LCBfaXNJbml0aWFsTG9hZDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKlxuICAgKiBAcGFyYW0gX25ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncy5cbiAgICogQHBhcmFtIF9vbGRTZXR0aW5ncyAtIFRoZSBvbGQgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBfY29udGV4dCAtIFRoZSBjb250ZXh0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uU2F2ZVNldHRpbmdzKFxuICAgIF9uZXdTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICBfb2xkU2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgX2NvbnRleHQ6IHVua25vd25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbnVubG9hZEltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFmdGVyTG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hYm9ydFNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHRoaXMudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCdsb2FkJyk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoY29udmVydEFzeW5jVG9TeW5jKHRoaXMub25MYXlvdXRSZWFkeUJhc2UuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxheW91dFJlYWR5QmFzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vbkxheW91dFJlYWR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCdsYXlvdXRSZWFkeScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJpZ2dlckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnROYW1lcy5hZGQobmFtZSk7XG4gICAgYXdhaXQgdGhpcy5ldmVudHMudHJpZ2dlckFzeW5jKG5hbWUpO1xuICB9XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSxzQkFHTztBQVdQLDBCQUE0QjtBQUM1QixtQkFJTztBQUNQLG1CQUE0QjtBQUM1QixtQkFHTztBQUNQLHNCQUEwQjtBQUMxQixvQ0FBbUM7QUFDbkMsa0JBR087QUFDUCw2QkFBdUM7QUFDdkMsdUJBQWlDO0FBQ2pDLDRCQUdPO0FBU0EsTUFBZSxtQkFBd0QsZ0JBQUFBLE9BQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUkzRSxTQUFTLElBQUksZ0NBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVF6QyxJQUFXLGNBQTJCO0FBQ3BDLFFBQUksQ0FBQyxLQUFLLGNBQWM7QUFDdEIsWUFBTSxJQUFJLE1BQU0sMEJBQTBCO0FBQUEsSUFDNUM7QUFDQSxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxXQUE2RDtBQUN0RSxXQUFPLEtBQUssZ0JBQWdCLGdCQUFnQjtBQUFBLEVBQzlDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxrQkFBNkQ7QUFDdEUsUUFBSSxDQUFDLEtBQUssa0JBQWtCO0FBQzFCLFlBQU0sSUFBSSxNQUFNLDhCQUE4QjtBQUFBLElBQ2hEO0FBRUEsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsY0FBcUQ7QUFDOUQsUUFBSSxDQUFDLEtBQUssY0FBYztBQUN0QixZQUFNLElBQUksTUFBTSwwQkFBMEI7QUFBQSxJQUM1QztBQUVBLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVRO0FBQUEsRUFDQSxtQkFBcUU7QUFBQSxFQUNyRSxlQUE2RDtBQUFBLEVBQ3BELHNCQUFzQixvQkFBSSxJQUF3QjtBQUFBLEVBQzNEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFjRCxhQUFhLFlBQW9CLE1BQXVCO0FBRTdELFVBQU0saUJBQWlCO0FBQ3ZCLFVBQU0scUJBQWlCLDBCQUFZLEtBQUssU0FBUyxJQUFJLGNBQWM7QUFDbkUsbUJBQWUsU0FBUyxHQUFHLElBQUk7QUFBQSxFQUNqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxNQUFzQiwyQkFBMEM7QUFDOUQsVUFBTSxNQUFNLDJCQUEyQjtBQUN2QyxVQUFNLEtBQUssa0JBQWtCLGFBQWEsS0FBSztBQUFBLEVBQ2pEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLE1BQXNCLFNBQXdCO0FBQzVDLFVBQU0sTUFBTSxPQUFPO0FBQ25CLFVBQU0sS0FBSyxXQUFXO0FBQ3RCLGtEQUE0QixLQUFLLFVBQVUsS0FBSyxJQUFJLENBQUM7QUFBQSxFQUN2RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTZ0IsV0FBaUI7QUFDL0IsVUFBTSxTQUFTO0FBQ2Ysd0NBQWtCLFlBQVk7QUFDNUIsVUFBSTtBQUNGLGNBQU0sS0FBSyxhQUFhO0FBQUEsTUFDMUIsVUFBRTtBQUNBLGNBQU0sS0FBSyxzQkFBc0IsUUFBUTtBQUFBLE1BQzNDO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLHlCQUF5QixrQkFBK0M7QUFDN0UsVUFBTSxhQUFhO0FBQ25CLHFCQUFpQixVQUFVO0FBRTNCLFNBQUssSUFBSSxVQUFVLGNBQWMsTUFBTTtBQUNyQyxpQkFBVyxXQUFPLG1DQUFpQixLQUFLLEdBQUcsR0FBRztBQUM1QyxZQUFJLFFBQVEsWUFBWTtBQUN0QjtBQUFBLFFBQ0Y7QUFFQSx5QkFBaUIsR0FBRztBQUFBLE1BQ3RCO0FBRUEsV0FBSyxjQUFjLEtBQUssSUFBSSxVQUFVLEdBQUcsZUFBZSxDQUFDLG9CQUFvQjtBQUMzRSx5QkFBaUIsZ0JBQWdCLEdBQUc7QUFBQSxNQUN0QyxDQUFDLENBQUM7QUFBQSxJQUNKLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTywwQkFBMEIsTUFBMEIsVUFBcUM7QUFDOUYsd0NBQWtCLFlBQVk7QUFDNUIsWUFBTSxLQUFLLHNCQUFzQixJQUFJO0FBQ3JDLFlBQU0sU0FBUztBQUFBLElBQ2pCLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVU8sOEJBQ0wsTUFDQSxVQUNBLFNBQ007QUFDTixTQUFLLHlCQUF5QixDQUFDLFFBQVE7QUFDckMsV0FBSyxpQkFBaUIsSUFBSSxVQUFVLE1BQU0sVUFBVSxPQUFPO0FBQUEsSUFDN0QsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVTyw0QkFDTCxNQUNBLFVBQ0EsU0FDTTtBQUNOLFNBQUsseUJBQXlCLENBQUMsUUFBUTtBQUNyQyxXQUFLLGlCQUFpQixLQUFLLE1BQU0sVUFBVSxPQUFPO0FBQUEsSUFDcEQsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBWUEsTUFBYSxzQkFBc0IsTUFBeUM7QUFDMUUsUUFBSSxLQUFLLG9CQUFvQixJQUFJLElBQUksR0FBRztBQUN0QztBQUFBLElBQ0Y7QUFFQSxVQUFNLElBQUksUUFBYyxDQUFDLFlBQVk7QUFDbkMsV0FBSyxPQUFPLEtBQUssTUFBTSxNQUFNO0FBQzNCLGdCQUFRO0FBQUEsTUFDVixDQUFDO0FBQUEsSUFDSCxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLHdCQUEwRTtBQUNsRixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLG9CQUFrRTtBQUMxRSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLHdCQUFzRDtBQUM5RCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLGlCQUFpQixhQUE0QjtBQUNyRCxTQUFLLGVBQVcsZUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxjQUFjLENBQUM7QUFBQSxFQUNyRTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBZ0IsZ0JBQStCO0FBQzdDLGNBQU0sMkJBQVU7QUFBQSxFQUNsQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxNQUFnQixhQUE0QjtBQUMxQyxpREFBa0IsS0FBSyxLQUFLLEtBQUssU0FBUyxFQUFFO0FBQzVDLFNBQUsseUJBQXlCLENBQUMsUUFBUTtBQUNyQyxxREFBb0IsR0FBRztBQUFBLElBQ3pCLENBQUM7QUFDRCxjQUFNLHNCQUFzQixLQUFLLHNCQUFzQixDQUFDO0FBRXhELFNBQUssYUFBUyw2Q0FBK0IsS0FBSyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUU5RSxTQUFLLG1CQUFtQixLQUFLLHNCQUFzQjtBQUNuRCxRQUFJLEtBQUssa0JBQWtCO0FBQ3pCLDREQUFtQixNQUFNLEtBQUssaUJBQWlCLEdBQUcsZ0JBQWdCLEtBQUssZUFBZSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ2pHLDREQUFtQixNQUFNLEtBQUssaUJBQWlCLEdBQUcsZ0JBQWdCLEtBQUssZUFBZSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQUEsSUFDbkc7QUFFQSxVQUFNLEtBQUssa0JBQWtCLGFBQWEsSUFBSTtBQUM5QyxTQUFLLGVBQWUsS0FBSyxrQkFBa0I7QUFDM0MsUUFBSSxLQUFLLGNBQWM7QUFDckIsV0FBSyxjQUFjLEtBQUssWUFBWTtBQUFBLElBQ3RDO0FBRUEsVUFBTSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFDNUMsU0FBSyxlQUFlLGdCQUFnQjtBQUNwQyxTQUFLLFNBQVMsTUFBTTtBQUNsQixzQkFBZ0IsTUFBTSxJQUFJLHlCQUFZLFVBQVUsS0FBSyxTQUFTLEVBQUUsb0JBQW9CLENBQUM7QUFBQSxJQUN2RixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsTUFBZ0IsZUFBZSxpQkFBb0UsZ0JBQXdDO0FBQ3pJLGNBQU0sMkJBQVU7QUFBQSxFQUNsQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxNQUFnQixlQUNkLGNBQ0EsY0FDQSxVQUNlO0FBQ2YsY0FBTSwyQkFBVTtBQUFBLEVBQ2xCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUFnQixlQUE4QjtBQUM1QyxjQUFNLDJCQUFVO0FBQUEsRUFDbEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxXQUFXLFNBQXVCO0FBQzFDLFFBQUksS0FBSyxRQUFRO0FBQ2YsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUNuQjtBQUVBLFNBQUssU0FBUyxJQUFJLHVCQUFPLEdBQUcsS0FBSyxTQUFTLElBQUk7QUFBQSxFQUFLLE9BQU8sRUFBRTtBQUFBLEVBQzlEO0FBQUEsRUFFQSxNQUFjLFlBQTJCO0FBQ3ZDLFFBQUksS0FBSyxZQUFZLFNBQVM7QUFDNUI7QUFBQSxJQUNGO0FBQ0EsVUFBTSxLQUFLLHNCQUFzQixNQUFNO0FBQ3ZDLFNBQUssSUFBSSxVQUFVLGtCQUFjLGlDQUFtQixLQUFLLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQUEsRUFDeEY7QUFBQSxFQUVBLE1BQWMsb0JBQW1DO0FBQy9DLFFBQUk7QUFDRixZQUFNLEtBQUssY0FBYztBQUFBLElBQzNCLFVBQUU7QUFDQSxZQUFNLEtBQUssc0JBQXNCLGFBQWE7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFBQSxFQUVBLE1BQWMsc0JBQXNCLE1BQXlDO0FBQzNFLFNBQUssb0JBQW9CLElBQUksSUFBSTtBQUNqQyxVQUFNLEtBQUssT0FBTyxhQUFhLElBQUk7QUFBQSxFQUNyQztBQUNGOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhblBsdWdpbiJdCn0K
407
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tYmFzZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNsYXNzIHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgbWFuYWdpbmcgcGx1Z2luIHNldHRpbmdzLCBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIGFuZCBoYW5kbGluZyBlcnJvcnMuXG4gKiBTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgbWV0aG9kcyB0byBjcmVhdGUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgc2V0dGluZ3MgdGFicywgYW5kIGNvbXBsZXRlIHBsdWdpbi1zcGVjaWZpY1xuICogbG9hZGluZyB0YXNrcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlYWRvbmx5RGVlcCB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luIGFzIE9ic2lkaWFuUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0UGx1Z2luU2V0dGluZ3MsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc01hbmFnZXIsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYixcbiAgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyLFxuICBQbHVnaW5UeXBlc0Jhc2Vcbn0gZnJvbSAnLi9wbHVnaW4tdHlwZXMtYmFzZS50cyc7XG5cbmltcG9ydCB7IEFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHksXG4gIGludm9rZUFzeW5jU2FmZWx5QWZ0ZXJEZWxheVxufSBmcm9tICcuLi8uLi9hc3luYy50cyc7XG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcixcbiAgU2lsZW50RXJyb3Jcbn0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgQWxsV2luZG93c0V2ZW50SGFuZGxlciB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWxsLXdpbmRvd3MtZXZlbnQtaGFuZGxlci50cyc7XG5pbXBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHtcbiAgaW5pdEkxOE4sXG4gIHRcbn0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGRlZmF1bHRUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zTWFwLnRzJztcbmltcG9ydCB7XG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG50eXBlIExpZmVjeWNsZUV2ZW50TmFtZSA9ICdsYXlvdXRSZWFkeScgfCAnbG9hZCcgfCAndW5sb2FkJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYnVpbHQtaW4gc3VwcG9ydCBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luVHlwZXMgLSBQbHVnaW4tc3BlY2lmaWMgdHlwZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlPFBsdWdpblR5cGVzIGV4dGVuZHMgUGx1Z2luVHlwZXNCYXNlPiBleHRlbmRzIE9ic2lkaWFuUGx1Z2luIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudHMgb2YgdGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBldmVudHMgPSBuZXcgQXN5bmNFdmVudHMoKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqIEB0aHJvd3MgSWYgdGhlIGFib3J0IHNpZ25hbCBpcyBub3QgZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIGlmICghdGhpcy5fYWJvcnRTaWduYWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWJvcnQgc2lnbmFsIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hYm9ydFNpZ25hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByZWFkb25seSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWFkb25seSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IFJlYWRvbmx5RGVlcDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NNYW5hZ2VyLnNldHRpbmdzV3JhcHBlci5zYWZlU2V0dGluZ3MgYXMgUmVhZG9ubHlEZWVwPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzTWFuYWdlcigpOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NNYW5hZ2VyPFBsdWdpblR5cGVzPiB7XG4gICAgaWYgKCF0aGlzLl9zZXR0aW5nc01hbmFnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3MgbWFuYWdlciBub3QgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zZXR0aW5nc01hbmFnZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzVGFiKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYjxQbHVnaW5UeXBlcz4ge1xuICAgIGlmICghdGhpcy5fc2V0dGluZ3NUYWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3MgdGFiIG5vdCBkZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzVGFiO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgcHJpdmF0ZSBfc2V0dGluZ3NNYW5hZ2VyOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NNYW5hZ2VyPFBsdWdpblR5cGVzPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zZXR0aW5nc1RhYjogRXh0cmFjdFBsdWdpblNldHRpbmdzVGFiPFBsdWdpblR5cGVzPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGxpZmVjeWNsZUV2ZW50TmFtZXMgPSBuZXcgU2V0PExpZmVjeWNsZUV2ZW50TmFtZT4oKTtcbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBVc2UgaW5zdGVhZCBvZiBgY29uc29sZS5kZWJ1ZygpYC5cbiAgICpcbiAgICogVGhvc2UgbWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0LCBidXQgdGhleSBjYW4gYmUgc2hvd24gYnkgZW5hYmxpbmcgYHlvdXItcGx1Z2luLWlkYCBkZWJ1Z2dlciBuYW1lc3BhY2UuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvYmxvYi9tYWluL2RvY3MvZGVidWdnaW5nLm1kfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2cuXG4gICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBsb2cuXG4gICAqL1xuICBwdWJsaWMgY29uc29sZURlYnVnKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgLy8gU2tpcCB0aGUgYGNvbnNvbGVEZWJ1ZygpYCBjYWxsIGl0c2VsZlxuICAgIGNvbnN0IEZSQU1FU19UT19TS0lQID0gMTtcbiAgICBjb25zdCBwbHVnaW5EZWJ1Z2dlciA9IGdldERlYnVnZ2VyKHRoaXMubWFuaWZlc3QuaWQsIEZSQU1FU19UT19TS0lQKTtcbiAgICBwbHVnaW5EZWJ1Z2dlcihtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBVc3VhbGx5LCB5b3UgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZC4gQ29uc2lkZXIgdXNpbmcge0BsaW5rIG9uTG9hZFNldHRpbmdzfSBpbnN0ZWFkLlxuICAgKlxuICAgKiBJZiB5b3Ugc3RpbGwgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlPy4oKTtcbiAgICBhd2FpdCB0aGlzLl9zZXR0aW5nc01hbmFnZXI/LmxvYWRGcm9tRmlsZShmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWRcbiAgICpcbiAgICogVXN1YWxseSwgeW91IGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2QuIENvbnNpZGVyIHVzaW5nIHtAbGluayBvbmxvYWRJbXBsfSBpbnN0ZWFkLlxuICAgKlxuICAgKiBJZiB5b3Ugc3RpbGwgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9ubG9hZCgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25sb2FkKCk7XG4gICAgYXdhaXQgdGhpcy5vbmxvYWRJbXBsKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5KHRoaXMuYWZ0ZXJMb2FkLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgdW5sb2FkZWQuXG4gICAqXG4gICAqIFVzdWFsbHksIHlvdSBkb24ndCBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiBDb25zaWRlciB1c2luZyB7QGxpbmsgb251bmxvYWRJbXBsfSBpbnN0ZWFkLlxuICAgKlxuICAgKiBJZiB5b3Ugc3RpbGwgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIGNhbGwgYHN1cGVyLm9udW5sb2FkKClgIGZpcnN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9udW5sb2FkKCk6IHZvaWQge1xuICAgIHN1cGVyLm9udW5sb2FkKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5vbnVubG9hZEltcGwoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCd1bmxvYWQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayB0byBiZSBleGVjdXRlZCB3aGVuIGEgbGlmZWN5Y2xlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRm9yTGlmZWN5Y2xlRXZlbnQobmFtZTogTGlmZWN5Y2xlRXZlbnROYW1lLCBjYWxsYmFjazogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICAgIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvckxpZmVjeWNsZUV2ZW50KG5hbWUpO1xuICAgICAgYXdhaXQgY2FsbGJhY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0cyBmb3IgYSBsaWZlY3ljbGUgZXZlbnQgdG8gYmUgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBJZiB5b3UgYGF3YWl0YCB0aGlzIG1ldGhvZCBkdXJpbmcgbGlmZWN5Y2xlIGV2ZW50LCBpdCBtaWdodCBjYXVzZSBhIGRlYWRsb2NrLlxuICAgKlxuICAgKiBDb25zaWRlciB3cmFwcGluZyB0aGlzIGNhbGwgd2l0aCB7QGxpbmsgaW52b2tlQXN5bmNTYWZlbHl9LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2FpdEZvckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmxpZmVjeWNsZUV2ZW50TmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzLm9uY2UobmFtZSwgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MgbWFuYWdlci4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc01hbmFnZXI8UGx1Z2luVHlwZXM+IHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyB0YWIgb3IgYG51bGxgIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVNldHRpbmdzVGFiKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1RhYjxQbHVnaW5UeXBlcz4gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdHJhbnNsYXRpb25zIG1hcC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHRyYW5zbGF0aW9ucyBtYXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlVHJhbnNsYXRpb25zTWFwKCk6IFRyYW5zbGF0aW9uc01hcDxQbHVnaW5UeXBlcz4ge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNsYXRpb25zTWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFuIGFzeW5jIGVycm9yIG9jY3Vycy5cbiAgICpcbiAgICogQHBhcmFtIF9hc3luY0Vycm9yIC0gVGhlIGFzeW5jIGVycm9yLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUFzeW5jRXJyb3IoX2FzeW5jRXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnNob3dOb3RpY2UodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLm5vdGljZXMudW5oYW5kbGVkRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogSWYgdGhpcyBtZXRob2QgZmFpbHMsIHRoZSBwbHVnaW4gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVubG9hZGVkLlxuICAgKlxuICAgKiBAcmVtYXJrcyBJdCBpcyBpbXBvcnRhbnQgdG8gY2FsbCBgc3VwZXIub25sb2FkSW1wbCgpYCBpbiBvdmVycmlkZGVuIG1ldGhvZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbmxvYWRJbXBsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGluaXRQbHVnaW5Db250ZXh0KHRoaXMuYXBwLCB0aGlzLm1hbmlmZXN0LmlkKTtcbiAgICBuZXcgQWxsV2luZG93c0V2ZW50SGFuZGxlcih0aGlzLmFwcCwgdGhpcykucmVnaXN0ZXJBbGxXaW5kb3dzSGFuZGxlcigod2luKSA9PiB7XG4gICAgICBpbml0RGVidWdDb250cm9sbGVyKHdpbik7XG4gICAgfSk7XG4gICAgYXdhaXQgaW5pdEkxOE48UGx1Z2luVHlwZXM+KHRoaXMuY3JlYXRlVHJhbnNsYXRpb25zTWFwKCkpO1xuXG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIodGhpcy5oYW5kbGVBc3luY0Vycm9yLmJpbmQodGhpcykpKTtcblxuICAgIHRoaXMuX3NldHRpbmdzTWFuYWdlciA9IHRoaXMuY3JlYXRlU2V0dGluZ3NNYW5hZ2VyKCk7XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzTWFuYWdlcikge1xuICAgICAgcmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMsIHRoaXMuX3NldHRpbmdzTWFuYWdlci5vbignbG9hZFNldHRpbmdzJywgdGhpcy5vbkxvYWRTZXR0aW5ncy5iaW5kKHRoaXMpKSk7XG4gICAgICByZWdpc3RlckFzeW5jRXZlbnQodGhpcywgdGhpcy5fc2V0dGluZ3NNYW5hZ2VyLm9uKCdzYXZlU2V0dGluZ3MnLCB0aGlzLm9uU2F2ZVNldHRpbmdzLmJpbmQodGhpcykpKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLl9zZXR0aW5nc01hbmFnZXI/LmxvYWRGcm9tRmlsZSh0cnVlKTtcbiAgICB0aGlzLl9zZXR0aW5nc1RhYiA9IHRoaXMuY3JlYXRlU2V0dGluZ3NUYWIoKTtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3NUYWIpIHtcbiAgICAgIHRoaXMuYWRkU2V0dGluZ1RhYih0aGlzLl9zZXR0aW5nc1RhYik7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydChuZXcgU2lsZW50RXJyb3IoYFBsdWdpbiAke3RoaXMubWFuaWZlc3QuaWR9IGhhZCBiZWVuIHVubG9hZGVkYCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIGxvYWRlZCBvciByZWxvYWRlZC5cbiAgICpcbiAgICogQHBhcmFtIF9sb2FkZWRTZXR0aW5ncyAtIFRoZSBsb2FkZWQgc2V0dGluZ3Mgd3JhcHBlci5cbiAgICogQHBhcmFtIF9pc0luaXRpYWxMb2FkIC0gV2hldGhlciB0aGUgc2V0dGluZ3MgYXJlIGJlaW5nIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25Mb2FkU2V0dGluZ3MoX2xvYWRlZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LCBfaXNJbml0aWFsTG9hZDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKlxuICAgKiBAcGFyYW0gX25ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncy5cbiAgICogQHBhcmFtIF9vbGRTZXR0aW5ncyAtIFRoZSBvbGQgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBfY29udGV4dCAtIFRoZSBjb250ZXh0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uU2F2ZVNldHRpbmdzKFxuICAgIF9uZXdTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICBfb2xkU2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgX2NvbnRleHQ6IHVua25vd25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbnVubG9hZEltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFmdGVyTG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hYm9ydFNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHRoaXMudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCdsb2FkJyk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoY29udmVydEFzeW5jVG9TeW5jKHRoaXMub25MYXlvdXRSZWFkeUJhc2UuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxheW91dFJlYWR5QmFzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vbkxheW91dFJlYWR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCdsYXlvdXRSZWFkeScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJpZ2dlckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnROYW1lcy5hZGQobmFtZSk7XG4gICAgYXdhaXQgdGhpcy5ldmVudHMudHJpZ2dlckFzeW5jKG5hbWUpO1xuICB9XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSxzQkFHTztBQVdQLDBCQUE0QjtBQUM1QixtQkFJTztBQUNQLG1CQUE0QjtBQUM1QixtQkFHTztBQUNQLHNCQUEwQjtBQUMxQix1Q0FBdUM7QUFDdkMsb0NBQW1DO0FBQ25DLGtCQUdPO0FBQ1AsNkJBQXVDO0FBQ3ZDLDRCQUdPO0FBU0EsTUFBZSxtQkFBd0QsZ0JBQUFBLE9BQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUkzRSxTQUFTLElBQUksZ0NBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVF6QyxJQUFXLGNBQTJCO0FB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
@@ -90,12 +90,6 @@ export declare abstract class PluginBase<PluginTypes extends PluginTypesBase> ex
90
90
  * If you still need to override this method, make sure to call `super.onunload()` first.
91
91
  */
92
92
  onunload(): void;
93
- /**
94
- * Registers a DOM window handler.
95
- *
96
- * @param domWindowHandler - The DOM window handler.
97
- */
98
- registerDomWindowHandler(domWindowHandler: (win: Window) => void): void;
99
93
  /**
100
94
  * Registers a callback to be executed when a lifecycle event is triggered.
101
95
  *
@@ -103,24 +97,6 @@ export declare abstract class PluginBase<PluginTypes extends PluginTypesBase> ex
103
97
  * @param callback - The callback to execute.
104
98
  */
105
99
  registerForLifecycleEvent(name: LifecycleEventName, callback: () => Promise<void>): void;
106
- /**
107
- * Registers a DOM event for all popup window documents.
108
- *
109
- * @typeParam DocumentEventType - The type of the event.
110
- * @param type - The type of the event.
111
- * @param callback - The callback to execute.
112
- * @param options - The options for the event.
113
- */
114
- registerPopupDocumentDomEvent<DocumentEventType extends keyof DocumentEventMap>(type: DocumentEventType, callback: (this: HTMLElement, evt: DocumentEventMap[DocumentEventType]) => unknown, options?: AddEventListenerOptions | boolean): void;
115
- /**
116
- * Registers a DOM event for all popup windows.
117
- *
118
- * @typeParam WindowEventType - The type of the event.
119
- * @param type - The type of the event.
120
- * @param callback - The callback to execute.
121
- * @param options - The options for the event.
122
- */
123
- registerPopupWindowDomEvent<WindowEventType extends keyof WindowEventMap>(type: WindowEventType, callback: (this: HTMLElement, evt: WindowEventMap[WindowEventType]) => unknown, options?: AddEventListenerOptions | boolean): void;
124
100
  /**
125
101
  * Waits for a lifecycle event to be triggered.
126
102
  *