obsidian-dev-utils 22.1.1-beta.5 → 22.1.1-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/dprint.json +1 -0
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/MultipleTextComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/MultipleTextComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/PlaceholderComponent.cjs +38 -0
- package/dist/lib/cjs/obsidian/Components/PlaceholderComponent.d.cts +19 -0
- package/dist/lib/cjs/obsidian/Components/TypedTextComponent.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/TypedTextComponent.d.cts +2 -1
- package/dist/lib/cjs/obsidian/Components/index.cjs +4 -1
- package/dist/lib/cjs/obsidian/Components/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +94 -76
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.d.cts +24 -18
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.cjs +16 -12
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.d.cts +8 -8
- package/dist/lib/cjs/obsidian/ValidationMessage.cjs +2 -2
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/MultipleTextComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/MultipleTextComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/PlaceholderComponent.d.mts +19 -0
- package/dist/lib/esm/obsidian/Components/PlaceholderComponent.mjs +14 -0
- package/dist/lib/esm/obsidian/Components/TypedTextComponent.d.mts +2 -1
- package/dist/lib/esm/obsidian/Components/TypedTextComponent.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/Components/index.mjs +3 -1
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.d.mts +24 -18
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +92 -75
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.d.mts +8 -8
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.mjs +16 -12
- package/dist/lib/esm/obsidian/ValidationMessage.mjs +2 -2
- package/obsidian/Components/PlaceholderComponent/package.json +6 -0
- package/package.json +1 -1
@@ -4,22 +4,6 @@ import type { Transformer } from '../../Transformers/Transformer.cjs';
|
|
4
4
|
import type { ValidationMessageHolder } from '../ValidationMessage.cjs';
|
5
5
|
import type { PluginBase } from './PluginBase.cjs';
|
6
6
|
type Validator<T> = (value: T) => Promisable<MaybeReturn<string>>;
|
7
|
-
declare class PluginSettingsProperty<T> {
|
8
|
-
readonly defaultValue: T;
|
9
|
-
private readonly validator;
|
10
|
-
get validationMessage(): string;
|
11
|
-
private _validationMessage;
|
12
|
-
private savedValue;
|
13
|
-
private value;
|
14
|
-
constructor(defaultValue: T, validator: Validator<T>);
|
15
|
-
clear(): void;
|
16
|
-
get(): T;
|
17
|
-
getSafe(): T;
|
18
|
-
getSaved(): T | undefined;
|
19
|
-
save(): void;
|
20
|
-
set(value: T | undefined | ValidationMessageHolder): void;
|
21
|
-
setAndValidate(value: T | undefined | ValidationMessageHolder): Promise<void>;
|
22
|
-
}
|
23
7
|
/**
|
24
8
|
* Base class for managing plugin settings.
|
25
9
|
*
|
@@ -33,7 +17,7 @@ export declare abstract class PluginSettingsManagerBase<PluginSettings extends o
|
|
33
17
|
private validators;
|
34
18
|
constructor(plugin: PluginBase<PluginSettings>);
|
35
19
|
editAndSave(editor: (settings: PluginSettings) => Promisable<void>): Promise<void>;
|
36
|
-
getProperty<
|
20
|
+
getProperty<PropertyName extends StringKeys<PluginSettings>>(propertyName: PropertyName): PluginSettingsProperty<PluginSettings[PropertyName]>;
|
37
21
|
loadFromFile(): Promise<void>;
|
38
22
|
/**
|
39
23
|
* Saves the new plugin settings.
|
@@ -41,7 +25,7 @@ export declare abstract class PluginSettingsManagerBase<PluginSettings extends o
|
|
41
25
|
* @returns A promise that resolves when the settings are saved.
|
42
26
|
*/
|
43
27
|
saveToFile(): Promise<void>;
|
44
|
-
protected addValidator<
|
28
|
+
protected addValidator<PropertyName extends StringKeys<PluginSettings>>(propertyName: PropertyName, validator: Validator<PluginSettings[PropertyName]>): void;
|
45
29
|
protected addValidators(): void;
|
46
30
|
protected abstract createDefaultSettings(): PluginSettings;
|
47
31
|
protected getTransformer(): Transformer;
|
@@ -49,4 +33,26 @@ export declare abstract class PluginSettingsManagerBase<PluginSettings extends o
|
|
49
33
|
private getSavedSettings;
|
50
34
|
private getSettingsRecord;
|
51
35
|
}
|
36
|
+
/**
|
37
|
+
* A property of a plugin settings.
|
38
|
+
*
|
39
|
+
* @typeParam T - The type of the property.
|
40
|
+
*/
|
41
|
+
export declare class PluginSettingsProperty<T> {
|
42
|
+
private readonly propertyName;
|
43
|
+
readonly defaultValue: T;
|
44
|
+
private readonly validator;
|
45
|
+
get validationMessage(): string;
|
46
|
+
private _validationMessage;
|
47
|
+
private savedValue;
|
48
|
+
private value;
|
49
|
+
constructor(propertyName: string, defaultValue: T, validator: Validator<T>);
|
50
|
+
clear(): void;
|
51
|
+
get(): T;
|
52
|
+
getSafe(): T;
|
53
|
+
getSaved(): T | undefined;
|
54
|
+
save(): void;
|
55
|
+
set(value: T | undefined | ValidationMessageHolder): void;
|
56
|
+
setAndValidate(value: T | undefined | ValidationMessageHolder): Promise<void>;
|
57
|
+
}
|
52
58
|
export {};
|
@@ -32,6 +32,7 @@ var import_obsidian = require('obsidian');
|
|
32
32
|
var import_Async = require('../../Async.cjs');
|
33
33
|
var import_CssClass = require('../../CssClass.cjs');
|
34
34
|
var import_Function = require('../../Function.cjs');
|
35
|
+
var import_PlaceholderComponent = require('../Components/PlaceholderComponent.cjs');
|
35
36
|
var import_ValidatorComponent = require('../Components/ValidatorComponent.cjs');
|
36
37
|
var import_ValidationMessage = require('../ValidationMessage.cjs');
|
37
38
|
var import_PluginId = require('./PluginId.cjs');
|
@@ -46,13 +47,13 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
|
|
46
47
|
*
|
47
48
|
* @typeParam UIValue - The type of the value of the UI component.
|
48
49
|
* @typeParam TValueComponent - The type of the value component.
|
49
|
-
* @typeParam
|
50
|
+
* @typeParam PropertyName - The property name of the plugin settings to bind to.
|
50
51
|
* @param valueComponent - The value component to bind.
|
51
|
-
* @param
|
52
|
+
* @param propertyName - The property name of the plugin settings to bind to.
|
52
53
|
* @param options - The options for binding the value component.
|
53
54
|
* @returns The value component.
|
54
55
|
*/
|
55
|
-
bind(valueComponent,
|
56
|
+
bind(valueComponent, propertyName, options) {
|
56
57
|
const DEFAULT_OPTIONS = {
|
57
58
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
58
59
|
componentToPluginSettingsValueConverter: (value) => value,
|
@@ -62,14 +63,17 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
|
|
62
63
|
};
|
63
64
|
const optionsExt = { ...DEFAULT_OPTIONS, ...options };
|
64
65
|
const validatorElement = (0, import_ValidatorComponent.getValidatorComponent)(valueComponent)?.validatorEl;
|
65
|
-
const
|
66
|
-
valueComponent.setValue(optionsExt.pluginSettingsToComponentValueConverter(
|
67
|
-
const oldValue =
|
66
|
+
const property = this.plugin.settingsManager.getProperty(propertyName);
|
67
|
+
valueComponent.setValue(optionsExt.pluginSettingsToComponentValueConverter(property.get())).onChange(async (uiValue) => {
|
68
|
+
const oldValue = property.get();
|
68
69
|
const convertedValue = optionsExt.componentToPluginSettingsValueConverter(uiValue);
|
69
|
-
await
|
70
|
+
await property.setAndValidate(convertedValue);
|
70
71
|
const newValue = (0, import_ValidationMessage.isValidationMessageHolder)(convertedValue) ? void 0 : convertedValue;
|
71
72
|
await optionsExt.onChanged(newValue, oldValue);
|
72
73
|
});
|
74
|
+
if ((0, import_PlaceholderComponent.isPlaceholderComponent)(valueComponent)) {
|
75
|
+
valueComponent.setPlaceholder(optionsExt.pluginSettingsToComponentValueConverter(property.defaultValue));
|
76
|
+
}
|
73
77
|
validatorElement?.addEventListener("focus", validate);
|
74
78
|
validatorElement?.addEventListener("blur", validate);
|
75
79
|
validate();
|
@@ -78,13 +82,13 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
|
|
78
82
|
if (!validatorElement) {
|
79
83
|
return;
|
80
84
|
}
|
81
|
-
if (!
|
85
|
+
if (!property.validationMessage) {
|
82
86
|
validatorElement.setCustomValidity("");
|
83
87
|
validatorElement.checkValidity();
|
84
|
-
|
88
|
+
property.set(validatorElement);
|
85
89
|
}
|
86
|
-
validatorElement.setCustomValidity(
|
87
|
-
validatorElement.title =
|
90
|
+
validatorElement.setCustomValidity(property.validationMessage);
|
91
|
+
validatorElement.title = property.validationMessage;
|
88
92
|
if (validatorElement.isActiveElement() && optionsExt.shouldShowValidationMessage) {
|
89
93
|
validatorElement.reportValidity();
|
90
94
|
}
|
@@ -99,4 +103,4 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
|
|
99
103
|
0 && (module.exports = {
|
100
104
|
PluginSettingsTabBase
|
101
105
|
});
|
102
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29uZGl0aW9uYWxLZXlzLFxuICBQcm9taXNhYmxlXG59IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgU3RyaW5nS2V5cyB9IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi4vQ29tcG9uZW50cy9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIH0gZnJvbSAnLi4vVmFsaWRhdGlvbk1lc3NhZ2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9Db21wb25lbnRzL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIH0gZnJvbSAnLi4vVmFsaWRhdGlvbk1lc3NhZ2UudHMnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSWQgfSBmcm9tICcuL1BsdWdpbklkLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluZE9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZWQ/KG5ld1ZhbHVlOiBUIHwgdW5kZWZpbmVkLCBvbGRWYWx1ZTogVCk6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNob3dzIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2Ugd2hlbiB0aGUgY29tcG9uZW50IHZhbHVlIGlzIGludmFsaWQuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBvcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluZE9wdGlvbnNFeHRlbmRlZDxcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsXG4gIFVJVmFsdWUsXG4gIFByb3BlcnR5IGV4dGVuZHMgU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz5cbj4gZXh0ZW5kcyBCaW5kT3B0aW9uczxQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV0+IHtcbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBVSSBjb21wb25lbnQncyB2YWx1ZSBiYWNrIHRvIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUuXG4gICAqIEBwYXJhbSB1aVZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHVpVmFsdWU6IFVJVmFsdWUpID0+IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XSB8IFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBwbHVnaW5TZXR0aW5nc1ZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBVSSBjb21wb25lbnQuXG4gICAqL1xuICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6IChwbHVnaW5TZXR0aW5nc1ZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV0pID0+IFVJVmFsdWU7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG50eXBlIEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPGFueT4+ID0gUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZTxpbmZlciBQbHVnaW5TZXR0aW5ncz4gPyBQbHVnaW5TZXR0aW5ncyA6IG5ldmVyO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5ncyB0YWJzIGluIE9ic2lkaWFuLlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIGJpbmRpbmcgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsaW5nIGNoYW5nZXMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgUGx1Z2luQmFzZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8YW55Pj4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVycmlkZSBwbHVnaW46IFRQbHVnaW4pIHtcbiAgICBzdXBlcihwbHVnaW4uYXBwLCBwbHVnaW4pO1xuICAgIHRoaXMuY29udGFpbmVyRWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuTGlicmFyeU5hbWUsIGdldFBsdWdpbklkKCksIENzc0NsYXNzLlBsdWdpblNldHRpbmdzVGFiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kcyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFVJVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50XG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+LFxuICAgIHByb3BlcnR5OiBDb25kaXRpb25hbEtleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+LCBVSVZhbHVlPixcbiAgICBvcHRpb25zPzogQmluZE9wdGlvbnM8VUlWYWx1ZT5cbiAgKTogVFZhbHVlQ29tcG9uZW50O1xuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnQsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBTdHJpbmdLZXlzPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM6IEJpbmRPcHRpb25zRXh0ZW5kZWQ8RXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+LCBVSVZhbHVlLCBQcm9wZXJ0eT5cbiAgKTogVFZhbHVlQ29tcG9uZW50O1xuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnQsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBTdHJpbmdLZXlzPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM/OiBCaW5kT3B0aW9uczxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj5bUHJvcGVydHldPlxuICApOiBUVmFsdWVDb21wb25lbnQge1xuICAgIHR5cGUgUGx1Z2luU2V0dGluZ3MgPSBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj47XG4gICAgdHlwZSBQcm9wZXJ0eVR5cGUgPSBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eT4+ID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZTogVUlWYWx1ZSk6IFByb3BlcnR5VHlwZSA9PiB2YWx1ZSBhcyBQcm9wZXJ0eVR5cGUsXG4gICAgICBvbkNoYW5nZWQ6IG5vb3AsXG4gICAgICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZTogUHJvcGVydHlUeXBlKTogVUlWYWx1ZSA9PiB2YWx1ZSBhcyBVSVZhbHVlLFxuICAgICAgc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbnN0IG9wdGlvbnNFeHQ6IFJlcXVpcmVkPEJpbmRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5Pj4gPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuXG4gICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgcHJvcGVydHlPYmogPSB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuZ2V0UHJvcGVydHkocHJvcGVydHkpO1xuXG4gICAgdmFsdWVDb21wb25lbnRcbiAgICAgIC5zZXRWYWx1ZShvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcihwcm9wZXJ0eU9iai5nZXQoKSBhcyBQcm9wZXJ0eVR5cGUpKVxuICAgICAgLm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gcHJvcGVydHlPYmouZ2V0KCkgYXMgUHJvcGVydHlUeXBlO1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBhd2FpdCBwcm9wZXJ0eU9iai5zZXRBbmRWYWxpZGF0ZShjb252ZXJ0ZWRWYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcihjb252ZXJ0ZWRWYWx1ZSkgPyB1bmRlZmluZWQgOiBjb252ZXJ0ZWRWYWx1ZTtcbiAgICAgICAgYXdhaXQgb3B0aW9uc0V4dC5vbkNoYW5nZWQobmV3VmFsdWUsIG9sZFZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB2YWxpZGF0ZSk7XG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHZhbGlkYXRlKTtcblxuICAgIHZhbGlkYXRlKCk7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50O1xuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBpZiAoIXZhbGlkYXRvckVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXByb3BlcnR5T2JqLnZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkoJycpO1xuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LmNoZWNrVmFsaWRpdHkoKTtcbiAgICAgICAgcHJvcGVydHlPYmouc2V0KHZhbGlkYXRvckVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICB2YWxpZGF0b3JFbGVtZW50LnNldEN1c3RvbVZhbGlkaXR5KHByb3BlcnR5T2JqLnZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICAgIHZhbGlkYXRvckVsZW1lbnQudGl0bGUgPSBwcm9wZXJ0eU9iai52YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgIGlmICh2YWxpZGF0b3JFbGVtZW50LmlzQWN0aXZlRWxlbWVudCgpICYmIG9wdGlvbnNFeHQuc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaGlkZSgpOiB2b2lkIHtcbiAgICBzdXBlci5oaWRlKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNhdmVUb0ZpbGUoKSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0Esc0JBQWlDO0FBT2pDLG1CQUFrQztBQUNsQyxzQkFBeUI7QUFDekIsc0JBQXFCO0FBQ3JCLGdDQUFzQztBQUN0QywrQkFBMEM7QUFDMUMsc0JBQTRCO0FBa0RyQixNQUFlLDhCQUErRCxpQ0FBaUI7QUFBQSxFQUM3RixZQUE0QixRQUFpQjtBQUNsRCxVQUFNLE9BQU8sS0FBSyxNQUFNO0FBRFM7QUFFakMsU0FBSyxZQUFZLFNBQVMseUJBQVMsaUJBQWEsNkJBQVksR0FBRyx5QkFBUyxpQkFBaUI7QUFBQSxFQUMzRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQW1ETyxLQUtMLGdCQUNBLFVBQ0EsU0FDaUI7QUFHakIsVUFBTSxrQkFBb0Y7QUFBQTtBQUFBLE1BRXhGLHlDQUF5QyxDQUFDLFVBQWlDO0FBQUEsTUFDM0UsV0FBVztBQUFBLE1BQ1gseUNBQXlDLENBQUMsVUFBaUM7QUFBQSxNQUMzRSw2QkFBNkI7QUFBQSxJQUMvQjtBQUVBLFVBQU0sYUFBK0UsRUFBRSxHQUFHLGlCQUFpQixHQUFHLFFBQVE7QUFFdEgsVUFBTSx1QkFBbUIsaURBQXNCLGNBQWMsR0FBRztBQUVoRSxVQUFNLGNBQWMsS0FBSyxPQUFPLGdCQUFnQixZQUFZLFFBQVE7QUFFcEUsbUJBQ0csU0FBUyxXQUFXLHdDQUF3QyxZQUFZLElBQUksQ0FBaUIsQ0FBQyxFQUM5RixTQUFTLE9BQU8sWUFBWTtBQUMzQixZQUFNLFdBQVcsWUFBWSxJQUFJO0FBQ2pDLFlBQU0saUJBQWlCLFdBQVcsd0NBQXdDLE9BQU87QUFDakYsWUFBTSxZQUFZLGVBQWUsY0FBYztBQUMvQyxZQUFNLGVBQVcsb0RBQTBCLGNBQWMsSUFBSSxTQUFZO0FBQ3pFLFlBQU0sV0FBVyxVQUFVLFVBQVUsUUFBUTtBQUFBLElBQy9DLENBQUM7QUFFSCxzQkFBa0IsaUJBQWlCLFNBQVMsUUFBUTtBQUNwRCxzQkFBa0IsaUJBQWlCLFFBQVEsUUFBUTtBQUVuRCxhQUFTO0FBQ1QsV0FBTztBQUVQLGFBQVMsV0FBaUI7QUFDeEIsVUFBSSxDQUFDLGtCQUFrQjtBQUNyQjtBQUFBLE1BQ0Y7QUFFQSxVQUFJLENBQUMsWUFBWSxtQkFBbUI7QUFDbEMseUJBQWlCLGtCQUFrQixFQUFFO0FBQ3JDLHlCQUFpQixjQUFjO0FBQy9CLG9CQUFZLElBQUksZ0JBQWdCO0FBQUEsTUFDbEM7QUFFQSx1QkFBaUIsa0JBQWtCLFlBQVksaUJBQWlCO0FBQ2hFLHVCQUFpQixRQUFRLFlBQVk7QUFDckMsVUFBSSxpQkFBaUIsZ0JBQWdCLEtBQUssV0FBVyw2QkFBNkI7QUFDaEYseUJBQWlCLGVBQWU7QUFBQSxNQUNsQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsT0FBYTtBQUMzQixVQUFNLEtBQUs7QUFDWCx3Q0FBa0IsTUFBTSxLQUFLLE9BQU8sZ0JBQWdCLFdBQVcsQ0FBQztBQUFBLEVBQ2xFO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
106
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29uZGl0aW9uYWxLZXlzLFxuICBQcm9taXNhYmxlXG59IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgU3RyaW5nS2V5cyB9IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi4vQ29tcG9uZW50cy9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIH0gZnJvbSAnLi4vVmFsaWRhdGlvbk1lc3NhZ2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NQcm9wZXJ0eSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZS50cyc7XG5cbmltcG9ydCB7IGludm9rZUFzeW5jU2FmZWx5IH0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgaXNQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbXBvbmVudHMvUGxhY2Vob2xkZXJDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29tcG9uZW50cy9WYWxpZGF0b3JDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB9IGZyb20gJy4uL1ZhbGlkYXRpb25NZXNzYWdlLnRzJztcbmltcG9ydCB7IGdldFBsdWdpbklkIH0gZnJvbSAnLi9QbHVnaW5JZC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKi9cbiAgb25DaGFuZ2VkPyhuZXdWYWx1ZTogVCB8IHVuZGVmaW5lZCwgb2xkVmFsdWU6IFQpOiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBzaG93cyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlIHdoZW4gdGhlIGNvbXBvbmVudCB2YWx1ZSBpcyBpbnZhbGlkLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0ZW5kZWQgb3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRPcHRpb25zRXh0ZW5kZWQ8XG4gIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0LFxuICBVSVZhbHVlLFxuICBQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPlxuPiBleHRlbmRzIEJpbmRPcHRpb25zPFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0+IHtcbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBVSSBjb21wb25lbnQncyB2YWx1ZSBiYWNrIHRvIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUuXG4gICAqIEBwYXJhbSB1aVZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHVpVmFsdWU6IFVJVmFsdWUpID0+IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0gfCBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcjtcblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZSB0byB0aGUgdmFsdWUgdXNlZCBieSB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gcGx1Z2luU2V0dGluZ3NWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgVUkgY29tcG9uZW50LlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyOiAocGx1Z2luU2V0dGluZ3NWYWx1ZTogUGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXSkgPT4gVUlWYWx1ZTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8YW55Pj4gPSBQbHVnaW4gZXh0ZW5kcyBQbHVnaW5CYXNlPGluZmVyIFBsdWdpblNldHRpbmdzPiA/IFBsdWdpblNldHRpbmdzIDogbmV2ZXI7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmdzIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBQcm92aWRlcyBhIG1ldGhvZCBmb3IgYmluZGluZyB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxpbmcgY2hhbmdlcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgZXh0ZW5kcyBQbHVnaW5CYXNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpblNldHRpbmdzVGFiQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZTxhbnk+PiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogVFBsdWdpbikge1xuICAgIHN1cGVyKHBsdWdpbi5hcHAsIHBsdWdpbik7XG4gICAgdGhpcy5jb250YWluZXJFbC5hZGRDbGFzcyhDc3NDbGFzcy5MaWJyYXJ5TmFtZSwgZ2V0UGx1Z2luSWQoKSwgQ3NzQ2xhc3MuUGx1Z2luU2V0dGluZ3NUYWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50XG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+LFxuICAgIHByb3BlcnR5TmFtZTogQ29uZGl0aW9uYWxLZXlzPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPiwgVUlWYWx1ZT4sXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPFVJVmFsdWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+PlxuICA+KFxuICAgIHZhbHVlQ29tcG9uZW50OiBUVmFsdWVDb21wb25lbnQgJiBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPixcbiAgICBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZSxcbiAgICBvcHRpb25zOiBCaW5kT3B0aW9uc0V4dGVuZGVkPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPiwgVUlWYWx1ZSwgUHJvcGVydHlOYW1lPlxuICApOiBUVmFsdWVDb21wb25lbnQ7XG4gIC8qKlxuICAgKiBCaW5kcyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFVJVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5TmFtZSAtIFRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBiaW5kLlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBiaW5kaW5nIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYmluZDxcbiAgICBVSVZhbHVlLFxuICAgIFRWYWx1ZUNvbXBvbmVudCxcbiAgICBQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBTdHJpbmdLZXlzPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPltQcm9wZXJ0eU5hbWVdPlxuICApOiBUVmFsdWVDb21wb25lbnQge1xuICAgIHR5cGUgUGx1Z2luU2V0dGluZ3MgPSBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj47XG4gICAgdHlwZSBQcm9wZXJ0eVR5cGUgPSBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdO1xuICAgIGNvbnN0IERFRkFVTFRfT1BUSU9OUzogUmVxdWlyZWQ8QmluZE9wdGlvbnNFeHRlbmRlZDxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZSwgUHJvcGVydHlOYW1lPj4gPSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBVSVZhbHVlKTogUHJvcGVydHlUeXBlID0+IHZhbHVlIGFzIFByb3BlcnR5VHlwZSxcbiAgICAgIG9uQ2hhbmdlZDogbm9vcCxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBQcm9wZXJ0eVR5cGUpOiBVSVZhbHVlID0+IHZhbHVlIGFzIFVJVmFsdWUsXG4gICAgICBzaG91bGRTaG93VmFsaWRhdGlvbk1lc3NhZ2U6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3Qgb3B0aW9uc0V4dDogUmVxdWlyZWQ8QmluZE9wdGlvbnNFeHRlbmRlZDxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZSwgUHJvcGVydHlOYW1lPj4gPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuXG4gICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuZ2V0UHJvcGVydHkocHJvcGVydHlOYW1lKSBhcyBQbHVnaW5TZXR0aW5nc1Byb3BlcnR5PFByb3BlcnR5VHlwZT47XG5cbiAgICB2YWx1ZUNvbXBvbmVudFxuICAgICAgLnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHByb3BlcnR5LmdldCgpKSlcbiAgICAgIC5vbkNoYW5nZShhc3luYyAodWlWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHByb3BlcnR5LmdldCgpO1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBhd2FpdCBwcm9wZXJ0eS5zZXRBbmRWYWxpZGF0ZShjb252ZXJ0ZWRWYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcihjb252ZXJ0ZWRWYWx1ZSkgPyB1bmRlZmluZWQgOiBjb252ZXJ0ZWRWYWx1ZTtcbiAgICAgICAgYXdhaXQgb3B0aW9uc0V4dC5vbkNoYW5nZWQobmV3VmFsdWUsIG9sZFZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKGlzUGxhY2Vob2xkZXJDb21wb25lbnQodmFsdWVDb21wb25lbnQpKSB7XG4gICAgICB2YWx1ZUNvbXBvbmVudC5zZXRQbGFjZWhvbGRlcihvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcihwcm9wZXJ0eS5kZWZhdWx0VmFsdWUpIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB2YWxpZGF0ZSk7XG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHZhbGlkYXRlKTtcblxuICAgIHZhbGlkYXRlKCk7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50O1xuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBpZiAoIXZhbGlkYXRvckVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXByb3BlcnR5LnZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkoJycpO1xuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LmNoZWNrVmFsaWRpdHkoKTtcbiAgICAgICAgcHJvcGVydHkuc2V0KHZhbGlkYXRvckVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICB2YWxpZGF0b3JFbGVtZW50LnNldEN1c3RvbVZhbGlkaXR5KHByb3BlcnR5LnZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICAgIHZhbGlkYXRvckVsZW1lbnQudGl0bGUgPSBwcm9wZXJ0eS52YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgIGlmICh2YWxpZGF0b3JFbGVtZW50LmlzQWN0aXZlRWxlbWVudCgpICYmIG9wdGlvbnNFeHQuc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaGlkZSgpOiB2b2lkIHtcbiAgICBzdXBlci5oaWRlKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNhdmVUb0ZpbGUoKSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0Esc0JBQWlDO0FBUWpDLG1CQUFrQztBQUNsQyxzQkFBeUI7QUFDekIsc0JBQXFCO0FBQ3JCLGtDQUF1QztBQUN2QyxnQ0FBc0M7QUFDdEMsK0JBQTBDO0FBQzFDLHNCQUE0QjtBQWtEckIsTUFBZSw4QkFBK0QsaUNBQWlCO0FBQUEsRUFDN0YsWUFBNEIsUUFBaUI7QUFDbEQsVUFBTSxPQUFPLEtBQUssTUFBTTtBQURTO0FBRWpDLFNBQUssWUFBWSxTQUFTLHlCQUFTLGlCQUFhLDZCQUFZLEdBQUcseUJBQVMsaUJBQWlCO0FBQUEsRUFDM0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFtRE8sS0FLTCxnQkFDQSxjQUNBLFNBQ2lCO0FBR2pCLFVBQU0sa0JBQXdGO0FBQUE7QUFBQSxNQUU1Rix5Q0FBeUMsQ0FBQyxVQUFpQztBQUFBLE1BQzNFLFdBQVc7QUFBQSxNQUNYLHlDQUF5QyxDQUFDLFVBQWlDO0FBQUEsTUFDM0UsNkJBQTZCO0FBQUEsSUFDL0I7QUFFQSxVQUFNLGFBQW1GLEVBQUUsR0FBRyxpQkFBaUIsR0FBRyxRQUFRO0FBRTFILFVBQU0sdUJBQW1CLGlEQUFzQixjQUFjLEdBQUc7QUFFaEUsVUFBTSxXQUFXLEtBQUssT0FBTyxnQkFBZ0IsWUFBWSxZQUFZO0FBRXJFLG1CQUNHLFNBQVMsV0FBVyx3Q0FBd0MsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUMzRSxTQUFTLE9BQU8sWUFBWTtBQUMzQixZQUFNLFdBQVcsU0FBUyxJQUFJO0FBQzlCLFlBQU0saUJBQWlCLFdBQVcsd0NBQXdDLE9BQU87QUFDakYsWUFBTSxTQUFTLGVBQWUsY0FBYztBQUM1QyxZQUFNLGVBQVcsb0RBQTBCLGNBQWMsSUFBSSxTQUFZO0FBQ3pFLFlBQU0sV0FBVyxVQUFVLFVBQVUsUUFBUTtBQUFBLElBQy9DLENBQUM7QUFFSCxZQUFJLG9EQUF1QixjQUFjLEdBQUc7QUFDMUMscUJBQWUsZUFBZSxXQUFXLHdDQUF3QyxTQUFTLFlBQVksQ0FBVztBQUFBLElBQ25IO0FBRUEsc0JBQWtCLGlCQUFpQixTQUFTLFFBQVE7QUFDcEQsc0JBQWtCLGlCQUFpQixRQUFRLFFBQVE7QUFFbkQsYUFBUztBQUNULFdBQU87QUFFUCxhQUFTLFdBQWlCO0FBQ3hCLFVBQUksQ0FBQyxrQkFBa0I7QUFDckI7QUFBQSxNQUNGO0FBRUEsVUFBSSxDQUFDLFNBQVMsbUJBQW1CO0FBQy9CLHlCQUFpQixrQkFBa0IsRUFBRTtBQUNyQyx5QkFBaUIsY0FBYztBQUMvQixpQkFBUyxJQUFJLGdCQUFnQjtBQUFBLE1BQy9CO0FBRUEsdUJBQWlCLGtCQUFrQixTQUFTLGlCQUFpQjtBQUM3RCx1QkFBaUIsUUFBUSxTQUFTO0FBQ2xDLFVBQUksaUJBQWlCLGdCQUFnQixLQUFLLFdBQVcsNkJBQTZCO0FBQ2hGLHlCQUFpQixlQUFlO0FBQUEsTUFDbEM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBRWdCLE9BQWE7QUFDM0IsVUFBTSxLQUFLO0FBQ1gsd0NBQWtCLE1BQU0sS0FBSyxPQUFPLGdCQUFnQixXQUFXLENBQUM7QUFBQSxFQUNsRTtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -25,19 +25,19 @@ export interface BindOptions<T> {
|
|
25
25
|
/**
|
26
26
|
* Extended options for binding a value component to a plugin setting.
|
27
27
|
*/
|
28
|
-
export interface BindOptionsExtended<PluginSettings extends object, UIValue,
|
28
|
+
export interface BindOptionsExtended<PluginSettings extends object, UIValue, PropertyName extends StringKeys<PluginSettings>> extends BindOptions<PluginSettings[PropertyName]> {
|
29
29
|
/**
|
30
30
|
* Converts the UI component's value back to the plugin settings value.
|
31
31
|
* @param uiValue - The value of the UI component.
|
32
32
|
* @returns The value to set on the plugin settings.
|
33
33
|
*/
|
34
|
-
componentToPluginSettingsValueConverter: (uiValue: UIValue) => PluginSettings[
|
34
|
+
componentToPluginSettingsValueConverter: (uiValue: UIValue) => PluginSettings[PropertyName] | ValidationMessageHolder;
|
35
35
|
/**
|
36
36
|
* Converts the plugin settings value to the value used by the UI component.
|
37
37
|
* @param pluginSettingsValue - The value of the property in the plugin settings.
|
38
38
|
* @returns The value to set on the UI component.
|
39
39
|
*/
|
40
|
-
pluginSettingsToComponentValueConverter: (pluginSettingsValue: PluginSettings[
|
40
|
+
pluginSettingsToComponentValueConverter: (pluginSettingsValue: PluginSettings[PropertyName]) => UIValue;
|
41
41
|
}
|
42
42
|
type ExtractPluginSettings<Plugin extends PluginBase<any>> = Plugin extends PluginBase<infer PluginSettings> ? PluginSettings : never;
|
43
43
|
/**
|
@@ -55,23 +55,23 @@ export declare abstract class PluginSettingsTabBase<TPlugin extends PluginBase<a
|
|
55
55
|
* @typeParam UIValue - The type of the value of the UI component.
|
56
56
|
* @typeParam TValueComponent - The type of the value component.
|
57
57
|
* @param valueComponent - The value component to bind.
|
58
|
-
* @param
|
58
|
+
* @param propertyName - The property of the plugin settings to bind to.
|
59
59
|
* @param options - The options for binding the value component.
|
60
60
|
* @returns The value component.
|
61
61
|
*/
|
62
|
-
bind<UIValue, TValueComponent>(valueComponent: TValueComponent & ValueComponentWithChangeTracking<UIValue>,
|
62
|
+
bind<UIValue, TValueComponent>(valueComponent: TValueComponent & ValueComponentWithChangeTracking<UIValue>, propertyName: ConditionalKeys<ExtractPluginSettings<TPlugin>, UIValue>, options?: BindOptions<UIValue>): TValueComponent;
|
63
63
|
/**
|
64
64
|
* Binds a value component to a plugin setting.
|
65
65
|
*
|
66
66
|
* @typeParam UIValue - The type of the value of the UI component.
|
67
67
|
* @typeParam TValueComponent - The type of the value component.
|
68
|
-
* @typeParam
|
68
|
+
* @typeParam PropertyName - The property name of the plugin settings to bind to.
|
69
69
|
* @param valueComponent - The value component to bind.
|
70
|
-
* @param
|
70
|
+
* @param propertyName - The property name of the plugin settings to bind to.
|
71
71
|
* @param options - The options for binding the value component.
|
72
72
|
* @returns The value component.
|
73
73
|
*/
|
74
|
-
bind<UIValue, TValueComponent,
|
74
|
+
bind<UIValue, TValueComponent, PropertyName extends StringKeys<ExtractPluginSettings<TPlugin>>>(valueComponent: TValueComponent & ValueComponentWithChangeTracking<UIValue>, propertyName: PropertyName, options: BindOptionsExtended<ExtractPluginSettings<TPlugin>, UIValue, PropertyName>): TValueComponent;
|
75
75
|
hide(): void;
|
76
76
|
}
|
77
77
|
export {};
|
@@ -29,10 +29,10 @@ __export(ValidationMessage_exports, {
|
|
29
29
|
});
|
30
30
|
module.exports = __toCommonJS(ValidationMessage_exports);
|
31
31
|
function isValidationMessageHolder(value) {
|
32
|
-
return
|
32
|
+
return value.validationMessage !== void 0;
|
33
33
|
}
|
34
34
|
// Annotate the CommonJS export names for ESM import in node:
|
35
35
|
0 && (module.exports = {
|
36
36
|
isValidationMessageHolder
|
37
37
|
});
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1ZhbGlkYXRpb25NZXNzYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAqL1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSB2YWx1ZSBpcyBhIHZhbGlkYXRpb24gbWVzc2FnZSBob2xkZXIuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZSBpcyBhIHZhbGlkYXRpb24gbWVzc2FnZSBob2xkZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgcmV0dXJuICh2YWx1ZSBhcyBQYXJ0aWFsPFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyPikudmFsaWRhdGlvbk1lc3NhZ2UgIT09IHVuZGVmaW5lZDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JPLFNBQVMsMEJBQTBCLE9BQWtEO0FBQzFGLFNBQVEsTUFBMkMsc0JBQXNCO0FBQzNFOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/lib/esm/Library.mjs
CHANGED
@@ -5,7 +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
|
-
const LIBRARY_VERSION = "22.1.1-beta.
|
8
|
+
const LIBRARY_VERSION = "22.1.1-beta.6";
|
9
9
|
const LIBRARY_NAME = "obsidian-dev-utils";
|
10
10
|
const LIBRARY_STYLES = ".obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AACE;EACE;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC5DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AChDF;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;EACE;EACA;;;ACPJ;EACE;;;ACFJ;EACE%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
11
11
|
export {
|
@@ -5,6 +5,7 @@
|
|
5
5
|
import type { Promisable } from 'type-fest';
|
6
6
|
import { ValueComponent } from 'obsidian';
|
7
7
|
import type { ValidatorElement } from '../../HTMLElement.mjs';
|
8
|
+
import type { PlaceholderComponent } from './PlaceholderComponent.mjs';
|
8
9
|
import type { ValidatorComponent } from './ValidatorComponent.mjs';
|
9
10
|
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.mjs';
|
10
11
|
/**
|
@@ -16,7 +17,7 @@ import type { ValueComponentWithChangeTracking } from './ValueComponentWithChang
|
|
16
17
|
*
|
17
18
|
* Alternatively, you can copy styles from {@link https://github.com/mnaoumov/obsidian-dev-utils/releases/latest/download/styles.css}.
|
18
19
|
*/
|
19
|
-
export declare class MultipleTextComponent extends ValueComponent<string[]> implements ValidatorComponent, ValueComponentWithChangeTracking<string[]> {
|
20
|
+
export declare class MultipleTextComponent extends ValueComponent<string[]> implements PlaceholderComponent, ValidatorComponent, ValueComponentWithChangeTracking<string[]> {
|
20
21
|
/**
|
21
22
|
* Gets the validator element of the component.
|
22
23
|
*
|
@@ -84,4 +84,4 @@ class MultipleTextComponent extends ValueComponent {
|
|
84
84
|
export {
|
85
85
|
MultipleTextComponent
|
86
86
|
};
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
87
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvTXVsdGlwbGVUZXh0Q29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBNdWx0aXBsZVRleHRDb21wb25lbnRcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIG11bHRpcGxlIHRleHQgdmFsdWVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIFRleHRBcmVhQ29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB0eXBlIHsgaW5pdFBsdWdpbkNvbnRleHQgfSBmcm9tICcuLi9QbHVnaW4vUGx1Z2luQ29udGV4dC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL1NldHRpbmdFeC50cyc7XG5pbXBvcnQgdHlwZSB7IFBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9QbGFjZWhvbGRlckNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vVmFsaWRhdG9yQ29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL1ZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5JZCB9IGZyb20gJy4uL1BsdWdpbi9QbHVnaW5JZC50cyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhbmQgZWRpdHMgbXVsdGlwbGUgdGV4dCB2YWx1ZXMuXG4gKlxuICogWW91IGNhbiBhZGQgdGhpcyBjb21wb25lbnQgdXNpbmcge0BsaW5rIFNldHRpbmdFeC5hZGRNdWx0aXBsZVRleHR9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIE11bHRpcGxlVGV4dENvbXBvbmVudCBleHRlbmRzIFZhbHVlQ29tcG9uZW50PHN0cmluZ1tdPlxuICBpbXBsZW1lbnRzIFBsYWNlaG9sZGVyQ29tcG9uZW50LCBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPHN0cmluZ1tdPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9yRWwoKTogVmFsaWRhdG9yRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEFyZWFDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEFyZWFDb21wb25lbnQ6IFRleHRBcmVhQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG11bHRpcGxlIHRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudGV4dEFyZWFDb21wb25lbnQgPSBuZXcgVGV4dEFyZWFDb21wb25lbnQoY29udGFpbmVyRWwpO1xuICAgIGNvbnRhaW5lckVsLmFkZENsYXNzKENzc0NsYXNzLkxpYnJhcnlOYW1lLCBnZXRQbHVnaW5JZCgpLCBDc3NDbGFzcy5NdWx0aXBsZVRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldFZhbHVlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5nZXRWYWx1ZSgpLnNwbGl0KCdcXG4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hhbmdlIGxpc3RlbmVyIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IFByb21pc2FibGU8dm9pZD4pOiB0aGlzIHtcbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50Lm9uQ2hhbmdlKCgpID0+IGNhbGxiYWNrKHRoaXMuZ2V0VmFsdWUoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBkaXNhYmxlZCAtIFRoZSBkaXNhYmxlZCBzdGF0ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50LnNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy50ZXh0QXJlYUNvbXBvbmVudC5zZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nW10pOiB0aGlzIHtcbiAgICB0aGlzLnRleHRBcmVhQ29tcG9uZW50LnNldFZhbHVlKHZhbHVlLmpvaW4oJ1xcbicpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQU9BO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBV1AsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxtQkFBbUI7QUFXckIsTUFBTSw4QkFBOEIsZUFDdUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNaEcsSUFBVyxjQUFnQztBQUN6QyxXQUFPLEtBQUssa0JBQWtCO0FBQUEsRUFDaEM7QUFBQSxFQUVpQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksYUFBMEI7QUFDM0MsVUFBTTtBQUNOLFNBQUssb0JBQW9CLElBQUksa0JBQWtCLFdBQVc7QUFDMUQsZ0JBQVksU0FBUyxTQUFTLGFBQWEsWUFBWSxHQUFHLFNBQVMscUJBQXFCO0FBQUEsRUFDMUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPZ0IsV0FBcUI7QUFDbkMsV0FBTyxLQUFLLGtCQUFrQixTQUFTLEVBQUUsTUFBTSxJQUFJO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsVUFBMEQ7QUFDeEUsU0FBSyxrQkFBa0IsU0FBUyxNQUFNLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztBQUMvRCxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLFlBQVksVUFBeUI7QUFDbkQsU0FBSyxrQkFBa0IsWUFBWSxRQUFRO0FBQzNDLFNBQUssV0FBVztBQUNoQixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sZUFBZSxhQUEyQjtBQUMvQyxTQUFLLGtCQUFrQixlQUFlLFdBQVc7QUFDakQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixTQUFTLE9BQXVCO0FBQzlDLFNBQUssa0JBQWtCLFNBQVMsTUFBTSxLQUFLLElBQUksQ0FBQztBQUNoRCxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/**
|
2
|
+
* A component that can set a placeholder.
|
3
|
+
*/
|
4
|
+
export interface PlaceholderComponent {
|
5
|
+
/**
|
6
|
+
* Sets the placeholder of the component.
|
7
|
+
*
|
8
|
+
* @param placeholder - The placeholder to set.
|
9
|
+
* @returns The component.
|
10
|
+
*/
|
11
|
+
setPlaceholder(placeholder: string): this;
|
12
|
+
}
|
13
|
+
/**
|
14
|
+
* Type guard to check if a component is a placeholder component.
|
15
|
+
*
|
16
|
+
* @param component - The component to check.
|
17
|
+
* @returns `true` if the component is a placeholder component, `false` otherwise.
|
18
|
+
*/
|
19
|
+
export declare function isPlaceholderComponent(component: unknown): component is PlaceholderComponent;
|
@@ -0,0 +1,14 @@
|
|
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
|
+
function isPlaceholderComponent(component) {
|
9
|
+
return typeof component.setPlaceholder === "function";
|
10
|
+
}
|
11
|
+
export {
|
12
|
+
isPlaceholderComponent
|
13
|
+
};
|
14
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvUGxhY2Vob2xkZXJDb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBjYW4gc2V0IGEgcGxhY2Vob2xkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2Vob2xkZXJDb21wb25lbnQge1xuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRvIHNldC5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBjb21wb25lbnQgaXMgYSBwbGFjZWhvbGRlciBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNvbXBvbmVudCBpcyBhIHBsYWNlaG9sZGVyIGNvbXBvbmVudCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BsYWNlaG9sZGVyQ29tcG9uZW50KGNvbXBvbmVudDogdW5rbm93bik6IGNvbXBvbmVudCBpcyBQbGFjZWhvbGRlckNvbXBvbmVudCB7XG4gIHJldHVybiB0eXBlb2YgKGNvbXBvbmVudCBhcyBQYXJ0aWFsPFBsYWNlaG9sZGVyQ29tcG9uZW50Pikuc2V0UGxhY2Vob2xkZXIgPT09ICdmdW5jdGlvbic7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBbUJPLFNBQVMsdUJBQXVCLFdBQXVEO0FBQzVGLFNBQU8sT0FBUSxVQUE0QyxtQkFBbUI7QUFDaEY7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -5,13 +5,14 @@
|
|
5
5
|
import type { Promisable } from 'type-fest';
|
6
6
|
import { ValueComponent } from 'obsidian';
|
7
7
|
import type { ValidatorElement } from '../../HTMLElement.mjs';
|
8
|
+
import type { PlaceholderComponent } from './PlaceholderComponent.mjs';
|
8
9
|
import type { ValidatorComponent } from './ValidatorComponent.mjs';
|
9
10
|
import type { ValueComponentWithChangeTracking } from './ValueComponentWithChangeTracking.mjs';
|
10
11
|
import { CssClass } from '../../CssClass.mjs';
|
11
12
|
/**
|
12
13
|
* A component that displays and edits a text-based value.
|
13
14
|
*/
|
14
|
-
export declare abstract class TypedTextComponent<T> extends ValueComponent<T> implements ValidatorComponent, ValueComponentWithChangeTracking<T> {
|
15
|
+
export declare abstract class TypedTextComponent<T> extends ValueComponent<T> implements PlaceholderComponent, ValidatorComponent, ValueComponentWithChangeTracking<T> {
|
15
16
|
/**
|
16
17
|
* The input element of the component.
|
17
18
|
*/
|
@@ -105,4 +105,4 @@ class TypedTextComponent extends ValueComponent {
|
|
105
105
|
export {
|
106
106
|
TypedTextComponent
|
107
107
|
};
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
108
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvVHlwZWRUZXh0Q29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBUeXBlZFRleHRDb21wb25lbnRcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgdGV4dC1iYXNlZCB2YWx1ZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBUZXh0Q29tcG9uZW50LFxuICBWYWx1ZUNvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgUGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICcuL1BsYWNlaG9sZGVyQ29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9WYWxpZGF0b3JDb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZyB9IGZyb20gJy4vVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IGdldFBsdWdpbklkIH0gZnJvbSAnLi4vUGx1Z2luL1BsdWdpbklkLnRzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIHRleHQtYmFzZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUeXBlZFRleHRDb21wb25lbnQ8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIFBsYWNlaG9sZGVyQ29tcG9uZW50LCBWYWxpZGF0b3JDb21wb25lbnQsIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRFbDogSFRNTElucHV0RWxlbWVudDtcbiAgLyoqXG4gICAqIFRoZSB2YWxpZGF0b3IgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWxpZGF0b3JFbCgpOiBWYWxpZGF0b3JFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0Q29tcG9uZW50OiBUZXh0Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHR5cGVkIHRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICogQHBhcmFtIGNzc0NsYXNzIC0gVGhlIENTUyBjbGFzcyBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCwgdHlwZTogc3RyaW5nLCBjc3NDbGFzczogQ3NzQ2xhc3MpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudGV4dENvbXBvbmVudCA9IG5ldyBUZXh0Q29tcG9uZW50KGNvbnRhaW5lckVsKTtcbiAgICB0aGlzLmlucHV0RWwgPSB0aGlzLnRleHRDb21wb25lbnQuaW5wdXRFbDtcbiAgICB0aGlzLmlucHV0RWwudHlwZSA9IHR5cGU7XG4gICAgY29udGFpbmVyRWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuTGlicmFyeU5hbWUsIGdldFBsdWdpbklkKCksIGNzc0NsYXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRWYWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUZyb21TdHJpbmcodGhpcy5pbnB1dEVsLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogVCkgPT4gUHJvbWlzYWJsZTx2b2lkPik6IHRoaXMge1xuICAgIHRoaXMudGV4dENvbXBvbmVudC5vbkNoYW5nZSgoKSA9PiBjYWxsYmFjayh0aGlzLmdldFZhbHVlKCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNoYW5nZWQuXG4gICAqL1xuICBwdWJsaWMgb25DaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMudGV4dENvbXBvbmVudC5vbkNoYW5nZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQuc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgLSBUaGUgcGxhY2Vob2xkZXIgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnRleHRDb21wb25lbnQuc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0VmFsdWUodmFsdWU6IFQpOiB0aGlzIHtcbiAgICB0aGlzLmlucHV0RWwudmFsdWUgPSB0aGlzLnZhbHVlVG9TdHJpbmcodmFsdWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB2YWx1ZUZyb21TdHJpbmcoc3RyOiBzdHJpbmcpOiBUO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHZhbHVlIHRvIGEgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICogQHJldHVybnMgVGhlIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVRvU3RyaW5nKHZhbHVlOiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQU9BO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBT1AsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxtQkFBbUI7QUFLckIsTUFBZSwyQkFBOEIsZUFBMkc7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUk3STtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWhCLElBQVcsY0FBZ0M7QUFDekMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNWLFlBQVksYUFBMEIsTUFBYyxVQUFvQjtBQUM3RSxVQUFNO0FBQ04sU0FBSyxnQkFBZ0IsSUFBSSxjQUFjLFdBQVc7QUFDbEQsU0FBSyxVQUFVLEtBQUssY0FBYztBQUNsQyxTQUFLLFFBQVEsT0FBTztBQUNwQixnQkFBWSxTQUFTLFNBQVMsYUFBYSxZQUFZLEdBQUcsUUFBUTtBQUFBLEVBQ3BFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2dCLFdBQWM7QUFDNUIsV0FBTyxLQUFLLGdCQUFnQixLQUFLLFFBQVEsS0FBSztBQUFBLEVBQ2hEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLFVBQWdEO0FBQzlELFNBQUssY0FBYyxTQUFTLE1BQU0sU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQzNELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxZQUFrQjtBQUN2QixTQUFLLGNBQWMsVUFBVTtBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsWUFBWSxVQUF5QjtBQUNuRCxTQUFLLGNBQWMsWUFBWSxRQUFRO0FBQ3ZDLFNBQUssV0FBVztBQUNoQixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sZUFBZSxhQUEyQjtBQUMvQyxTQUFLLGNBQWMsZUFBZSxXQUFXO0FBQzdDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsU0FBUyxPQUFnQjtBQUN2QyxTQUFLLFFBQVEsUUFBUSxLQUFLLGNBQWMsS0FBSztBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZ0JPLGNBQWMsT0FBa0I7QUFDckMsV0FBTyxPQUFPLEtBQUs7QUFBQSxFQUNyQjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -8,6 +8,7 @@ export * as MultipleEmailComponent from './MultipleEmailComponent.mjs';
|
|
8
8
|
export * as MultipleFileComponent from './MultipleFileComponent.mjs';
|
9
9
|
export * as MultipleTextComponent from './MultipleTextComponent.mjs';
|
10
10
|
export * as NumberComponent from './NumberComponent.mjs';
|
11
|
+
export * as PlaceholderComponent from './PlaceholderComponent.mjs';
|
11
12
|
export * as TimeComponent from './TimeComponent.mjs';
|
12
13
|
export * as TypedRangeTextComponent from './TypedRangeTextComponent.mjs';
|
13
14
|
export * as TypedTextComponent from './TypedTextComponent.mjs';
|
@@ -15,6 +15,7 @@ import * as MultipleEmailComponent from "./MultipleEmailComponent.mjs";
|
|
15
15
|
import * as MultipleFileComponent from "./MultipleFileComponent.mjs";
|
16
16
|
import * as MultipleTextComponent from "./MultipleTextComponent.mjs";
|
17
17
|
import * as NumberComponent from "./NumberComponent.mjs";
|
18
|
+
import * as PlaceholderComponent from "./PlaceholderComponent.mjs";
|
18
19
|
import * as TimeComponent from "./TimeComponent.mjs";
|
19
20
|
import * as TypedRangeTextComponent from "./TypedRangeTextComponent.mjs";
|
20
21
|
import * as TypedTextComponent from "./TypedTextComponent.mjs";
|
@@ -33,6 +34,7 @@ export {
|
|
33
34
|
MultipleFileComponent,
|
34
35
|
MultipleTextComponent,
|
35
36
|
NumberComponent,
|
37
|
+
PlaceholderComponent,
|
36
38
|
TimeComponent,
|
37
39
|
TypedRangeTextComponent,
|
38
40
|
TypedTextComponent,
|
@@ -41,4 +43,4 @@ export {
|
|
41
43
|
ValueComponentWithChangeTracking,
|
42
44
|
WeekComponent
|
43
45
|
};
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
46
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyBEYXRlQ29tcG9uZW50IGZyb20gJy4vRGF0ZUNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBEYXRlVGltZUNvbXBvbmVudCBmcm9tICcuL0RhdGVUaW1lQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIEVtYWlsQ29tcG9uZW50IGZyb20gJy4vRW1haWxDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgRmlsZUNvbXBvbmVudCBmcm9tICcuL0ZpbGVDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgTW9udGhDb21wb25lbnQgZnJvbSAnLi9Nb250aENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IGZyb20gJy4vTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBNdWx0aXBsZUVtYWlsQ29tcG9uZW50IGZyb20gJy4vTXVsdGlwbGVFbWFpbENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBNdWx0aXBsZUZpbGVDb21wb25lbnQgZnJvbSAnLi9NdWx0aXBsZUZpbGVDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgTXVsdGlwbGVUZXh0Q29tcG9uZW50IGZyb20gJy4vTXVsdGlwbGVUZXh0Q29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIE51bWJlckNvbXBvbmVudCBmcm9tICcuL051bWJlckNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBQbGFjZWhvbGRlckNvbXBvbmVudCBmcm9tICcuL1BsYWNlaG9sZGVyQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIFRpbWVDb21wb25lbnQgZnJvbSAnLi9UaW1lQ29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIFR5cGVkUmFuZ2VUZXh0Q29tcG9uZW50IGZyb20gJy4vVHlwZWRSYW5nZVRleHRDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgVHlwZWRUZXh0Q29tcG9uZW50IGZyb20gJy4vVHlwZWRUZXh0Q29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzIFVybENvbXBvbmVudCBmcm9tICcuL1VybENvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyBWYWxpZGF0b3JDb21wb25lbnQgZnJvbSAnLi9WYWxpZGF0b3JDb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgZnJvbSAnLi9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5leHBvcnQgKiBhcyBXZWVrQ29tcG9uZW50IGZyb20gJy4vV2Vla0NvbXBvbmVudC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBRUEsWUFBWSxtQkFBbUI7QUFDL0IsWUFBWSx1QkFBdUI7QUFDbkMsWUFBWSxvQkFBb0I7QUFDaEMsWUFBWSxtQkFBbUI7QUFDL0IsWUFBWSxvQkFBb0I7QUFDaEMsWUFBWSwrQkFBK0I7QUFDM0MsWUFBWSw0QkFBNEI7QUFDeEMsWUFBWSwyQkFBMkI7QUFDdkMsWUFBWSwyQkFBMkI7QUFDdkMsWUFBWSxxQkFBcUI7QUFDakMsWUFBWSwwQkFBMEI7QUFDdEMsWUFBWSxtQkFBbUI7QUFDL0IsWUFBWSw2QkFBNkI7QUFDekMsWUFBWSx3QkFBd0I7QUFDcEMsWUFBWSxrQkFBa0I7QUFDOUIsWUFBWSx3QkFBd0I7QUFDcEMsWUFBWSxzQ0FBc0M7QUFDbEQsWUFBWSxtQkFBbUI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -4,22 +4,6 @@ import type { Transformer } from '../../Transformers/Transformer.mjs';
|
|
4
4
|
import type { ValidationMessageHolder } from '../ValidationMessage.mjs';
|
5
5
|
import type { PluginBase } from './PluginBase.mjs';
|
6
6
|
type Validator<T> = (value: T) => Promisable<MaybeReturn<string>>;
|
7
|
-
declare class PluginSettingsProperty<T> {
|
8
|
-
readonly defaultValue: T;
|
9
|
-
private readonly validator;
|
10
|
-
get validationMessage(): string;
|
11
|
-
private _validationMessage;
|
12
|
-
private savedValue;
|
13
|
-
private value;
|
14
|
-
constructor(defaultValue: T, validator: Validator<T>);
|
15
|
-
clear(): void;
|
16
|
-
get(): T;
|
17
|
-
getSafe(): T;
|
18
|
-
getSaved(): T | undefined;
|
19
|
-
save(): void;
|
20
|
-
set(value: T | undefined | ValidationMessageHolder): void;
|
21
|
-
setAndValidate(value: T | undefined | ValidationMessageHolder): Promise<void>;
|
22
|
-
}
|
23
7
|
/**
|
24
8
|
* Base class for managing plugin settings.
|
25
9
|
*
|
@@ -33,7 +17,7 @@ export declare abstract class PluginSettingsManagerBase<PluginSettings extends o
|
|
33
17
|
private validators;
|
34
18
|
constructor(plugin: PluginBase<PluginSettings>);
|
35
19
|
editAndSave(editor: (settings: PluginSettings) => Promisable<void>): Promise<void>;
|
36
|
-
getProperty<
|
20
|
+
getProperty<PropertyName extends StringKeys<PluginSettings>>(propertyName: PropertyName): PluginSettingsProperty<PluginSettings[PropertyName]>;
|
37
21
|
loadFromFile(): Promise<void>;
|
38
22
|
/**
|
39
23
|
* Saves the new plugin settings.
|
@@ -41,7 +25,7 @@ export declare abstract class PluginSettingsManagerBase<PluginSettings extends o
|
|
41
25
|
* @returns A promise that resolves when the settings are saved.
|
42
26
|
*/
|
43
27
|
saveToFile(): Promise<void>;
|
44
|
-
protected addValidator<
|
28
|
+
protected addValidator<PropertyName extends StringKeys<PluginSettings>>(propertyName: PropertyName, validator: Validator<PluginSettings[PropertyName]>): void;
|
45
29
|
protected addValidators(): void;
|
46
30
|
protected abstract createDefaultSettings(): PluginSettings;
|
47
31
|
protected getTransformer(): Transformer;
|
@@ -49,4 +33,26 @@ export declare abstract class PluginSettingsManagerBase<PluginSettings extends o
|
|
49
33
|
private getSavedSettings;
|
50
34
|
private getSettingsRecord;
|
51
35
|
}
|
36
|
+
/**
|
37
|
+
* A property of a plugin settings.
|
38
|
+
*
|
39
|
+
* @typeParam T - The type of the property.
|
40
|
+
*/
|
41
|
+
export declare class PluginSettingsProperty<T> {
|
42
|
+
private readonly propertyName;
|
43
|
+
readonly defaultValue: T;
|
44
|
+
private readonly validator;
|
45
|
+
get validationMessage(): string;
|
46
|
+
private _validationMessage;
|
47
|
+
private savedValue;
|
48
|
+
private value;
|
49
|
+
constructor(propertyName: string, defaultValue: T, validator: Validator<T>);
|
50
|
+
clear(): void;
|
51
|
+
get(): T;
|
52
|
+
getSafe(): T;
|
53
|
+
getSaved(): T | undefined;
|
54
|
+
save(): void;
|
55
|
+
set(value: T | undefined | ValidationMessageHolder): void;
|
56
|
+
setAndValidate(value: T | undefined | ValidationMessageHolder): Promise<void>;
|
57
|
+
}
|
52
58
|
export {};
|