obsidian-dev-utils 7.0.1-beta.1 → 7.0.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 7.0.1-beta.3
4
+
5
+ - Refactor to constructors
6
+
7
+ ## 7.0.1-beta.2
8
+
9
+ - Extract initFromRecord
10
+
3
11
  ## 7.0.1-beta.1
4
12
 
5
13
  - Refactor PluginSettings
@@ -55,6 +55,10 @@ class PluginBase extends import_obsidian.Plugin {
55
55
  get settingsCopy() {
56
56
  return this.settings.clone();
57
57
  }
58
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
59
+ get PluginSettingsTabConstructor() {
60
+ return null;
61
+ }
58
62
  /**
59
63
  * Gets the plugin settings.
60
64
  *
@@ -74,9 +78,8 @@ class PluginBase extends import_obsidian.Plugin {
74
78
  this.showNotice("An unhandled error occurred. Please check the console for more information.");
75
79
  }));
76
80
  await this.loadSettings();
77
- const pluginSettingsTab = this.createPluginSettingsTab();
78
- if (pluginSettingsTab) {
79
- this.addSettingTab(pluginSettingsTab);
81
+ if (this.PluginSettingsTabConstructor) {
82
+ this.addSettingTab(new this.PluginSettingsTabConstructor(this));
80
83
  }
81
84
  const abortController = new AbortController();
82
85
  this._abortSignal = abortController.signal;
@@ -144,4 +147,4 @@ ${message}`);
144
147
  0 && (module.exports = {
145
148
  PluginBase
146
149
  });
147
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpblNldHRpbmdzQmFzZSxcbiAgUGx1Z2luU2V0dGluZ3NDb25zdHJ1Y3RvclxufSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IFBsdWdpblNldHRpbmdzQmFzZT4gZXh0ZW5kcyBQbHVnaW4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGNvcHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDb3B5KCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jbG9uZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBQbHVnaW5TZXR0aW5nc0NvbnN0cnVjdG9yKCk6IFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3M+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNldHRpbmdzKCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuXG4gIHByaXZhdGUgX3NldHRpbmdzITogUGx1Z2luU2V0dGluZ3M7XG5cbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd05vdGljZSgnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgfSkpO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgICBjb25zdCBwbHVnaW5TZXR0aW5nc1RhYiA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTtcbiAgICBpZiAocGx1Z2luU2V0dGluZ3NUYWIpIHtcbiAgICAgIHRoaXMuYWRkU2V0dGluZ1RhYihwbHVnaW5TZXR0aW5nc1RhYik7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMub25sb2FkQ29tcGxldGUoKTtcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyAtIFRoZSBuZXcgc2V0dGluZ3MgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IG5ld1NldHRpbmdzLmNsb25lKCk7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzLnRvSlNPTigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcGx1Z2luIHNldHRpbmdzIHRhYi4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZ3MgdGFiIG9yIG51bGwgaWYgbm90IGFwcGxpY2FibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTogbnVsbCB8IFBsdWdpblNldHRpbmdUYWI7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBsYXlvdXQgaXMgcmVhZHkuIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybSBhY3Rpb25zIG9uY2VcbiAgICogdGhlIGxheW91dCBpcyByZWFkeS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbGF5b3V0IHNldHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0UmVhZHkoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBsb2FkaW5nIGlzIGNvbXBsZXRlLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybVxuICAgKiBhbnkgYWRkaXRpb25hbCBzZXR1cCByZXF1aXJlZCBhZnRlciBsb2FkaW5nIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb3Igdm9pZCBpbmRpY2F0aW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBsb2FkIHByb2Nlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25sb2FkQ29tcGxldGUoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoKSBhcyB1bmtub3duO1xuICAgIGNvbnN0IHNldHRpbmdzID0gbmV3IHRoaXMuUGx1Z2luU2V0dGluZ3NDb25zdHJ1Y3RvcihkYXRhKTtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgIGlmIChzZXR0aW5ncy5zaG91bGRTYXZlQWZ0ZXJMb2FkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2F2ZVNldHRpbmdzKHNldHRpbmdzKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSxzQkFJTztBQVFQLG1CQUErQztBQUMvQyxzQkFBcUI7QUEzQnJCLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUE4Qk8sTUFBZSxtQkFBbUYsdUJBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNOUcsSUFBVyxjQUEyQjtBQUNwQyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxlQUErQjtBQUN4QyxXQUFPLEtBQUssU0FBUyxNQUFNO0FBQUEsRUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxJQUFjLFdBQTJCO0FBQ3ZDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVRO0FBQUEsRUFFQTtBQUFBLEVBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtSLE1BQXNCLFNBQXdCO0FBQzVDLFNBQUssYUFBUyw2Q0FBK0IsTUFBTTtBQUNqRCxXQUFLLFdBQVcsNkVBQTZFO0FBQUEsSUFDL0YsQ0FBQyxDQUFDO0FBRUYsVUFBTSxLQUFLLGFBQWE7QUFDeEIsVUFBTSxvQkFBb0IsS0FBSyx3QkFBd0I7QUFDdkQsUUFBSSxtQkFBbUI7QUFDckIsV0FBSyxjQUFjLGlCQUFpQjtBQUFBLElBQ3RDO0FBRUEsVUFBTSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFDNUMsU0FBSyxlQUFlLGdCQUFnQjtBQUNwQyxTQUFLLFNBQVMsTUFBTTtBQUNsQixzQkFBZ0IsTUFBTTtBQUFBLElBQ3hCLENBQUM7QUFDRCxVQUFNLEtBQUssZUFBZTtBQUMxQixTQUFLLElBQUksVUFBVSxjQUFjLEtBQUssY0FBYyxLQUFLLElBQUksQ0FBQztBQUFBLEVBQ2hFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFhLGFBQWEsYUFBNEM7QUFDcEUsU0FBSyxZQUFZLFlBQVksTUFBTTtBQUNuQyxVQUFNLEtBQUssU0FBUyxLQUFLLFNBQVMsT0FBTyxDQUFDO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWVVLGdCQUFvQztBQUM1Qyw4QkFBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFVLGlCQUFxQztBQUM3Qyw4QkFBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxXQUFXLFNBQXVCO0FBQzFDLFFBQUksS0FBSyxRQUFRO0FBQ2YsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUNuQjtBQUVBLFNBQUssU0FBUyxJQUFJLHVCQUFPLEdBQUcsS0FBSyxTQUFTLElBQUk7QUFBQSxFQUFLLE9BQU8sRUFBRTtBQUFBLEVBQzlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBYyxlQUE4QjtBQUMxQyxVQUFNLE9BQU8sTUFBTSxLQUFLLFNBQVM7QUFDakMsVUFBTSxXQUFXLElBQUksS0FBSywwQkFBMEIsSUFBSTtBQUN4RCxTQUFLLFlBQVk7QUFDakIsUUFBSSxTQUFTLG9CQUFvQixHQUFHO0FBQ2xDLFlBQU0sS0FBSyxhQUFhLFFBQVE7QUFBQSxJQUNsQztBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
150
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpblNldHRpbmdzQmFzZSxcbiAgUGx1Z2luU2V0dGluZ3NDb25zdHJ1Y3RvclxufSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpblNldHRpbmdzVGFiQmFzZSxcbiAgUGx1Z2luU2V0dGluZ3NUYWJDb25zdHJ1Y3RvclxufSBmcm9tICcuL1BsdWdpblNldHRpbmdzVGFiQmFzZS50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IFBsdWdpblNldHRpbmdzQmFzZT4gZXh0ZW5kcyBQbHVnaW4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGNvcHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDb3B5KCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jbG9uZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBQbHVnaW5TZXR0aW5nc0NvbnN0cnVjdG9yKCk6IFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3M+O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY2xhc3MtbGl0ZXJhbC1wcm9wZXJ0eS1zdHlsZVxuICBwcm90ZWN0ZWQgZ2V0IFBsdWdpblNldHRpbmdzVGFiQ29uc3RydWN0b3IoKTogbnVsbCB8IFBsdWdpblNldHRpbmdzVGFiQ29uc3RydWN0b3I8dGhpcywgUGx1Z2luU2V0dGluZ3MsIFBsdWdpblNldHRpbmdzVGFiQmFzZTx0aGlzLCBQbHVnaW5TZXR0aW5ncz4+IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNldHRpbmdzKCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuXG4gIHByaXZhdGUgX3NldHRpbmdzITogUGx1Z2luU2V0dGluZ3M7XG5cbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd05vdGljZSgnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgfSkpO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgICBpZiAodGhpcy5QbHVnaW5TZXR0aW5nc1RhYkNvbnN0cnVjdG9yKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIobmV3IHRoaXMuUGx1Z2luU2V0dGluZ3NUYWJDb25zdHJ1Y3Rvcih0aGlzKSk7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMub25sb2FkQ29tcGxldGUoKTtcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyAtIFRoZSBuZXcgc2V0dGluZ3MgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IG5ld1NldHRpbmdzLmNsb25lKCk7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzLnRvSlNPTigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgbm90aWNlIG1lc3NhZ2UgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG93Tm90aWNlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGljZSkge1xuICAgICAgdGhpcy5ub3RpY2UuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm90aWNlID0gbmV3IE5vdGljZShgJHt0aGlzLm1hbmlmZXN0Lm5hbWV9XFxuJHttZXNzYWdlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbSB0aGUgc2F2ZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG5ldyB0aGlzLlBsdWdpblNldHRpbmdzQ29uc3RydWN0b3IoZGF0YSk7XG4gICAgdGhpcy5fc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICBpZiAoc2V0dGluZ3Muc2hvdWxkU2F2ZUFmdGVyTG9hZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0Esc0JBR087QUFZUCxtQkFBK0M7QUFDL0Msc0JBQXFCO0FBOUJyQixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBaUNPLE1BQWUsbUJBQW1GLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTTlHLElBQVcsY0FBMkI7QUFDcEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsZUFBK0I7QUFDeEMsV0FBTyxLQUFLLFNBQVMsTUFBTTtBQUFBLEVBQzdCO0FBQUE7QUFBQSxFQUtBLElBQWMsK0JBQXVJO0FBQ25KLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxXQUEyQjtBQUN2QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFUTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLUixNQUFzQixTQUF3QjtBQUM1QyxTQUFLLGFBQVMsNkNBQStCLE1BQU07QUFDakQsV0FBSyxXQUFXLDZFQUE2RTtBQUFBLElBQy9GLENBQUMsQ0FBQztBQUVGLFVBQU0sS0FBSyxhQUFhO0FBQ3hCLFFBQUksS0FBSyw4QkFBOEI7QUFDckMsV0FBSyxjQUFjLElBQUksS0FBSyw2QkFBNkIsSUFBSSxDQUFDO0FBQUEsSUFDaEU7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUNELFVBQU0sS0FBSyxlQUFlO0FBQzFCLFNBQUssSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDaEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsYUFBYSxhQUE0QztBQUNwRSxTQUFLLFlBQVksWUFBWSxNQUFNO0FBQ25DLFVBQU0sS0FBSyxTQUFTLEtBQUssU0FBUyxPQUFPLENBQUM7QUFBQSxFQUM1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsZ0JBQW9DO0FBQzVDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsaUJBQXFDO0FBQzdDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFdBQVcsU0FBdUI7QUFDMUMsUUFBSSxLQUFLLFFBQVE7QUFDZixXQUFLLE9BQU8sS0FBSztBQUFBLElBQ25CO0FBRUEsU0FBSyxTQUFTLElBQUksdUJBQU8sR0FBRyxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQUssT0FBTyxFQUFFO0FBQUEsRUFDOUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFjLGVBQThCO0FBQzFDLFVBQU0sT0FBTyxNQUFNLEtBQUssU0FBUztBQUNqQyxVQUFNLFdBQVcsSUFBSSxLQUFLLDBCQUEwQixJQUFJO0FBQ3hELFNBQUssWUFBWTtBQUNqQixRQUFJLFNBQVMsb0JBQW9CLEdBQUc7QUFDbEMsWUFBTSxLQUFLLGFBQWEsUUFBUTtBQUFBLElBQ2xDO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -6,9 +6,10 @@
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, PluginSettingTab } from 'obsidian';
9
+ import { Plugin } from 'obsidian';
10
10
  import type { MaybePromise } from '../../Async.ts';
11
11
  import type { PluginSettingsBase, PluginSettingsConstructor } from './PluginSettingsBase.ts';
12
+ import type { PluginSettingsTabBase, PluginSettingsTabConstructor } from './PluginSettingsTabBase.ts';
12
13
  /**
13
14
  * Base class for creating Obsidian plugins with built-in support for settings management, error handling, and notifications.
14
15
  *
@@ -28,6 +29,7 @@ export declare abstract class PluginBase<PluginSettings extends PluginSettingsBa
28
29
  */
29
30
  get settingsCopy(): PluginSettings;
30
31
  protected abstract get PluginSettingsConstructor(): PluginSettingsConstructor<PluginSettings>;
32
+ protected get PluginSettingsTabConstructor(): null | PluginSettingsTabConstructor<this, PluginSettings, PluginSettingsTabBase<this, PluginSettings>>;
31
33
  /**
32
34
  * Gets the plugin settings.
33
35
  *
@@ -48,12 +50,6 @@ export declare abstract class PluginBase<PluginSettings extends PluginSettingsBa
48
50
  * @returns A promise that resolves when the settings are saved.
49
51
  */
50
52
  saveSettings(newSettings: PluginSettings): Promise<void>;
51
- /**
52
- * Creates a plugin settings tab. This method must be implemented by subclasses.
53
- *
54
- * @returns The settings tab or null if not applicable.
55
- */
56
- protected abstract createPluginSettingsTab(): null | PluginSettingTab;
57
53
  /**
58
54
  * Called when the layout is ready. This method can be overridden by subclasses to perform actions once
59
55
  * the layout is ready.
@@ -37,7 +37,7 @@ class PluginSettingsBase {
37
37
  * @param data - The data to initialize the settings from.
38
38
  */
39
39
  constructor(data) {
40
- this.initFromJson(data);
40
+ this.init(data);
41
41
  }
42
42
  /**
43
43
  * Clones the settings.
@@ -47,29 +47,6 @@ class PluginSettingsBase {
47
47
  clone() {
48
48
  return new this.constructor(this.toJSON());
49
49
  }
50
- /**
51
- * Initializes the settings from JSON data.
52
- *
53
- * @param data - The data to initialize the settings from.
54
- */
55
- initFromJson(data) {
56
- if (data === void 0 || data === null) {
57
- return;
58
- }
59
- if (typeof data !== "object" || Array.isArray(data)) {
60
- const type = Array.isArray(data) ? "Array" : typeof data;
61
- console.error(`Invalid data type. Expected Object, got: ${type}`);
62
- return;
63
- }
64
- const record = data;
65
- for (const [key, value] of Object.entries(record)) {
66
- if (key in this) {
67
- this[key] = value;
68
- } else {
69
- console.error(`Unknown property: ${key}`);
70
- }
71
- }
72
- }
73
50
  /**
74
51
  * Determines if the settings should be saved after loading.
75
52
  *
@@ -86,9 +63,34 @@ class PluginSettingsBase {
86
63
  toJSON() {
87
64
  return Object.fromEntries(Object.entries(this));
88
65
  }
66
+ initFromRecord(record) {
67
+ for (const [key, value] of Object.entries(record)) {
68
+ if (key in this) {
69
+ this[key] = value;
70
+ } else {
71
+ console.error(`Unknown property: ${key}`);
72
+ }
73
+ }
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
+ }
89
91
  }
90
92
  // Annotate the CommonJS export names for ESM import in node:
91
93
  0 && (module.exports = {
92
94
  PluginSettingsBase
93
95
  });
94
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIGNvbnN0cnVjdG9yIGZvciBwbHVnaW4gc2V0dGluZ3MuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCB0eXBlIFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2U+ID0gbmV3IChkYXRhOiB1bmtub3duKSA9PiBQbHVnaW5TZXR0aW5ncztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5TZXR0aW5nc0Jhc2Uge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIFBsdWdpblNldHRpbmdzQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBpbml0aWFsaXplIHRoZSBzZXR0aW5ncyBmcm9tLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IHVua25vd24pIHtcbiAgICB0aGlzLmluaXRGcm9tSnNvbihkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9uZXMgdGhlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGNsb25lIG9mIHRoZSBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBjbG9uZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8dGhpcz4pKHRoaXMudG9KU09OKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBzZXR0aW5ncyBmcm9tIEpTT04gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBpbml0aWFsaXplIHRoZSBzZXR0aW5ncyBmcm9tLlxuICAgKi9cbiAgcHVibGljIGluaXRGcm9tSnNvbihkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICBjb25zdCB0eXBlID0gQXJyYXkuaXNBcnJheShkYXRhKSA/ICdBcnJheScgOiB0eXBlb2YgZGF0YTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgZGF0YSB0eXBlLiBFeHBlY3RlZCBPYmplY3QsIGdvdDogJHt0eXBlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY29yZCA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgIHRoaXNba2V5IGFzIGtleW9mIHRoaXNdID0gdmFsdWUgYXMgdGhpc1trZXlvZiB0aGlzXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVua25vd24gcHJvcGVydHk6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICpcbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2V0dGluZ3Mgc2hvdWxkIGJlIHNhdmVkIGFmdGVyIGxvYWRpbmcuXG4gICAqL1xuICBwdWJsaWMgc2hvdWxkU2F2ZUFmdGVyTG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHNldHRpbmdzIHRvIGEgSlNPTiBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyBhcyBhIEpTT04gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzKSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlTyxNQUFNLG1CQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU12QixZQUFZLE1BQWU7QUFDaEMsU0FBSyxhQUFhLElBQUk7QUFBQSxFQUN4QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFFBQWM7QUFDbkIsV0FBTyxJQUFLLEtBQUssWUFBZ0QsS0FBSyxPQUFPLENBQUM7QUFBQSxFQUNoRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLGFBQWEsTUFBcUI7QUFDdkMsUUFBSSxTQUFTLFVBQWEsU0FBUyxNQUFNO0FBQ3ZDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxTQUFTLFlBQVksTUFBTSxRQUFRLElBQUksR0FBRztBQUNuRCxZQUFNLE9BQU8sTUFBTSxRQUFRLElBQUksSUFBSSxVQUFVLE9BQU87QUFDcEQsY0FBUSxNQUFNLDRDQUE0QyxJQUFJLEVBQUU7QUFDaEU7QUFBQSxJQUNGO0FBRUEsVUFBTSxTQUFTO0FBQ2YsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDakQsVUFBSSxPQUFPLE1BQU07QUFDZixhQUFLLEdBQWlCLElBQUk7QUFBQSxNQUM1QixPQUFPO0FBQ0wsZ0JBQVEsTUFBTSxxQkFBcUIsR0FBRyxFQUFFO0FBQUEsTUFDMUM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLHNCQUErQjtBQUNwQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFNBQWtDO0FBQ3ZDLFdBQU8sT0FBTyxZQUFZLE9BQU8sUUFBUSxJQUFJLENBQUM7QUFBQSxFQUNoRDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
96
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIGNvbnN0cnVjdG9yIGZvciBwbHVnaW4gc2V0dGluZ3MuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCB0eXBlIFBsdWdpblNldHRpbmdzQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2U+ID0gbmV3IChkYXRhOiB1bmtub3duKSA9PiBQbHVnaW5TZXR0aW5ncztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5TZXR0aW5nc0Jhc2Uge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIFBsdWdpblNldHRpbmdzQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBpbml0aWFsaXplIHRoZSBzZXR0aW5ncyBmcm9tLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IHVua25vd24pIHtcbiAgICB0aGlzLmluaXQoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvbmVzIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgQSBjbG9uZSBvZiB0aGUgc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgY2xvbmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBQbHVnaW5TZXR0aW5nc0NvbnN0cnVjdG9yPHRoaXM+KSh0aGlzLnRvSlNPTigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICpcbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2V0dGluZ3Mgc2hvdWxkIGJlIHNhdmVkIGFmdGVyIGxvYWRpbmcuXG4gICAqL1xuICBwdWJsaWMgc2hvdWxkU2F2ZUFmdGVyTG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHNldHRpbmdzIHRvIGEgSlNPTiBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyBhcyBhIEpTT04gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdEZyb21SZWNvcmQocmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlY29yZCkpIHtcbiAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICB0aGlzW2tleSBhcyBrZXlvZiB0aGlzXSA9IHZhbHVlIGFzIHRoaXNba2V5b2YgdGhpc107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBVbmtub3duIHByb3BlcnR5OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHNldHRpbmdzIGZyb20gSlNPTiBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGluaXRpYWxpemUgdGhlIHNldHRpbmdzIGZyb20uXG4gICAqL1xuICBwcml2YXRlIGluaXQoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgY29uc3QgdHlwZSA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyAnQXJyYXknIDogdHlwZW9mIGRhdGE7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGRhdGEgdHlwZS4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRGcm9tUmVjb3JkKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZU8sTUFBTSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNdkIsWUFBWSxNQUFlO0FBQ2hDLFNBQUssS0FBSyxJQUFJO0FBQUEsRUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxRQUFjO0FBQ25CLFdBQU8sSUFBSyxLQUFLLFlBQWdELEtBQUssT0FBTyxDQUFDO0FBQUEsRUFDaEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxzQkFBK0I7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFrQztBQUN2QyxXQUFPLE9BQU8sWUFBWSxPQUFPLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDaEQ7QUFBQSxFQUVVLGVBQWUsUUFBdUM7QUFDOUQsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDakQsVUFBSSxPQUFPLE1BQU07QUFDZixhQUFLLEdBQWlCLElBQUk7QUFBQSxNQUM1QixPQUFPO0FBQ0wsZ0JBQVEsTUFBTSxxQkFBcUIsR0FBRyxFQUFFO0FBQUEsTUFDMUM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9RLEtBQUssTUFBcUI7QUFDaEMsUUFBSSxTQUFTLFVBQWEsU0FBUyxNQUFNO0FBQ3ZDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxTQUFTLFlBQVksTUFBTSxRQUFRLElBQUksR0FBRztBQUNuRCxZQUFNLE9BQU8sTUFBTSxRQUFRLElBQUksSUFBSSxVQUFVLE9BQU87QUFDcEQsY0FBUSxNQUFNLDRDQUE0QyxJQUFJLEVBQUU7QUFDaEU7QUFBQSxJQUNGO0FBRUEsU0FBSyxlQUFlLElBQStCO0FBQUEsRUFDckQ7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -24,12 +24,6 @@ export declare class PluginSettingsBase {
24
24
  * @returns A clone of the settings.
25
25
  */
26
26
  clone(): this;
27
- /**
28
- * Initializes the settings from JSON data.
29
- *
30
- * @param data - The data to initialize the settings from.
31
- */
32
- initFromJson(data: unknown): void;
33
27
  /**
34
28
  * Determines if the settings should be saved after loading.
35
29
  *
@@ -42,4 +36,11 @@ export declare class PluginSettingsBase {
42
36
  * @returns The settings as a JSON object.
43
37
  */
44
38
  toJSON(): Record<string, unknown>;
39
+ 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;
45
46
  }
@@ -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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NCYXNlIH0gZnJvbSAnLi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMnO1xuXG5pbXBvcnQgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBwbHVnaW4gc2V0dGluZ3MgdGFicyBpbiBPYnNpZGlhbi5cbiAqIFByb3ZpZGVzIGEgbWV0aG9kIGZvciBiaW5kaW5nIHZhbHVlIGNvbXBvbmVudHMgdG8gcGx1Z2luIHNldHRpbmdzIGFuZCBoYW5kbGluZyBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCBleHRlbmRzIFBsdWdpbkJhc2UuXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8XG4gIFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2UgPSBUUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZTxpbmZlciBQPiA/IFAgOiBuZXZlclxuPiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogVFBsdWdpbikge1xuICAgIHN1cGVyKHBsdWdpbi5hcHAsIHBsdWdpbik7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxzQkFBaUM7QUFJakMsd0JBQTJCO0FBU3BCLE1BQWUsOEJBR1osaUNBQWlCO0FBQUEsRUFDbEIsWUFBNEIsUUFBaUI7QUFDbEQsVUFBTSxPQUFPLEtBQUssTUFBTTtBQURTO0FBQUEsRUFFbkM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NCYXNlIH0gZnJvbSAnLi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMnO1xuXG5pbXBvcnQgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgY29uc3RydWN0b3IgZm9yIHBsdWdpbiBzZXR0aW5ncyB0YWJzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgUGx1Z2luQmFzZS5cbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5nc1RhYiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICovXG5leHBvcnQgdHlwZSBQbHVnaW5TZXR0aW5nc1RhYkNvbnN0cnVjdG9yPFxuICBQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nc0Jhc2UsXG4gIFBsdWdpblNldHRpbmdzVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NUYWJCYXNlPFBsdWdpbiwgUGx1Z2luU2V0dGluZ3M+XG4+ID0gbmV3IChwbHVnaW46IFBsdWdpbikgPT4gUGx1Z2luU2V0dGluZ3NUYWI7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmdzIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBQcm92aWRlcyBhIG1ldGhvZCBmb3IgYmluZGluZyB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxpbmcgY2hhbmdlcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgZXh0ZW5kcyBQbHVnaW5CYXNlLlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NUYWJCYXNlPFxuICBUUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlID0gVFBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8aW5mZXIgUD4gPyBQIDogbmV2ZXJcbj4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVycmlkZSBwbHVnaW46IFRQbHVnaW4pIHtcbiAgICBzdXBlcihwbHVnaW4uYXBwLCBwbHVnaW4pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBQWlDO0FBSWpDLHdCQUEyQjtBQXNCcEIsTUFBZSw4QkFHWixpQ0FBaUI7QUFBQSxFQUNsQixZQUE0QixRQUFpQjtBQUNsRCxVQUFNLE9BQU8sS0FBSyxNQUFNO0FBRFM7QUFBQSxFQUVuQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -6,6 +6,14 @@
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;
9
17
  /**
10
18
  * Base class for creating plugin settings tabs in Obsidian.
11
19
  * Provides a method for binding value components to plugin settings and handling changes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "7.0.1-beta.1",
3
+ "version": "7.0.1-beta.3",
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",