obsidian-dev-utils 22.1.1-beta.22 → 22.1.1-beta.24
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 +18 -0
- package/dist/lib/cjs/AsyncEvents.cjs +1 -1
- package/dist/lib/cjs/AsyncEvents.d.cts +2 -2
- package/dist/lib/cjs/CssClass.cjs +5 -1
- package/dist/lib/cjs/CssClass.d.cts +16 -0
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/CheckboxComponent.cjs +96 -0
- package/dist/lib/cjs/obsidian/Components/CheckboxComponent.d.cts +51 -0
- package/dist/lib/cjs/obsidian/Components/MultipleDropdownComponent.cjs +2 -2
- package/dist/lib/cjs/obsidian/Components/MultipleTextComponent.cjs +2 -2
- package/dist/lib/cjs/obsidian/Components/TextBasedComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/TextBasedComponent.d.cts +3 -0
- package/dist/lib/cjs/obsidian/Components/TriStateCheckboxComponent.cjs +97 -0
- package/dist/lib/cjs/obsidian/Components/TriStateCheckboxComponent.d.cts +51 -0
- package/dist/lib/cjs/obsidian/Components/TypedDropdownComponent.cjs +127 -0
- package/dist/lib/cjs/obsidian/Components/TypedDropdownComponent.d.cts +71 -0
- package/dist/lib/cjs/obsidian/Components/TypedMultipleDropdownComponent.cjs +129 -0
- package/dist/lib/cjs/obsidian/Components/TypedMultipleDropdownComponent.d.cts +76 -0
- package/dist/lib/cjs/obsidian/Components/TypedRangeTextComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/TypedRangeTextComponent.d.cts +2 -0
- package/dist/lib/cjs/obsidian/Components/TypedTextComponent.cjs +2 -2
- package/dist/lib/cjs/obsidian/Components/TypedTextComponent.d.cts +2 -0
- package/dist/lib/cjs/obsidian/Components/ValueComponentWithChangeTracking.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/ValueComponentWithChangeTracking.d.cts +2 -0
- package/dist/lib/cjs/obsidian/Components/index.cjs +13 -1
- package/dist/lib/cjs/obsidian/Components/index.d.cts +4 -0
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.cjs +21 -19
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.d.cts +11 -9
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +15 -5
- package/dist/lib/cjs/obsidian/SettingEx.cjs +41 -1
- package/dist/lib/cjs/obsidian/SettingEx.d.cts +33 -1
- package/dist/lib/esm/AsyncEvents.d.mts +2 -2
- package/dist/lib/esm/AsyncEvents.mjs +1 -1
- package/dist/lib/esm/CssClass.d.mts +16 -0
- package/dist/lib/esm/CssClass.mjs +5 -1
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/CheckboxComponent.d.mts +51 -0
- package/dist/lib/esm/obsidian/Components/CheckboxComponent.mjs +72 -0
- package/dist/lib/esm/obsidian/Components/MultipleDropdownComponent.mjs +2 -2
- package/dist/lib/esm/obsidian/Components/MultipleTextComponent.mjs +2 -2
- package/dist/lib/esm/obsidian/Components/TextBasedComponent.d.mts +3 -0
- package/dist/lib/esm/obsidian/Components/TextBasedComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/TriStateCheckboxComponent.d.mts +51 -0
- package/dist/lib/esm/obsidian/Components/TriStateCheckboxComponent.mjs +73 -0
- package/dist/lib/esm/obsidian/Components/TypedDropdownComponent.d.mts +71 -0
- package/dist/lib/esm/obsidian/Components/TypedDropdownComponent.mjs +106 -0
- package/dist/lib/esm/obsidian/Components/TypedMultipleDropdownComponent.d.mts +76 -0
- package/dist/lib/esm/obsidian/Components/TypedMultipleDropdownComponent.mjs +108 -0
- package/dist/lib/esm/obsidian/Components/TypedRangeTextComponent.d.mts +2 -0
- package/dist/lib/esm/obsidian/Components/TypedRangeTextComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/TypedTextComponent.d.mts +2 -0
- package/dist/lib/esm/obsidian/Components/TypedTextComponent.mjs +2 -2
- package/dist/lib/esm/obsidian/Components/ValueComponentWithChangeTracking.d.mts +2 -0
- package/dist/lib/esm/obsidian/Components/index.d.mts +4 -0
- package/dist/lib/esm/obsidian/Components/index.mjs +9 -1
- package/dist/lib/esm/obsidian/Plugin/PluginBase.d.mts +11 -9
- package/dist/lib/esm/obsidian/Plugin/PluginBase.mjs +21 -19
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +15 -5
- package/dist/lib/esm/obsidian/SettingEx.d.mts +33 -1
- package/dist/lib/esm/obsidian/SettingEx.mjs +41 -1
- package/obsidian/Components/CheckboxComponent/package.json +6 -0
- package/obsidian/Components/TriStateCheckboxComponent/package.json +6 -0
- package/obsidian/Components/TypedDropdownComponent/package.json +6 -0
- package/obsidian/Components/TypedMultipleDropdownComponent/package.json +6 -0
- package/package.json +1 -1
@@ -0,0 +1,51 @@
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
2
|
+
import { ValueComponent } from 'obsidian';
|
3
|
+
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.cjs';
|
4
|
+
/**
|
5
|
+
* A component that displays a tri-state checkbox.
|
6
|
+
*
|
7
|
+
* You can add this component using {@link SettingEx.addTriStateCheckbox}.
|
8
|
+
*
|
9
|
+
* In order to add the styles for the component, use {@link initPluginContext} in your plugin's `onload()` function.
|
10
|
+
*
|
11
|
+
* Alternatively, you can copy styles from {@link https://github.com/mnaoumov/obsidian-dev-utils/releases/latest/download/styles.css}.
|
12
|
+
*/
|
13
|
+
export declare class TriStateCheckboxComponent extends ValueComponent<boolean | null> implements ValueComponentWithChangeTracking<boolean | null> {
|
14
|
+
/**
|
15
|
+
* The input element of the checkbox.
|
16
|
+
*/
|
17
|
+
readonly inputEl: HTMLInputElement;
|
18
|
+
private changeCallback?;
|
19
|
+
constructor(containerEl: HTMLElement);
|
20
|
+
/**
|
21
|
+
* Gets the value of the checkbox.
|
22
|
+
*
|
23
|
+
* @returns The value of the checkbox.
|
24
|
+
*/
|
25
|
+
getValue(): boolean | null;
|
26
|
+
/**
|
27
|
+
* Sets the callback to be called when the checkbox is changed.
|
28
|
+
*
|
29
|
+
* @param callback - The callback to be called when the checkbox is changed.
|
30
|
+
* @returns The component.
|
31
|
+
*/
|
32
|
+
onChange(callback: (newValue: boolean | null) => Promisable<void>): this;
|
33
|
+
/**
|
34
|
+
* Called when the checkbox is changed.
|
35
|
+
*/
|
36
|
+
onChanged(): void;
|
37
|
+
/**
|
38
|
+
* Sets the disabled state of the checkbox.
|
39
|
+
*
|
40
|
+
* @param disabled - The disabled state of the checkbox.
|
41
|
+
* @returns The component.
|
42
|
+
*/
|
43
|
+
setDisabled(disabled: boolean): this;
|
44
|
+
/**
|
45
|
+
* Sets the value of the checkbox.
|
46
|
+
*
|
47
|
+
* @param value - The value to set the checkbox to.
|
48
|
+
* @returns The component.
|
49
|
+
*/
|
50
|
+
setValue(value: boolean | null): this;
|
51
|
+
}
|
@@ -0,0 +1,127 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
"use strict";
|
9
|
+
var __defProp = Object.defineProperty;
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
13
|
+
var __export = (target, all) => {
|
14
|
+
for (var name in all)
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
16
|
+
};
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
19
|
+
for (let key of __getOwnPropNames(from))
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
22
|
+
}
|
23
|
+
return to;
|
24
|
+
};
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
26
|
+
var TypedDropdownComponent_exports = {};
|
27
|
+
__export(TypedDropdownComponent_exports, {
|
28
|
+
TypedDropdownComponent: () => TypedDropdownComponent
|
29
|
+
});
|
30
|
+
module.exports = __toCommonJS(TypedDropdownComponent_exports);
|
31
|
+
var import_obsidian = require('obsidian');
|
32
|
+
var import_CssClass = require('../../CssClass.cjs');
|
33
|
+
var import_PluginId = require('../Plugin/PluginId.cjs');
|
34
|
+
class TypedDropdownComponent extends import_obsidian.ValueComponent {
|
35
|
+
/**
|
36
|
+
* The validator element of the component.
|
37
|
+
*/
|
38
|
+
get validatorEl() {
|
39
|
+
return this.dropdownComponent.selectEl;
|
40
|
+
}
|
41
|
+
dropdownComponent;
|
42
|
+
values = [];
|
43
|
+
/**
|
44
|
+
* Creates a new multiple dropdown component.
|
45
|
+
*
|
46
|
+
* @param containerEl - The container element of the component.
|
47
|
+
*/
|
48
|
+
constructor(containerEl) {
|
49
|
+
super();
|
50
|
+
this.dropdownComponent = new import_obsidian.DropdownComponent(containerEl);
|
51
|
+
this.dropdownComponent.selectEl.multiple = true;
|
52
|
+
containerEl.addClass(import_CssClass.CssClass.LibraryName, (0, import_PluginId.getPluginId)(), import_CssClass.CssClass.TypedDropdownComponent);
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Adds an option to the dropdown.
|
56
|
+
*
|
57
|
+
* @param value - The value of the option.
|
58
|
+
* @param display - The display text of the option.
|
59
|
+
* @returns The component.
|
60
|
+
*/
|
61
|
+
addOption(value, display) {
|
62
|
+
let index = this.values.indexOf(value);
|
63
|
+
if (index === -1) {
|
64
|
+
this.values.push(value);
|
65
|
+
index = this.values.length - 1;
|
66
|
+
}
|
67
|
+
this.dropdownComponent.addOption(index.toString(), display);
|
68
|
+
return this;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Adds multiple options to the dropdown.
|
72
|
+
*
|
73
|
+
* @param options - The options to add.
|
74
|
+
* @returns The component.
|
75
|
+
*/
|
76
|
+
addOptions(options) {
|
77
|
+
for (const [value, display] of options.entries()) {
|
78
|
+
this.addOption(value, display);
|
79
|
+
}
|
80
|
+
return this;
|
81
|
+
}
|
82
|
+
/**
|
83
|
+
* Gets the value of the component.
|
84
|
+
*
|
85
|
+
* @returns The value of the component.
|
86
|
+
*/
|
87
|
+
getValue() {
|
88
|
+
return this.values[this.dropdownComponent.selectEl.selectedIndex] ?? null;
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Sets the callback function to be called when the component is changed.
|
92
|
+
*
|
93
|
+
* @param callback - The callback function to be called when the component is changed.
|
94
|
+
* @returns The component.
|
95
|
+
*/
|
96
|
+
onChange(callback) {
|
97
|
+
this.dropdownComponent.onChange(() => callback(this.getValue()));
|
98
|
+
return this;
|
99
|
+
}
|
100
|
+
/**
|
101
|
+
* Sets the disabled state of the component.
|
102
|
+
*
|
103
|
+
* @param disabled - The disabled state to set.
|
104
|
+
* @returns The component.
|
105
|
+
*/
|
106
|
+
setDisabled(disabled) {
|
107
|
+
super.setDisabled(disabled);
|
108
|
+
this.dropdownComponent.setDisabled(disabled);
|
109
|
+
return this;
|
110
|
+
}
|
111
|
+
/**
|
112
|
+
* Sets the value of the component.
|
113
|
+
*
|
114
|
+
* @param value - The value to set.
|
115
|
+
* @returns The component.
|
116
|
+
*/
|
117
|
+
setValue(value) {
|
118
|
+
const index = value === null ? -1 : this.values.indexOf(value);
|
119
|
+
this.dropdownComponent.selectEl.selectedIndex = index;
|
120
|
+
return this;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
// Annotate the CommonJS export names for ESM import in node:
|
124
|
+
0 && (module.exports = {
|
125
|
+
TypedDropdownComponent
|
126
|
+
});
|
127
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWREcm9wZG93bkNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgRHJvcGRvd25Db21wb25lbnQsXG4gIFZhbHVlQ29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JFbGVtZW50IH0gZnJvbSAnLi4vLi4vSFRNTEVsZW1lbnQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4uL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB0eXBlIHsgU2V0dGluZ0V4IH0gZnJvbSAnLi4vU2V0dGluZ0V4LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL1ZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5JZCB9IGZyb20gJy4uL1BsdWdpbi9QbHVnaW5JZC50cyc7XG5cbi8qKlxuICogQSBkcm9wZG93biBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSB2YWx1ZSBmcm9tIGEgbGlzdC5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFR5cGVkRHJvcGRvd259LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdG8gc2VsZWN0LlxuICovXG5leHBvcnQgY2xhc3MgVHlwZWREcm9wZG93bkNvbXBvbmVudDxUPiBleHRlbmRzIFZhbHVlQ29tcG9uZW50PG51bGwgfCBUPiBpbXBsZW1lbnRzIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPG51bGwgfCBUPiB7XG4gIC8qKlxuICAgKiBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWw7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duQ29tcG9uZW50OiBEcm9wZG93bkNvbXBvbmVudDtcblxuICBwcml2YXRlIHZhbHVlczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQgPSBuZXcgRHJvcGRvd25Db21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwubXVsdGlwbGUgPSB0cnVlO1xuICAgIGNvbnRhaW5lckVsLmFkZENsYXNzKENzc0NsYXNzLkxpYnJhcnlOYW1lLCBnZXRQbHVnaW5JZCgpLCBDc3NDbGFzcy5UeXBlZERyb3Bkb3duQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9wdGlvbiB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcGFyYW0gZGlzcGxheSAtIFRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIG9wdGlvbi5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcHRpb24odmFsdWU6IFQsIGRpc3BsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGxldCBpbmRleCA9IHRoaXMudmFsdWVzLmluZGV4T2YodmFsdWUpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgaW5kZXggPSB0aGlzLnZhbHVlcy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LmFkZE9wdGlvbihpbmRleC50b1N0cmluZygpLCBkaXNwbGF5KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIG11bHRpcGxlIG9wdGlvbnMgdG8gdGhlIGRyb3Bkb3duLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcHRpb25zKG9wdGlvbnM6IE1hcDxULCBzdHJpbmc+KTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBbdmFsdWUsIGRpc3BsYXldIG9mIG9wdGlvbnMuZW50cmllcygpKSB7XG4gICAgICB0aGlzLmFkZE9wdGlvbih2YWx1ZSwgZGlzcGxheSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bGwgfCBUIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXNbdGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZWxlY3RFbC5zZWxlY3RlZEluZGV4XSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBudWxsIHwgVCkgPT4gUHJvbWlzYWJsZTx2b2lkPik6IHRoaXMge1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQub25DaGFuZ2UoKCkgPT4gY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpc2FibGVkIC0gVGhlIGRpc2FibGVkIHN0YXRlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHRoaXMge1xuICAgIHN1cGVyLnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBudWxsIHwgVCk6IHRoaXMge1xuICAgIGNvbnN0IGluZGV4ID0gdmFsdWUgPT09IG51bGwgPyAtMSA6IHRoaXMudmFsdWVzLmluZGV4T2YodmFsdWUpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLHNCQUdPO0FBU1Asc0JBQXlCO0FBQ3pCLHNCQUE0QjtBQWFyQixNQUFNLCtCQUFrQywrQkFBK0U7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUk1SCxJQUFXLGNBQWdDO0FBQ3pDLFdBQU8sS0FBSyxrQkFBa0I7QUFBQSxFQUNoQztBQUFBLEVBRWlCO0FBQUEsRUFFVCxTQUFjLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPaEIsWUFBWSxhQUEwQjtBQUMzQyxVQUFNO0FBQ04sU0FBSyxvQkFBb0IsSUFBSSxrQ0FBa0IsV0FBVztBQUMxRCxTQUFLLGtCQUFrQixTQUFTLFdBQVc7QUFDM0MsZ0JBQVksU0FBUyx5QkFBUyxpQkFBYSw2QkFBWSxHQUFHLHlCQUFTLHNCQUFzQjtBQUFBLEVBQzNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNPLFVBQVUsT0FBVSxTQUF1QjtBQUNoRCxRQUFJLFFBQVEsS0FBSyxPQUFPLFFBQVEsS0FBSztBQUNyQyxRQUFJLFVBQVUsSUFBSTtBQUNoQixXQUFLLE9BQU8sS0FBSyxLQUFLO0FBQ3RCLGNBQVEsS0FBSyxPQUFPLFNBQVM7QUFBQSxJQUMvQjtBQUNBLFNBQUssa0JBQWtCLFVBQVUsTUFBTSxTQUFTLEdBQUcsT0FBTztBQUMxRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sV0FBVyxTQUErQjtBQUMvQyxlQUFXLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxRQUFRLEdBQUc7QUFDaEQsV0FBSyxVQUFVLE9BQU8sT0FBTztBQUFBLElBQy9CO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxXQUFxQjtBQUMxQixXQUFPLEtBQUssT0FBTyxLQUFLLGtCQUFrQixTQUFTLGFBQWEsS0FBSztBQUFBLEVBQ3ZFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLFVBQXVEO0FBQ3JFLFNBQUssa0JBQWtCLFNBQVMsTUFBTSxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDL0QsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixZQUFZLFVBQXlCO0FBQ25ELFVBQU0sWUFBWSxRQUFRO0FBQzFCLFNBQUssa0JBQWtCLFlBQVksUUFBUTtBQUMzQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxPQUF1QjtBQUNyQyxVQUFNLFFBQVEsVUFBVSxPQUFPLEtBQUssS0FBSyxPQUFPLFFBQVEsS0FBSztBQUM3RCxTQUFLLGtCQUFrQixTQUFTLGdCQUFnQjtBQUNoRCxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
2
|
+
import { ValueComponent } from 'obsidian';
|
3
|
+
import type { ValidatorElement } from '../../HTMLElement.cjs';
|
4
|
+
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.cjs';
|
5
|
+
/**
|
6
|
+
* A dropdown component that can be used to select a value from a list.
|
7
|
+
*
|
8
|
+
* You can add this component using {@link SettingEx.addTypedDropdown}.
|
9
|
+
*
|
10
|
+
* In order to add the styles for the component, use {@link initPluginContext} in your plugin's `onload()` function.
|
11
|
+
*
|
12
|
+
* Alternatively, you can copy styles from {@link https://github.com/mnaoumov/obsidian-dev-utils/releases/latest/download/styles.css}.
|
13
|
+
*
|
14
|
+
* @typeParam T - The type of the value to select.
|
15
|
+
*/
|
16
|
+
export declare class TypedDropdownComponent<T> extends ValueComponent<null | T> implements ValueComponentWithChangeTracking<null | T> {
|
17
|
+
/**
|
18
|
+
* The validator element of the component.
|
19
|
+
*/
|
20
|
+
get validatorEl(): ValidatorElement;
|
21
|
+
private readonly dropdownComponent;
|
22
|
+
private values;
|
23
|
+
/**
|
24
|
+
* Creates a new multiple dropdown component.
|
25
|
+
*
|
26
|
+
* @param containerEl - The container element of the component.
|
27
|
+
*/
|
28
|
+
constructor(containerEl: HTMLElement);
|
29
|
+
/**
|
30
|
+
* Adds an option to the dropdown.
|
31
|
+
*
|
32
|
+
* @param value - The value of the option.
|
33
|
+
* @param display - The display text of the option.
|
34
|
+
* @returns The component.
|
35
|
+
*/
|
36
|
+
addOption(value: T, display: string): this;
|
37
|
+
/**
|
38
|
+
* Adds multiple options to the dropdown.
|
39
|
+
*
|
40
|
+
* @param options - The options to add.
|
41
|
+
* @returns The component.
|
42
|
+
*/
|
43
|
+
addOptions(options: Map<T, string>): this;
|
44
|
+
/**
|
45
|
+
* Gets the value of the component.
|
46
|
+
*
|
47
|
+
* @returns The value of the component.
|
48
|
+
*/
|
49
|
+
getValue(): null | T;
|
50
|
+
/**
|
51
|
+
* Sets the callback function to be called when the component is changed.
|
52
|
+
*
|
53
|
+
* @param callback - The callback function to be called when the component is changed.
|
54
|
+
* @returns The component.
|
55
|
+
*/
|
56
|
+
onChange(callback: (value: null | T) => Promisable<void>): this;
|
57
|
+
/**
|
58
|
+
* Sets the disabled state of the component.
|
59
|
+
*
|
60
|
+
* @param disabled - The disabled state to set.
|
61
|
+
* @returns The component.
|
62
|
+
*/
|
63
|
+
setDisabled(disabled: boolean): this;
|
64
|
+
/**
|
65
|
+
* Sets the value of the component.
|
66
|
+
*
|
67
|
+
* @param value - The value to set.
|
68
|
+
* @returns The component.
|
69
|
+
*/
|
70
|
+
setValue(value: null | T): this;
|
71
|
+
}
|
@@ -0,0 +1,129 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
"use strict";
|
9
|
+
var __defProp = Object.defineProperty;
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
13
|
+
var __export = (target, all) => {
|
14
|
+
for (var name in all)
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
16
|
+
};
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
19
|
+
for (let key of __getOwnPropNames(from))
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
22
|
+
}
|
23
|
+
return to;
|
24
|
+
};
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
26
|
+
var TypedMultipleDropdownComponent_exports = {};
|
27
|
+
__export(TypedMultipleDropdownComponent_exports, {
|
28
|
+
TypedMultipleDropdownComponent: () => TypedMultipleDropdownComponent
|
29
|
+
});
|
30
|
+
module.exports = __toCommonJS(TypedMultipleDropdownComponent_exports);
|
31
|
+
var import_obsidian = require('obsidian');
|
32
|
+
var import_CssClass = require('../../CssClass.cjs');
|
33
|
+
var import_PluginId = require('../Plugin/PluginId.cjs');
|
34
|
+
class TypedMultipleDropdownComponent extends import_obsidian.ValueComponent {
|
35
|
+
/**
|
36
|
+
* The validator element of the component.
|
37
|
+
*/
|
38
|
+
get validatorEl() {
|
39
|
+
return this.dropdownComponent.selectEl;
|
40
|
+
}
|
41
|
+
dropdownComponent;
|
42
|
+
values = [];
|
43
|
+
/**
|
44
|
+
* Creates a new multiple dropdown component.
|
45
|
+
*
|
46
|
+
* @param containerEl - The container element of the component.
|
47
|
+
*/
|
48
|
+
constructor(containerEl) {
|
49
|
+
super();
|
50
|
+
this.dropdownComponent = new import_obsidian.DropdownComponent(containerEl);
|
51
|
+
this.dropdownComponent.selectEl.multiple = true;
|
52
|
+
containerEl.addClass(import_CssClass.CssClass.LibraryName, (0, import_PluginId.getPluginId)(), import_CssClass.CssClass.TypedMultipleDropdownComponent);
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Adds an option to the dropdown.
|
56
|
+
*
|
57
|
+
* @param value - The value of the option.
|
58
|
+
* @param display - The display text of the option.
|
59
|
+
* @returns The component.
|
60
|
+
*/
|
61
|
+
addOption(value, display) {
|
62
|
+
let index = this.values.indexOf(value);
|
63
|
+
if (index === -1) {
|
64
|
+
this.values.push(value);
|
65
|
+
index = this.values.length - 1;
|
66
|
+
}
|
67
|
+
this.dropdownComponent.addOption(index.toString(), display);
|
68
|
+
return this;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Adds multiple options to the dropdown.
|
72
|
+
*
|
73
|
+
* @param options - The options to add.
|
74
|
+
* @returns The component.
|
75
|
+
*/
|
76
|
+
addOptions(options) {
|
77
|
+
for (const [value, display] of options.entries()) {
|
78
|
+
this.addOption(value, display);
|
79
|
+
}
|
80
|
+
return this;
|
81
|
+
}
|
82
|
+
/**
|
83
|
+
* Gets the value of the component.
|
84
|
+
*
|
85
|
+
* @returns The value of the component.
|
86
|
+
*/
|
87
|
+
getValue() {
|
88
|
+
return Array.from(this.dropdownComponent.selectEl.selectedOptions).map((o) => this.values[o.index]).filter((value) => value !== void 0);
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Sets the callback function to be called when the component is changed.
|
92
|
+
*
|
93
|
+
* @param callback - The callback function to be called when the component is changed.
|
94
|
+
* @returns The component.
|
95
|
+
*/
|
96
|
+
onChange(callback) {
|
97
|
+
this.dropdownComponent.onChange(() => callback(this.getValue()));
|
98
|
+
return this;
|
99
|
+
}
|
100
|
+
/**
|
101
|
+
* Sets the disabled state of the component.
|
102
|
+
*
|
103
|
+
* @param disabled - The disabled state to set.
|
104
|
+
* @returns The component.
|
105
|
+
*/
|
106
|
+
setDisabled(disabled) {
|
107
|
+
super.setDisabled(disabled);
|
108
|
+
this.dropdownComponent.setDisabled(disabled);
|
109
|
+
return this;
|
110
|
+
}
|
111
|
+
/**
|
112
|
+
* Sets the value of the component.
|
113
|
+
*
|
114
|
+
* @param value - The value to set.
|
115
|
+
* @returns The component.
|
116
|
+
*/
|
117
|
+
setValue(value) {
|
118
|
+
const selectedIndices = value.map((v) => this.values.indexOf(v)).filter((index) => index !== -1);
|
119
|
+
for (const option of Array.from(this.dropdownComponent.selectEl.options)) {
|
120
|
+
option.selected = selectedIndices.includes(option.index);
|
121
|
+
}
|
122
|
+
return this;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
// Annotate the CommonJS export names for ESM import in node:
|
126
|
+
0 && (module.exports = {
|
127
|
+
TypedMultipleDropdownComponent
|
128
|
+
});
|
129
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50XG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG11bHRpLXNlbGVjdCBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckVsZW1lbnQgfSBmcm9tICcuLi8uLi9IVE1MRWxlbWVudC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vUGx1Z2luL1BsdWdpbkNvbnRleHQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi9TZXR0aW5nRXgudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSWQgfSBmcm9tICcuLi9QbHVnaW4vUGx1Z2luSWQudHMnO1xuXG4vKipcbiAqIEEgbXVsdGktc2VsZWN0IGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFR5cGVkTXVsdGlwbGVEcm9wZG93bn0uXG4gKlxuICogSW4gb3JkZXIgdG8gYWRkIHRoZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnQsIHVzZSB7QGxpbmsgaW5pdFBsdWdpbkNvbnRleHR9IGluIHlvdXIgcGx1Z2luJ3MgYG9ubG9hZCgpYCBmdW5jdGlvbi5cbiAqXG4gKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgc3R5bGVzIGZyb20ge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL3N0eWxlcy5jc3N9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZWxlY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQ8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUW10+IGltcGxlbWVudHMgVmFsaWRhdG9yQ29tcG9uZW50LCBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxUW10+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZWxlY3RFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25Db21wb25lbnQ6IERyb3Bkb3duQ29tcG9uZW50O1xuICBwcml2YXRlIHZhbHVlczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQgPSBuZXcgRHJvcGRvd25Db21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwubXVsdGlwbGUgPSB0cnVlO1xuICAgIGNvbnRhaW5lckVsLmFkZENsYXNzKENzc0NsYXNzLkxpYnJhcnlOYW1lLCBnZXRQbHVnaW5JZCgpLCBDc3NDbGFzcy5UeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gb3B0aW9uIHRvIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBvcHRpb24uXG4gICAqIEBwYXJhbSBkaXNwbGF5IC0gVGhlIGRpc3BsYXkgdGV4dCBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbih2YWx1ZTogVCwgZGlzcGxheTogc3RyaW5nKTogdGhpcyB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy52YWx1ZXMuaW5kZXhPZih2YWx1ZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgdGhpcy52YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICBpbmRleCA9IHRoaXMudmFsdWVzLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuYWRkT3B0aW9uKGluZGV4LnRvU3RyaW5nKCksIGRpc3BsYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgb3B0aW9ucyB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbnMob3B0aW9uczogTWFwPFQsIHN0cmluZz4pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IFt2YWx1ZSwgZGlzcGxheV0gb2Ygb3B0aW9ucy5lbnRyaWVzKCkpIHtcbiAgICAgIHRoaXMuYWRkT3B0aW9uKHZhbHVlLCBkaXNwbGF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsLnNlbGVjdGVkT3B0aW9ucylcbiAgICAgIC5tYXAoKG8pID0+IHRoaXMudmFsdWVzW28uaW5kZXhdKVxuICAgICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBUID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBUW10pID0+IFByb21pc2FibGU8dm9pZD4pOiB0aGlzIHtcbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50Lm9uQ2hhbmdlKCgpID0+IGNhbGxiYWNrKHRoaXMuZ2V0VmFsdWUoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBkaXNhYmxlZCAtIFRoZSBkaXNhYmxlZCBzdGF0ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogVFtdKTogdGhpcyB7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRpY2VzID0gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnZhbHVlcy5pbmRleE9mKHYpKS5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCAhPT0gLTEpO1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIEFycmF5LmZyb20odGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZWxlY3RFbC5vcHRpb25zKSkge1xuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gc2VsZWN0ZWRJbmRpY2VzLmluY2x1ZGVzKG9wdGlvbi5pbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Esc0JBR087QUFVUCxzQkFBeUI7QUFDekIsc0JBQTRCO0FBYXJCLE1BQU0sdUNBQTBDLCtCQUF5RjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSTlJLElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2hDO0FBQUEsRUFFaUI7QUFBQSxFQUNULFNBQWMsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9oQixZQUFZLGFBQTBCO0FBQzNDLFVBQU07QUFDTixTQUFLLG9CQUFvQixJQUFJLGtDQUFrQixXQUFXO0FBQzFELFNBQUssa0JBQWtCLFNBQVMsV0FBVztBQUMzQyxnQkFBWSxTQUFTLHlCQUFTLGlCQUFhLDZCQUFZLEdBQUcseUJBQVMsOEJBQThCO0FBQUEsRUFDbkc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sVUFBVSxPQUFVLFNBQXVCO0FBQ2hELFFBQUksUUFBUSxLQUFLLE9BQU8sUUFBUSxLQUFLO0FBQ3JDLFFBQUksVUFBVSxJQUFJO0FBQ2hCLFdBQUssT0FBTyxLQUFLLEtBQUs7QUFDdEIsY0FBUSxLQUFLLE9BQU8sU0FBUztBQUFBLElBQy9CO0FBQ0EsU0FBSyxrQkFBa0IsVUFBVSxNQUFNLFNBQVMsR0FBRyxPQUFPO0FBQzFELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxXQUFXLFNBQStCO0FBQy9DLGVBQVcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLFFBQVEsR0FBRztBQUNoRCxXQUFLLFVBQVUsT0FBTyxPQUFPO0FBQUEsSUFDL0I7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFdBQWdCO0FBQ3JCLFdBQU8sTUFBTSxLQUFLLEtBQUssa0JBQWtCLFNBQVMsZUFBZSxFQUM5RCxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFDL0IsT0FBTyxDQUFDLFVBQXNCLFVBQVUsTUFBUztBQUFBLEVBQ3REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLFVBQWtEO0FBQ2hFLFNBQUssa0JBQWtCLFNBQVMsTUFBTSxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDL0QsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixZQUFZLFVBQXlCO0FBQ25ELFVBQU0sWUFBWSxRQUFRO0FBQzFCLFNBQUssa0JBQWtCLFlBQVksUUFBUTtBQUMzQyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxPQUFrQjtBQUNoQyxVQUFNLGtCQUFrQixNQUFNLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLFVBQVUsRUFBRTtBQUMvRixlQUFXLFVBQVUsTUFBTSxLQUFLLEtBQUssa0JBQWtCLFNBQVMsT0FBTyxHQUFHO0FBQ3hFLGFBQU8sV0FBVyxnQkFBZ0IsU0FBUyxPQUFPLEtBQUs7QUFBQSxJQUN6RDtBQUVBLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation MultipleDropdownComponent
|
3
|
+
* Contains a component that displays and edits a multi-select dropdown.
|
4
|
+
*/
|
5
|
+
import type { Promisable } from 'type-fest';
|
6
|
+
import { ValueComponent } from 'obsidian';
|
7
|
+
import type { ValidatorElement } from '../../HTMLElement.cjs';
|
8
|
+
import type { ValidatorComponent } from './ValidatorComponent.cjs';
|
9
|
+
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.cjs';
|
10
|
+
/**
|
11
|
+
* A multi-select dropdown component.
|
12
|
+
*
|
13
|
+
* You can add this component using {@link SettingEx.addTypedMultipleDropdown}.
|
14
|
+
*
|
15
|
+
* In order to add the styles for the component, use {@link initPluginContext} in your plugin's `onload()` function.
|
16
|
+
*
|
17
|
+
* Alternatively, you can copy styles from {@link https://github.com/mnaoumov/obsidian-dev-utils/releases/latest/download/styles.css}.
|
18
|
+
*
|
19
|
+
* @typeParam T - The type of the value to select.
|
20
|
+
*/
|
21
|
+
export declare class TypedMultipleDropdownComponent<T> extends ValueComponent<T[]> implements ValidatorComponent, ValueComponentWithChangeTracking<T[]> {
|
22
|
+
/**
|
23
|
+
* The validator element of the component.
|
24
|
+
*/
|
25
|
+
get validatorEl(): ValidatorElement;
|
26
|
+
private readonly dropdownComponent;
|
27
|
+
private values;
|
28
|
+
/**
|
29
|
+
* Creates a new multiple dropdown component.
|
30
|
+
*
|
31
|
+
* @param containerEl - The container element of the component.
|
32
|
+
*/
|
33
|
+
constructor(containerEl: HTMLElement);
|
34
|
+
/**
|
35
|
+
* Adds an option to the dropdown.
|
36
|
+
*
|
37
|
+
* @param value - The value of the option.
|
38
|
+
* @param display - The display text of the option.
|
39
|
+
* @returns The component.
|
40
|
+
*/
|
41
|
+
addOption(value: T, display: string): this;
|
42
|
+
/**
|
43
|
+
* Adds multiple options to the dropdown.
|
44
|
+
*
|
45
|
+
* @param options - The options to add.
|
46
|
+
* @returns The component.
|
47
|
+
*/
|
48
|
+
addOptions(options: Map<T, string>): this;
|
49
|
+
/**
|
50
|
+
* Gets the value of the component.
|
51
|
+
*
|
52
|
+
* @returns The value of the component.
|
53
|
+
*/
|
54
|
+
getValue(): T[];
|
55
|
+
/**
|
56
|
+
* Sets the callback function to be called when the component is changed.
|
57
|
+
*
|
58
|
+
* @param callback - The callback function to be called when the component is changed.
|
59
|
+
* @returns The component.
|
60
|
+
*/
|
61
|
+
onChange(callback: (value: T[]) => Promisable<void>): this;
|
62
|
+
/**
|
63
|
+
* Sets the disabled state of the component.
|
64
|
+
*
|
65
|
+
* @param disabled - The disabled state to set.
|
66
|
+
* @returns The component.
|
67
|
+
*/
|
68
|
+
setDisabled(disabled: boolean): this;
|
69
|
+
/**
|
70
|
+
* Sets the value of the component.
|
71
|
+
*
|
72
|
+
* @param value - The value to set.
|
73
|
+
* @returns The component.
|
74
|
+
*/
|
75
|
+
setValue(value: T[]): this;
|
76
|
+
}
|
@@ -65,4 +65,4 @@ class TypedRangeTextComponent extends import_TypedTextComponent.TypedTextCompone
|
|
65
65
|
0 && (module.exports = {
|
66
66
|
TypedRangeTextComponent
|
67
67
|
});
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
68
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRSYW5nZVRleHRDb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFR5cGVkUmFuZ2VUZXh0Q29tcG9uZW50XG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHRleHQtYmFzZWQgdmFsdWUgd2l0aCBhIHJhbmdlLlxuICovXG5cbmltcG9ydCB7IFR5cGVkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vVHlwZWRUZXh0Q29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHRleHQtYmFzZWQgdmFsdWUgd2l0aCBhIHJhbmdlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudDxUPiBleHRlbmRzIFR5cGVkVGV4dENvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBtYXggLSBUaGUgbWF4aW11bSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRNYXgobWF4OiBUKTogdGhpcyB7XG4gICAgdGhpcy5pbnB1dEVsLm1heCA9IHRoaXMudmFsdWVUb1N0cmluZyhtYXgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIG1pbiAtIFRoZSBtaW5pbXVtIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldE1pbihtaW46IFQpOiB0aGlzIHtcbiAgICB0aGlzLmlucHV0RWwubWluID0gdGhpcy52YWx1ZVRvU3RyaW5nKG1pbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcCB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcCAtIFRoZSBzdGVwIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFN0ZXAoc3RlcDogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5pbnB1dEVsLnN0ZXAgPSBzdGVwLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0EsZ0NBQW1DO0FBTzVCLE1BQWUsZ0NBQW1DLDZDQUFzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3RFLE9BQU8sS0FBYztBQUMxQixTQUFLLFFBQVEsTUFBTSxLQUFLLGNBQWMsR0FBRztBQUN6QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sT0FBTyxLQUFjO0FBQzFCLFNBQUssUUFBUSxNQUFNLEtBQUssY0FBYyxHQUFHO0FBQ3pDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxRQUFRLE1BQW9CO0FBQ2pDLFNBQUssUUFBUSxPQUFPLEtBQUssU0FBUztBQUNsQyxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -5,6 +5,8 @@
|
|
5
5
|
import { TypedTextComponent } from './TypedTextComponent.cjs';
|
6
6
|
/**
|
7
7
|
* A component that displays and edits a text-based value with a range.
|
8
|
+
*
|
9
|
+
* @typeParam T - The type of the value to set.
|
8
10
|
*/
|
9
11
|
export declare abstract class TypedRangeTextComponent<T> extends TypedTextComponent<T> {
|
10
12
|
/**
|
@@ -102,8 +102,8 @@ class TypedTextComponent extends import_obsidian.ValueComponent {
|
|
102
102
|
* @returns The component.
|
103
103
|
*/
|
104
104
|
setDisabled(disabled) {
|
105
|
+
super.setDisabled(disabled);
|
105
106
|
this.textComponent.setDisabled(disabled);
|
106
|
-
this.disabled = disabled;
|
107
107
|
return this;
|
108
108
|
}
|
109
109
|
/**
|
@@ -150,4 +150,4 @@ class TypedTextComponent extends import_obsidian.ValueComponent {
|
|
150
150
|
0 && (module.exports = {
|
151
151
|
TypedTextComponent
|
152
152
|
});
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
153
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRUZXh0Q29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBUeXBlZFRleHRDb21wb25lbnRcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgdGV4dC1iYXNlZCB2YWx1ZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBUZXh0Q29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVGV4dEJhc2VkQ29tcG9uZW50IH0gZnJvbSAnLi9UZXh0QmFzZWRDb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSWQgfSBmcm9tICcuLi9QbHVnaW4vUGx1Z2luSWQudHMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgdGV4dC1iYXNlZCB2YWx1ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHlwZWRUZXh0Q29tcG9uZW50PFQ+IGV4dGVuZHMgVmFsdWVDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBUZXh0QmFzZWRDb21wb25lbnQ8VD4sIFZhbGlkYXRvckNvbXBvbmVudCwgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VD4ge1xuICAvKipcbiAgICogVGhlIGlucHV0IGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICAvKipcbiAgICogVGhlIHZhbGlkYXRvciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRvckVsKCk6IFZhbGlkYXRvckVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWw7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRleHRDb21wb25lbnQ6IFRleHRDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdHlwZWQgdGV4dCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250YWluZXJFbCAtIFRoZSBjb250YWluZXIgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgKiBAcGFyYW0gY3NzQ2xhc3MgLSBUaGUgQ1NTIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCB0eXBlOiBzdHJpbmcsIGNzc0NsYXNzOiBDc3NDbGFzcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy50ZXh0Q29tcG9uZW50ID0gbmV3IFRleHRDb21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuaW5wdXRFbCA9IHRoaXMudGV4dENvbXBvbmVudC5pbnB1dEVsO1xuICAgIHRoaXMuaW5wdXRFbC50eXBlID0gdHlwZTtcbiAgICBjb250YWluZXJFbC5hZGRDbGFzcyhDc3NDbGFzcy5MaWJyYXJ5TmFtZSwgZ2V0UGx1Z2luSWQoKSwgY3NzQ2xhc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtcHRpZXMgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBlbXB0eSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldFZhbHVlKCk6IFQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlRnJvbVN0cmluZyh0aGlzLnRleHRDb21wb25lbnQuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21wb25lbnQgaXMgZW1wdHkuXG4gICAqXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRleHRDb21wb25lbnQuZ2V0VmFsdWUoKSA9PT0gJyc7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2VkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG9uQ2hhbmdlKGNhbGxiYWNrOiAodmFsdWU6IFQpID0+IFByb21pc2FibGU8dm9pZD4pOiB0aGlzIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQub25DaGFuZ2UoKCkgPT4gY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHVibGljIG9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQub25DaGFuZ2VkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpc2FibGVkIC0gV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMudGV4dENvbXBvbmVudC5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy50ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXJWYWx1ZSAtIFRoZSBwbGFjZWhvbGRlciB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXJWYWx1ZShwbGFjZWhvbGRlclZhbHVlOiBUKTogdGhpcyB7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcih0aGlzLnZhbHVlVG9TdHJpbmcocGxhY2Vob2xkZXJWYWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IFQpOiB0aGlzIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQuc2V0VmFsdWUodGhpcy52YWx1ZVRvU3RyaW5nKHZhbHVlKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHZhbHVlRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IFQ7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgdmFsdWUgdG8gYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHZhbHVlVG9TdHJpbmcodmFsdWU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLHNCQUdPO0FBT1Asc0JBQXlCO0FBQ3pCLHNCQUE0QjtBQU9yQixNQUFlLDJCQUE4QiwrQkFDd0M7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUkxRTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWhCLElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNWLFlBQVksYUFBMEIsTUFBYyxVQUFvQjtBQUM3RSxVQUFNO0FBQ04sU0FBSyxnQkFBZ0IsSUFBSSw4QkFBYyxXQUFXO0FBQ2xELFNBQUssVUFBVSxLQUFLLGNBQWM7QUFDbEMsU0FBSyxRQUFRLE9BQU87QUFDcEIsZ0JBQVksU0FBUyx5QkFBUyxpQkFBYSw2QkFBWSxHQUFHLFFBQVE7QUFBQSxFQUNwRTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sUUFBYztBQUNuQixTQUFLLGNBQWMsU0FBUyxFQUFFO0FBQUEsRUFDaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPZ0IsV0FBYztBQUM1QixXQUFPLEtBQUssZ0JBQWdCLEtBQUssY0FBYyxTQUFTLENBQUM7QUFBQSxFQUMzRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFVBQW1CO0FBQ3hCLFdBQU8sS0FBSyxjQUFjLFNBQVMsTUFBTTtBQUFBLEVBQzNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLFVBQWdEO0FBQzlELFNBQUssY0FBYyxTQUFTLE1BQU0sU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQzNELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxZQUFrQjtBQUN2QixTQUFLLGNBQWMsVUFBVTtBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsWUFBWSxVQUF5QjtBQUNuRCxVQUFNLFlBQVksUUFBUTtBQUMxQixTQUFLLGNBQWMsWUFBWSxRQUFRO0FBQ3ZDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxlQUFlLGFBQTJCO0FBQy9DLFNBQUssY0FBYyxlQUFlLFdBQVc7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLG9CQUFvQixrQkFBMkI7QUFDcEQsU0FBSyxlQUFlLEtBQUssY0FBYyxnQkFBZ0IsQ0FBQztBQUN4RCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFNBQVMsT0FBZ0I7QUFDdkMsU0FBSyxjQUFjLFNBQVMsS0FBSyxjQUFjLEtBQUssQ0FBQztBQUNyRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZ0JPLGNBQWMsT0FBa0I7QUFDckMsV0FBTyxPQUFPLEtBQUs7QUFBQSxFQUNyQjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -11,6 +11,8 @@ import type { ValueComponentWithChangeTracking } from './ValueComponentWithChang
|
|
11
11
|
import { CssClass } from '../../CssClass.cjs';
|
12
12
|
/**
|
13
13
|
* A component that displays and edits a text-based value.
|
14
|
+
*
|
15
|
+
* @typeParam T - The type of the value to set.
|
14
16
|
*/
|
15
17
|
export declare abstract class TypedTextComponent<T> extends ValueComponent<T> implements TextBasedComponent<T>, ValidatorComponent, ValueComponentWithChangeTracking<T> {
|
16
18
|
/**
|
@@ -21,4 +21,4 @@ var __copyProps = (to, from, except, desc) => {
|
|
21
21
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
22
22
|
var ValueComponentWithChangeTracking_exports = {};
|
23
23
|
module.exports = __toCommonJS(ValueComponentWithChangeTracking_exports);
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
24
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nXG4gKiBDb250YWlucyBhIHR5cGUgdGhhdCBleHRlbmRzIFZhbHVlQ29tcG9uZW50IHRvIGFsbG93IGZvciBjaGFuZ2UgdHJhY2tpbmcuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbi8qKlxuICogQSBWYWx1ZUNvbXBvbmVudCB0aGF0IGNhbiB0cmFjayBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZShjYWxsYmFjazogKG5ld1ZhbHVlOiBUKSA9PiBQcm9taXNhYmxlPHZvaWQ+KTogdGhpcztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -6,6 +6,8 @@ import type { ValueComponent } from 'obsidian';
|
|
6
6
|
import type { Promisable } from 'type-fest';
|
7
7
|
/**
|
8
8
|
* A ValueComponent that can track changes.
|
9
|
+
*
|
10
|
+
* @typeParam T - The type of the value to set.
|
9
11
|
*/
|
10
12
|
export interface ValueComponentWithChangeTracking<T> extends ValueComponent<T> {
|
11
13
|
/**
|