obsidian-dev-utils 67.0.0 → 68.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 (140) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/dev/main.js +487 -267
  3. package/dist/lib/cjs/async-events.cjs +178 -18
  4. package/dist/lib/cjs/async-events.d.cts +260 -9
  5. package/dist/lib/cjs/error.cjs +6 -7
  6. package/dist/lib/cjs/function.cjs +6 -2
  7. package/dist/lib/cjs/function.d.cts +6 -0
  8. package/dist/lib/cjs/library.cjs +1 -1
  9. package/dist/lib/cjs/object-utils.cjs +1 -1
  10. package/dist/lib/cjs/object-utils.d.cts +2 -0
  11. package/dist/lib/cjs/obsidian/active-file-provider.cjs +1 -1
  12. package/dist/lib/cjs/obsidian/active-file-provider.d.cts +0 -1
  13. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +4 -4
  14. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +3 -3
  15. package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +3 -7
  16. package/dist/lib/cjs/obsidian/components/abort-signal-component.d.cts +2 -6
  17. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +3 -3
  18. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +2 -2
  19. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +3 -7
  20. package/dist/lib/cjs/obsidian/components/async-error-handler-component.d.cts +2 -6
  21. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +2 -20
  22. package/dist/lib/cjs/obsidian/components/async-events-component.d.cts +1 -18
  23. package/dist/lib/cjs/obsidian/components/component-ex.cjs +235 -0
  24. package/dist/lib/cjs/obsidian/components/component-ex.d.cts +55 -0
  25. package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +3 -7
  26. package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +2 -6
  27. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +1 -9
  28. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +0 -10
  29. package/dist/lib/cjs/obsidian/components/i18n-component.cjs +4 -8
  30. package/dist/lib/cjs/obsidian/components/i18n-component.d.cts +3 -7
  31. package/dist/lib/cjs/obsidian/components/index.cjs +9 -6
  32. package/dist/lib/cjs/obsidian/components/index.d.cts +2 -1
  33. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +3 -3
  34. package/dist/lib/cjs/obsidian/components/layout-ready-component.d.cts +2 -2
  35. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +3 -3
  36. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.d.cts +2 -3
  37. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +4 -4
  38. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +3 -3
  39. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +3 -7
  40. package/dist/lib/cjs/obsidian/components/plugin-context-component.d.cts +2 -6
  41. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +3 -7
  42. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +2 -6
  43. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +53 -12
  44. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +53 -18
  45. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +3 -3
  46. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.d.cts +2 -2
  47. package/dist/lib/cjs/obsidian/components/registry-component.cjs +180 -0
  48. package/dist/lib/cjs/obsidian/components/registry-component.d.cts +36 -0
  49. package/dist/lib/cjs/obsidian/markdown.cjs +2 -3
  50. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +1 -1
  51. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +0 -1
  52. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +21 -20
  53. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.d.cts +7 -3
  54. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +35 -76
  55. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +35 -36
  56. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +1 -2
  57. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +3 -1
  58. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +2 -0
  59. package/dist/lib/cjs/obsidian/setting-ex.cjs +3 -1
  60. package/dist/lib/cjs/obsidian/setting-ex.d.cts +2 -0
  61. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +2 -1
  62. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +4 -1
  63. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +1 -0
  64. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +3 -1
  65. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +2 -2
  66. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +222 -0
  67. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +4 -0
  68. package/dist/lib/esm/async-events.d.mts +260 -9
  69. package/dist/lib/esm/async-events.mjs +175 -17
  70. package/dist/lib/esm/error.mjs +6 -7
  71. package/dist/lib/esm/function.d.mts +6 -0
  72. package/dist/lib/esm/function.mjs +5 -2
  73. package/dist/lib/esm/library.mjs +1 -1
  74. package/dist/lib/esm/object-utils.d.mts +2 -0
  75. package/dist/lib/esm/object-utils.mjs +1 -1
  76. package/dist/lib/esm/obsidian/active-file-provider.d.mts +0 -1
  77. package/dist/lib/esm/obsidian/active-file-provider.mjs +1 -1
  78. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +3 -3
  79. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +4 -4
  80. package/dist/lib/esm/obsidian/components/abort-signal-component.d.mts +2 -6
  81. package/dist/lib/esm/obsidian/components/abort-signal-component.mjs +3 -7
  82. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +2 -2
  83. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +3 -3
  84. package/dist/lib/esm/obsidian/components/async-error-handler-component.d.mts +2 -6
  85. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +3 -7
  86. package/dist/lib/esm/obsidian/components/async-events-component.d.mts +1 -18
  87. package/dist/lib/esm/obsidian/components/async-events-component.mjs +2 -19
  88. package/dist/lib/esm/obsidian/components/component-ex.d.mts +55 -0
  89. package/dist/lib/esm/obsidian/components/component-ex.mjs +130 -0
  90. package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +2 -6
  91. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +3 -7
  92. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +0 -10
  93. package/dist/lib/esm/obsidian/components/disposable-component.mjs +1 -8
  94. package/dist/lib/esm/obsidian/components/i18n-component.d.mts +3 -7
  95. package/dist/lib/esm/obsidian/components/i18n-component.mjs +4 -8
  96. package/dist/lib/esm/obsidian/components/index.d.mts +2 -1
  97. package/dist/lib/esm/obsidian/components/index.mjs +6 -4
  98. package/dist/lib/esm/obsidian/components/layout-ready-component.d.mts +2 -2
  99. package/dist/lib/esm/obsidian/components/layout-ready-component.mjs +3 -3
  100. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.d.mts +2 -3
  101. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +3 -3
  102. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +3 -3
  103. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +4 -4
  104. package/dist/lib/esm/obsidian/components/plugin-context-component.d.mts +2 -6
  105. package/dist/lib/esm/obsidian/components/plugin-context-component.mjs +3 -7
  106. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +2 -6
  107. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +3 -7
  108. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +53 -18
  109. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +53 -12
  110. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.d.mts +2 -2
  111. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.mjs +3 -3
  112. package/dist/lib/esm/obsidian/components/registry-component.d.mts +36 -0
  113. package/dist/lib/esm/obsidian/components/registry-component.mjs +72 -0
  114. package/dist/lib/esm/obsidian/markdown.mjs +2 -3
  115. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +0 -1
  116. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.d.mts +7 -3
  117. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +22 -21
  118. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +35 -36
  119. package/dist/lib/esm/obsidian/plugin/plugin.mjs +35 -77
  120. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +1 -2
  121. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +2 -0
  122. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +3 -1
  123. package/dist/lib/esm/obsidian/setting-ex.d.mts +2 -0
  124. package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
  125. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +2 -1
  126. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +1 -0
  127. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
  128. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
  129. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +2 -2
  130. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +4 -0
  131. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +112 -0
  132. package/obsidian/Components/component-ex/package.json +6 -0
  133. package/obsidian/Components/registry-component/package.json +6 -0
  134. package/package.json +21 -20
  135. package/script-utils/linters/eslint-rules/require-method-template/package.json +6 -0
  136. package/dist/lib/cjs/obsidian/components/async-component.cjs +0 -183
  137. package/dist/lib/cjs/obsidian/components/async-component.d.cts +0 -43
  138. package/dist/lib/esm/obsidian/components/async-component.d.mts +0 -43
  139. package/dist/lib/esm/obsidian/components/async-component.mjs +0 -73
  140. package/obsidian/Components/async-component/package.json +0 -6
@@ -0,0 +1,235 @@
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
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function name(obj) {
44
+ return obj;
45
+ }
46
+
47
+ function extractDefault(module) {
48
+ return module && module.__esModule && 'default' in module ? module.default : module;
49
+ }
50
+
51
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
52
+ 'obsidian',
53
+ '@codemirror/autocomplete',
54
+ '@codemirror/collab',
55
+ '@codemirror/commands',
56
+ '@codemirror/language',
57
+ '@codemirror/lint',
58
+ '@codemirror/search',
59
+ '@codemirror/state',
60
+ '@codemirror/text',
61
+ '@codemirror/view',
62
+ '@lezer/common',
63
+ '@lezer/lr',
64
+ '@lezer/highlight'];
65
+
66
+
67
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
68
+ '@codemirror/closebrackets',
69
+ '@codemirror/comment',
70
+ '@codemirror/fold',
71
+ '@codemirror/gutter',
72
+ '@codemirror/highlight',
73
+ '@codemirror/history',
74
+ '@codemirror/matchbrackets',
75
+ '@codemirror/panel',
76
+ '@codemirror/rangeset',
77
+ '@codemirror/rectangular-selection',
78
+ '@codemirror/stream-parser',
79
+ '@codemirror/tooltip'];
80
+
81
+
82
+ function requirePatched(id) {
83
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
84
+ return originalRequire?.(id);
85
+ }
86
+
87
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
88
+ if (globalThis.app.isMobile) {
89
+ if (id === 'process' || id === 'node:process') {
90
+ // eslint-disable-next-line no-console -- Valid usage.
91
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
92
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
93
+ return globalThis.process;
94
+ }
95
+ } else {
96
+ const module = originalRequire?.(id);
97
+ if (module) {
98
+ return extractDefault(module);
99
+ }
100
+ }
101
+
102
+ // eslint-disable-next-line no-console -- Valid usage.
103
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
104
+ return {};
105
+ }
106
+ })();
107
+
108
+ "use strict";
109
+ var __defProp = Object.defineProperty;
110
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
+ var __getOwnPropNames = Object.getOwnPropertyNames;
112
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
113
+ var __export = (target, all) => {
114
+ for (var name in all)
115
+ __defProp(target, name, { get: all[name], enumerable: true });
116
+ };
117
+ var __copyProps = (to, from, except, desc) => {
118
+ if (from && typeof from === "object" || typeof from === "function") {
119
+ for (let key of __getOwnPropNames(from))
120
+ if (!__hasOwnProp.call(to, key) && key !== except)
121
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122
+ }
123
+ return to;
124
+ };
125
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
+ var component_ex_exports = {};
127
+ __export(component_ex_exports, {
128
+ ComponentEx: () => ComponentEx
129
+ });
130
+ module.exports = __toCommonJS(component_ex_exports);
131
+ var import_obsidian = require('obsidian');
132
+ var import_function = require('../../function.cjs');
133
+ class ComponentEx extends import_obsidian.Component {
134
+ childrenSet = /* @__PURE__ */ new Set();
135
+ loadPromise = null;
136
+ /**
137
+ * Adds a child component.
138
+ *
139
+ * @typeParam TComponent - The type of component to add.
140
+ * @param component - The component instance to add.
141
+ * @returns The added component.
142
+ */
143
+ addChild(component) {
144
+ this._children.push(component);
145
+ this.childrenSet.add(component);
146
+ if (this._loaded) {
147
+ this.chain(() => this.extractLoadPromisable(component));
148
+ }
149
+ return component;
150
+ }
151
+ /**
152
+ * Loads the component.
153
+ *
154
+ * @returns Despite the declared `void` return type, this method returns a {@link Promise} that resolves when the component is loaded or `null` if the component if fully synchronous.
155
+ */
156
+ load() {
157
+ if (this._loaded) {
158
+ return;
159
+ }
160
+ this._loaded = true;
161
+ this.onload();
162
+ const onloadAsyncPromise = this.onloadAsync();
163
+ if (onloadAsyncPromise !== import_function.noopAsyncSingletonPromise) {
164
+ this.chain(() => onloadAsyncPromise);
165
+ }
166
+ for (const child of this._children.slice()) {
167
+ this.chain(() => this.extractLoadPromisable(child));
168
+ }
169
+ if (this.loadPromise) {
170
+ return this.loadPromise;
171
+ }
172
+ }
173
+ /**
174
+ * Loads the component with promises.
175
+ *
176
+ * @returns A {@link Promise} that resolves when the component is loaded or `null` if the component and its children don't use `async` logic.
177
+ */
178
+ loadWithPromises() {
179
+ this.load();
180
+ return this.loadPromise;
181
+ }
182
+ /**
183
+ * Asynchronously loads the component.
184
+ *
185
+ * Override to add async load logic, which is executed after {@link Component.onload}.
186
+ *
187
+ * @returns A {@link Promise} that resolves when the component is loaded.
188
+ */
189
+ onloadAsync() {
190
+ return import_function.noopAsyncSingletonPromise;
191
+ }
192
+ /**
193
+ * Removes a child component.
194
+ *
195
+ * @typeParam TComponent - The type of component to remove.
196
+ * @param component - The component instance to remove.
197
+ * @returns The removed component.
198
+ */
199
+ removeChild(component) {
200
+ super.removeChild(component);
201
+ this.childrenSet.delete(component);
202
+ return component;
203
+ }
204
+ /**
205
+ * Disposes of the component.
206
+ */
207
+ [Symbol.dispose]() {
208
+ this.unload();
209
+ }
210
+ chain(promisableFn) {
211
+ if (this.loadPromise) {
212
+ this.loadPromise = this.loadPromise.then(() => promisableFn() ?? void 0);
213
+ } else {
214
+ const promisable = promisableFn();
215
+ if (promisable) {
216
+ this.loadPromise = promisable instanceof Promise ? promisable : Promise.resolve(promisable);
217
+ }
218
+ }
219
+ this.loadPromise?.catch(import_function.noop);
220
+ }
221
+ extractLoadPromisable(component) {
222
+ if (!this.childrenSet.has(component)) {
223
+ return null;
224
+ }
225
+ if (component instanceof ComponentEx) {
226
+ return component.loadWithPromises();
227
+ }
228
+ return component.load();
229
+ }
230
+ }
231
+ // Annotate the CommonJS export names for ESM import in node:
232
+ 0 && (module.exports = {
233
+ ComponentEx
234
+ });
235
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRXh0ZW5kZWQgQ29tcG9uZW50XG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlXG59IGZyb20gJy4uLy4uL2Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBFeHRlbmRlZCBDb21wb25lbnRcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLWNvbXBvbmVudC1zdWZmaXggLS0gRXh0ZW5kZWQgYmFzZSBjbGFzcy5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRFeCBleHRlbmRzIENvbXBvbmVudCBpbXBsZW1lbnRzIERpc3Bvc2FibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGNoaWxkcmVuU2V0ID0gbmV3IFNldDxDb21wb25lbnQ+KCk7XG4gIHByaXZhdGUgbG9hZFByb21pc2U6IG51bGwgfCBQcm9taXNlPHZvaWQ+ID0gbnVsbDtcblxuICAvKipcbiAgICogQWRkcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgY29tcG9uZW50IHRvIGFkZC5cbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgaW5zdGFuY2UgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgYWRkZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFkZENoaWxkPFRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVENvbXBvbmVudCk6IFRDb21wb25lbnQge1xuICAgIHRoaXMuX2NoaWxkcmVuLnB1c2goY29tcG9uZW50KTtcbiAgICB0aGlzLmNoaWxkcmVuU2V0LmFkZChjb21wb25lbnQpO1xuXG4gICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5jaGFpbigoKSA9PiB0aGlzLmV4dHJhY3RMb2FkUHJvbWlzYWJsZShjb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIERlc3BpdGUgdGhlIGRlY2xhcmVkIGB2b2lkYCByZXR1cm4gdHlwZSwgdGhpcyBtZXRob2QgcmV0dXJucyBhIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQgb3IgYG51bGxgIGlmIHRoZSBjb21wb25lbnQgaWYgZnVsbHkgc3luY2hyb25vdXMuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcblxuICAgIHRoaXMub25sb2FkKCk7XG4gICAgY29uc3Qgb25sb2FkQXN5bmNQcm9taXNlID0gdGhpcy5vbmxvYWRBc3luYygpO1xuICAgIGlmIChvbmxvYWRBc3luY1Byb21pc2UgIT09IG5vb3BBc3luY1NpbmdsZXRvblByb21pc2UpIHtcbiAgICAgIHRoaXMuY2hhaW4oKCkgPT4gb25sb2FkQXN5bmNQcm9taXNlKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuLnNsaWNlKCkpIHtcbiAgICAgIHRoaXMuY2hhaW4oKCkgPT4gdGhpcy5leHRyYWN0TG9hZFByb21pc2FibGUoY2hpbGQpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2FkUHJvbWlzZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZSwgbm8tcmVzdHJpY3RlZC1zeW50YXggLS0gV2UgbmVlZCB0byBieXBhc3MgdHlwZSBzeXN0ZW0gdG8gcmV0dXJuIGBQcm9taXNlPHZvaWQ+YC5cbiAgICAgIHJldHVybiB0aGlzLmxvYWRQcm9taXNlIGFzIHVua25vd24gYXMgdm9pZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGNvbXBvbmVudCB3aXRoIHByb21pc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQgb3IgYG51bGxgIGlmIHRoZSBjb21wb25lbnQgYW5kIGl0cyBjaGlsZHJlbiBkb24ndCB1c2UgYGFzeW5jYCBsb2dpYy5cbiAgICovXG4gIHB1YmxpYyBsb2FkV2l0aFByb21pc2VzKCk6IG51bGwgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgICByZXR1cm4gdGhpcy5sb2FkUHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSBsb2FkcyB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBPdmVycmlkZSB0byBhZGQgYXN5bmMgbG9hZCBsb2dpYywgd2hpY2ggaXMgZXhlY3V0ZWQgYWZ0ZXIge0BsaW5rIENvbXBvbmVudC5vbmxvYWR9LlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgb25sb2FkQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5vb3BBc3luY1NpbmdsZXRvblByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgY29tcG9uZW50IHRvIHJlbW92ZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgaW5zdGFuY2UgdG8gcmVtb3ZlLlxuICAgKiBAcmV0dXJucyBUaGUgcmVtb3ZlZCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ2hpbGQ8VENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUQ29tcG9uZW50KTogVENvbXBvbmVudCB7XG4gICAgc3VwZXIucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgICB0aGlzLmNoaWxkcmVuU2V0LmRlbGV0ZShjb21wb25lbnQpO1xuICAgIHJldHVybiBjb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBbU3ltYm9sLmRpc3Bvc2VdKCk6IHZvaWQge1xuICAgIHRoaXMudW5sb2FkKCk7XG4gIH1cblxuICBwcml2YXRlIGNoYWluKHByb21pc2FibGVGbjogKCkgPT4gbnVsbCB8IFByb21pc2FibGU8dm9pZD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkUHJvbWlzZSkge1xuICAgICAgdGhpcy5sb2FkUHJvbWlzZSA9IHRoaXMubG9hZFByb21pc2UudGhlbigoKSA9PiBwcm9taXNhYmxlRm4oKSA/PyB1bmRlZmluZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwcm9taXNhYmxlID0gcHJvbWlzYWJsZUZuKCk7XG4gICAgICBpZiAocHJvbWlzYWJsZSkge1xuICAgICAgICB0aGlzLmxvYWRQcm9taXNlID0gcHJvbWlzYWJsZSBpbnN0YW5jZW9mIFByb21pc2UgPyBwcm9taXNhYmxlIGFzIFByb21pc2U8dm9pZD4gOiBQcm9taXNlLnJlc29sdmUocHJvbWlzYWJsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkUHJvbWlzZT8uY2F0Y2gobm9vcCk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RMb2FkUHJvbWlzYWJsZShjb21wb25lbnQ6IENvbXBvbmVudCk6IG51bGwgfCBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY2hpbGRyZW5TZXQuaGFzKGNvbXBvbmVudCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoY29tcG9uZW50IGluc3RhbmNlb2YgQ29tcG9uZW50RXgpIHtcbiAgICAgIHJldHVybiBjb21wb25lbnQubG9hZFdpdGhQcm9taXNlcygpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWNvbmZ1c2luZy12b2lkLWV4cHJlc3Npb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWFzc2VydGlvbiAtLSBJdCBjYW4gYmUgYFByb21pc2U8dm9pZD5gIGluIHJ1bnRpbWUuIFdhbnQgZXhwbGljaXRseSBjYXN0IHRvIHNob3cgd2Uga25vdyBpdCBtYXkgYmUgcHJvbWlzZSwgZGVzcGl0ZSB0aGUgZGVjbGFyZWQgdHlwZSBgdm9pZGAuXG4gICAgcmV0dXJuIGNvbXBvbmVudC5sb2FkKCkgYXMgUHJvbWlzYWJsZTx2b2lkPjtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsc0JBQTBCO0FBRTFCLHNCQUdPO0FBTUEsTUFBTSxvQkFBb0IsMEJBQWdDO0FBQUEsRUFDOUMsY0FBYyxvQkFBSSxJQUFlO0FBQUEsRUFDMUMsY0FBb0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUzVCLFNBQXVDLFdBQW1DO0FBQ3hGLFNBQUssVUFBVSxLQUFLLFNBQVM7QUFDN0IsU0FBSyxZQUFZLElBQUksU0FBUztBQUU5QixRQUFJLEtBQUssU0FBUztBQUNoQixXQUFLLE1BQU0sTUFBTSxLQUFLLHNCQUFzQixTQUFTLENBQUM7QUFBQSxJQUN4RDtBQUVBLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2dCLE9BQWE7QUFDM0IsUUFBSSxLQUFLLFNBQVM7QUFDaEI7QUFBQSxJQUNGO0FBRUEsU0FBSyxVQUFVO0FBRWYsU0FBSyxPQUFPO0FBQ1osVUFBTSxxQkFBcUIsS0FBSyxZQUFZO0FBQzVDLFFBQUksdUJBQXVCLDJDQUEyQjtBQUNwRCxXQUFLLE1BQU0sTUFBTSxrQkFBa0I7QUFBQSxJQUNyQztBQUVBLGVBQVcsU0FBUyxLQUFLLFVBQVUsTUFBTSxHQUFHO0FBQzFDLFdBQUssTUFBTSxNQUFNLEtBQUssc0JBQXNCLEtBQUssQ0FBQztBQUFBLElBQ3BEO0FBRUEsUUFBSSxLQUFLLGFBQWE7QUFFcEIsYUFBTyxLQUFLO0FBQUEsSUFDZDtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxtQkFBeUM7QUFDOUMsU0FBSyxLQUFLO0FBQ1YsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTTyxjQUE2QjtBQUNsQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTZ0IsWUFBMEMsV0FBbUM7QUFDM0YsVUFBTSxZQUFZLFNBQVM7QUFDM0IsU0FBSyxZQUFZLE9BQU8sU0FBUztBQUNqQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsQ0FBUSxPQUFPLE9BQU8sSUFBVTtBQUM5QixTQUFLLE9BQU87QUFBQSxFQUNkO0FBQUEsRUFFUSxNQUFNLGNBQW1EO0FBQy9ELFFBQUksS0FBSyxhQUFhO0FBQ3BCLFdBQUssY0FBYyxLQUFLLFlBQVksS0FBSyxNQUFNLGFBQWEsS0FBSyxNQUFTO0FBQUEsSUFDNUUsT0FBTztBQUNMLFlBQU0sYUFBYSxhQUFhO0FBQ2hDLFVBQUksWUFBWTtBQUNkLGFBQUssY0FBYyxzQkFBc0IsVUFBVSxhQUE4QixRQUFRLFFBQVEsVUFBVTtBQUFBLE1BQzdHO0FBQUEsSUFDRjtBQUVBLFNBQUssYUFBYSxNQUFNLG9CQUFJO0FBQUEsRUFDOUI7QUFBQSxFQUVRLHNCQUFzQixXQUErQztBQUMzRSxRQUFJLENBQUMsS0FBSyxZQUFZLElBQUksU0FBUyxHQUFHO0FBQ3BDLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxxQkFBcUIsYUFBYTtBQUNwQyxhQUFPLFVBQVUsaUJBQWlCO0FBQUEsSUFDcEM7QUFFQSxXQUFPLFVBQVUsS0FBSztBQUFBLEVBQ3hCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Extended Component
5
+ */
6
+ import { Component } from 'obsidian';
7
+ /**
8
+ * Extended Component
9
+ */
10
+ export declare class ComponentEx extends Component implements Disposable {
11
+ private readonly childrenSet;
12
+ private loadPromise;
13
+ /**
14
+ * Adds a child component.
15
+ *
16
+ * @typeParam TComponent - The type of component to add.
17
+ * @param component - The component instance to add.
18
+ * @returns The added component.
19
+ */
20
+ addChild<TComponent extends Component>(component: TComponent): TComponent;
21
+ /**
22
+ * Loads the component.
23
+ *
24
+ * @returns Despite the declared `void` return type, this method returns a {@link Promise} that resolves when the component is loaded or `null` if the component if fully synchronous.
25
+ */
26
+ load(): void;
27
+ /**
28
+ * Loads the component with promises.
29
+ *
30
+ * @returns A {@link Promise} that resolves when the component is loaded or `null` if the component and its children don't use `async` logic.
31
+ */
32
+ loadWithPromises(): null | Promise<void>;
33
+ /**
34
+ * Asynchronously loads the component.
35
+ *
36
+ * Override to add async load logic, which is executed after {@link Component.onload}.
37
+ *
38
+ * @returns A {@link Promise} that resolves when the component is loaded.
39
+ */
40
+ onloadAsync(): Promise<void>;
41
+ /**
42
+ * Removes a child component.
43
+ *
44
+ * @typeParam TComponent - The type of component to remove.
45
+ * @param component - The component instance to remove.
46
+ * @returns The removed component.
47
+ */
48
+ removeChild<TComponent extends Component>(component: TComponent): TComponent;
49
+ /**
50
+ * Disposes of the component.
51
+ */
52
+ [Symbol.dispose](): void;
53
+ private chain;
54
+ private extractLoadPromisable;
55
+ }
@@ -129,8 +129,8 @@ __export(console_debug_component_exports, {
129
129
  });
130
130
  module.exports = __toCommonJS(console_debug_component_exports);
131
131
  var import_debug = require('../../debug.cjs');
132
- var import_disposable_component = require('./disposable-component.cjs');
133
- class ConsoleDebugComponent extends import_disposable_component.DisposableComponent {
132
+ var import_component_ex = require('./component-ex.cjs');
133
+ class ConsoleDebugComponent extends import_component_ex.ComponentEx {
134
134
  /**
135
135
  * Creates a new console debug component.
136
136
  *
@@ -141,10 +141,6 @@ class ConsoleDebugComponent extends import_disposable_component.DisposableCompon
141
141
  this.pluginId = pluginId;
142
142
  }
143
143
  pluginId;
144
- /**
145
- * The singleton key for the {@link ConsoleDebugComponent} class.
146
- */
147
- static COMPONENT_KEY = Symbol(ConsoleDebugComponent.name);
148
144
  /**
149
145
  * Logs a message to the console under the plugin's debugger namespace.
150
146
  *
@@ -161,4 +157,4 @@ class ConsoleDebugComponent extends import_disposable_component.DisposableCompon
161
157
  0 && (module.exports = {
162
158
  ConsoleDebugComponent
163
159
  });
164
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21wb25lbnQgdGhhdCBwcm92aWRlcyBuYW1lc3BhY2VkIGNvbnNvbGUgZGVidWcgbG9nZ2luZy5cbiAqL1xuXG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3Bvc2FibGUtY29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIG5hbWVzcGFjZWQgYGNvbnNvbGVEZWJ1ZygpYCBtZXRob2QgZm9yIGxvZ2dpbmcuXG4gKlxuICogTWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0IFx1MjAxNCBlbmFibGUgdGhlIHBsdWdpbidzIGRlYnVnZ2VyIG5hbWVzcGFjZSB0byBzZWUgdGhlbS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL2Jsb2IvbWFpbi9kb2NzL2RlYnVnZ2luZy5tZH0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zb2xlRGVidWdDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBzaW5nbGV0b24ga2V5IGZvciB0aGUge0BsaW5rIENvbnNvbGVEZWJ1Z0NvbXBvbmVudH0gY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPTVBPTkVOVF9LRVkgPSBTeW1ib2woQ29uc29sZURlYnVnQ29tcG9uZW50Lm5hbWUpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIElEICh1c2VkIGFzIHRoZSBkZWJ1Z2dlciBuYW1lc3BhY2UpLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9ncyBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgdW5kZXIgdGhlIHBsdWdpbidzIGRlYnVnZ2VyIG5hbWVzcGFjZS5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2cuXG4gICAqIEBwYXJhbSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gbG9nLlxuICAgKi9cbiAgcHVibGljIGRlYnVnKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgLy8gU2tpcCB0aGUgYGRlYnVnKClgIGNhbGwgaXRzZWxmXG4gICAgY29uc3QgRlJBTUVTX1RPX1NLSVAgPSAxO1xuICAgIGNvbnN0IHBsdWdpbkRlYnVnZ2VyID0gZ2V0RGVidWdnZXIodGhpcy5wbHVnaW5JZCwgRlJBTUVTX1RPX1NLSVApO1xuICAgIHBsdWdpbkRlYnVnZ2VyKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxtQkFBNEI7QUFDNUIsa0NBQW9DO0FBUzdCLE1BQU0sOEJBQThCLGdEQUFvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVd0RCxZQUE2QixVQUFrQjtBQUNwRCxVQUFNO0FBRDRCO0FBQUEsRUFFcEM7QUFBQSxFQUZvQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUHBDLE9BQXVCLGdCQUFnQixPQUFPLHNCQUFzQixJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFpQmpFLE1BQU0sWUFBb0IsTUFBdUI7QUFFdEQsVUFBTSxpQkFBaUI7QUFDdkIsVUFBTSxxQkFBaUIsMEJBQVksS0FBSyxVQUFVLGNBQWM7QUFDaEUsbUJBQWUsU0FBUyxHQUFHLElBQUk7QUFBQSxFQUNqQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
160
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21wb25lbnQgdGhhdCBwcm92aWRlcyBuYW1lc3BhY2VkIGNvbnNvbGUgZGVidWcgbG9nZ2luZy5cbiAqL1xuXG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IENvbXBvbmVudEV4IH0gZnJvbSAnLi9jb21wb25lbnQtZXgudHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgbmFtZXNwYWNlZCBgY29uc29sZURlYnVnKClgIG1ldGhvZCBmb3IgbG9nZ2luZy5cbiAqXG4gKiBNZXNzYWdlcyBhcmUgbm90IHNob3duIGJ5IGRlZmF1bHQgXHUyMDE0IGVuYWJsZSB0aGUgcGx1Z2luJ3MgZGVidWdnZXIgbmFtZXNwYWNlIHRvIHNlZSB0aGVtLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvYmxvYi9tYWluL2RvY3MvZGVidWdnaW5nLm1kfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnNvbGVEZWJ1Z0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gSUQgKHVzZWQgYXMgdGhlIGRlYnVnZ2VyIG5hbWVzcGFjZSkuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZSB1bmRlciB0aGUgcGx1Z2luJ3MgZGVidWdnZXIgbmFtZXNwYWNlLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAgICogQHBhcmFtIGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBsb2cuXG4gICAqL1xuICBwdWJsaWMgZGVidWcobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICAvLyBTa2lwIHRoZSBgZGVidWcoKWAgY2FsbCBpdHNlbGZcbiAgICBjb25zdCBGUkFNRVNfVE9fU0tJUCA9IDE7XG4gICAgY29uc3QgcGx1Z2luRGVidWdnZXIgPSBnZXREZWJ1Z2dlcih0aGlzLnBsdWdpbklkLCBGUkFNRVNfVE9fU0tJUCk7XG4gICAgcGx1Z2luRGVidWdnZXIobWVzc2FnZSwgLi4uYXJncyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLG1CQUE0QjtBQUM1QiwwQkFBNEI7QUFTckIsTUFBTSw4QkFBOEIsZ0NBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNOUMsWUFBNkIsVUFBa0I7QUFDcEQsVUFBTTtBQUQ0QjtBQUFBLEVBRXBDO0FBQUEsRUFGb0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVU3QixNQUFNLFlBQW9CLE1BQXVCO0FBRXRELFVBQU0saUJBQWlCO0FBQ3ZCLFVBQU0scUJBQWlCLDBCQUFZLEtBQUssVUFBVSxjQUFjO0FBQ2hFLG1CQUFlLFNBQVMsR0FBRyxJQUFJO0FBQUEsRUFDakM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Component that provides namespaced console debug logging.
5
5
  */
6
- import { DisposableComponent } from './disposable-component.cjs';
6
+ import { ComponentEx } from './component-ex.cjs';
7
7
  /**
8
8
  * Provides a namespaced `consoleDebug()` method for logging.
9
9
  *
@@ -11,12 +11,8 @@ import { DisposableComponent } from './disposable-component.cjs';
11
11
  *
12
12
  * @see {@link https://github.com/mnaoumov/obsidian-dev-utils/blob/main/docs/debugging.md} for more information.
13
13
  */
14
- export declare class ConsoleDebugComponent extends DisposableComponent {
14
+ export declare class ConsoleDebugComponent extends ComponentEx {
15
15
  private readonly pluginId;
16
- /**
17
- * The singleton key for the {@link ConsoleDebugComponent} class.
18
- */
19
- static readonly COMPONENT_KEY: unique symbol;
20
16
  /**
21
17
  * Creates a new console debug component.
22
18
  *
@@ -125,18 +125,11 @@ var __copyProps = (to, from, except, desc) => {
125
125
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
126
  var disposable_component_exports = {};
127
127
  __export(disposable_component_exports, {
128
- DisposableComponent: () => DisposableComponent,
129
128
  asDisposableComponent: () => asDisposableComponent,
130
129
  isDisposable: () => isDisposable
131
130
  });
132
131
  module.exports = __toCommonJS(disposable_component_exports);
133
132
  var import_obsidian = require('obsidian');
134
- class DisposableComponent extends import_obsidian.Component {
135
- /** */
136
- [Symbol.dispose]() {
137
- this.unload();
138
- }
139
- }
140
133
  function asDisposableComponent(component) {
141
134
  if (isDisposable(component)) {
142
135
  return component;
@@ -153,8 +146,7 @@ function isDisposable(obj) {
153
146
  }
154
147
  // Annotate the CommonJS export names for ESM import in node:
155
148
  0 && (module.exports = {
156
- DisposableComponent,
157
149
  asDisposableComponent,
158
150
  isDisposable
159
151
  });
160
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEaXNwb3NhYmxlIGNvbXBvbmVudCBiYXNlIGNsYXNzIGFuZCB1dGlsaXRpZXMgZm9yIGB1c2luZ2AgZGVjbGFyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxudHlwZSBEaXNwb3NhYmxlQ29tcG9uZW50V3JhcHBlcjxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PiA9IERpc3Bvc2FibGUgJiBUQ29tcG9uZW50O1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgaW1wbGVtZW50cyB0aGUgRGlzcG9zYWJsZSBpbnRlcmZhY2UgZm9yIGF1dG9tYXRpYyByZXNvdXJjZSBjbGVhbnVwLlxuICpcbiAqIFRoaXMgY2xhc3MgZXh0ZW5kcyBPYnNpZGlhbidzIENvbXBvbmVudCBhbmQgcHJvdmlkZXMgYSBgU3ltYm9sLmRpc3Bvc2VgIG1ldGhvZFxuICogdGhhdCBkZWxlZ2F0ZXMgdG8gdGhlIGNvbXBvbmVudCdzIHVubG9hZCBsaWZlY3ljbGUgbWV0aG9kLlxuICovXG5leHBvcnQgY2xhc3MgRGlzcG9zYWJsZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudCBpbXBsZW1lbnRzIERpc3Bvc2FibGUge1xuICAvKiogKi9cbiAgcHVibGljIFtTeW1ib2wuZGlzcG9zZV0oKTogdm9pZCB7XG4gICAgdGhpcy51bmxvYWQoKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQgY29tcG9uZW50IHRvIGEgRGlzcG9zYWJsZSBpbnRlcmZhY2UgYnkgYWRkaW5nIGEgU3ltYm9sLmRpc3Bvc2UgbWV0aG9kLlxuICpcbiAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byB3cmFwLCBjb25zdHJhaW5lZCB0byBleHRlbmQgQ29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIHdyYXAgd2l0aCBEaXNwb3NhYmxlIHN1cHBvcnQuXG4gKiBAcmV0dXJucyBUaGUgY29tcG9uZW50IGNhc3QgdG8gYERpc3Bvc2FibGVDb21wb25lbnRXcmFwcGVyYCB3aXRoIGBTeW1ib2wuZGlzcG9zZWAgYXR0YWNoZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc0Rpc3Bvc2FibGVDb21wb25lbnQ8VENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUQ29tcG9uZW50KTogRGlzcG9zYWJsZUNvbXBvbmVudFdyYXBwZXI8VENvbXBvbmVudD4ge1xuICBpZiAoaXNEaXNwb3NhYmxlKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG5cbiAgY29uc3QgZGlzcG9zYWJsZSA9IGNvbXBvbmVudCBhcyBQYXJ0aWFsPERpc3Bvc2FibGU+O1xuICBkaXNwb3NhYmxlW1N5bWJvbC5kaXNwb3NlXSA9ICgpOiB2b2lkID0+IHtcbiAgICBjb21wb25lbnQudW5sb2FkKCk7XG4gIH07XG4gIHJldHVybiBkaXNwb3NhYmxlIGFzIERpc3Bvc2FibGVDb21wb25lbnRXcmFwcGVyPFRDb21wb25lbnQ+O1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYW4gb2JqZWN0IGltcGxlbWVudHMgdGhlIGBEaXNwb3NhYmxlYCBpbnRlcmZhY2UuXG4gKlxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrIGZvciB0aGUgYERpc3Bvc2FibGVgIGludGVyZmFjZVxuICogQHJldHVybnMgV2hldGhlciB0aGUgb2JqZWN0IGltcGxlbWVudHMgdGhlIGBEaXNwb3NhYmxlYCBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGlzcG9zYWJsZShvYmo6IHVua25vd24pOiBvYmogaXMgRGlzcG9zYWJsZSB7XG4gIGNvbnN0IGRpc3Bvc2FibGUgPSBvYmogYXMgUGFydGlhbDxEaXNwb3NhYmxlPjtcbiAgcmV0dXJuICEhZGlzcG9zYWJsZVtTeW1ib2wuZGlzcG9zZV07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBQTBCO0FBVW5CLE1BQU0sNEJBQTRCLDBCQUFnQztBQUFBO0FBQUEsRUFFdkUsQ0FBUSxPQUFPLE9BQU8sSUFBVTtBQUM5QixTQUFLLE9BQU87QUFBQSxFQUNkO0FBQ0Y7QUFVTyxTQUFTLHNCQUFvRCxXQUErRDtBQUNqSSxNQUFJLGFBQWEsU0FBUyxHQUFHO0FBQzNCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxhQUFhO0FBQ25CLGFBQVcsT0FBTyxPQUFPLElBQUksTUFBWTtBQUN2QyxjQUFVLE9BQU87QUFBQSxFQUNuQjtBQUNBLFNBQU87QUFDVDtBQVFPLFNBQVMsYUFBYSxLQUFpQztBQUM1RCxRQUFNLGFBQWE7QUFDbkIsU0FBTyxDQUFDLENBQUMsV0FBVyxPQUFPLE9BQU87QUFDcEM7IiwKICAibmFtZXMiOiBbXQp9Cg==
152
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEaXNwb3NhYmxlIGNvbXBvbmVudCBiYXNlIGNsYXNzIGFuZCB1dGlsaXRpZXMgZm9yIGB1c2luZ2AgZGVjbGFyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxudHlwZSBEaXNwb3NhYmxlQ29tcG9uZW50V3JhcHBlcjxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50PiA9IERpc3Bvc2FibGUgJiBUQ29tcG9uZW50O1xuXG4vKipcbiAqIENvbnZlcnQgY29tcG9uZW50IHRvIGEgRGlzcG9zYWJsZSBpbnRlcmZhY2UgYnkgYWRkaW5nIGEgU3ltYm9sLmRpc3Bvc2UgbWV0aG9kLlxuICpcbiAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byB3cmFwLCBjb25zdHJhaW5lZCB0byBleHRlbmQgQ29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIHdyYXAgd2l0aCBEaXNwb3NhYmxlIHN1cHBvcnQuXG4gKiBAcmV0dXJucyBUaGUgY29tcG9uZW50IGNhc3QgdG8gYERpc3Bvc2FibGVDb21wb25lbnRXcmFwcGVyYCB3aXRoIGBTeW1ib2wuZGlzcG9zZWAgYXR0YWNoZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc0Rpc3Bvc2FibGVDb21wb25lbnQ8VENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUQ29tcG9uZW50KTogRGlzcG9zYWJsZUNvbXBvbmVudFdyYXBwZXI8VENvbXBvbmVudD4ge1xuICBpZiAoaXNEaXNwb3NhYmxlKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG5cbiAgY29uc3QgZGlzcG9zYWJsZSA9IGNvbXBvbmVudCBhcyBQYXJ0aWFsPERpc3Bvc2FibGU+O1xuICBkaXNwb3NhYmxlW1N5bWJvbC5kaXNwb3NlXSA9ICgpOiB2b2lkID0+IHtcbiAgICBjb21wb25lbnQudW5sb2FkKCk7XG4gIH07XG4gIHJldHVybiBkaXNwb3NhYmxlIGFzIERpc3Bvc2FibGVDb21wb25lbnRXcmFwcGVyPFRDb21wb25lbnQ+O1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYW4gb2JqZWN0IGltcGxlbWVudHMgdGhlIGBEaXNwb3NhYmxlYCBpbnRlcmZhY2UuXG4gKlxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrIGZvciB0aGUgYERpc3Bvc2FibGVgIGludGVyZmFjZVxuICogQHJldHVybnMgV2hldGhlciB0aGUgb2JqZWN0IGltcGxlbWVudHMgdGhlIGBEaXNwb3NhYmxlYCBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGlzcG9zYWJsZShvYmo6IHVua25vd24pOiBvYmogaXMgRGlzcG9zYWJsZSB7XG4gIGNvbnN0IGRpc3Bvc2FibGUgPSBvYmogYXMgUGFydGlhbDxEaXNwb3NhYmxlPjtcbiAgcmV0dXJuICEhZGlzcG9zYWJsZVtTeW1ib2wuZGlzcG9zZV07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHNCQUEwQjtBQVluQixTQUFTLHNCQUFvRCxXQUErRDtBQUNqSSxNQUFJLGFBQWEsU0FBUyxHQUFHO0FBQzNCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxhQUFhO0FBQ25CLGFBQVcsT0FBTyxPQUFPLElBQUksTUFBWTtBQUN2QyxjQUFVLE9BQU87QUFBQSxFQUNuQjtBQUNBLFNBQU87QUFDVDtBQVFPLFNBQVMsYUFBYSxLQUFpQztBQUM1RCxRQUFNLGFBQWE7QUFDbkIsU0FBTyxDQUFDLENBQUMsV0FBVyxPQUFPLE9BQU87QUFDcEM7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -5,16 +5,6 @@
5
5
  */
6
6
  import { Component } from 'obsidian';
7
7
  type DisposableComponentWrapper<TComponent extends Component> = Disposable & TComponent;
8
- /**
9
- * A component that implements the Disposable interface for automatic resource cleanup.
10
- *
11
- * This class extends Obsidian's Component and provides a `Symbol.dispose` method
12
- * that delegates to the component's unload lifecycle method.
13
- */
14
- export declare class DisposableComponent extends Component implements Disposable {
15
- /** */
16
- [Symbol.dispose](): void;
17
- }
18
8
  /**
19
9
  * Convert component to a Disposable interface by adding a Symbol.dispose method.
20
10
  *
@@ -130,8 +130,8 @@ __export(i18n_component_exports, {
130
130
  module.exports = __toCommonJS(i18n_component_exports);
131
131
  var import_i18n = require('../i18n/i18n.cjs');
132
132
  var import_translations_map = require('../i18n/locales/translations-map.cjs');
133
- var import_async_component = require('./async-component.cjs');
134
- class I18nComponent extends import_async_component.AsyncComponent {
133
+ var import_component_ex = require('./component-ex.cjs');
134
+ class I18nComponent extends import_component_ex.ComponentEx {
135
135
  /**
136
136
  * Creates a new i18n component.
137
137
  *
@@ -142,14 +142,10 @@ class I18nComponent extends import_async_component.AsyncComponent {
142
142
  this.translationsMap = translationsMap;
143
143
  }
144
144
  translationsMap;
145
- /**
146
- * The singleton key for the {@link I18nComponent} class.
147
- */
148
- static COMPONENT_KEY = Symbol(I18nComponent.name);
149
145
  /**
150
146
  * Initializes i18n.
151
147
  */
152
- async onload() {
148
+ async onloadAsync() {
153
149
  await (0, import_i18n.initI18N)(this.translationsMap);
154
150
  }
155
151
  }
@@ -157,4 +153,4 @@ class I18nComponent extends import_async_component.AsyncComponent {
157
153
  0 && (module.exports = {
158
154
  I18nComponent
159
155
  });
160
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvaTE4bi1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21wb25lbnQgdGhhdCBpbml0aWFsaXplcyBpMThuIHRyYW5zbGF0aW9ucy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbmltcG9ydCB7IGluaXRJMThOIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGRlZmF1bHRUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5pbXBvcnQgeyBBc3luY0NvbXBvbmVudCB9IGZyb20gJy4vYXN5bmMtY29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgaTE4biBtb2R1bGUgd2l0aCB0aGUgcHJvdmlkZWQgdHJhbnNsYXRpb25zIG1hcC5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOG5Db21wb25lbnQgZXh0ZW5kcyBBc3luY0NvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgc2luZ2xldG9uIGtleSBmb3IgdGhlIHtAbGluayBJMThuQ29tcG9uZW50fSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09NUE9ORU5UX0tFWSA9IFN5bWJvbChJMThuQ29tcG9uZW50Lm5hbWUpO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGkxOG4gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25zTWFwIC0gVGhlIHRyYW5zbGF0aW9ucyBtYXAuIERlZmF1bHRzIHRvIHRoZSBidWlsdC1pbiB0cmFuc2xhdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvbnNNYXA6IFRyYW5zbGF0aW9uc01hcCA9IGRlZmF1bHRUcmFuc2xhdGlvbnNNYXApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGkxOG4uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGluaXRJMThOKHRoaXMudHJhbnNsYXRpb25zTWFwKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsa0JBQXlCO0FBQ3pCLDhCQUF1QztBQUN2Qyw2QkFBK0I7QUFLeEIsTUFBTSxzQkFBc0Isc0NBQWU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXekMsWUFBNkIsa0JBQW1DLGdEQUF3QjtBQUM3RixVQUFNO0FBRDRCO0FBQUEsRUFFcEM7QUFBQSxFQUZvQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUHBDLE9BQXVCLGdCQUFnQixPQUFPLGNBQWMsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBY2hFLE1BQXNCLFNBQXdCO0FBQzVDLGNBQU0sc0JBQVMsS0FBSyxlQUFlO0FBQUEsRUFDckM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
156
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvaTE4bi1jb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21wb25lbnQgdGhhdCBpbml0aWFsaXplcyBpMThuIHRyYW5zbGF0aW9ucy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbmltcG9ydCB7IGluaXRJMThOIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGRlZmF1bHRUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgaTE4biBtb2R1bGUgd2l0aCB0aGUgcHJvdmlkZWQgdHJhbnNsYXRpb25zIG1hcC5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOG5Db21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRFeCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGkxOG4gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25zTWFwIC0gVGhlIHRyYW5zbGF0aW9ucyBtYXAuIERlZmF1bHRzIHRvIHRoZSBidWlsdC1pbiB0cmFuc2xhdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvbnNNYXA6IFRyYW5zbGF0aW9uc01hcCA9IGRlZmF1bHRUcmFuc2xhdGlvbnNNYXApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGkxOG4uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgaW5pdEkxOE4odGhpcy50cmFuc2xhdGlvbnNNYXApO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxrQkFBeUI7QUFDekIsOEJBQXVDO0FBQ3ZDLDBCQUE0QjtBQUtyQixNQUFNLHNCQUFzQixnQ0FBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU10QyxZQUE2QixrQkFBbUMsZ0RBQXdCO0FBQzdGLFVBQU07QUFENEI7QUFBQSxFQUVwQztBQUFBLEVBRm9DO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPcEMsTUFBc0IsY0FBNkI7QUFDakQsY0FBTSxzQkFBUyxLQUFLLGVBQWU7QUFBQSxFQUNyQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,16 +4,12 @@
4
4
  * Component that initializes i18n translations.
5
5
  */
6
6
  import type { TranslationsMap } from '../i18n/i18n.cjs';
7
- import { AsyncComponent } from './async-component.cjs';
7
+ import { ComponentEx } from './component-ex.cjs';
8
8
  /**
9
9
  * Initializes the i18n module with the provided translations map.
10
10
  */
11
- export declare class I18nComponent extends AsyncComponent {
11
+ export declare class I18nComponent extends ComponentEx {
12
12
  private readonly translationsMap;
13
- /**
14
- * The singleton key for the {@link I18nComponent} class.
15
- */
16
- static readonly COMPONENT_KEY: unique symbol;
17
13
  /**
18
14
  * Creates a new i18n component.
19
15
  *
@@ -23,5 +19,5 @@ export declare class I18nComponent extends AsyncComponent {
23
19
  /**
24
20
  * Initializes i18n.
25
21
  */
26
- onload(): Promise<void>;
22
+ onloadAsync(): Promise<void>;
27
23
  }
@@ -137,9 +137,9 @@ var components_exports = {};
137
137
  __export(components_exports, {
138
138
  "abort-signal-component": () => abort_signal_component,
139
139
  "all-windows-event-component": () => all_windows_event_component,
140
- "async-component": () => async_component,
141
140
  "async-error-handler-component": () => async_error_handler_component,
142
141
  "async-events-component": () => async_events_component,
142
+ "component-ex": () => component_ex,
143
143
  "console-debug-component": () => console_debug_component,
144
144
  "disposable-component": () => disposable_component,
145
145
  "i18n-component": () => i18n_component,
@@ -149,14 +149,15 @@ __export(components_exports, {
149
149
  "plugin-context-component": () => plugin_context_component,
150
150
  "plugin-notice-component": () => plugin_notice_component,
151
151
  "plugin-settings-component": () => plugin_settings_component,
152
- "plugin-settings-tab-component": () => plugin_settings_tab_component
152
+ "plugin-settings-tab-component": () => plugin_settings_tab_component,
153
+ "registry-component": () => registry_component
153
154
  });
154
155
  module.exports = __toCommonJS(components_exports);
155
156
  var abort_signal_component = __toESM(__extractDefault(require('./abort-signal-component.cjs')), 1);
156
157
  var all_windows_event_component = __toESM(__extractDefault(require('./all-windows-event-component.cjs')), 1);
157
- var async_component = __toESM(__extractDefault(require('./async-component.cjs')), 1);
158
158
  var async_error_handler_component = __toESM(__extractDefault(require('./async-error-handler-component.cjs')), 1);
159
159
  var async_events_component = __toESM(__extractDefault(require('./async-events-component.cjs')), 1);
160
+ var component_ex = __toESM(__extractDefault(require('./component-ex.cjs')), 1);
160
161
  var console_debug_component = __toESM(__extractDefault(require('./console-debug-component.cjs')), 1);
161
162
  var disposable_component = __toESM(__extractDefault(require('./disposable-component.cjs')), 1);
162
163
  var i18n_component = __toESM(__extractDefault(require('./i18n-component.cjs')), 1);
@@ -167,13 +168,14 @@ var plugin_context_component = __toESM(__extractDefault(require('./plugin-contex
167
168
  var plugin_notice_component = __toESM(__extractDefault(require('./plugin-notice-component.cjs')), 1);
168
169
  var plugin_settings_component = __toESM(__extractDefault(require('./plugin-settings-component.cjs')), 1);
169
170
  var plugin_settings_tab_component = __toESM(__extractDefault(require('./plugin-settings-tab-component.cjs')), 1);
171
+ var registry_component = __toESM(__extractDefault(require('./registry-component.cjs')), 1);
170
172
  // Annotate the CommonJS export names for ESM import in node:
171
173
  0 && (module.exports = {
172
174
  "abort-signal-component": null,
173
175
  "all-windows-event-component": null,
174
- "async-component": null,
175
176
  "async-error-handler-component": null,
176
177
  "async-events-component": null,
178
+ "component-ex": null,
177
179
  "console-debug-component": null,
178
180
  "disposable-component": null,
179
181
  "i18n-component": null,
@@ -183,6 +185,7 @@ var plugin_settings_tab_component = __toESM(__extractDefault(require('./plugin-s
183
185
  "plugin-context-component": null,
184
186
  "plugin-notice-component": null,
185
187
  "plugin-settings-component": null,
186
- "plugin-settings-tab-component": null
188
+ "plugin-settings-tab-component": null,
189
+ "registry-component": null
187
190
  });
188
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1jb21wb25lbnQnIGZyb20gJy4vYXN5bmMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdjb25zb2xlLWRlYnVnLWNvbXBvbmVudCcgZnJvbSAnLi9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4tY29tcG9uZW50JyBmcm9tICcuL2kxOG4tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdsYXlvdXQtcmVhZHktY29tcG9uZW50JyBmcm9tICcuL2xheW91dC1yZWFkeS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCcgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ21vbmtleS1hcm91bmQtY29tcG9uZW50JyBmcm9tICcuL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY29udGV4dC1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbm90aWNlLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEsa0NBQUFBO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLHlCQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEsOEJBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEsd0NBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBO0FBQUE7QUFFQSxJQUFBZCx5QkFBMEM7QUFDMUMsSUFBQUMsOEJBQStDO0FBQy9DLElBQUFDLGtCQUFtQztBQUNuQyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMseUJBQTBDO0FBQzFDLElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyx1QkFBd0M7QUFDeEMsSUFBQUMsaUJBQWtDO0FBQ2xDLElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxpQ0FBa0Q7QUFDbEQsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLDJCQUE0QztBQUM1QyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsNEJBQTZDO0FBQzdDLElBQUFDLGdDQUFpRDsiLAogICJuYW1lcyI6IFsiYWJvcnQtc2lnbmFsLWNvbXBvbmVudCIsICJhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQiLCAiYXN5bmMtY29tcG9uZW50IiwgImFzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50IiwgImFzeW5jLWV2ZW50cy1jb21wb25lbnQiLCAiY29uc29sZS1kZWJ1Zy1jb21wb25lbnQiLCAiZGlzcG9zYWJsZS1jb21wb25lbnQiLCAiaTE4bi1jb21wb25lbnQiLCAibGF5b3V0LXJlYWR5LWNvbXBvbmVudCIsICJtZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQiLCAibW9ua2V5LWFyb3VuZC1jb21wb25lbnQiLCAicGx1Z2luLWNvbnRleHQtY29tcG9uZW50IiwgInBsdWdpbi1ub3RpY2UtY29tcG9uZW50IiwgInBsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQiLCAicGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQiXQp9Cg==
191
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdjb21wb25lbnQtZXgnIGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zb2xlLWRlYnVnLWNvbXBvbmVudCcgZnJvbSAnLi9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4tY29tcG9uZW50JyBmcm9tICcuL2kxOG4tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdsYXlvdXQtcmVhZHktY29tcG9uZW50JyBmcm9tICcuL2xheW91dC1yZWFkeS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCcgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ21vbmtleS1hcm91bmQtY29tcG9uZW50JyBmcm9tICcuL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY29udGV4dC1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbm90aWNlLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVnaXN0cnktY29tcG9uZW50JyBmcm9tICcuL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEsa0NBQUFBO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsZ0NBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEsOEJBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEsd0NBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsNEJBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUFmLHlCQUEwQztBQUMxQyxJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUMsZ0NBQWlEO0FBQ2pELElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxlQUFnQztBQUNoQyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsdUJBQXdDO0FBQ3hDLElBQUFDLGlCQUFrQztBQUNsQyxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsaUNBQWtEO0FBQ2xELElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLDRCQUE2QztBQUM3QyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMscUJBQXNDOyIsCiAgIm5hbWVzIjogWyJhYm9ydC1zaWduYWwtY29tcG9uZW50IiwgImFsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudCIsICJhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCIsICJhc3luYy1ldmVudHMtY29tcG9uZW50IiwgImNvbXBvbmVudC1leCIsICJjb25zb2xlLWRlYnVnLWNvbXBvbmVudCIsICJkaXNwb3NhYmxlLWNvbXBvbmVudCIsICJpMThuLWNvbXBvbmVudCIsICJsYXlvdXQtcmVhZHktY29tcG9uZW50IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsICJtb25rZXktYXJvdW5kLWNvbXBvbmVudCIsICJwbHVnaW4tY29udGV4dC1jb21wb25lbnQiLCAicGx1Z2luLW5vdGljZS1jb21wb25lbnQiLCAicGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCIsICJwbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudCIsICJyZWdpc3RyeS1jb21wb25lbnQiXQp9Cg==
@@ -1,8 +1,8 @@
1
1
  export * as 'abort-signal-component' from './abort-signal-component.cjs';
2
2
  export * as 'all-windows-event-component' from './all-windows-event-component.cjs';
3
- export * as 'async-component' from './async-component.cjs';
4
3
  export * as 'async-error-handler-component' from './async-error-handler-component.cjs';
5
4
  export * as 'async-events-component' from './async-events-component.cjs';
5
+ export * as 'component-ex' from './component-ex.cjs';
6
6
  export * as 'console-debug-component' from './console-debug-component.cjs';
7
7
  export * as 'disposable-component' from './disposable-component.cjs';
8
8
  export * as 'i18n-component' from './i18n-component.cjs';
@@ -13,3 +13,4 @@ export * as 'plugin-context-component' from './plugin-context-component.cjs';
13
13
  export * as 'plugin-notice-component' from './plugin-notice-component.cjs';
14
14
  export * as 'plugin-settings-component' from './plugin-settings-component.cjs';
15
15
  export * as 'plugin-settings-tab-component' from './plugin-settings-tab-component.cjs';
16
+ export * as 'registry-component' from './registry-component.cjs';
@@ -131,8 +131,8 @@ __export(layout_ready_component_exports, {
131
131
  module.exports = __toCommonJS(layout_ready_component_exports);
132
132
  var import_async = require('../../async.cjs');
133
133
  var import_function = require('../../function.cjs');
134
- var import_disposable_component = require('./disposable-component.cjs');
135
- class LayoutReadyComponent extends import_disposable_component.DisposableComponent {
134
+ var import_component_ex = require('./component-ex.cjs');
135
+ class LayoutReadyComponent extends import_component_ex.ComponentEx {
136
136
  /**
137
137
  * Creates a new LayoutReadyComponent instance.
138
138
  *
@@ -188,4 +188,4 @@ class CallbackLayoutReadyComponent extends LayoutReadyComponent {
188
188
  CallbackLayoutReadyComponent,
189
189
  LayoutReadyComponent
190
190
  });
191
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEludGVyZmFjZSBmb3IgY29tcG9uZW50cyB0aGF0IG5lZWQgdG8gcGVyZm9ybSB3b3JrIHdoZW4gdGhlIHdvcmtzcGFjZSBsYXlvdXQgaXMgcmVhZHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBpbnZva2VBc3luY1NhZmVseSB9IGZyb20gJy4uLy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwb3NhYmxlLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBleGVjdXRlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIE9ic2lkaWFuIGxheW91dCBiZWNvbWVzIHJlYWR5LlxuICovXG5leHBvcnQgY2xhc3MgTGF5b3V0UmVhZHlDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGF5b3V0UmVhZHlDb21wb25lbnQgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gQXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb21wb25lbnQgYW5kIHJlZ2lzdGVycyB0aGUgbGF5b3V0IHJlYWR5IGhhbmRsZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgICAgIGludm9rZUFzeW5jU2FmZWx5KHRoaXMub25MYXlvdXRSZWFkeS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgd2hlbiB0aGUgT2JzaWRpYW4gbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25MYXlvdXRSZWFkeSgpOiBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHtAbGluayBMYXlvdXRSZWFkeUNvbXBvbmVudH0gc3ViY2xhc3MgdGhhdCBpbnZva2VzIGEgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UmVhZHlDb21wb25lbnQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIEFwcCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGludm9rZSB3aGVuIGxheW91dCBpcyByZWFkeS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogKCkgPT4gUHJvbWlzYWJsZTx2b2lkPikge1xuICAgIHN1cGVyKGFwcCk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgd2hlbiB0aGUgT2JzaWRpYW4gbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIGNhbGxiYWNrLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzYWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2soKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQSxtQkFBa0M7QUFDbEMsc0JBQXFCO0FBQ3JCLGtDQUFvQztBQUs3QixNQUFNLDZCQUE2QixnREFBb0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNckQsWUFBNkIsS0FBVTtBQUM1QyxVQUFNO0FBRDRCO0FBQUEsRUFFcEM7QUFBQSxFQUZvQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3BCLFNBQWU7QUFDN0IsU0FBSyxJQUFJLFVBQVUsY0FBYyxNQUFNO0FBQ3JDLGFBQU8sV0FBVyxNQUFNO0FBQ3RCLFlBQUksS0FBSyxTQUFTO0FBQ2hCLDhDQUFrQixLQUFLLGNBQWMsS0FBSyxJQUFJLENBQUM7QUFBQSxRQUNqRDtBQUFBLE1BQ0YsR0FBRyxDQUFDO0FBQUEsSUFDTixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS1UsZ0JBQWtDO0FBQzFDLDhCQUFLO0FBQUEsRUFDUDtBQUNGO0FBS08sTUFBTSxxQ0FBcUMscUJBQXFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPOUQsWUFBWSxLQUEyQixVQUFrQztBQUM5RSxVQUFNLEdBQUc7QUFEbUM7QUFBQSxFQUU5QztBQUFBLEVBRjhDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUzNCLGdCQUFrQztBQUNuRCxXQUFPLEtBQUssU0FBUztBQUFBLEVBQ3ZCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
191
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEludGVyZmFjZSBmb3IgY29tcG9uZW50cyB0aGF0IG5lZWQgdG8gcGVyZm9ybSB3b3JrIHdoZW4gdGhlIHdvcmtzcGFjZSBsYXlvdXQgaXMgcmVhZHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBpbnZva2VBc3luY1NhZmVseSB9IGZyb20gJy4uLy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGV4ZWN1dGVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgT2JzaWRpYW4gbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYXlvdXRSZWFkeUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGF5b3V0UmVhZHlDb21wb25lbnQgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gQXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb21wb25lbnQgYW5kIHJlZ2lzdGVycyB0aGUgbGF5b3V0IHJlYWR5IGhhbmRsZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgICAgIGludm9rZUFzeW5jU2FmZWx5KHRoaXMub25MYXlvdXRSZWFkeS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgd2hlbiB0aGUgT2JzaWRpYW4gbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25MYXlvdXRSZWFkeSgpOiBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHtAbGluayBMYXlvdXRSZWFkeUNvbXBvbmVudH0gc3ViY2xhc3MgdGhhdCBpbnZva2VzIGEgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50IGV4dGVuZHMgTGF5b3V0UmVhZHlDb21wb25lbnQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIEFwcCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGludm9rZSB3aGVuIGxheW91dCBpcyByZWFkeS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogKCkgPT4gUHJvbWlzYWJsZTx2b2lkPikge1xuICAgIHN1cGVyKGFwcCk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgd2hlbiB0aGUgT2JzaWRpYW4gbGF5b3V0IGJlY29tZXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIGNhbGxiYWNrLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzYWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2soKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQSxtQkFBa0M7QUFDbEMsc0JBQXFCO0FBQ3JCLDBCQUE0QjtBQUtyQixNQUFNLDZCQUE2QixnQ0FBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU03QyxZQUE2QixLQUFVO0FBQzVDLFVBQU07QUFENEI7QUFBQSxFQUVwQztBQUFBLEVBRm9DO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPcEIsU0FBZTtBQUM3QixTQUFLLElBQUksVUFBVSxjQUFjLE1BQU07QUFDckMsYUFBTyxXQUFXLE1BQU07QUFDdEIsWUFBSSxLQUFLLFNBQVM7QUFDaEIsOENBQWtCLEtBQUssY0FBYyxLQUFLLElBQUksQ0FBQztBQUFBLFFBQ2pEO0FBQUEsTUFDRixHQUFHLENBQUM7QUFBQSxJQUNOLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLVSxnQkFBa0M7QUFDMUMsOEJBQUs7QUFBQSxFQUNQO0FBQ0Y7QUFLTyxNQUFNLHFDQUFxQyxxQkFBcUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU85RCxZQUFZLEtBQTJCLFVBQWtDO0FBQzlFLFVBQU0sR0FBRztBQURtQztBQUFBLEVBRTlDO0FBQUEsRUFGOEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTM0IsZ0JBQWtDO0FBQ25ELFdBQU8sS0FBSyxTQUFTO0FBQUEsRUFDdkI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -5,11 +5,11 @@
5
5
  */
6
6
  import type { App } from 'obsidian';
7
7
  import type { Promisable } from 'type-fest';
8
- import { DisposableComponent } from './disposable-component.cjs';
8
+ import { ComponentEx } from './component-ex.cjs';
9
9
  /**
10
10
  * A component that executes a callback function when the Obsidian layout becomes ready.
11
11
  */
12
- export declare class LayoutReadyComponent extends DisposableComponent {
12
+ export declare class LayoutReadyComponent extends ComponentEx {
13
13
  private readonly app;
14
14
  /**
15
15
  * Creates a new LayoutReadyComponent instance.