obsidian-dev-utils 1.7.0 → 1.7.2
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 +10 -0
- package/dist/lib/bin/esbuild/preprocessPlugin.cjs +4 -1
- package/dist/lib/obsidian/Plugin/PluginBase.cjs +7 -6
- package/dist/lib/obsidian/Plugin/PluginBase.d.ts +8 -6
- package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.cjs +16 -16
- package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.d.ts +31 -14
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 1.7.2
|
|
4
|
+
|
|
5
|
+
- Avoid second definition of the const
|
|
6
|
+
- Allow MaybePromise for overrides
|
|
7
|
+
- Move typings to deps
|
|
8
|
+
|
|
9
|
+
## 1.7.1
|
|
10
|
+
|
|
11
|
+
- Make proper `bindValueComponent` overloads
|
|
12
|
+
|
|
3
13
|
## 1.7.0
|
|
4
14
|
|
|
5
15
|
- Allow convert plugin setting values
|
|
@@ -67,6 +67,9 @@ function preprocessPlugin() {
|
|
|
67
67
|
let contents = await (0, import_promises.readFile)(args.path, "utf-8");
|
|
68
68
|
for (const [key, value] of Object.entries(replacements)) {
|
|
69
69
|
const valueStr = typeof value === "function" ? `(${value.toString()})()` : (0, import_JSON.toJson)(value, { shouldHandleFunctions: true });
|
|
70
|
+
if (contents.includes(`const __${(0, import_String.makeValidVariableName)(key)}`)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
70
73
|
contents = `const __${(0, import_String.makeValidVariableName)(key)} = globalThis["${key}"] ?? ${valueStr};
|
|
71
74
|
` + contents;
|
|
72
75
|
}
|
|
@@ -83,4 +86,4 @@ function preprocessPlugin() {
|
|
|
83
86
|
0 && (module.exports = {
|
|
84
87
|
preprocessPlugin
|
|
85
88
|
});
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Jpbi9lc2J1aWxkL3ByZXByb2Nlc3NQbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9PnJlcXVpcmUoXCJub2RlOnVybFwiKS5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpKSgpO1xuY29uc3QgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAZmlsZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGN1c3RvbSBlc2J1aWxkIHBsdWdpbiB0aGF0IHByZXByb2Nlc3NlcyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0IGZpbGVzLlxuICogVGhlIHByZXByb2Nlc3NpbmcgaW5jbHVkZXMgcmVwbGFjaW5nIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgd2l0aCBhIE5vZGUuanMtY29tcGF0aWJsZSBhbHRlcm5hdGl2ZSxcbiAqIGVuc3VyaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBPYnNpZGlhbidzIHBsdWdpbiBzeXN0ZW0sIGFuZCBhZGRpbmcgYSBiYXNpYyBgcHJvY2Vzc2Agb2JqZWN0IGZvciBlbnZpcm9ubWVudHNcbiAqIHdoZXJlIGBwcm9jZXNzYCBpcyBub3QgYXZhaWxhYmxlIChsaWtlIG1vYmlsZSBvciB3ZWIgZW52aXJvbm1lbnRzKS5cbiAqXG4gKiBAbm90ZVxuICogV2UgY2Fubm90IHVzZSBgLmAgaW5zdGVhZCBvZiBgKGRvdClgIGluIHRoZSBhYm92ZSBkZXNjcmlwdGlvbiBiZWNhdXNlIHRoZSBmaWxlIGl0c2VsZiBpcyBwcmVwcm9jZXNzZWQgd2l0aCB0aGUgc2FtZSBydWxlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcImVzYnVpbGRcIjtcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHRvSnNvbiB9IGZyb20gXCIuLi8uLi9KU09OLnRzXCI7XG5pbXBvcnQgeyBtYWtlVmFsaWRWYXJpYWJsZU5hbWUgfSBmcm9tIFwiLi4vLi4vU3RyaW5nLnRzXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IHByZXByb2Nlc3NlcyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0IGZpbGVzLlxuICpcbiAqIFRoaXMgcGx1Z2luIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgdGFza3M6XG4gKiAtIFJlcGxhY2VzIGluc3RhbmNlcyBvZiBgaW1wb3J0Lm1ldGEudXJsYCB3aXRoIGEgTm9kZS5qcy1jb21wYXRpYmxlIGBfX2ZpbGVuYW1lYCBhbHRlcm5hdGl2ZS5cbiAqIC0gTW9kaWZpZXMgdGhlIGBzb3VyY2VNYXBwaW5nVVJMYCBjb21tZW50IHRvIGVuc3VyZSBjb21wYXRpYmlsaXR5IHdpdGggT2JzaWRpYW4ncyBwbHVnaW4gc3lzdGVtLlxuICogLSBBZGRzIGEgYmFzaWMgYHByb2Nlc3NgIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNjb3BlIGlmIGBwcm9jZXNzYCBpcyByZWZlcmVuY2VkIGJ1dCBub3QgZGVmaW5lZC5cbiAqXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGhhbmRsZXMgdGhlIHByZXByb2Nlc3NpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwcm9jZXNzUGx1Z2luKCk6IFBsdWdpbiB7XG4gIGNvbnN0IHJlcGxhY2VtZW50cyA9IHtcbiAgICBcInByb2Nlc3NcIjoge1xuICAgICAgY3dkOiAoKSA9PiBcIi9cIixcbiAgICAgIGVudjoge30sXG4gICAgICBwbGF0Zm9ybTogXCJhbmRyb2lkXCJcbiAgICB9IGFzIHR5cGVvZiBwcm9jZXNzLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgXCJpbXBvcnQubWV0YS51cmxcIjogKCk6IFVSTCA9PiAocmVxdWlyZShcIm5vZGU6dXJsXCIpIGFzIHR5cGVvZiBpbXBvcnQoXCJub2RlOnVybFwiKSkucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogXCJwcmVwcm9jZXNzXCIsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmRlZmluZSA/
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2Jpbi9lc2J1aWxkL3ByZXByb2Nlc3NQbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9PnJlcXVpcmUoXCJub2RlOnVybFwiKS5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpKSgpO1xuY29uc3QgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAZmlsZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGN1c3RvbSBlc2J1aWxkIHBsdWdpbiB0aGF0IHByZXByb2Nlc3NlcyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0IGZpbGVzLlxuICogVGhlIHByZXByb2Nlc3NpbmcgaW5jbHVkZXMgcmVwbGFjaW5nIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgd2l0aCBhIE5vZGUuanMtY29tcGF0aWJsZSBhbHRlcm5hdGl2ZSxcbiAqIGVuc3VyaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBPYnNpZGlhbidzIHBsdWdpbiBzeXN0ZW0sIGFuZCBhZGRpbmcgYSBiYXNpYyBgcHJvY2Vzc2Agb2JqZWN0IGZvciBlbnZpcm9ubWVudHNcbiAqIHdoZXJlIGBwcm9jZXNzYCBpcyBub3QgYXZhaWxhYmxlIChsaWtlIG1vYmlsZSBvciB3ZWIgZW52aXJvbm1lbnRzKS5cbiAqXG4gKiBAbm90ZVxuICogV2UgY2Fubm90IHVzZSBgLmAgaW5zdGVhZCBvZiBgKGRvdClgIGluIHRoZSBhYm92ZSBkZXNjcmlwdGlvbiBiZWNhdXNlIHRoZSBmaWxlIGl0c2VsZiBpcyBwcmVwcm9jZXNzZWQgd2l0aCB0aGUgc2FtZSBydWxlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcImVzYnVpbGRcIjtcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHRvSnNvbiB9IGZyb20gXCIuLi8uLi9KU09OLnRzXCI7XG5pbXBvcnQgeyBtYWtlVmFsaWRWYXJpYWJsZU5hbWUgfSBmcm9tIFwiLi4vLi4vU3RyaW5nLnRzXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IHByZXByb2Nlc3NlcyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0IGZpbGVzLlxuICpcbiAqIFRoaXMgcGx1Z2luIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgdGFza3M6XG4gKiAtIFJlcGxhY2VzIGluc3RhbmNlcyBvZiBgaW1wb3J0Lm1ldGEudXJsYCB3aXRoIGEgTm9kZS5qcy1jb21wYXRpYmxlIGBfX2ZpbGVuYW1lYCBhbHRlcm5hdGl2ZS5cbiAqIC0gTW9kaWZpZXMgdGhlIGBzb3VyY2VNYXBwaW5nVVJMYCBjb21tZW50IHRvIGVuc3VyZSBjb21wYXRpYmlsaXR5IHdpdGggT2JzaWRpYW4ncyBwbHVnaW4gc3lzdGVtLlxuICogLSBBZGRzIGEgYmFzaWMgYHByb2Nlc3NgIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNjb3BlIGlmIGBwcm9jZXNzYCBpcyByZWZlcmVuY2VkIGJ1dCBub3QgZGVmaW5lZC5cbiAqXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGhhbmRsZXMgdGhlIHByZXByb2Nlc3NpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwcm9jZXNzUGx1Z2luKCk6IFBsdWdpbiB7XG4gIGNvbnN0IHJlcGxhY2VtZW50cyA9IHtcbiAgICBcInByb2Nlc3NcIjoge1xuICAgICAgY3dkOiAoKSA9PiBcIi9cIixcbiAgICAgIGVudjoge30sXG4gICAgICBwbGF0Zm9ybTogXCJhbmRyb2lkXCJcbiAgICB9IGFzIHR5cGVvZiBwcm9jZXNzLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgXCJpbXBvcnQubWV0YS51cmxcIjogKCk6IFVSTCA9PiAocmVxdWlyZShcIm5vZGU6dXJsXCIpIGFzIHR5cGVvZiBpbXBvcnQoXCJub2RlOnVybFwiKSkucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogXCJwcmVwcm9jZXNzXCIsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmRlZmluZSA/Pz0ge307XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlcGxhY2VtZW50cykpIHtcbiAgICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuZGVmaW5lW2tleV0gPSBcIl9fXCIgKyBtYWtlVmFsaWRWYXJpYWJsZU5hbWUoa2V5KTtcbiAgICAgIH1cblxuICAgICAgYnVpbGQub25Mb2FkKHsgZmlsdGVyOiAvXFwuKGpzfHRzfGNqc3xtanN8Y3RzfG10cykkLyB9LCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBsZXQgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZShhcmdzLnBhdGgsIFwidXRmLThcIik7XG5cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVwbGFjZW1lbnRzKSkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlU3RyID0gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyBgKCR7dmFsdWUudG9TdHJpbmcoKX0pKClgIDogdG9Kc29uKHZhbHVlLCB7IHNob3VsZEhhbmRsZUZ1bmN0aW9uczogdHJ1ZSB9KTtcbiAgICAgICAgICBpZiAoY29udGVudHMuaW5jbHVkZXMoYGNvbnN0IF9fJHttYWtlVmFsaWRWYXJpYWJsZU5hbWUoa2V5KX1gKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRlbnRzID0gYGNvbnN0IF9fJHttYWtlVmFsaWRWYXJpYWJsZU5hbWUoa2V5KX0gPSBnbG9iYWxUaGlzW1wiJHtrZXl9XCJdID8/ICR7dmFsdWVTdHJ9O1xcbmAgKyBjb250ZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhBQ0s6IFRoZSAke1wiXCJ9IHBhcnQgaXMgdXNlZCB0byBlbnN1cmUgT2JzaWRpYW4gbG9hZHMgdGhlIHBsdWdpbiBwcm9wZXJseSxcbiAgICAgICAgLy8gb3RoZXJ3aXNlLCBpdCBzdG9wcyBsb2FkaW5nIGFmdGVyIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBzb3VyY2VNYXBwaW5nVVJMIGNvbW1lbnQuXG4gICAgICAgIGNvbnRlbnRzID0gY29udGVudHMucmVwbGFjZSgvXFxgXFxyP1xcblxcL1xcLyMgc291cmNlTWFwcGluZ1VSTC9nLCBcImBcXG4vLyMke1xcXCJcXFwifSBzb3VyY2VNYXBwaW5nVVJMXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudHMsXG4gICAgICAgICAgbG9hZGVyOiBcInRzXCJcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBa0JBLHNCQUF5QjtBQUN6QixrQkFBdUI7QUFDdkIsb0JBQXNDO0FBQ3RDLDBCQUFvQjtBQXJCcEIsTUFBTSxvQkFBb0IsV0FBVyxpQkFBaUIsTUFBTSxNQUFJLFFBQVEsVUFBVSxFQUFFLGNBQWMsVUFBVSxHQUFHO0FBQy9HLE1BQU0sWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3pDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUE0Qk8sU0FBUyxtQkFBMkI7QUFDekMsUUFBTSxlQUFlO0FBQUEsSUFDbkIsV0FBVztBQUFBLE1BQ1QsS0FBSyxNQUFNO0FBQUEsTUFDWCxLQUFLLENBQUM7QUFBQSxNQUNOLFVBQVU7QUFBQSxJQUNaO0FBQUE7QUFBQSxJQUVBLG1CQUFtQixNQUFZLFFBQVEsVUFBVSxFQUFnQyxjQUFjLFVBQVU7QUFBQSxFQUMzRztBQUVBLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLGVBQWUsV0FBVyxDQUFDO0FBRWpDLGlCQUFXLE9BQU8sT0FBTyxLQUFLLFlBQVksR0FBRztBQUMzQyxjQUFNLGVBQWUsT0FBTyxHQUFHLElBQUksV0FBTyxxQ0FBc0IsR0FBRztBQUFBLE1BQ3JFO0FBRUEsWUFBTSxPQUFPLEVBQUUsUUFBUSw2QkFBNkIsR0FBRyxPQUFPLFNBQVM7QUFDckUsWUFBSSxXQUFXLFVBQU0sMEJBQVMsS0FBSyxNQUFNLE9BQU87QUFFaEQsbUJBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLFFBQVEsWUFBWSxHQUFHO0FBQ3ZELGdCQUFNLFdBQVcsT0FBTyxVQUFVLGFBQWEsSUFBSSxNQUFNLFNBQVMsQ0FBQyxZQUFRLG9CQUFPLE9BQU8sRUFBRSx1QkFBdUIsS0FBSyxDQUFDO0FBQ3hILGNBQUksU0FBUyxTQUFTLGVBQVcscUNBQXNCLEdBQUcsQ0FBQyxFQUFFLEdBQUc7QUFDOUQ7QUFBQSxVQUNGO0FBQ0EscUJBQVcsZUFBVyxxQ0FBc0IsR0FBRyxDQUFDLGtCQUFrQixHQUFHLFNBQVMsUUFBUTtBQUFBLElBQVE7QUFBQSxRQUNoRztBQUlBLG1CQUFXLFNBQVMsUUFBUSxrQ0FBa0MsOEJBQWdDO0FBRTlGLGVBQU87QUFBQSxVQUNMO0FBQUEsVUFDQSxRQUFRO0FBQUEsUUFDVjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -100,13 +100,14 @@ class PluginBase extends import_obsidian.Plugin {
|
|
|
100
100
|
this._settings = await this.parseSettings(data);
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
|
-
* Parses the settings data and returns
|
|
103
|
+
* Parses the provided settings data and returns the parsed `PluginSettings`.
|
|
104
104
|
*
|
|
105
|
-
* @
|
|
106
|
-
* @
|
|
105
|
+
* @protected
|
|
106
|
+
* @param {unknown} data - The raw data to be parsed into `PluginSettings`.
|
|
107
|
+
* @returns {MaybePromise<PluginSettings>} A promise that resolves to `PluginSettings` or the settings directly.
|
|
107
108
|
*/
|
|
108
|
-
|
|
109
|
-
return
|
|
109
|
+
parseSettings(data) {
|
|
110
|
+
return (0, import_PluginSettings.loadPluginSettings)(this.createDefaultPluginSettings, data);
|
|
110
111
|
}
|
|
111
112
|
/**
|
|
112
113
|
* Saves the new plugin settings.
|
|
@@ -135,4 +136,4 @@ ${message}`);
|
|
|
135
136
|
0 && (module.exports = {
|
|
136
137
|
PluginBase
|
|
137
138
|
});
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT5yZXF1aXJlKFwibm9kZTp1cmxcIikucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKSkoKTtcbmNvbnN0IF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbXCJwcm9jZXNzXCJdID8/
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT5yZXF1aXJlKFwibm9kZTp1cmxcIikucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKSkoKTtcbmNvbnN0IF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbXCJwcm9jZXNzXCJdID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQGZpbGUgQmFzZSBjbGFzcyBmb3IgT2JzaWRpYW4gcGx1Z2lucyBwcm92aWRpbmcgdXRpbGl0eSBtZXRob2RzIGZvciBzZXR0aW5ncyBtYW5hZ2VtZW50LCBlcnJvciBoYW5kbGluZywgYW5kIG5vdGlmaWNhdGlvbnMuXG4gKlxuICogVGhpcyBjbGFzcyBzaW1wbGlmaWVzIHRoZSBwcm9jZXNzIG9mIG1hbmFnaW5nIHBsdWdpbiBzZXR0aW5ncywgZGlzcGxheWluZyBub3RpZmljYXRpb25zLCBhbmQgaGFuZGxpbmcgZXJyb3JzLlxuICogU3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IG1ldGhvZHMgdG8gY3JlYXRlIGRlZmF1bHQgc2V0dGluZ3MgYW5kIHNldHRpbmdzIHRhYnMsIGFuZCBjb21wbGV0ZSBwbHVnaW4tc3BlY2lmaWNcbiAqIGxvYWRpbmcgdGFza3MuXG4gKi9cblxuaW1wb3J0IHtcbiAgTm90aWNlLFxuICBQbHVnaW4sXG4gIFBsdWdpblNldHRpbmdUYWJcbn0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIgfSBmcm9tIFwiLi4vLi4vRXJyb3IudHNcIjtcbmltcG9ydCB7XG4gIGxvYWRQbHVnaW5TZXR0aW5ncyxcbiAgY2xvbmVQbHVnaW5TZXR0aW5nc1xufSBmcm9tIFwiLi9QbHVnaW5TZXR0aW5ncy50c1wiO1xuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tIFwiLi4vLi4vQXN5bmMudHNcIjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYnVpbHQtaW4gc3VwcG9ydCBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIEB0ZW1wbGF0ZSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIHJlcHJlc2VudGluZyB0aGUgcGx1Z2luIHNldHRpbmdzIG9iamVjdC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgUGx1Z2luIHtcbiAgcHJpdmF0ZSBfc2V0dGluZ3MhOiBQbHVnaW5TZXR0aW5ncztcbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG4gIHByaXZhdGUgX2Fib3J0U2lnbmFsITogQWJvcnRTaWduYWw7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFib3J0U2lnbmFsIHVzZWQgZm9yIGFib3J0aW5nIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7QWJvcnRTaWduYWx9IFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UGx1Z2luU2V0dGluZ3N9IEEgY29weSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc0NvcHkoKTogUGx1Z2luU2V0dGluZ3Mge1xuICAgIHJldHVybiBjbG9uZVBsdWdpblNldHRpbmdzKHRoaXMuY3JlYXRlRGVmYXVsdFBsdWdpblNldHRpbmdzLCB0aGlzLnNldHRpbmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNldHRpbmdzKCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBwbHVnaW4gc2V0dGluZ3MuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMge1BsdWdpblNldHRpbmdzfSBUaGUgZGVmYXVsdCBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlRGVmYXVsdFBsdWdpblNldHRpbmdzKHRoaXM6IHZvaWQpOiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMge1BsdWdpblNldHRpbmdUYWIgfCBudWxsfSBUaGUgc2V0dGluZ3MgdGFiIG9yIG51bGwgaWYgbm90IGFwcGxpY2FibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTogUGx1Z2luU2V0dGluZ1RhYiB8IG51bGw7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkLiBIYW5kbGVzIGxvYWRpbmcgc2V0dGluZ3MsIGFkZGluZyBhIHNldHRpbmdzIHRhYiwgcmVnaXN0ZXJpbmcgZXJyb3IgaGFuZGxlcnMsXG4gICAqIGFuZCBpbml0aWFsaXppbmcgdGhlIHBsdWdpbi5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBmdWxseSBsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NUYWIgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk7XG4gICAgaWYgKHBsdWdpblNldHRpbmdzVGFiKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIocGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoXCJBbiB1bmhhbmRsZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSBjaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIik7XG4gICAgfSkpO1xuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IGFib3J0Q29udHJvbGxlci5hYm9ydCgpKTtcbiAgICBhd2FpdCB0aGlzLm9ubG9hZENvbXBsZXRlKCk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCkgPT4gdGhpcy5vbkxheW91dFJlYWR5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMge01heWJlUHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGxheW91dCBpcyByZWFkeS4gVGhpcyBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBwZXJmb3JtIGFjdGlvbnMgb25jZVxuICAgKiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0UmVhZHkoKTogdm9pZCB7IH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IGF3YWl0IHRoaXMucGFyc2VTZXR0aW5ncyhkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgdGhlIHByb3ZpZGVkIHNldHRpbmdzIGRhdGEgYW5kIHJldHVybnMgdGhlIHBhcnNlZCBgUGx1Z2luU2V0dGluZ3NgLlxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBwYXJhbSB7dW5rbm93bn0gZGF0YSAtIFRoZSByYXcgZGF0YSB0byBiZSBwYXJzZWQgaW50byBgUGx1Z2luU2V0dGluZ3NgLlxuICAgKiBAcmV0dXJucyB7TWF5YmVQcm9taXNlPFBsdWdpblNldHRpbmdzPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYFBsdWdpblNldHRpbmdzYCBvciB0aGUgc2V0dGluZ3MgZGlyZWN0bHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgcGFyc2VTZXR0aW5ncyhkYXRhOiB1bmtub3duKTogTWF5YmVQcm9taXNlPFBsdWdpblNldHRpbmdzPiB7XG4gICAgcmV0dXJuIGxvYWRQbHVnaW5TZXR0aW5ncyh0aGlzLmNyZWF0ZURlZmF1bHRQbHVnaW5TZXR0aW5ncywgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSB7UGx1Z2luU2V0dGluZ3N9IG5ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncyB0byBzYXZlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IGNsb25lUGx1Z2luU2V0dGluZ3ModGhpcy5jcmVhdGVEZWZhdWx0UGx1Z2luU2V0dGluZ3MsIG5ld1NldHRpbmdzKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgbm90aWNlIG1lc3NhZ2UgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG93Tm90aWNlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGljZSkge1xuICAgICAgdGhpcy5ub3RpY2UuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm90aWNlID0gbmV3IE5vdGljZShgJHt0aGlzLm1hbmlmZXN0Lm5hbWV9XFxuJHttZXNzYWdlfWApO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSxzQkFJTztBQUNQLG1CQUErQztBQUMvQyw0QkFHTztBQXZCUCxNQUFNLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUksUUFBUSxVQUFVLEVBQUUsY0FBYyxVQUFVLEdBQUc7QUFDL0csTUFBTSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDekMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQTBCTyxNQUFlLG1CQUFrRCx1QkFBTztBQUFBLEVBQ3JFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPUixJQUFjLGNBQTJCO0FBQ3ZDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLGVBQStCO0FBQ3hDLGVBQU8sMkNBQW9CLEtBQUssNkJBQTZCLEtBQUssUUFBUTtBQUFBLEVBQzVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxXQUEyQjtBQUN2QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFzQkEsTUFBc0IsU0FBd0I7QUFDNUMsVUFBTSxLQUFLLGFBQWE7QUFDeEIsVUFBTSxvQkFBb0IsS0FBSyx3QkFBd0I7QUFDdkQsUUFBSSxtQkFBbUI7QUFDckIsV0FBSyxjQUFjLGlCQUFpQjtBQUFBLElBQ3RDO0FBQ0EsU0FBSyxhQUFTLDZDQUErQixNQUFNO0FBQ2pELFdBQUssV0FBVyw2RUFBNkU7QUFBQSxJQUMvRixDQUFDLENBQUM7QUFFRixVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNLGdCQUFnQixNQUFNLENBQUM7QUFDM0MsVUFBTSxLQUFLLGVBQWU7QUFDMUIsU0FBSyxJQUFJLFVBQVUsY0FBYyxNQUFNLEtBQUssY0FBYyxDQUFDO0FBQUEsRUFDN0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBY1UsZ0JBQXNCO0FBQUEsRUFBRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9sQyxNQUFjLGVBQThCO0FBQzFDLFVBQU0sT0FBTyxNQUFNLEtBQUssU0FBUztBQUNqQyxTQUFLLFlBQVksTUFBTSxLQUFLLGNBQWMsSUFBSTtBQUFBLEVBQ2hEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNVLGNBQWMsTUFBNkM7QUFDbkUsZUFBTywwQ0FBbUIsS0FBSyw2QkFBNkIsSUFBSTtBQUFBLEVBQ2xFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFhLGFBQWEsYUFBNEM7QUFDcEUsU0FBSyxnQkFBWSwyQ0FBb0IsS0FBSyw2QkFBNkIsV0FBVztBQUNsRixVQUFNLEtBQUssU0FBUyxLQUFLLFFBQVE7QUFBQSxFQUNuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFdBQVcsU0FBdUI7QUFDMUMsUUFBSSxLQUFLLFFBQVE7QUFDZixXQUFLLE9BQU8sS0FBSztBQUFBLElBQ25CO0FBRUEsU0FBSyxTQUFTLElBQUksdUJBQU8sR0FBRyxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQUssT0FBTyxFQUFFO0FBQUEsRUFDOUQ7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* loading tasks.
|
|
7
7
|
*/
|
|
8
8
|
import { Plugin, PluginSettingTab } from "obsidian";
|
|
9
|
+
import type { MaybePromise } from "../../Async.ts";
|
|
9
10
|
/**
|
|
10
11
|
* Base class for creating Obsidian plugins with built-in support for settings management, error handling, and notifications.
|
|
11
12
|
*
|
|
@@ -56,9 +57,9 @@ export declare abstract class PluginBase<PluginSettings extends object> extends
|
|
|
56
57
|
* Called when the plugin loading is complete. This method must be implemented by subclasses to perform
|
|
57
58
|
* any additional setup required after loading is complete.
|
|
58
59
|
*
|
|
59
|
-
* @returns {
|
|
60
|
+
* @returns {MaybePromise<void>} A promise or void indicating the completion of the load process.
|
|
60
61
|
*/
|
|
61
|
-
protected abstract onloadComplete():
|
|
62
|
+
protected abstract onloadComplete(): MaybePromise<void>;
|
|
62
63
|
/**
|
|
63
64
|
* Called when the layout is ready. This method can be overridden by subclasses to perform actions once
|
|
64
65
|
* the layout is ready.
|
|
@@ -71,12 +72,13 @@ export declare abstract class PluginBase<PluginSettings extends object> extends
|
|
|
71
72
|
*/
|
|
72
73
|
private loadSettings;
|
|
73
74
|
/**
|
|
74
|
-
* Parses the settings data and returns
|
|
75
|
+
* Parses the provided settings data and returns the parsed `PluginSettings`.
|
|
75
76
|
*
|
|
76
|
-
* @
|
|
77
|
-
* @
|
|
77
|
+
* @protected
|
|
78
|
+
* @param {unknown} data - The raw data to be parsed into `PluginSettings`.
|
|
79
|
+
* @returns {MaybePromise<PluginSettings>} A promise that resolves to `PluginSettings` or the settings directly.
|
|
78
80
|
*/
|
|
79
|
-
protected parseSettings(data: unknown):
|
|
81
|
+
protected parseSettings(data: unknown): MaybePromise<PluginSettings>;
|
|
80
82
|
/**
|
|
81
83
|
* Saves the new plugin settings.
|
|
82
84
|
*
|
|
@@ -45,26 +45,26 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
|
|
|
45
45
|
this.plugin = plugin;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* Internal implementation of `bindValueComponent` that handles both overloads.
|
|
49
49
|
*
|
|
50
|
-
* @
|
|
51
|
-
* @
|
|
52
|
-
* @
|
|
50
|
+
* @typeParam TValueComponent - The type of the value component extending `ValueComponent`.
|
|
51
|
+
* @typeParam Property - The key of the plugin setting that the component is bound to.
|
|
52
|
+
* @typeParam UIValueType - The inferred type of the UI value based on the value component's type.
|
|
53
53
|
*
|
|
54
|
-
* @param valueComponent - The
|
|
55
|
-
* @param property - The
|
|
56
|
-
* @param options -
|
|
57
|
-
* @param options.autoSave -
|
|
58
|
-
* @param options.settingToUIValueConverter - A function
|
|
59
|
-
* @param options.uiToSettingValueConverter - A function
|
|
54
|
+
* @param valueComponent - The component that will display and interact with the setting value.
|
|
55
|
+
* @param property - The property key in `PluginSettings` to bind to the component.
|
|
56
|
+
* @param options - Configuration options.
|
|
57
|
+
* @param options.autoSave - If true, saves the plugin settings automatically after the component value changes.
|
|
58
|
+
* @param options.settingToUIValueConverter - A function that converts the setting value to the value used by the UI component.
|
|
59
|
+
* @param options.uiToSettingValueConverter - A function that converts the UI component's value back to the setting value.
|
|
60
60
|
*
|
|
61
|
-
* @returns The bound
|
|
61
|
+
* @returns The `TValueComponent` instance that was bound to the property.
|
|
62
62
|
*/
|
|
63
63
|
bindValueComponent(valueComponent, property, {
|
|
64
|
-
autoSave
|
|
65
|
-
settingToUIValueConverter
|
|
66
|
-
uiToSettingValueConverter
|
|
67
|
-
}
|
|
64
|
+
autoSave,
|
|
65
|
+
settingToUIValueConverter,
|
|
66
|
+
uiToSettingValueConverter
|
|
67
|
+
}) {
|
|
68
68
|
const pluginSettings = this.plugin.settingsCopy;
|
|
69
69
|
valueComponent.setValue(settingToUIValueConverter(pluginSettings[property])).onChange(async (newValue) => {
|
|
70
70
|
pluginSettings[property] = uiToSettingValueConverter(newValue);
|
|
@@ -79,4 +79,4 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
|
|
|
79
79
|
0 && (module.exports = {
|
|
80
80
|
PluginSettingsTabBase
|
|
81
81
|
});
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9PnJlcXVpcmUoXCJub2RlOnVybFwiKS5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpKSgpO1xuY29uc3QgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAZmlsZSBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgYmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmcgdGFicyBpbiBPYnNpZGlhbi5cbiAqIEl0IHByb3ZpZGVzIGEgdXRpbGl0eSBtZXRob2QgdG8gYmluZCB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxlIGNoYW5nZXMuXG4gKi9cblxuaW1wb3J0IHsgUGx1Z2luU2V0dGluZ1RhYiB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgUGx1Z2luQmFzZSB9IGZyb20gXCIuL1BsdWdpbkJhc2UudHNcIjtcbmltcG9ydCB0eXBlIHsgS2V5c01hdGNoaW5nIH0gZnJvbSBcIi4uLy4uL0B0eXBlcy50c1wiO1xuXG5pbnRlcmZhY2UgVmFsdWVDb21wb25lbnQ8VD4ge1xuICBzZXRWYWx1ZSh2YWx1ZTogVCk6IHRoaXM7XG4gIG9uQ2hhbmdlKGNhbGxiYWNrOiAobmV3VmFsdWU6IFQpID0+
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9PnJlcXVpcmUoXCJub2RlOnVybFwiKS5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpKSgpO1xuY29uc3QgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAZmlsZSBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgYmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmcgdGFicyBpbiBPYnNpZGlhbi5cbiAqIEl0IHByb3ZpZGVzIGEgdXRpbGl0eSBtZXRob2QgdG8gYmluZCB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxlIGNoYW5nZXMuXG4gKi9cblxuaW1wb3J0IHsgUGx1Z2luU2V0dGluZ1RhYiB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgUGx1Z2luQmFzZSB9IGZyb20gXCIuL1BsdWdpbkJhc2UudHNcIjtcbmltcG9ydCB0eXBlIHsgS2V5c01hdGNoaW5nIH0gZnJvbSBcIi4uLy4uL0B0eXBlcy50c1wiO1xuXG5pbnRlcmZhY2UgVmFsdWVDb21wb25lbnQ8VD4ge1xuICBzZXRWYWx1ZSh2YWx1ZTogVCk6IHRoaXM7XG4gIG9uQ2hhbmdlKGNhbGxiYWNrOiAobmV3VmFsdWU6IFQpID0+IFByb21pc2U8dm9pZD4pOiB0aGlzO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5ncyB0YWJzIGluIE9ic2lkaWFuLlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIGJpbmRpbmcgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsaW5nIGNoYW5nZXMuXG4gKlxuICogQHRlbXBsYXRlIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgZXh0ZW5kcyBQbHVnaW5CYXNlLlxuICogQHRlbXBsYXRlIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8XG4gIFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Rcbj4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUGx1Z2luU2V0dGluZ3NUYWJCYXNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RQbHVnaW59IHBsdWdpbiAtIFRoZSBwbHVnaW4gaW5zdGFuY2UgdG8gd2hpY2ggdGhpcyBzZXR0aW5ncyB0YWIgYmVsb25ncy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcnJpZGUgcGx1Z2luOiBUUGx1Z2luKSB7XG4gICAgc3VwZXIocGx1Z2luLmFwcCwgcGx1Z2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kcyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3Mgd2l0aCBvcHRpb25hbCBhdXRvbWF0aWMgc2F2aW5nIGFuZCB2YWx1ZSBjb252ZXJzaW9uLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQgZXh0ZW5kaW5nIGBWYWx1ZUNvbXBvbmVudGAuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHkgLSBUaGUga2V5IG9mIHRoZSBwbHVnaW4gc2V0dGluZyB0aGF0IHRoZSBjb21wb25lbnQgaXMgYm91bmQgdG8uXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlUeXBlIC0gVGhlIGluZmVycmVkIHR5cGUgb2YgdGhlIHByb3BlcnR5IGJhc2VkIG9uIHRoZSB2YWx1ZSBjb21wb25lbnQncyB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRoYXQgd2lsbCBkaXNwbGF5IGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBzZXR0aW5nIHZhbHVlLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHBhcmFtIG9wdGlvbnMuYXV0b1NhdmUgLSBJZiB0cnVlLCBzYXZlcyB0aGUgcGx1Z2luIHNldHRpbmdzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2YWx1ZSBjaGFuZ2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYFRWYWx1ZUNvbXBvbmVudGAgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGJpbmRWYWx1ZUNvbXBvbmVudDxcbiAgICBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDx1bmtub3duPixcbiAgICBQcm9wZXJ0eSBleHRlbmRzIEtleXNNYXRjaGluZzxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZVR5cGU+LFxuICAgIFVJVmFsdWVUeXBlID0gVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnQ8aW5mZXIgUD4gPyBQIDogbmV2ZXIsXG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCxcbiAgICBwcm9wZXJ0eTogUHJvcGVydHksXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGF1dG9TYXZlPzogYm9vbGVhblxuICAgIH1cbiAgKTogVFZhbHVlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBCaW5kcyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3Mgd2l0aCBhdXRvbWF0aWMgc2F2aW5nIGFuZCBjdXN0b20gdmFsdWUgY29udmVyc2lvbi5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50IGV4dGVuZGluZyBgVmFsdWVDb21wb25lbnRgLlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAdHlwZVBhcmFtIFVJVmFsdWVUeXBlIC0gVGhlIGluZmVycmVkIHR5cGUgb2YgdGhlIFVJIHZhbHVlIGJhc2VkIG9uIHRoZSB2YWx1ZSBjb21wb25lbnQncyB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRoYXQgd2lsbCBkaXNwbGF5IGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBzZXR0aW5nIHZhbHVlLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHBhcmFtIG9wdGlvbnMuYXV0b1NhdmUgLSBJZiB0cnVlLCBzYXZlcyB0aGUgcGx1Z2luIHNldHRpbmdzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5zZXR0aW5nVG9VSVZhbHVlQ29udmVydGVyIC0gQSBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIHRoZSBzZXR0aW5nIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBvcHRpb25zLnVpVG9TZXR0aW5nVmFsdWVDb252ZXJ0ZXIgLSBBIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIFVJIGNvbXBvbmVudCdzIHZhbHVlIGJhY2sgdG8gdGhlIHNldHRpbmcgdmFsdWUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBgVFZhbHVlQ29tcG9uZW50YCBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYmluZFZhbHVlQ29tcG9uZW50PFxuICAgIFRWYWx1ZUNvbXBvbmVudCBleHRlbmRzIFZhbHVlQ29tcG9uZW50PHVua25vd24+LFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3MsXG4gICAgVUlWYWx1ZVR5cGUgPSBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxpbmZlciBQPiA/IFAgOiBuZXZlcixcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBhdXRvU2F2ZT86IGJvb2xlYW4sXG4gICAgICBzZXR0aW5nVG9VSVZhbHVlQ29udmVydGVyOiAocHJvcGVydHlWYWx1ZTogUGx1Z2luU2V0dGluZ3NbUHJvcGVydHldKSA9PiBVSVZhbHVlVHlwZSxcbiAgICAgIHVpVG9TZXR0aW5nVmFsdWVDb252ZXJ0ZXI6ICh1aVZhbHVlOiBVSVZhbHVlVHlwZSkgPT4gUGx1Z2luU2V0dGluZ3NbUHJvcGVydHldXG4gICAgfVxuICApOiBUVmFsdWVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIEludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGBiaW5kVmFsdWVDb21wb25lbnRgIHRoYXQgaGFuZGxlcyBib3RoIG92ZXJsb2Fkcy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50IGV4dGVuZGluZyBgVmFsdWVDb21wb25lbnRgLlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAdHlwZVBhcmFtIFVJVmFsdWVUeXBlIC0gVGhlIGluZmVycmVkIHR5cGUgb2YgdGhlIFVJIHZhbHVlIGJhc2VkIG9uIHRoZSB2YWx1ZSBjb21wb25lbnQncyB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRoYXQgd2lsbCBkaXNwbGF5IGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBzZXR0aW5nIHZhbHVlLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHBhcmFtIG9wdGlvbnMuYXV0b1NhdmUgLSBJZiB0cnVlLCBzYXZlcyB0aGUgcGx1Z2luIHNldHRpbmdzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5zZXR0aW5nVG9VSVZhbHVlQ29udmVydGVyIC0gQSBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIHRoZSBzZXR0aW5nIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBvcHRpb25zLnVpVG9TZXR0aW5nVmFsdWVDb252ZXJ0ZXIgLSBBIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIFVJIGNvbXBvbmVudCdzIHZhbHVlIGJhY2sgdG8gdGhlIHNldHRpbmcgdmFsdWUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBgVFZhbHVlQ29tcG9uZW50YCBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYmluZFZhbHVlQ29tcG9uZW50PFxuICAgIFRWYWx1ZUNvbXBvbmVudCBleHRlbmRzIFZhbHVlQ29tcG9uZW50PHVua25vd24+LFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3MsXG4gICAgVUlWYWx1ZVR5cGUgPSBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxpbmZlciBQPiA/IFAgOiBuZXZlcixcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICB7XG4gICAgICBhdXRvU2F2ZSxcbiAgICAgIHNldHRpbmdUb1VJVmFsdWVDb252ZXJ0ZXIsXG4gICAgICB1aVRvU2V0dGluZ1ZhbHVlQ29udmVydGVyXG4gICAgfToge1xuICAgICAgYXV0b1NhdmU/OiBib29sZWFuLFxuICAgICAgc2V0dGluZ1RvVUlWYWx1ZUNvbnZlcnRlcjogKHByb3BlcnR5VmFsdWU6IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XSkgPT4gVUlWYWx1ZVR5cGUsXG4gICAgICB1aVRvU2V0dGluZ1ZhbHVlQ29udmVydGVyOiAodWlWYWx1ZTogVUlWYWx1ZVR5cGUpID0+IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XVxuICAgIH1cbiAgKTogVFZhbHVlQ29tcG9uZW50IHtcbiAgICBjb25zdCBwbHVnaW5TZXR0aW5ncyA9IHRoaXMucGx1Z2luLnNldHRpbmdzQ29weTtcbiAgICAodmFsdWVDb21wb25lbnQgYXMgVmFsdWVDb21wb25lbnQ8VUlWYWx1ZVR5cGU+KVxuICAgICAgLnNldFZhbHVlKHNldHRpbmdUb1VJVmFsdWVDb252ZXJ0ZXIocGx1Z2luU2V0dGluZ3NbcHJvcGVydHldKSlcbiAgICAgIC5vbkNoYW5nZShhc3luYyAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgcGx1Z2luU2V0dGluZ3NbcHJvcGVydHldID0gdWlUb1NldHRpbmdWYWx1ZUNvbnZlcnRlcihuZXdWYWx1ZSk7XG4gICAgICAgIGlmIChhdXRvU2F2ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncyhwbHVnaW5TZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudDtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0Esc0JBQWlDO0FBQ2pDLHdCQUEyQjtBQVozQixNQUFNLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUksUUFBUSxVQUFVLEVBQUUsY0FBYyxVQUFVLEdBQUc7QUFDL0csTUFBTSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDekMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQXNCTyxNQUFlLDhCQUdaLGlDQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1sQixZQUE0QixRQUFpQjtBQUNsRCxVQUFNLE9BQU8sS0FBSyxNQUFNO0FBRFM7QUFBQSxFQUVuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUEwRVUsbUJBS1IsZ0JBQ0EsVUFDQTtBQUFBLElBQ0U7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsR0FLaUI7QUFDakIsVUFBTSxpQkFBaUIsS0FBSyxPQUFPO0FBQ25DLElBQUMsZUFDRSxTQUFTLDBCQUEwQixlQUFlLFFBQVEsQ0FBQyxDQUFDLEVBQzVELFNBQVMsT0FBTyxhQUFhO0FBQzVCLHFCQUFlLFFBQVEsSUFBSSwwQkFBMEIsUUFBUTtBQUM3RCxVQUFJLFVBQVU7QUFDWixjQUFNLEtBQUssT0FBTyxhQUFhLGNBQWM7QUFBQSxNQUMvQztBQUFBLElBQ0YsQ0FBQztBQUNILFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -25,25 +25,42 @@ export declare abstract class PluginSettingsTabBase<TPlugin extends PluginBase<P
|
|
|
25
25
|
*/
|
|
26
26
|
constructor(plugin: TPlugin);
|
|
27
27
|
/**
|
|
28
|
-
* Binds a value component to a plugin
|
|
28
|
+
* Binds a value component to a property in the plugin settings with optional automatic saving and value conversion.
|
|
29
29
|
*
|
|
30
|
-
* @
|
|
31
|
-
* @
|
|
32
|
-
* @
|
|
30
|
+
* @typeParam TValueComponent - The type of the value component extending `ValueComponent`.
|
|
31
|
+
* @typeParam Property - The key of the plugin setting that the component is bound to.
|
|
32
|
+
* @typeParam PropertyType - The inferred type of the property based on the value component's type.
|
|
33
33
|
*
|
|
34
|
-
* @param valueComponent - The
|
|
35
|
-
* @param property - The
|
|
36
|
-
* @param options -
|
|
37
|
-
* @param options.autoSave -
|
|
38
|
-
* @param options.settingToUIValueConverter - A function to convert the setting value to the UI value. Default is identity function.
|
|
39
|
-
* @param options.uiToSettingValueConverter - A function to convert the UI value to the setting value. Default is identity function.
|
|
34
|
+
* @param valueComponent - The component that will display and interact with the setting value.
|
|
35
|
+
* @param property - The property key in `PluginSettings` to bind to the component.
|
|
36
|
+
* @param options - Configuration options.
|
|
37
|
+
* @param options.autoSave - If true, saves the plugin settings automatically after the component value changes.
|
|
40
38
|
*
|
|
41
|
-
* @returns The bound
|
|
39
|
+
* @returns The `TValueComponent` instance that was bound to the property.
|
|
42
40
|
*/
|
|
43
|
-
protected bindValueComponent<TValueComponent extends ValueComponent<unknown>, Property extends KeysMatching<PluginSettings,
|
|
41
|
+
protected bindValueComponent<TValueComponent extends ValueComponent<unknown>, Property extends KeysMatching<PluginSettings, UIValueType>, UIValueType = TValueComponent extends ValueComponent<infer P> ? P : never>(valueComponent: TValueComponent, property: Property, options?: {
|
|
44
42
|
autoSave?: boolean;
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
}): TValueComponent;
|
|
44
|
+
/**
|
|
45
|
+
* Binds a value component to a property in the plugin settings with automatic saving and custom value conversion.
|
|
46
|
+
*
|
|
47
|
+
* @typeParam TValueComponent - The type of the value component extending `ValueComponent`.
|
|
48
|
+
* @typeParam Property - The key of the plugin setting that the component is bound to.
|
|
49
|
+
* @typeParam UIValueType - The inferred type of the UI value based on the value component's type.
|
|
50
|
+
*
|
|
51
|
+
* @param valueComponent - The component that will display and interact with the setting value.
|
|
52
|
+
* @param property - The property key in `PluginSettings` to bind to the component.
|
|
53
|
+
* @param options - Configuration options.
|
|
54
|
+
* @param options.autoSave - If true, saves the plugin settings automatically after the component value changes.
|
|
55
|
+
* @param options.settingToUIValueConverter - A function that converts the setting value to the value used by the UI component.
|
|
56
|
+
* @param options.uiToSettingValueConverter - A function that converts the UI component's value back to the setting value.
|
|
57
|
+
*
|
|
58
|
+
* @returns The `TValueComponent` instance that was bound to the property.
|
|
59
|
+
*/
|
|
60
|
+
protected bindValueComponent<TValueComponent extends ValueComponent<unknown>, Property extends keyof PluginSettings, UIValueType = TValueComponent extends ValueComponent<infer P> ? P : never>(valueComponent: TValueComponent, property: Property, options: {
|
|
61
|
+
autoSave?: boolean;
|
|
62
|
+
settingToUIValueConverter: (propertyValue: PluginSettings[Property]) => UIValueType;
|
|
63
|
+
uiToSettingValueConverter: (uiValue: UIValueType) => PluginSettings[Property];
|
|
47
64
|
}): TValueComponent;
|
|
48
65
|
}
|
|
49
66
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-dev-utils",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.2",
|
|
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",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"@types/luxon": "^3.4.2",
|
|
44
44
|
"@types/node": "^22.2.0",
|
|
45
45
|
"@types/parsimmon": "^1.10.9",
|
|
46
|
-
"@types/path-browserify": "^1.0.2",
|
|
47
46
|
"@typescript-eslint/eslint-plugin": "^7.16.1",
|
|
48
47
|
"builtin-modules": "^4.0.0",
|
|
49
48
|
"commander": "^12.1.0",
|
|
@@ -62,6 +61,7 @@
|
|
|
62
61
|
"typescript": "^5.5.4"
|
|
63
62
|
},
|
|
64
63
|
"dependencies": {
|
|
64
|
+
"@types/path-browserify": "^1.0.2",
|
|
65
65
|
"@typescript-eslint/parser": "^7.16.1",
|
|
66
66
|
"adm-zip": "^0.5.15",
|
|
67
67
|
"cspell": "^8.13.2",
|