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,71 @@
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
2
|
+
import { ValueComponent } from 'obsidian';
|
3
|
+
import type { ValidatorElement } from '../../HTMLElement.mjs';
|
4
|
+
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.mjs';
|
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,106 @@
|
|
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 initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
|
7
|
+
|
8
|
+
import {
|
9
|
+
DropdownComponent,
|
10
|
+
ValueComponent
|
11
|
+
} from "obsidian";
|
12
|
+
import { CssClass } from "../../CssClass.mjs";
|
13
|
+
import { getPluginId } from "../Plugin/PluginId.mjs";
|
14
|
+
class TypedDropdownComponent extends ValueComponent {
|
15
|
+
/**
|
16
|
+
* The validator element of the component.
|
17
|
+
*/
|
18
|
+
get validatorEl() {
|
19
|
+
return this.dropdownComponent.selectEl;
|
20
|
+
}
|
21
|
+
dropdownComponent;
|
22
|
+
values = [];
|
23
|
+
/**
|
24
|
+
* Creates a new multiple dropdown component.
|
25
|
+
*
|
26
|
+
* @param containerEl - The container element of the component.
|
27
|
+
*/
|
28
|
+
constructor(containerEl) {
|
29
|
+
super();
|
30
|
+
this.dropdownComponent = new DropdownComponent(containerEl);
|
31
|
+
this.dropdownComponent.selectEl.multiple = true;
|
32
|
+
containerEl.addClass(CssClass.LibraryName, getPluginId(), CssClass.TypedDropdownComponent);
|
33
|
+
}
|
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, display) {
|
42
|
+
let index = this.values.indexOf(value);
|
43
|
+
if (index === -1) {
|
44
|
+
this.values.push(value);
|
45
|
+
index = this.values.length - 1;
|
46
|
+
}
|
47
|
+
this.dropdownComponent.addOption(index.toString(), display);
|
48
|
+
return this;
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Adds multiple options to the dropdown.
|
52
|
+
*
|
53
|
+
* @param options - The options to add.
|
54
|
+
* @returns The component.
|
55
|
+
*/
|
56
|
+
addOptions(options) {
|
57
|
+
for (const [value, display] of options.entries()) {
|
58
|
+
this.addOption(value, display);
|
59
|
+
}
|
60
|
+
return this;
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Gets the value of the component.
|
64
|
+
*
|
65
|
+
* @returns The value of the component.
|
66
|
+
*/
|
67
|
+
getValue() {
|
68
|
+
return this.values[this.dropdownComponent.selectEl.selectedIndex] ?? null;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Sets the callback function to be called when the component is changed.
|
72
|
+
*
|
73
|
+
* @param callback - The callback function to be called when the component is changed.
|
74
|
+
* @returns The component.
|
75
|
+
*/
|
76
|
+
onChange(callback) {
|
77
|
+
this.dropdownComponent.onChange(() => callback(this.getValue()));
|
78
|
+
return this;
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* Sets the disabled state of the component.
|
82
|
+
*
|
83
|
+
* @param disabled - The disabled state to set.
|
84
|
+
* @returns The component.
|
85
|
+
*/
|
86
|
+
setDisabled(disabled) {
|
87
|
+
super.setDisabled(disabled);
|
88
|
+
this.dropdownComponent.setDisabled(disabled);
|
89
|
+
return this;
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Sets the value of the component.
|
93
|
+
*
|
94
|
+
* @param value - The value to set.
|
95
|
+
* @returns The component.
|
96
|
+
*/
|
97
|
+
setValue(value) {
|
98
|
+
const index = value === null ? -1 : this.values.indexOf(value);
|
99
|
+
this.dropdownComponent.selectEl.selectedIndex = index;
|
100
|
+
return this;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
export {
|
104
|
+
TypedDropdownComponent
|
105
|
+
};
|
106
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWREcm9wZG93bkNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgRHJvcGRvd25Db21wb25lbnQsXG4gIFZhbHVlQ29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JFbGVtZW50IH0gZnJvbSAnLi4vLi4vSFRNTEVsZW1lbnQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4uL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB0eXBlIHsgU2V0dGluZ0V4IH0gZnJvbSAnLi4vU2V0dGluZ0V4LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL1ZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5JZCB9IGZyb20gJy4uL1BsdWdpbi9QbHVnaW5JZC50cyc7XG5cbi8qKlxuICogQSBkcm9wZG93biBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSB2YWx1ZSBmcm9tIGEgbGlzdC5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFR5cGVkRHJvcGRvd259LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdG8gc2VsZWN0LlxuICovXG5leHBvcnQgY2xhc3MgVHlwZWREcm9wZG93bkNvbXBvbmVudDxUPiBleHRlbmRzIFZhbHVlQ29tcG9uZW50PG51bGwgfCBUPiBpbXBsZW1lbnRzIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPG51bGwgfCBUPiB7XG4gIC8qKlxuICAgKiBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWw7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duQ29tcG9uZW50OiBEcm9wZG93bkNvbXBvbmVudDtcblxuICBwcml2YXRlIHZhbHVlczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQgPSBuZXcgRHJvcGRvd25Db21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwubXVsdGlwbGUgPSB0cnVlO1xuICAgIGNvbnRhaW5lckVsLmFkZENsYXNzKENzc0NsYXNzLkxpYnJhcnlOYW1lLCBnZXRQbHVnaW5JZCgpLCBDc3NDbGFzcy5UeXBlZERyb3Bkb3duQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9wdGlvbiB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcGFyYW0gZGlzcGxheSAtIFRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIG9wdGlvbi5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcHRpb24odmFsdWU6IFQsIGRpc3BsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGxldCBpbmRleCA9IHRoaXMudmFsdWVzLmluZGV4T2YodmFsdWUpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgaW5kZXggPSB0aGlzLnZhbHVlcy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LmFkZE9wdGlvbihpbmRleC50b1N0cmluZygpLCBkaXNwbGF5KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIG11bHRpcGxlIG9wdGlvbnMgdG8gdGhlIGRyb3Bkb3duLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcHRpb25zKG9wdGlvbnM6IE1hcDxULCBzdHJpbmc+KTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBbdmFsdWUsIGRpc3BsYXldIG9mIG9wdGlvbnMuZW50cmllcygpKSB7XG4gICAgICB0aGlzLmFkZE9wdGlvbih2YWx1ZSwgZGlzcGxheSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKCk6IG51bGwgfCBUIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXNbdGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZWxlY3RFbC5zZWxlY3RlZEluZGV4XSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBudWxsIHwgVCkgPT4gUHJvbWlzYWJsZTx2b2lkPik6IHRoaXMge1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQub25DaGFuZ2UoKCkgPT4gY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpc2FibGVkIC0gVGhlIGRpc2FibGVkIHN0YXRlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHRoaXMge1xuICAgIHN1cGVyLnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBudWxsIHwgVCk6IHRoaXMge1xuICAgIGNvbnN0IGluZGV4ID0gdmFsdWUgPT09IG51bGwgPyAtMSA6IHRoaXMudmFsdWVzLmluZGV4T2YodmFsdWUpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBRUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFTUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLG1CQUFtQjtBQWFyQixNQUFNLCtCQUFrQyxlQUErRTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSTVILElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2hDO0FBQUEsRUFFaUI7QUFBQSxFQUVULFNBQWMsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9oQixZQUFZLGFBQTBCO0FBQzNDLFVBQU07QUFDTixTQUFLLG9CQUFvQixJQUFJLGtCQUFrQixXQUFXO0FBQzFELFNBQUssa0JBQWtCLFNBQVMsV0FBVztBQUMzQyxnQkFBWSxTQUFTLFNBQVMsYUFBYSxZQUFZLEdBQUcsU0FBUyxzQkFBc0I7QUFBQSxFQUMzRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTTyxVQUFVLE9BQVUsU0FBdUI7QUFDaEQsUUFBSSxRQUFRLEtBQUssT0FBTyxRQUFRLEtBQUs7QUFDckMsUUFBSSxVQUFVLElBQUk7QUFDaEIsV0FBSyxPQUFPLEtBQUssS0FBSztBQUN0QixjQUFRLEtBQUssT0FBTyxTQUFTO0FBQUEsSUFDL0I7QUFDQSxTQUFLLGtCQUFrQixVQUFVLE1BQU0sU0FBUyxHQUFHLE9BQU87QUFDMUQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFdBQVcsU0FBK0I7QUFDL0MsZUFBVyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsUUFBUSxHQUFHO0FBQ2hELFdBQUssVUFBVSxPQUFPLE9BQU87QUFBQSxJQUMvQjtBQUNBLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sV0FBcUI7QUFDMUIsV0FBTyxLQUFLLE9BQU8sS0FBSyxrQkFBa0IsU0FBUyxhQUFhLEtBQUs7QUFBQSxFQUN2RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUF1RDtBQUNyRSxTQUFLLGtCQUFrQixTQUFTLE1BQU0sU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQy9ELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsWUFBWSxVQUF5QjtBQUNuRCxVQUFNLFlBQVksUUFBUTtBQUMxQixTQUFLLGtCQUFrQixZQUFZLFFBQVE7QUFDM0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsT0FBdUI7QUFDckMsVUFBTSxRQUFRLFVBQVUsT0FBTyxLQUFLLEtBQUssT0FBTyxRQUFRLEtBQUs7QUFDN0QsU0FBSyxrQkFBa0IsU0FBUyxnQkFBZ0I7QUFDaEQsV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -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.mjs';
|
8
|
+
import type { ValidatorComponent } from './ValidatorComponent.mjs';
|
9
|
+
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.mjs';
|
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
|
+
}
|
@@ -0,0 +1,108 @@
|
|
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 initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
|
7
|
+
|
8
|
+
import {
|
9
|
+
DropdownComponent,
|
10
|
+
ValueComponent
|
11
|
+
} from "obsidian";
|
12
|
+
import { CssClass } from "../../CssClass.mjs";
|
13
|
+
import { getPluginId } from "../Plugin/PluginId.mjs";
|
14
|
+
class TypedMultipleDropdownComponent extends ValueComponent {
|
15
|
+
/**
|
16
|
+
* The validator element of the component.
|
17
|
+
*/
|
18
|
+
get validatorEl() {
|
19
|
+
return this.dropdownComponent.selectEl;
|
20
|
+
}
|
21
|
+
dropdownComponent;
|
22
|
+
values = [];
|
23
|
+
/**
|
24
|
+
* Creates a new multiple dropdown component.
|
25
|
+
*
|
26
|
+
* @param containerEl - The container element of the component.
|
27
|
+
*/
|
28
|
+
constructor(containerEl) {
|
29
|
+
super();
|
30
|
+
this.dropdownComponent = new DropdownComponent(containerEl);
|
31
|
+
this.dropdownComponent.selectEl.multiple = true;
|
32
|
+
containerEl.addClass(CssClass.LibraryName, getPluginId(), CssClass.TypedMultipleDropdownComponent);
|
33
|
+
}
|
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, display) {
|
42
|
+
let index = this.values.indexOf(value);
|
43
|
+
if (index === -1) {
|
44
|
+
this.values.push(value);
|
45
|
+
index = this.values.length - 1;
|
46
|
+
}
|
47
|
+
this.dropdownComponent.addOption(index.toString(), display);
|
48
|
+
return this;
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Adds multiple options to the dropdown.
|
52
|
+
*
|
53
|
+
* @param options - The options to add.
|
54
|
+
* @returns The component.
|
55
|
+
*/
|
56
|
+
addOptions(options) {
|
57
|
+
for (const [value, display] of options.entries()) {
|
58
|
+
this.addOption(value, display);
|
59
|
+
}
|
60
|
+
return this;
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Gets the value of the component.
|
64
|
+
*
|
65
|
+
* @returns The value of the component.
|
66
|
+
*/
|
67
|
+
getValue() {
|
68
|
+
return Array.from(this.dropdownComponent.selectEl.selectedOptions).map((o) => this.values[o.index]).filter((value) => value !== void 0);
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Sets the callback function to be called when the component is changed.
|
72
|
+
*
|
73
|
+
* @param callback - The callback function to be called when the component is changed.
|
74
|
+
* @returns The component.
|
75
|
+
*/
|
76
|
+
onChange(callback) {
|
77
|
+
this.dropdownComponent.onChange(() => callback(this.getValue()));
|
78
|
+
return this;
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* Sets the disabled state of the component.
|
82
|
+
*
|
83
|
+
* @param disabled - The disabled state to set.
|
84
|
+
* @returns The component.
|
85
|
+
*/
|
86
|
+
setDisabled(disabled) {
|
87
|
+
super.setDisabled(disabled);
|
88
|
+
this.dropdownComponent.setDisabled(disabled);
|
89
|
+
return this;
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Sets the value of the component.
|
93
|
+
*
|
94
|
+
* @param value - The value to set.
|
95
|
+
* @returns The component.
|
96
|
+
*/
|
97
|
+
setValue(value) {
|
98
|
+
const selectedIndices = value.map((v) => this.values.indexOf(v)).filter((index) => index !== -1);
|
99
|
+
for (const option of Array.from(this.dropdownComponent.selectEl.options)) {
|
100
|
+
option.selected = selectedIndices.includes(option.index);
|
101
|
+
}
|
102
|
+
return this;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
export {
|
106
|
+
TypedMultipleDropdownComponent
|
107
|
+
};
|
108
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50XG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG11bHRpLXNlbGVjdCBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckVsZW1lbnQgfSBmcm9tICcuLi8uLi9IVE1MRWxlbWVudC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vUGx1Z2luL1BsdWdpbkNvbnRleHQudHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi9TZXR0aW5nRXgudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSWQgfSBmcm9tICcuLi9QbHVnaW4vUGx1Z2luSWQudHMnO1xuXG4vKipcbiAqIEEgbXVsdGktc2VsZWN0IGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFR5cGVkTXVsdGlwbGVEcm9wZG93bn0uXG4gKlxuICogSW4gb3JkZXIgdG8gYWRkIHRoZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnQsIHVzZSB7QGxpbmsgaW5pdFBsdWdpbkNvbnRleHR9IGluIHlvdXIgcGx1Z2luJ3MgYG9ubG9hZCgpYCBmdW5jdGlvbi5cbiAqXG4gKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgc3R5bGVzIGZyb20ge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL3N0eWxlcy5jc3N9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZWxlY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQ8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUW10+IGltcGxlbWVudHMgVmFsaWRhdG9yQ29tcG9uZW50LCBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxUW10+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZWxlY3RFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25Db21wb25lbnQ6IERyb3Bkb3duQ29tcG9uZW50O1xuICBwcml2YXRlIHZhbHVlczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQgPSBuZXcgRHJvcGRvd25Db21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuc2VsZWN0RWwubXVsdGlwbGUgPSB0cnVlO1xuICAgIGNvbnRhaW5lckVsLmFkZENsYXNzKENzc0NsYXNzLkxpYnJhcnlOYW1lLCBnZXRQbHVnaW5JZCgpLCBDc3NDbGFzcy5UeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gb3B0aW9uIHRvIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBvcHRpb24uXG4gICAqIEBwYXJhbSBkaXNwbGF5IC0gVGhlIGRpc3BsYXkgdGV4dCBvZiB0aGUgb3B0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbih2YWx1ZTogVCwgZGlzcGxheTogc3RyaW5nKTogdGhpcyB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy52YWx1ZXMuaW5kZXhPZih2YWx1ZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgdGhpcy52YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICBpbmRleCA9IHRoaXMudmFsdWVzLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQuYWRkT3B0aW9uKGluZGV4LnRvU3RyaW5nKCksIGRpc3BsYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgb3B0aW9ucyB0byB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFkZE9wdGlvbnMob3B0aW9uczogTWFwPFQsIHN0cmluZz4pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IFt2YWx1ZSwgZGlzcGxheV0gb2Ygb3B0aW9ucy5lbnRyaWVzKCkpIHtcbiAgICAgIHRoaXMuYWRkT3B0aW9uKHZhbHVlLCBkaXNwbGF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRyb3Bkb3duQ29tcG9uZW50LnNlbGVjdEVsLnNlbGVjdGVkT3B0aW9ucylcbiAgICAgIC5tYXAoKG8pID0+IHRoaXMudmFsdWVzW28uaW5kZXhdKVxuICAgICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBUID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgY2hhbmdlZC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBUW10pID0+IFByb21pc2FibGU8dm9pZD4pOiB0aGlzIHtcbiAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50Lm9uQ2hhbmdlKCgpID0+IGNhbGxiYWNrKHRoaXMuZ2V0VmFsdWUoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBkaXNhYmxlZCAtIFRoZSBkaXNhYmxlZCBzdGF0ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogVFtdKTogdGhpcyB7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRpY2VzID0gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnZhbHVlcy5pbmRleE9mKHYpKS5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCAhPT0gLTEpO1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIEFycmF5LmZyb20odGhpcy5kcm9wZG93bkNvbXBvbmVudC5zZWxlY3RFbC5vcHRpb25zKSkge1xuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gc2VsZWN0ZWRJbmRpY2VzLmluY2x1ZGVzKG9wdGlvbi5pbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFPQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVVQLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsbUJBQW1CO0FBYXJCLE1BQU0sdUNBQTBDLGVBQXlGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJOUksSUFBVyxjQUFnQztBQUN6QyxXQUFPLEtBQUssa0JBQWtCO0FBQUEsRUFDaEM7QUFBQSxFQUVpQjtBQUFBLEVBQ1QsU0FBYyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2hCLFlBQVksYUFBMEI7QUFDM0MsVUFBTTtBQUNOLFNBQUssb0JBQW9CLElBQUksa0JBQWtCLFdBQVc7QUFDMUQsU0FBSyxrQkFBa0IsU0FBUyxXQUFXO0FBQzNDLGdCQUFZLFNBQVMsU0FBUyxhQUFhLFlBQVksR0FBRyxTQUFTLDhCQUE4QjtBQUFBLEVBQ25HO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNPLFVBQVUsT0FBVSxTQUF1QjtBQUNoRCxRQUFJLFFBQVEsS0FBSyxPQUFPLFFBQVEsS0FBSztBQUNyQyxRQUFJLFVBQVUsSUFBSTtBQUNoQixXQUFLLE9BQU8sS0FBSyxLQUFLO0FBQ3RCLGNBQVEsS0FBSyxPQUFPLFNBQVM7QUFBQSxJQUMvQjtBQUNBLFNBQUssa0JBQWtCLFVBQVUsTUFBTSxTQUFTLEdBQUcsT0FBTztBQUMxRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sV0FBVyxTQUErQjtBQUMvQyxlQUFXLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxRQUFRLEdBQUc7QUFDaEQsV0FBSyxVQUFVLE9BQU8sT0FBTztBQUFBLElBQy9CO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxXQUFnQjtBQUNyQixXQUFPLE1BQU0sS0FBSyxLQUFLLGtCQUFrQixTQUFTLGVBQWUsRUFDOUQsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQy9CLE9BQU8sQ0FBQyxVQUFzQixVQUFVLE1BQVM7QUFBQSxFQUN0RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUFrRDtBQUNoRSxTQUFLLGtCQUFrQixTQUFTLE1BQU0sU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQy9ELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsWUFBWSxVQUF5QjtBQUNuRCxVQUFNLFlBQVksUUFBUTtBQUMxQixTQUFLLGtCQUFrQixZQUFZLFFBQVE7QUFDM0MsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsT0FBa0I7QUFDaEMsVUFBTSxrQkFBa0IsTUFBTSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxVQUFVLEVBQUU7QUFDL0YsZUFBVyxVQUFVLE1BQU0sS0FBSyxLQUFLLGtCQUFrQixTQUFTLE9BQU8sR0FBRztBQUN4RSxhQUFPLFdBQVcsZ0JBQWdCLFNBQVMsT0FBTyxLQUFLO0FBQUEsSUFDekQ7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -5,6 +5,8 @@
|
|
5
5
|
import { TypedTextComponent } from './TypedTextComponent.mjs';
|
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
|
/**
|
@@ -41,4 +41,4 @@ class TypedRangeTextComponent extends TypedTextComponent {
|
|
41
41
|
export {
|
42
42
|
TypedRangeTextComponent
|
43
43
|
};
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
44
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRSYW5nZVRleHRDb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFR5cGVkUmFuZ2VUZXh0Q29tcG9uZW50XG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHRleHQtYmFzZWQgdmFsdWUgd2l0aCBhIHJhbmdlLlxuICovXG5cbmltcG9ydCB7IFR5cGVkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vVHlwZWRUZXh0Q29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHRleHQtYmFzZWQgdmFsdWUgd2l0aCBhIHJhbmdlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudDxUPiBleHRlbmRzIFR5cGVkVGV4dENvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBtYXggLSBUaGUgbWF4aW11bSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRNYXgobWF4OiBUKTogdGhpcyB7XG4gICAgdGhpcy5pbnB1dEVsLm1heCA9IHRoaXMudmFsdWVUb1N0cmluZyhtYXgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIG1pbiAtIFRoZSBtaW5pbXVtIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldE1pbihtaW46IFQpOiB0aGlzIHtcbiAgICB0aGlzLmlucHV0RWwubWluID0gdGhpcy52YWx1ZVRvU3RyaW5nKG1pbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcCB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcCAtIFRoZSBzdGVwIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFN0ZXAoc3RlcDogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5pbnB1dEVsLnN0ZXAgPSBzdGVwLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFLQSxTQUFTLDBCQUEwQjtBQU81QixNQUFlLGdDQUFtQyxtQkFBc0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU90RSxPQUFPLEtBQWM7QUFDMUIsU0FBSyxRQUFRLE1BQU0sS0FBSyxjQUFjLEdBQUc7QUFDekMsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLE9BQU8sS0FBYztBQUMxQixTQUFLLFFBQVEsTUFBTSxLQUFLLGNBQWMsR0FBRztBQUN6QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sUUFBUSxNQUFvQjtBQUNqQyxTQUFLLFFBQVEsT0FBTyxLQUFLLFNBQVM7QUFDbEMsV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -11,6 +11,8 @@ import type { ValueComponentWithChangeTracking } from './ValueComponentWithChang
|
|
11
11
|
import { CssClass } from '../../CssClass.mjs';
|
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
|
/**
|
@@ -82,8 +82,8 @@ class TypedTextComponent extends ValueComponent {
|
|
82
82
|
* @returns The component.
|
83
83
|
*/
|
84
84
|
setDisabled(disabled) {
|
85
|
+
super.setDisabled(disabled);
|
85
86
|
this.textComponent.setDisabled(disabled);
|
86
|
-
this.disabled = disabled;
|
87
87
|
return this;
|
88
88
|
}
|
89
89
|
/**
|
@@ -129,4 +129,4 @@ class TypedTextComponent extends ValueComponent {
|
|
129
129
|
export {
|
130
130
|
TypedTextComponent
|
131
131
|
};
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
132
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRUZXh0Q29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBUeXBlZFRleHRDb21wb25lbnRcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgdGV4dC1iYXNlZCB2YWx1ZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBUZXh0Q29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVGV4dEJhc2VkQ29tcG9uZW50IH0gZnJvbSAnLi9UZXh0QmFzZWRDb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSWQgfSBmcm9tICcuLi9QbHVnaW4vUGx1Z2luSWQudHMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgdGV4dC1iYXNlZCB2YWx1ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHlwZWRUZXh0Q29tcG9uZW50PFQ+IGV4dGVuZHMgVmFsdWVDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBUZXh0QmFzZWRDb21wb25lbnQ8VD4sIFZhbGlkYXRvckNvbXBvbmVudCwgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VD4ge1xuICAvKipcbiAgICogVGhlIGlucHV0IGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICAvKipcbiAgICogVGhlIHZhbGlkYXRvciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRvckVsKCk6IFZhbGlkYXRvckVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWw7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRleHRDb21wb25lbnQ6IFRleHRDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdHlwZWQgdGV4dCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250YWluZXJFbCAtIFRoZSBjb250YWluZXIgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgKiBAcGFyYW0gY3NzQ2xhc3MgLSBUaGUgQ1NTIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCB0eXBlOiBzdHJpbmcsIGNzc0NsYXNzOiBDc3NDbGFzcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy50ZXh0Q29tcG9uZW50ID0gbmV3IFRleHRDb21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIHRoaXMuaW5wdXRFbCA9IHRoaXMudGV4dENvbXBvbmVudC5pbnB1dEVsO1xuICAgIHRoaXMuaW5wdXRFbC50eXBlID0gdHlwZTtcbiAgICBjb250YWluZXJFbC5hZGRDbGFzcyhDc3NDbGFzcy5MaWJyYXJ5TmFtZSwgZ2V0UGx1Z2luSWQoKSwgY3NzQ2xhc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtcHRpZXMgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBlbXB0eSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldFZhbHVlKCk6IFQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlRnJvbVN0cmluZyh0aGlzLnRleHRDb21wb25lbnQuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21wb25lbnQgaXMgZW1wdHkuXG4gICAqXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRleHRDb21wb25lbnQuZ2V0VmFsdWUoKSA9PT0gJyc7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2VkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG9uQ2hhbmdlKGNhbGxiYWNrOiAodmFsdWU6IFQpID0+IFByb21pc2FibGU8dm9pZD4pOiB0aGlzIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQub25DaGFuZ2UoKCkgPT4gY2FsbGJhY2sodGhpcy5nZXRWYWx1ZSgpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHVibGljIG9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQub25DaGFuZ2VkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpc2FibGVkIC0gV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMudGV4dENvbXBvbmVudC5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy50ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXJWYWx1ZSAtIFRoZSBwbGFjZWhvbGRlciB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXJWYWx1ZShwbGFjZWhvbGRlclZhbHVlOiBUKTogdGhpcyB7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcih0aGlzLnZhbHVlVG9TdHJpbmcocGxhY2Vob2xkZXJWYWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IFQpOiB0aGlzIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQuc2V0VmFsdWUodGhpcy52YWx1ZVRvU3RyaW5nKHZhbHVlKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHZhbHVlRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IFQ7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgdmFsdWUgdG8gYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHZhbHVlVG9TdHJpbmcodmFsdWU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBT0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFPUCxTQUFTLGdCQUFnQjtBQUN6QixTQUFTLG1CQUFtQjtBQU9yQixNQUFlLDJCQUE4QixlQUN3QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSTFFO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJaEIsSUFBVyxjQUFnQztBQUN6QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU1YsWUFBWSxhQUEwQixNQUFjLFVBQW9CO0FBQzdFLFVBQU07QUFDTixTQUFLLGdCQUFnQixJQUFJLGNBQWMsV0FBVztBQUNsRCxTQUFLLFVBQVUsS0FBSyxjQUFjO0FBQ2xDLFNBQUssUUFBUSxPQUFPO0FBQ3BCLGdCQUFZLFNBQVMsU0FBUyxhQUFhLFlBQVksR0FBRyxRQUFRO0FBQUEsRUFDcEU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLFFBQWM7QUFDbkIsU0FBSyxjQUFjLFNBQVMsRUFBRTtBQUFBLEVBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2dCLFdBQWM7QUFDNUIsV0FBTyxLQUFLLGdCQUFnQixLQUFLLGNBQWMsU0FBUyxDQUFDO0FBQUEsRUFDM0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxVQUFtQjtBQUN4QixXQUFPLEtBQUssY0FBYyxTQUFTLE1BQU07QUFBQSxFQUMzQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxVQUFnRDtBQUM5RCxTQUFLLGNBQWMsU0FBUyxNQUFNLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztBQUMzRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sWUFBa0I7QUFDdkIsU0FBSyxjQUFjLFVBQVU7QUFBQSxFQUMvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFlBQVksVUFBeUI7QUFDbkQsVUFBTSxZQUFZLFFBQVE7QUFDMUIsU0FBSyxjQUFjLFlBQVksUUFBUTtBQUN2QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sZUFBZSxhQUEyQjtBQUMvQyxTQUFLLGNBQWMsZUFBZSxXQUFXO0FBQzdDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxvQkFBb0Isa0JBQTJCO0FBQ3BELFNBQUssZUFBZSxLQUFLLGNBQWMsZ0JBQWdCLENBQUM7QUFDeEQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixTQUFTLE9BQWdCO0FBQ3ZDLFNBQUssY0FBYyxTQUFTLEtBQUssY0FBYyxLQUFLLENBQUM7QUFDckQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWdCTyxjQUFjLE9BQWtCO0FBQ3JDLFdBQU8sT0FBTyxLQUFLO0FBQUEsRUFDckI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -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
|
/**
|
@@ -1,3 +1,4 @@
|
|
1
|
+
export * as CheckboxComponent from './CheckboxComponent.mjs';
|
1
2
|
export * as DateComponent from './DateComponent.mjs';
|
2
3
|
export * as DateTimeComponent from './DateTimeComponent.mjs';
|
3
4
|
export * as EmailComponent from './EmailComponent.mjs';
|
@@ -10,6 +11,9 @@ export * as MultipleTextComponent from './MultipleTextComponent.mjs';
|
|
10
11
|
export * as NumberComponent from './NumberComponent.mjs';
|
11
12
|
export * as TextBasedComponent from './TextBasedComponent.mjs';
|
12
13
|
export * as TimeComponent from './TimeComponent.mjs';
|
14
|
+
export * as TriStateCheckboxComponent from './TriStateCheckboxComponent.mjs';
|
15
|
+
export * as TypedDropdownComponent from './TypedDropdownComponent.mjs';
|
16
|
+
export * as TypedMultipleDropdownComponent from './TypedMultipleDropdownComponent.mjs';
|
13
17
|
export * as TypedRangeTextComponent from './TypedRangeTextComponent.mjs';
|
14
18
|
export * as TypedTextComponent from './TypedTextComponent.mjs';
|
15
19
|
export * as UrlComponent from './UrlComponent.mjs';
|
@@ -5,6 +5,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
5
5
|
|
6
6
|
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
|
7
7
|
|
8
|
+
import * as CheckboxComponent from "./CheckboxComponent.mjs";
|
8
9
|
import * as DateComponent from "./DateComponent.mjs";
|
9
10
|
import * as DateTimeComponent from "./DateTimeComponent.mjs";
|
10
11
|
import * as EmailComponent from "./EmailComponent.mjs";
|
@@ -17,6 +18,9 @@ import * as MultipleTextComponent from "./MultipleTextComponent.mjs";
|
|
17
18
|
import * as NumberComponent from "./NumberComponent.mjs";
|
18
19
|
import * as TextBasedComponent from "./TextBasedComponent.mjs";
|
19
20
|
import * as TimeComponent from "./TimeComponent.mjs";
|
21
|
+
import * as TriStateCheckboxComponent from "./TriStateCheckboxComponent.mjs";
|
22
|
+
import * as TypedDropdownComponent from "./TypedDropdownComponent.mjs";
|
23
|
+
import * as TypedMultipleDropdownComponent from "./TypedMultipleDropdownComponent.mjs";
|
20
24
|
import * as TypedRangeTextComponent from "./TypedRangeTextComponent.mjs";
|
21
25
|
import * as TypedTextComponent from "./TypedTextComponent.mjs";
|
22
26
|
import * as UrlComponent from "./UrlComponent.mjs";
|
@@ -24,6 +28,7 @@ import * as ValidatorComponent from "./ValidatorComponent.mjs";
|
|
24
28
|
import * as ValueComponentWithChangeTracking from "./ValueComponentWithChangeTracking.mjs";
|
25
29
|
import * as WeekComponent from "./WeekComponent.mjs";
|
26
30
|
export {
|
31
|
+
CheckboxComponent,
|
27
32
|
DateComponent,
|
28
33
|
DateTimeComponent,
|
29
34
|
EmailComponent,
|
@@ -36,6 +41,9 @@ export {
|
|
36
41
|
NumberComponent,
|
37
42
|
TextBasedComponent,
|
38
43
|
TimeComponent,
|
44
|
+
TriStateCheckboxComponent,
|
45
|
+
TypedDropdownComponent,
|
46
|
+
TypedMultipleDropdownComponent,
|
39
47
|
TypedRangeTextComponent,
|
40
48
|
TypedTextComponent,
|
41
49
|
UrlComponent,
|
@@ -43,4 +51,4 @@ export {
|
|
43
51
|
ValueComponentWithChangeTracking,
|
44
52
|
WeekComponent
|
45
53
|
};
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
54
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyBDaGVja2JveENvbXBvbmVudCBmcm9tICcuL0NoZWNrYm94Q29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIERhdGVDb21wb25lbnQgZnJvbSAnLi9EYXRlQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIERhdGVUaW1lQ29tcG9uZW50IGZyb20gJy4vRGF0ZVRpbWVDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgRW1haWxDb21wb25lbnQgZnJvbSAnLi9FbWFpbENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBGaWxlQ29tcG9uZW50IGZyb20gJy4vRmlsZUNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBNb250aENvbXBvbmVudCBmcm9tICcuL01vbnRoQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgZnJvbSAnLi9NdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIE11bHRpcGxlRW1haWxDb21wb25lbnQgZnJvbSAnLi9NdWx0aXBsZUVtYWlsQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIE11bHRpcGxlRmlsZUNvbXBvbmVudCBmcm9tICcuL011bHRpcGxlRmlsZUNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBNdWx0aXBsZVRleHRDb21wb25lbnQgZnJvbSAnLi9NdWx0aXBsZVRleHRDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgTnVtYmVyQ29tcG9uZW50IGZyb20gJy4vTnVtYmVyQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIFRleHRCYXNlZENvbXBvbmVudCBmcm9tICcuL1RleHRCYXNlZENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBUaW1lQ29tcG9uZW50IGZyb20gJy4vVGltZUNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50IGZyb20gJy4vVHJpU3RhdGVDaGVja2JveENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBUeXBlZERyb3Bkb3duQ29tcG9uZW50IGZyb20gJy4vVHlwZWREcm9wZG93bkNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgZnJvbSAnLi9UeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgZnJvbSAnLi9UeXBlZFJhbmdlVGV4dENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBUeXBlZFRleHRDb21wb25lbnQgZnJvbSAnLi9UeXBlZFRleHRDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgVXJsQ29tcG9uZW50IGZyb20gJy4vVXJsQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIFZhbGlkYXRvckNvbXBvbmVudCBmcm9tICcuL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZyBmcm9tICcuL1ZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nLnRzJztcbmV4cG9ydCAqIGFzIFdlZWtDb21wb25lbnQgZnJvbSAnLi9XZWVrQ29tcG9uZW50LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFFQSxZQUFZLHVCQUF1QjtBQUNuQyxZQUFZLG1CQUFtQjtBQUMvQixZQUFZLHVCQUF1QjtBQUNuQyxZQUFZLG9CQUFvQjtBQUNoQyxZQUFZLG1CQUFtQjtBQUMvQixZQUFZLG9CQUFvQjtBQUNoQyxZQUFZLCtCQUErQjtBQUMzQyxZQUFZLDRCQUE0QjtBQUN4QyxZQUFZLDJCQUEyQjtBQUN2QyxZQUFZLDJCQUEyQjtBQUN2QyxZQUFZLHFCQUFxQjtBQUNqQyxZQUFZLHdCQUF3QjtBQUNwQyxZQUFZLG1CQUFtQjtBQUMvQixZQUFZLCtCQUErQjtBQUMzQyxZQUFZLDRCQUE0QjtBQUN4QyxZQUFZLG9DQUFvQztBQUNoRCxZQUFZLDZCQUE2QjtBQUN6QyxZQUFZLHdCQUF3QjtBQUNwQyxZQUFZLGtCQUFrQjtBQUM5QixZQUFZLHdCQUF3QjtBQUNwQyxZQUFZLHNDQUFzQztBQUNsRCxZQUFZLG1CQUFtQjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -58,15 +58,6 @@ export declare abstract class PluginBase<PluginSettings extends object = object>
|
|
58
58
|
* Called when the external settings change.
|
59
59
|
*/
|
60
60
|
onExternalSettingsChange(): Promise<void>;
|
61
|
-
/**
|
62
|
-
* Adds a lifecycle event listener.
|
63
|
-
* If the event has already occurred, the callback will be called immediately.
|
64
|
-
*
|
65
|
-
* @param name - The name of the event.
|
66
|
-
* @param callback - The callback to call when the event is triggered.
|
67
|
-
* @returns A {@link Promise} that resolves when the callback is executed.
|
68
|
-
*/
|
69
|
-
onLifecycleEvent(name: LifecycleEventName, callback: () => Promisable<unknown>): Promise<void>;
|
70
61
|
/**
|
71
62
|
* Called when the plugin is loaded
|
72
63
|
*/
|
@@ -94,6 +85,17 @@ export declare abstract class PluginBase<PluginSettings extends object = object>
|
|
94
85
|
* @param eventRef - The event reference.
|
95
86
|
*/
|
96
87
|
registerAsyncEvent(eventRef: AsyncEventRef): void;
|
88
|
+
/**
|
89
|
+
* Waits for a lifecycle event to be triggered.
|
90
|
+
*
|
91
|
+
* If you `await` this method during lifecycle event, it might cause a deadlock.
|
92
|
+
*
|
93
|
+
* Consider wrapping this call with {@link invokeAsyncSafely}.
|
94
|
+
*
|
95
|
+
* @param name - The name of the event.
|
96
|
+
* @returns A {@link Promise} that resolves when the event is triggered.
|
97
|
+
*/
|
98
|
+
waitForLifecycleEvent(name: LifecycleEventName): Promise<void>;
|
97
99
|
/**
|
98
100
|
* Creates a plugin settings tab.
|
99
101
|
*
|