obsidian-dev-utils 7.0.1-beta.4 → 7.0.1-beta.6

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.
@@ -0,0 +1,40 @@
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 __extractDefault(module2){return module2&&module2.__esModule&&module2.default?module2.default:module2}
7
+
8
+ (function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module2=__require(id)??{};return __extractDefault(module2)},__require)})()
9
+
10
+ "use strict";
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var EmptySettings_exports = {};
29
+ __export(EmptySettings_exports, {
30
+ EmptySettings: () => EmptySettings
31
+ });
32
+ module.exports = __toCommonJS(EmptySettings_exports);
33
+ var import_PluginSettingsBase = require('./PluginSettingsBase.cjs');
34
+ class EmptySettings extends import_PluginSettingsBase.PluginSettingsBase {
35
+ }
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ EmptySettings
39
+ });
40
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9FbXB0eVNldHRpbmdzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBFbXB0eVNldHRpbmdzXG4gKiBFbXB0eSBzZXR0aW5ncyBjbGFzcy5cbiAqL1xuXG5pbXBvcnQgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEVtcHR5U2V0dGluZ3NcbiAqIEVtcHR5IHNldHRpbmdzIGNsYXNzLlxuICovXG5cbi8qKlxuICogRW1wdHkgc2V0dGluZ3MgY2xhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbXB0eVNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlIHtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQSxnQ0FBbUM7QUFVNUIsTUFBTSxzQkFBc0IsNkNBQW1CO0FBQ3REOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @packageDocumentation EmptySettings
3
+ * Empty settings class.
4
+ */
5
+ import { PluginSettingsBase } from './PluginSettingsBase.ts';
6
+ /**
7
+ * @packageDocumentation EmptySettings
8
+ * Empty settings class.
9
+ */
10
+ /**
11
+ * Empty settings class.
12
+ */
13
+ export declare class EmptySettings extends PluginSettingsBase {
14
+ }
@@ -53,11 +53,7 @@ class PluginBase extends import_obsidian.Plugin {
53
53
  * @returns A copy of the plugin settings.
54
54
  */
55
55
  get settingsCopy() {
56
- return this.settings.clone();
57
- }
58
- // eslint-disable-next-line @typescript-eslint/class-literal-property-style
59
- get PluginSettingsTabConstructor() {
60
- return null;
56
+ return this.createPluginSettings(this.settings.toJSON());
61
57
  }
62
58
  /**
63
59
  * Gets the plugin settings.
@@ -78,8 +74,9 @@ class PluginBase extends import_obsidian.Plugin {
78
74
  this.showNotice("An unhandled error occurred. Please check the console for more information.");
79
75
  }));
80
76
  await this.loadSettings();
81
- if (this.PluginSettingsTabConstructor) {
82
- this.addSettingTab(new this.PluginSettingsTabConstructor(this));
77
+ const pluginSettingsTab = this.createPluginSettingsTab();
78
+ if (pluginSettingsTab) {
79
+ this.addSettingTab(pluginSettingsTab);
83
80
  }
84
81
  const abortController = new AbortController();
85
82
  this._abortSignal = abortController.signal;
@@ -96,8 +93,9 @@ class PluginBase extends import_obsidian.Plugin {
96
93
  * @returns A promise that resolves when the settings are saved.
97
94
  */
98
95
  async saveSettings(newSettings) {
99
- this._settings = newSettings.clone();
100
- await this.saveData(this.settings.toJSON());
96
+ const json = newSettings.toJSON();
97
+ this._settings = this.createPluginSettings(json);
98
+ await this.saveData(json);
101
99
  }
102
100
  /**
103
101
  * Called when the layout is ready. This method can be overridden by subclasses to perform actions once
@@ -136,10 +134,9 @@ ${message}`);
136
134
  */
137
135
  async loadSettings() {
138
136
  const data = await this.loadData();
139
- const settings = new this.PluginSettingsConstructor(data);
140
- this._settings = settings;
141
- if (settings.shouldSaveAfterLoad()) {
142
- await this.saveSettings(settings);
137
+ this._settings = this.createPluginSettings(data);
138
+ if (this._settings.shouldSaveAfterLoad()) {
139
+ await this.saveSettings(this._settings);
143
140
  }
144
141
  }
145
142
  }
@@ -147,4 +144,4 @@ ${message}`);
147
144
  0 && (module.exports = {
148
145
  PluginBase
149
146
  });
150
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpblNldHRpbmdzQmFzZSxcbiAgUGx1Z2luU2V0dGluZ3NDb25zdHJ1Y3RvclxufSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpblNldHRpbmdzVGFiQmFzZSxcbiAgUGx1Z2luU2V0dGluZ3NUYWJDb25zdHJ1Y3RvclxufSBmcm9tICcuL1BsdWdpblNldHRpbmdzVGFiQmFzZS50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IFBsdWdpblNldHRpbmdzQmFzZT4gZXh0ZW5kcyBQbHVnaW4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGNvcHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDb3B5KCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jbG9uZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBQbHVnaW5TZXR0aW5nc0NvbnN0cnVjdG9yKCk6IFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3M+O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY2xhc3MtbGl0ZXJhbC1wcm9wZXJ0eS1zdHlsZVxuICBwcm90ZWN0ZWQgZ2V0IFBsdWdpblNldHRpbmdzVGFiQ29uc3RydWN0b3IoKTogbnVsbCB8IFBsdWdpblNldHRpbmdzVGFiQ29uc3RydWN0b3I8dGhpcywgUGx1Z2luU2V0dGluZ3MsIFBsdWdpblNldHRpbmdzVGFiQmFzZTx0aGlzLCBQbHVnaW5TZXR0aW5ncz4+IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNldHRpbmdzKCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuXG4gIHByaXZhdGUgX3NldHRpbmdzITogUGx1Z2luU2V0dGluZ3M7XG5cbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd05vdGljZSgnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgfSkpO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgICBpZiAodGhpcy5QbHVnaW5TZXR0aW5nc1RhYkNvbnN0cnVjdG9yKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIobmV3IHRoaXMuUGx1Z2luU2V0dGluZ3NUYWJDb25zdHJ1Y3Rvcih0aGlzKSk7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMub25sb2FkQ29tcGxldGUoKTtcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyAtIFRoZSBuZXcgc2V0dGluZ3MgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IG5ld1NldHRpbmdzLmNsb25lKCk7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzLnRvSlNPTigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgbm90aWNlIG1lc3NhZ2UgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG93Tm90aWNlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGljZSkge1xuICAgICAgdGhpcy5ub3RpY2UuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm90aWNlID0gbmV3IE5vdGljZShgJHt0aGlzLm1hbmlmZXN0Lm5hbWV9XFxuJHttZXNzYWdlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbSB0aGUgc2F2ZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG5ldyB0aGlzLlBsdWdpblNldHRpbmdzQ29uc3RydWN0b3IoZGF0YSk7XG4gICAgdGhpcy5fc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICBpZiAoc2V0dGluZ3Muc2hvdWxkU2F2ZUFmdGVyTG9hZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0Esc0JBR087QUFZUCxtQkFBK0M7QUFDL0Msc0JBQXFCO0FBOUJyQixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBaUNPLE1BQWUsbUJBQW1GLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTTlHLElBQVcsY0FBMkI7QUFDcEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsZUFBK0I7QUFDeEMsV0FBTyxLQUFLLFNBQVMsTUFBTTtBQUFBLEVBQzdCO0FBQUE7QUFBQSxFQUtBLElBQWMsK0JBQXVJO0FBQ25KLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxXQUEyQjtBQUN2QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFUTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLUixNQUFzQixTQUF3QjtBQUM1QyxTQUFLLGFBQVMsNkNBQStCLE1BQU07QUFDakQsV0FBSyxXQUFXLDZFQUE2RTtBQUFBLElBQy9GLENBQUMsQ0FBQztBQUVGLFVBQU0sS0FBSyxhQUFhO0FBQ3hCLFFBQUksS0FBSyw4QkFBOEI7QUFDckMsV0FBSyxjQUFjLElBQUksS0FBSyw2QkFBNkIsSUFBSSxDQUFDO0FBQUEsSUFDaEU7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUNELFVBQU0sS0FBSyxlQUFlO0FBQzFCLFNBQUssSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDaEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsYUFBYSxhQUE0QztBQUNwRSxTQUFLLFlBQVksWUFBWSxNQUFNO0FBQ25DLFVBQU0sS0FBSyxTQUFTLEtBQUssU0FBUyxPQUFPLENBQUM7QUFBQSxFQUM1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsZ0JBQW9DO0FBQzVDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsaUJBQXFDO0FBQzdDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFdBQVcsU0FBdUI7QUFDMUMsUUFBSSxLQUFLLFFBQVE7QUFDZixXQUFLLE9BQU8sS0FBSztBQUFBLElBQ25CO0FBRUEsU0FBSyxTQUFTLElBQUksdUJBQU8sR0FBRyxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQUssT0FBTyxFQUFFO0FBQUEsRUFDOUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFjLGVBQThCO0FBQzFDLFVBQU0sT0FBTyxNQUFNLEtBQUssU0FBUztBQUNqQyxVQUFNLFdBQVcsSUFBSSxLQUFLLDBCQUEwQixJQUFJO0FBQ3hELFNBQUssWUFBWTtBQUNqQixRQUFJLFNBQVMsb0JBQW9CLEdBQUc7QUFDbEMsWUFBTSxLQUFLLGFBQWEsUUFBUTtBQUFBLElBQ2xDO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
147
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5U2V0dGluZ3MgfSBmcm9tICcuL0VtcHR5U2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IEVtcHR5U2V0dGluZ3M+IGV4dGVuZHMgUGx1Z2luIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIEFib3J0U2lnbmFsIHVzZWQgZm9yIGFib3J0aW5nIGxvbmctcnVubmluZyBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcHVibGljIGdldCBhYm9ydFNpZ25hbCgpOiBBYm9ydFNpZ25hbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fib3J0U2lnbmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb3B5IG9mIHRoZSBjdXJyZW50IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgQSBjb3B5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzQ29weSgpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3ModGhpcy5zZXR0aW5ncy50b0pTT04oKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzZXR0aW5ncygpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWJvcnRTaWduYWwhOiBBYm9ydFNpZ25hbDtcblxuICBwcml2YXRlIF9zZXR0aW5ncyE6IFBsdWdpblNldHRpbmdzO1xuXG4gIHByaXZhdGUgbm90aWNlPzogTm90aWNlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH0pKTtcblxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NUYWIgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk7XG4gICAgaWYgKHBsdWdpblNldHRpbmdzVGFiKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIocGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9hYm9ydFNpZ25hbCA9IGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLm9ubG9hZENvbXBsZXRlKCk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkodGhpcy5vbkxheW91dFJlYWR5LmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBuZXcgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gbmV3U2V0dGluZ3MgLSBUaGUgbmV3IHNldHRpbmdzIHRvIHNhdmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlU2V0dGluZ3MobmV3U2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QganNvbiA9IG5ld1NldHRpbmdzLnRvSlNPTigpO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyhqc29uKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKGpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncy4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGNyZWF0ZSB0aGUgcGx1Z2luIHNldHRpbmdzIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3MoZGF0YTogdW5rbm93bik6IFBsdWdpblNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcGx1Z2luIHNldHRpbmdzIHRhYi4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZ3MgdGFiIG9yIG51bGwgaWYgbm90IGFwcGxpY2FibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTogbnVsbCB8IFBsdWdpblNldHRpbmdUYWI7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBsYXlvdXQgaXMgcmVhZHkuIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybSBhY3Rpb25zIG9uY2VcbiAgICogdGhlIGxheW91dCBpcyByZWFkeS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbGF5b3V0IHNldHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0UmVhZHkoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBsb2FkaW5nIGlzIGNvbXBsZXRlLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybVxuICAgKiBhbnkgYWRkaXRpb25hbCBzZXR1cCByZXF1aXJlZCBhZnRlciBsb2FkaW5nIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb3Igdm9pZCBpbmRpY2F0aW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBsb2FkIHByb2Nlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25sb2FkQ29tcGxldGUoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoKSBhcyB1bmtub3duO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyhkYXRhKTtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3Muc2hvdWxkU2F2ZUFmdGVyTG9hZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVTZXR0aW5ncyh0aGlzLl9zZXR0aW5ncyk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0Esc0JBSU87QUFNUCxtQkFBK0M7QUFDL0Msc0JBQXFCO0FBekJyQixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBNEJPLE1BQWUsbUJBQThFLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXpHLElBQVcsY0FBMkI7QUFDcEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsZUFBK0I7QUFDeEMsV0FBTyxLQUFLLHFCQUFxQixLQUFLLFNBQVMsT0FBTyxDQUFDO0FBQUEsRUFDekQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLFdBQTJCO0FBQ3ZDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVRO0FBQUEsRUFFQTtBQUFBLEVBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtSLE1BQXNCLFNBQXdCO0FBQzVDLFNBQUssYUFBUyw2Q0FBK0IsTUFBTTtBQUNqRCxXQUFLLFdBQVcsNkVBQTZFO0FBQUEsSUFDL0YsQ0FBQyxDQUFDO0FBRUYsVUFBTSxLQUFLLGFBQWE7QUFDeEIsVUFBTSxvQkFBb0IsS0FBSyx3QkFBd0I7QUFDdkQsUUFBSSxtQkFBbUI7QUFDckIsV0FBSyxjQUFjLGlCQUFpQjtBQUFBLElBQ3RDO0FBRUEsVUFBTSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFDNUMsU0FBSyxlQUFlLGdCQUFnQjtBQUNwQyxTQUFLLFNBQVMsTUFBTTtBQUNsQixzQkFBZ0IsTUFBTTtBQUFBLElBQ3hCLENBQUM7QUFDRCxVQUFNLEtBQUssZUFBZTtBQUMxQixTQUFLLElBQUksVUFBVSxjQUFjLEtBQUssY0FBYyxLQUFLLElBQUksQ0FBQztBQUFBLEVBQ2hFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFhLGFBQWEsYUFBNEM7QUFDcEUsVUFBTSxPQUFPLFlBQVksT0FBTztBQUNoQyxTQUFLLFlBQVksS0FBSyxxQkFBcUIsSUFBSTtBQUMvQyxVQUFNLEtBQUssU0FBUyxJQUFJO0FBQUEsRUFDMUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXVCVSxnQkFBb0M7QUFDNUMsOEJBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRVSxpQkFBcUM7QUFDN0MsOEJBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1UsV0FBVyxTQUF1QjtBQUMxQyxRQUFJLEtBQUssUUFBUTtBQUNmLFdBQUssT0FBTyxLQUFLO0FBQUEsSUFDbkI7QUFFQSxTQUFLLFNBQVMsSUFBSSx1QkFBTyxHQUFHLEtBQUssU0FBUyxJQUFJO0FBQUEsRUFBSyxPQUFPLEVBQUU7QUFBQSxFQUM5RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE1BQWMsZUFBOEI7QUFDMUMsVUFBTSxPQUFPLE1BQU0sS0FBSyxTQUFTO0FBQ2pDLFNBQUssWUFBWSxLQUFLLHFCQUFxQixJQUFJO0FBQy9DLFFBQUksS0FBSyxVQUFVLG9CQUFvQixHQUFHO0FBQ3hDLFlBQU0sS0FBSyxhQUFhLEtBQUssU0FBUztBQUFBLElBQ3hDO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -6,16 +6,16 @@
6
6
  * Subclasses should implement methods to create default settings and settings tabs, and complete plugin-specific
7
7
  * loading tasks.
8
8
  */
9
- import { Plugin } from 'obsidian';
9
+ import { Plugin, PluginSettingTab } from 'obsidian';
10
10
  import type { MaybePromise } from '../../Async.ts';
11
- import type { PluginSettingsBase, PluginSettingsConstructor } from './PluginSettingsBase.ts';
12
- import type { PluginSettingsTabBase, PluginSettingsTabConstructor } from './PluginSettingsTabBase.ts';
11
+ import type { EmptySettings } from './EmptySettings.ts';
12
+ import type { PluginSettingsBase } from './PluginSettingsBase.ts';
13
13
  /**
14
14
  * Base class for creating Obsidian plugins with built-in support for settings management, error handling, and notifications.
15
15
  *
16
16
  * @typeParam PluginSettings - The type representing the plugin settings object.
17
17
  */
18
- export declare abstract class PluginBase<PluginSettings extends PluginSettingsBase = PluginSettingsBase> extends Plugin {
18
+ export declare abstract class PluginBase<PluginSettings extends PluginSettingsBase = EmptySettings> extends Plugin {
19
19
  /**
20
20
  * Gets the AbortSignal used for aborting long-running operations.
21
21
  *
@@ -28,8 +28,6 @@ export declare abstract class PluginBase<PluginSettings extends PluginSettingsBa
28
28
  * @returns A copy of the plugin settings.
29
29
  */
30
30
  get settingsCopy(): PluginSettings;
31
- protected abstract get PluginSettingsConstructor(): PluginSettingsConstructor<PluginSettings>;
32
- protected get PluginSettingsTabConstructor(): null | PluginSettingsTabConstructor<this, PluginSettings, PluginSettingsTabBase<this, PluginSettings>>;
33
31
  /**
34
32
  * Gets the plugin settings.
35
33
  *
@@ -50,6 +48,19 @@ export declare abstract class PluginBase<PluginSettings extends PluginSettingsBa
50
48
  * @returns A promise that resolves when the settings are saved.
51
49
  */
52
50
  saveSettings(newSettings: PluginSettings): Promise<void>;
51
+ /**
52
+ * Creates the plugin settings. This method must be implemented by subclasses.
53
+ *
54
+ * @param data - The data to create the plugin settings from.
55
+ * @returns The plugin settings.
56
+ */
57
+ protected abstract createPluginSettings(data: unknown): PluginSettings;
58
+ /**
59
+ * Creates a plugin settings tab. This method must be implemented by subclasses.
60
+ *
61
+ * @returns The settings tab or null if not applicable.
62
+ */
63
+ protected abstract createPluginSettingsTab(): null | PluginSettingTab;
53
64
  /**
54
65
  * Called when the layout is ready. This method can be overridden by subclasses to perform actions once
55
66
  * the layout is ready.
@@ -32,20 +32,20 @@ __export(PluginSettingsBase_exports, {
32
32
  module.exports = __toCommonJS(PluginSettingsBase_exports);
33
33
  class PluginSettingsBase {
34
34
  /**
35
- * Constructor for PluginSettingsBase.
35
+ * Initializes the settings from JSON data.
36
36
  *
37
37
  * @param data - The data to initialize the settings from.
38
38
  */
39
- constructor(data) {
40
- this.init(data);
41
- }
42
- /**
43
- * Clones the settings.
44
- *
45
- * @returns A clone of the settings.
46
- */
47
- clone() {
48
- return new this.constructor(this.toJSON());
39
+ init(data) {
40
+ if (data === void 0 || data === null) {
41
+ return;
42
+ }
43
+ if (typeof data !== "object" || Array.isArray(data)) {
44
+ const type = Array.isArray(data) ? "Array" : typeof data;
45
+ console.error(`Invalid data type. Expected Object, got: ${type}`);
46
+ return;
47
+ }
48
+ this.initFromRecord(data);
49
49
  }
50
50
  /**
51
51
  * Determines if the settings should be saved after loading.
@@ -72,25 +72,9 @@ class PluginSettingsBase {
72
72
  }
73
73
  }
74
74
  }
75
- /**
76
- * Initializes the settings from JSON data.
77
- *
78
- * @param data - The data to initialize the settings from.
79
- */
80
- init(data) {
81
- if (data === void 0 || data === null) {
82
- return;
83
- }
84
- if (typeof data !== "object" || Array.isArray(data)) {
85
- const type = Array.isArray(data) ? "Array" : typeof data;
86
- console.error(`Invalid data type. Expected Object, got: ${type}`);
87
- return;
88
- }
89
- this.initFromRecord(data);
90
- }
91
75
  }
92
76
  // Annotate the CommonJS export names for ESM import in node:
93
77
  0 && (module.exports = {
94
78
  PluginSettingsBase
95
79
  });
96
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIGNvbnN0cnVjdG9yIGZvciBwbHVnaW4gc2V0dGluZ3MuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCB0eXBlIFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2U+ID0gbmV3IChkYXRhOiB1bmtub3duKSA9PiBQbHVnaW5TZXR0aW5ncztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5TZXR0aW5nc0Jhc2Uge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIFBsdWdpblNldHRpbmdzQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBpbml0aWFsaXplIHRoZSBzZXR0aW5ncyBmcm9tLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IHVua25vd24pIHtcbiAgICB0aGlzLmluaXQoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvbmVzIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgQSBjbG9uZSBvZiB0aGUgc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgY2xvbmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBQbHVnaW5TZXR0aW5nc0NvbnN0cnVjdG9yPHRoaXM+KSh0aGlzLnRvSlNPTigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICpcbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2V0dGluZ3Mgc2hvdWxkIGJlIHNhdmVkIGFmdGVyIGxvYWRpbmcuXG4gICAqL1xuICBwdWJsaWMgc2hvdWxkU2F2ZUFmdGVyTG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHNldHRpbmdzIHRvIGEgSlNPTiBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyBhcyBhIEpTT04gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdEZyb21SZWNvcmQocmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlY29yZCkpIHtcbiAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICB0aGlzW2tleSBhcyBrZXlvZiB0aGlzXSA9IHZhbHVlIGFzIHRoaXNba2V5b2YgdGhpc107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBVbmtub3duIHByb3BlcnR5OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHNldHRpbmdzIGZyb20gSlNPTiBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGluaXRpYWxpemUgdGhlIHNldHRpbmdzIGZyb20uXG4gICAqL1xuICBwcml2YXRlIGluaXQoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgY29uc3QgdHlwZSA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyAnQXJyYXknIDogdHlwZW9mIGRhdGE7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGRhdGEgdHlwZS4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRGcm9tUmVjb3JkKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZU8sTUFBTSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNdkIsWUFBWSxNQUFlO0FBQ2hDLFNBQUssS0FBSyxJQUFJO0FBQUEsRUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxRQUFjO0FBQ25CLFdBQU8sSUFBSyxLQUFLLFlBQWdELEtBQUssT0FBTyxDQUFDO0FBQUEsRUFDaEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxzQkFBK0I7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFrQztBQUN2QyxXQUFPLE9BQU8sWUFBWSxPQUFPLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDaEQ7QUFBQSxFQUVVLGVBQWUsUUFBdUM7QUFDOUQsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDakQsVUFBSSxPQUFPLE1BQU07QUFDZixhQUFLLEdBQWlCLElBQUk7QUFBQSxNQUM1QixPQUFPO0FBQ0wsZ0JBQVEsTUFBTSxxQkFBcUIsR0FBRyxFQUFFO0FBQUEsTUFDMUM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9RLEtBQUssTUFBcUI7QUFDaEMsUUFBSSxTQUFTLFVBQWEsU0FBUyxNQUFNO0FBQ3ZDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxTQUFTLFlBQVksTUFBTSxRQUFRLElBQUksR0FBRztBQUNuRCxZQUFNLE9BQU8sTUFBTSxRQUFRLElBQUksSUFBSSxVQUFVLE9BQU87QUFDcEQsY0FBUSxNQUFNLDRDQUE0QyxJQUFJLEVBQUU7QUFDaEU7QUFBQSxJQUNGO0FBRUEsU0FBSyxlQUFlLElBQStCO0FBQUEsRUFDckQ7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
80
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NCYXNlIHtcbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBzZXR0aW5ncyBmcm9tIEpTT04gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBpbml0aWFsaXplIHRoZSBzZXR0aW5ncyBmcm9tLlxuICAgKi9cbiAgcHVibGljIGluaXQoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgY29uc3QgdHlwZSA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyAnQXJyYXknIDogdHlwZW9mIGRhdGE7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGRhdGEgdHlwZS4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRGcm9tUmVjb3JkKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHNldHRpbmdzIHNob3VsZCBiZSBzYXZlZCBhZnRlciBsb2FkaW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICovXG4gIHB1YmxpYyBzaG91bGRTYXZlQWZ0ZXJMb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgc2V0dGluZ3MgdG8gYSBKU09OIG9iamVjdC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIGFzIGEgSlNPTiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHRoaXMpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0RnJvbVJlY29yZChyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgIHRoaXNba2V5IGFzIGtleW9mIHRoaXNdID0gdmFsdWUgYXMgdGhpc1trZXlvZiB0aGlzXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVua25vd24gcHJvcGVydHk6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFPLE1BQWUsbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTWhDLEtBQUssTUFBcUI7QUFDL0IsUUFBSSxTQUFTLFVBQWEsU0FBUyxNQUFNO0FBQ3ZDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxTQUFTLFlBQVksTUFBTSxRQUFRLElBQUksR0FBRztBQUNuRCxZQUFNLE9BQU8sTUFBTSxRQUFRLElBQUksSUFBSSxVQUFVLE9BQU87QUFDcEQsY0FBUSxNQUFNLDRDQUE0QyxJQUFJLEVBQUU7QUFDaEU7QUFBQSxJQUNGO0FBRUEsU0FBSyxlQUFlLElBQStCO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxzQkFBK0I7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFrQztBQUN2QyxXQUFPLE9BQU8sWUFBWSxPQUFPLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDaEQ7QUFBQSxFQUVVLGVBQWUsUUFBdUM7QUFDOUQsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDakQsVUFBSSxPQUFPLE1BQU07QUFDZixhQUFLLEdBQWlCLElBQUk7QUFBQSxNQUM1QixPQUFPO0FBQ0wsZ0JBQVEsTUFBTSxxQkFBcUIsR0FBRyxFQUFFO0FBQUEsTUFDMUM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -2,28 +2,16 @@
2
2
  * @packageDocumentation PluginSettingsBase
3
3
  * Base class for plugin settings.
4
4
  */
5
- /**
6
- * Type representing the constructor for plugin settings.
7
- *
8
- * @typeParam PluginSettings - The type of the plugin settings.
9
- */
10
- export type PluginSettingsConstructor<PluginSettings extends PluginSettingsBase> = new (data: unknown) => PluginSettings;
11
5
  /**
12
6
  * Base class for plugin settings.
13
7
  */
14
- export declare class PluginSettingsBase {
8
+ export declare abstract class PluginSettingsBase {
15
9
  /**
16
- * Constructor for PluginSettingsBase.
10
+ * Initializes the settings from JSON data.
17
11
  *
18
12
  * @param data - The data to initialize the settings from.
19
13
  */
20
- constructor(data: unknown);
21
- /**
22
- * Clones the settings.
23
- *
24
- * @returns A clone of the settings.
25
- */
26
- clone(): this;
14
+ init(data: unknown): void;
27
15
  /**
28
16
  * Determines if the settings should be saved after loading.
29
17
  *
@@ -37,10 +25,4 @@ export declare class PluginSettingsBase {
37
25
  */
38
26
  toJSON(): Record<string, unknown>;
39
27
  protected initFromRecord(record: Record<string, unknown>): void;
40
- /**
41
- * Initializes the settings from JSON data.
42
- *
43
- * @param data - The data to initialize the settings from.
44
- */
45
- private init;
46
28
  }
@@ -42,4 +42,4 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
42
42
  0 && (module.exports = {
43
43
  PluginSettingsTabBase
44
44
  });
45
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NCYXNlIH0gZnJvbSAnLi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMnO1xuXG5pbXBvcnQgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgY29uc3RydWN0b3IgZm9yIHBsdWdpbiBzZXR0aW5ncyB0YWJzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgUGx1Z2luQmFzZS5cbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5nc1RhYiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICovXG5leHBvcnQgdHlwZSBQbHVnaW5TZXR0aW5nc1RhYkNvbnN0cnVjdG9yPFxuICBQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2UsXG4gIFBsdWdpblNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NUYWJCYXNlPFBsdWdpbiwgUGx1Z2luU2V0dGluZ3M+XG4+ID0gbmV3IChwbHVnaW46IFBsdWdpbikgPT4gUGx1Z2luU2V0dGluZ3NUYWI7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmdzIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBQcm92aWRlcyBhIG1ldGhvZCBmb3IgYmluZGluZyB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxpbmcgY2hhbmdlcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgZXh0ZW5kcyBQbHVnaW5CYXNlLlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NUYWJCYXNlPFxuICBUUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlID0gVFBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8aW5mZXIgUD4gPyBQIDogbmV2ZXJcbj4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVycmlkZSBwbHVnaW46IFRQbHVnaW4pIHtcbiAgICBzdXBlcihwbHVnaW4uYXBwLCBwbHVnaW4pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBQWlDO0FBSWpDLHdCQUEyQjtBQXNCcEIsTUFBZSw4QkFHWixpQ0FBaUI7QUFBQSxFQUNsQixZQUE0QixRQUFpQjtBQUNsRCxVQUFNLE9BQU8sS0FBSyxNQUFNO0FBRFM7QUFBQSxFQUVuQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NCYXNlIH0gZnJvbSAnLi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMnO1xuXG5pbXBvcnQgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBwbHVnaW4gc2V0dGluZ3MgdGFicyBpbiBPYnNpZGlhbi5cbiAqIFByb3ZpZGVzIGEgbWV0aG9kIGZvciBiaW5kaW5nIHZhbHVlIGNvbXBvbmVudHMgdG8gcGx1Z2luIHNldHRpbmdzIGFuZCBoYW5kbGluZyBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCBleHRlbmRzIFBsdWdpbkJhc2UuXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8XG4gIFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2UgPSBUUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZTxpbmZlciBQPiA/IFAgOiBuZXZlclxuPiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogVFBsdWdpbikge1xuICAgIHN1cGVyKHBsdWdpbi5hcHAsIHBsdWdpbik7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxzQkFBaUM7QUFJakMsd0JBQTJCO0FBU3BCLE1BQWUsOEJBR1osaUNBQWlCO0FBQUEsRUFDbEIsWUFBNEIsUUFBaUI7QUFDbEQsVUFBTSxPQUFPLEtBQUssTUFBTTtBQURTO0FBQUEsRUFFbkM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -6,14 +6,6 @@
6
6
  import { PluginSettingTab } from 'obsidian';
7
7
  import type { PluginSettingsBase } from './PluginSettingsBase.ts';
8
8
  import { PluginBase } from './PluginBase.ts';
9
- /**
10
- * Type representing the constructor for plugin settings tabs.
11
- *
12
- * @typeParam Plugin - The type of the plugin that extends PluginBase.
13
- * @typeParam PluginSettings - The type of the plugin settings.
14
- * @typeParam PluginSettingsTab - The type of the plugin settings tab.
15
- */
16
- export type PluginSettingsTabConstructor<Plugin extends PluginBase<PluginSettings>, PluginSettings extends PluginSettingsBase, PluginSettingsTab extends PluginSettingsTabBase<Plugin, PluginSettings>> = new (plugin: Plugin) => PluginSettingsTab;
17
9
  /**
18
10
  * Base class for creating plugin settings tabs in Obsidian.
19
11
  * Provides a method for binding value components to plugin settings and handling changes.
@@ -37,6 +37,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
37
37
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
38
  var Plugin_exports = {};
39
39
  __export(Plugin_exports, {
40
+ EmptySettings: () => EmptySettings,
40
41
  ObsidianPluginRepoPaths: () => ObsidianPluginRepoPaths,
41
42
  Plugin: () => Plugin,
42
43
  PluginBase: () => PluginBase,
@@ -45,6 +46,7 @@ __export(Plugin_exports, {
45
46
  ValueComponent: () => ValueComponent
46
47
  });
47
48
  module.exports = __toCommonJS(Plugin_exports);
49
+ var EmptySettings = __toESM(__extractDefault(require('./EmptySettings.cjs')), 1);
48
50
  var ObsidianPluginRepoPaths = __toESM(__extractDefault(require('./ObsidianPluginRepoPaths.cjs')), 1);
49
51
  var Plugin = __toESM(__extractDefault(require('./Plugin.cjs')), 1);
50
52
  var PluginBase = __toESM(__extractDefault(require('./PluginBase.cjs')), 1);
@@ -53,6 +55,7 @@ var PluginSettingsTabBase = __toESM(__extractDefault(require('./PluginSettingsTa
53
55
  var ValueComponent = __toESM(__extractDefault(require('./ValueComponent.cjs')), 1);
54
56
  // Annotate the CommonJS export names for ESM import in node:
55
57
  0 && (module.exports = {
58
+ EmptySettings,
56
59
  ObsidianPluginRepoPaths,
57
60
  Plugin,
58
61
  PluginBase,
@@ -60,4 +63,4 @@ var ValueComponent = __toESM(__extractDefault(require('./ValueComponent.cjs')),
60
63
  PluginSettingsTabBase,
61
64
  ValueComponent
62
65
  });
63
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIGZyb20gJy4vT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMudHMnO1xuZXhwb3J0ICogYXMgUGx1Z2luIGZyb20gJy4vUGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzIFBsdWdpbkJhc2UgZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcbmV4cG9ydCAqIGFzIFBsdWdpblNldHRpbmdzQmFzZSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5leHBvcnQgKiBhcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2UgZnJvbSAnLi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVDb21wb25lbnQgZnJvbSAnLi9WYWx1ZUNvbXBvbmVudC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSw4QkFBeUM7QUFDekMsYUFBd0I7QUFDeEIsaUJBQTRCO0FBQzVCLHlCQUFvQztBQUNwQyw0QkFBdUM7QUFDdkMscUJBQWdDOyIsCiAgIm5hbWVzIjogW10KfQo=
66
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIEVtcHR5U2V0dGluZ3MgZnJvbSAnLi9FbXB0eVNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIGZyb20gJy4vT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMudHMnO1xuZXhwb3J0ICogYXMgUGx1Z2luIGZyb20gJy4vUGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzIFBsdWdpbkJhc2UgZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcbmV4cG9ydCAqIGFzIFBsdWdpblNldHRpbmdzQmFzZSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5leHBvcnQgKiBhcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2UgZnJvbSAnLi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVDb21wb25lbnQgZnJvbSAnLi9WYWx1ZUNvbXBvbmVudC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLG9CQUErQjtBQUMvQiw4QkFBeUM7QUFDekMsYUFBd0I7QUFDeEIsaUJBQTRCO0FBQzVCLHlCQUFvQztBQUNwQyw0QkFBdUM7QUFDdkMscUJBQWdDOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,3 +1,4 @@
1
+ export * as EmptySettings from './EmptySettings.ts';
1
2
  export * as ObsidianPluginRepoPaths from './ObsidianPluginRepoPaths.ts';
2
3
  export * as Plugin from './Plugin.ts';
3
4
  export * as PluginBase from './PluginBase.ts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "7.0.1-beta.4",
3
+ "version": "7.0.1-beta.6",
4
4
  "description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
5
5
  "main": "./dist/lib/index.cjs",
6
6
  "types": "./dist/lib/index.d.ts",