@mnaoumov/obsidian-lib 10.5.1 → 10.6.0
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/codemirror/inline-token-widgets/package.json +6 -0
- package/codemirror/settings-facet/package.json +6 -0
- package/components/settings-facet-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +96 -1
- package/dist/lib/cjs/__merged.d.cts +17 -0
- package/dist/lib/cjs/anchored-suggest.cjs +232 -0
- package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
- package/dist/lib/cjs/bug-report.cjs +4 -2
- package/dist/lib/cjs/bug-report.d.cts +1 -1
- package/dist/lib/cjs/code-block-render-handoff.cjs +272 -0
- package/dist/lib/cjs/code-block-render-handoff.d.cts +131 -0
- package/dist/lib/cjs/codemirror/index.cjs +7 -1
- package/dist/lib/cjs/codemirror/index.d.cts +2 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +250 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.d.cts +109 -0
- package/dist/lib/cjs/codemirror/settings-facet.cjs +132 -0
- package/dist/lib/cjs/codemirror/settings-facet.d.cts +19 -0
- package/dist/lib/cjs/components/index.cjs +4 -1
- package/dist/lib/cjs/components/index.d.cts +1 -0
- package/dist/lib/cjs/components/settings-facet-component.cjs +136 -0
- package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
- package/dist/lib/cjs/css-class.cjs +8 -1
- package/dist/lib/cjs/css-class.d.cts +28 -0
- package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
- package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
- package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
- package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
- package/dist/lib/cjs/editor-suggest.cjs +198 -0
- package/dist/lib/cjs/editor-suggest.d.cts +103 -0
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/hotkey.cjs +185 -0
- package/dist/lib/cjs/hotkey.d.cts +59 -0
- package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
- package/dist/lib/cjs/index.cjs +31 -1
- package/dist/lib/cjs/index.d.cts +10 -0
- package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
- package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
- package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
- package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
- package/dist/lib/cjs/markdown.cjs +6 -1
- package/dist/lib/cjs/markdown.d.cts +10 -1
- package/dist/lib/cjs/rendered-markdown.cjs +306 -0
- package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
- package/dist/lib/cjs/request-url.cjs +523 -0
- package/dist/lib/cjs/request-url.d.cts +233 -0
- package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
- package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
- package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
- package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
- package/dist/lib/cjs/setting-components/index.cjs +13 -1
- package/dist/lib/cjs/setting-components/index.d.cts +4 -0
- package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
- package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
- package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
- package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
- package/dist/lib/cjs/setting-ex.cjs +51 -1
- package/dist/lib/cjs/setting-ex.d.cts +35 -1
- package/dist/lib/cjs/settings-tabs.cjs +258 -0
- package/dist/lib/cjs/settings-tabs.d.cts +101 -0
- package/dist/lib/esm/__merged.d.mts +17 -0
- package/dist/lib/esm/__merged.mjs +99 -1
- package/dist/lib/esm/anchored-suggest.d.mts +116 -0
- package/dist/lib/esm/anchored-suggest.mjs +144 -0
- package/dist/lib/esm/bug-report.d.mts +1 -1
- package/dist/lib/esm/bug-report.mjs +4 -2
- package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
- package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
- package/dist/lib/esm/codemirror/index.d.mts +2 -0
- package/dist/lib/esm/codemirror/index.mjs +5 -1
- package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
- package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
- package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
- package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
- package/dist/lib/esm/components/index.d.mts +1 -0
- package/dist/lib/esm/components/index.mjs +3 -1
- package/dist/lib/esm/components/settings-facet-component.d.mts +68 -0
- package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
- package/dist/lib/esm/css-class.d.mts +28 -0
- package/dist/lib/esm/css-class.mjs +8 -1
- package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
- package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
- package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
- package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
- package/dist/lib/esm/editor-suggest.d.mts +103 -0
- package/dist/lib/esm/editor-suggest.mjs +109 -0
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/hotkey.d.mts +59 -0
- package/dist/lib/esm/hotkey.mjs +95 -0
- package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
- package/dist/lib/esm/i18n/locales/en.mjs +13 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
- package/dist/lib/esm/index.d.mts +10 -0
- package/dist/lib/esm/index.mjs +21 -1
- package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
- package/dist/lib/esm/inline-token-renderer.mjs +59 -0
- package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
- package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
- package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
- package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
- package/dist/lib/esm/markdown.d.mts +10 -1
- package/dist/lib/esm/markdown.mjs +9 -1
- package/dist/lib/esm/rendered-markdown.d.mts +77 -0
- package/dist/lib/esm/rendered-markdown.mjs +219 -0
- package/dist/lib/esm/request-url.d.mts +233 -0
- package/dist/lib/esm/request-url.mjs +428 -0
- package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
- package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
- package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
- package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
- package/dist/lib/esm/setting-components/index.d.mts +4 -0
- package/dist/lib/esm/setting-components/index.mjs +9 -1
- package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
- package/dist/lib/esm/setting-components/list-component.mjs +206 -0
- package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
- package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
- package/dist/lib/esm/setting-ex.d.mts +35 -1
- package/dist/lib/esm/setting-ex.mjs +51 -1
- package/dist/lib/esm/settings-tabs.d.mts +101 -0
- package/dist/lib/esm/settings-tabs.mjs +170 -0
- package/dist/styles.css +83 -1
- package/package.json +1 -1
- package/setting-components/folder-list-component/package.json +6 -0
- package/setting-components/hotkey-component/package.json +6 -0
- package/setting-components/list-component/package.json +6 -0
- package/setting-components/tag-list-component/package.json +6 -0
|
@@ -0,0 +1,291 @@
|
|
|
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
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return "/";
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: "android"
|
|
14
|
+
};
|
|
15
|
+
const existingProcess = globalThis.process;
|
|
16
|
+
if (!existingProcess) {
|
|
17
|
+
globalThis.process = browserProcess;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (existingProcess.versions?.node) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const existingProcessRecord = existingProcess;
|
|
24
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
25
|
+
existingProcessRecord[key] ??= value;
|
|
26
|
+
}
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ensureBrowserProcess();
|
|
31
|
+
})();
|
|
32
|
+
(function patchObsidianRequire() {
|
|
33
|
+
const originalRequire = require;
|
|
34
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
require = Object.assign(
|
|
38
|
+
(id) => requirePatched(id),
|
|
39
|
+
originalRequire,
|
|
40
|
+
{
|
|
41
|
+
__isPatched: true
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
function extractDefault($module) {
|
|
45
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
46
|
+
}
|
|
47
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
48
|
+
"@codemirror/autocomplete",
|
|
49
|
+
"@codemirror/collab",
|
|
50
|
+
"@codemirror/commands",
|
|
51
|
+
"@codemirror/language",
|
|
52
|
+
"@codemirror/lint",
|
|
53
|
+
"@codemirror/search",
|
|
54
|
+
"@codemirror/state",
|
|
55
|
+
"@codemirror/text",
|
|
56
|
+
"@codemirror/view",
|
|
57
|
+
"@lezer/common",
|
|
58
|
+
"@lezer/highlight",
|
|
59
|
+
"@lezer/lr",
|
|
60
|
+
"obsidian"
|
|
61
|
+
]);
|
|
62
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
63
|
+
"@codemirror/closebrackets",
|
|
64
|
+
"@codemirror/comment",
|
|
65
|
+
"@codemirror/fold",
|
|
66
|
+
"@codemirror/gutter",
|
|
67
|
+
"@codemirror/highlight",
|
|
68
|
+
"@codemirror/history",
|
|
69
|
+
"@codemirror/matchbrackets",
|
|
70
|
+
"@codemirror/panel",
|
|
71
|
+
"@codemirror/rangeset",
|
|
72
|
+
"@codemirror/rectangular-selection",
|
|
73
|
+
"@codemirror/stream-parser",
|
|
74
|
+
"@codemirror/tooltip"
|
|
75
|
+
]);
|
|
76
|
+
function requirePatched(id) {
|
|
77
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
|
+
return originalRequire?.(id);
|
|
79
|
+
}
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
82
|
+
if (id === "process" || id === "node:process") {
|
|
83
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
84
|
+
return process;
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
const $module = originalRequire?.(id);
|
|
88
|
+
if ($module) {
|
|
89
|
+
return extractDefault($module);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
})();
|
|
96
|
+
|
|
97
|
+
"use strict";
|
|
98
|
+
var __defProp = Object.defineProperty;
|
|
99
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
100
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
101
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
102
|
+
var __export = (target, all) => {
|
|
103
|
+
for (var name in all)
|
|
104
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
105
|
+
};
|
|
106
|
+
var __copyProps = (to, from, except, desc) => {
|
|
107
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
108
|
+
for (let key of __getOwnPropNames(from))
|
|
109
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
110
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
111
|
+
}
|
|
112
|
+
return to;
|
|
113
|
+
};
|
|
114
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
115
|
+
var list_component_exports = {};
|
|
116
|
+
__export(list_component_exports, {
|
|
117
|
+
ListComponent: () => ListComponent
|
|
118
|
+
});
|
|
119
|
+
module.exports = __toCommonJS(list_component_exports);
|
|
120
|
+
var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
|
|
121
|
+
var import_obsidian = require('obsidian');
|
|
122
|
+
var import_css_class = require('../css-class.cjs');
|
|
123
|
+
var import_i18n = require('../i18n/i18n.cjs');
|
|
124
|
+
var import_plugin_context = require('../plugin/plugin-context.cjs');
|
|
125
|
+
class ListComponent extends import_obsidian.ValueComponent {
|
|
126
|
+
/**
|
|
127
|
+
* The element holding one row per item.
|
|
128
|
+
*/
|
|
129
|
+
listEl;
|
|
130
|
+
/**
|
|
131
|
+
* The button that adds the typed item.
|
|
132
|
+
*/
|
|
133
|
+
newItemButton;
|
|
134
|
+
/**
|
|
135
|
+
* The input the next item is typed into.
|
|
136
|
+
*/
|
|
137
|
+
newItemInputEl;
|
|
138
|
+
changeCallback;
|
|
139
|
+
value = [];
|
|
140
|
+
/**
|
|
141
|
+
* Creates a new list component.
|
|
142
|
+
*
|
|
143
|
+
* @param containerEl - The container element.
|
|
144
|
+
* @param cssClass - An extra CSS class for the container, for a subclass.
|
|
145
|
+
*/
|
|
146
|
+
constructor(containerEl, cssClass) {
|
|
147
|
+
super();
|
|
148
|
+
(0, import_plugin_context.addPluginCssClasses)(containerEl, cssClass ? [import_css_class.CssClass.ListComponent, cssClass] : import_css_class.CssClass.ListComponent);
|
|
149
|
+
this.listEl = containerEl.createDiv({ cls: "list-component-items" });
|
|
150
|
+
const newItemRowEl = containerEl.createDiv({ cls: "list-component-new-item" });
|
|
151
|
+
this.newItemInputEl = newItemRowEl.createEl("input", { type: "text" });
|
|
152
|
+
this.newItemInputEl.addEventListener("keydown", (event_) => {
|
|
153
|
+
if (event_.key !== "Enter" || event_.isComposing) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
event_.preventDefault();
|
|
157
|
+
this.addTypedItem();
|
|
158
|
+
});
|
|
159
|
+
this.newItemButton = new import_obsidian.ExtraButtonComponent(newItemRowEl).setIcon("plus").setTooltip((0, import_i18n.t)(($) => $.obsidianLib.list.add)).onClick(() => {
|
|
160
|
+
this.addTypedItem();
|
|
161
|
+
});
|
|
162
|
+
this.render();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Adds the text typed into {@link ListComponent.newItemInputEl}, when it normalizes to an item not yet in the list, and
|
|
166
|
+
* clears the input.
|
|
167
|
+
*
|
|
168
|
+
* @returns Whether an item was added.
|
|
169
|
+
*/
|
|
170
|
+
addTypedItem() {
|
|
171
|
+
if (this.disabled) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
const item = this.normalizeItem(this.newItemInputEl.value);
|
|
175
|
+
if (item === null || this.value.includes(item)) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
this.newItemInputEl.value = "";
|
|
179
|
+
this.setValueAndNotify([...this.value, item]);
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Gets the items.
|
|
184
|
+
*
|
|
185
|
+
* @returns The items, in order.
|
|
186
|
+
*/
|
|
187
|
+
getValue() {
|
|
188
|
+
return this.value;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Sets the callback to be called when the user adds, moves or removes an item.
|
|
192
|
+
*
|
|
193
|
+
* @param callback - The callback.
|
|
194
|
+
* @returns The component.
|
|
195
|
+
*/
|
|
196
|
+
onChange(callback) {
|
|
197
|
+
this.changeCallback = callback;
|
|
198
|
+
return this;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Sets the disabled state of the component.
|
|
202
|
+
*
|
|
203
|
+
* @param isDisabled - The disabled state.
|
|
204
|
+
* @returns The component.
|
|
205
|
+
*/
|
|
206
|
+
setDisabled(isDisabled) {
|
|
207
|
+
super.setDisabled(isDisabled);
|
|
208
|
+
this.newItemInputEl.disabled = isDisabled;
|
|
209
|
+
this.newItemButton.setDisabled(isDisabled);
|
|
210
|
+
this.render();
|
|
211
|
+
return this;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Sets the placeholder of {@link ListComponent.newItemInputEl}.
|
|
215
|
+
*
|
|
216
|
+
* @param placeholder - The placeholder.
|
|
217
|
+
* @returns The component.
|
|
218
|
+
*/
|
|
219
|
+
setPlaceholder(placeholder) {
|
|
220
|
+
this.newItemInputEl.placeholder = placeholder;
|
|
221
|
+
return this;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Sets the items.
|
|
225
|
+
*
|
|
226
|
+
* @param value - The items, in order.
|
|
227
|
+
* @returns The component.
|
|
228
|
+
*/
|
|
229
|
+
setValue(value) {
|
|
230
|
+
this.value = [...value];
|
|
231
|
+
this.render();
|
|
232
|
+
return this;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Formats an item for display.
|
|
236
|
+
*
|
|
237
|
+
* @param item - The item.
|
|
238
|
+
* @returns The text shown for it.
|
|
239
|
+
*/
|
|
240
|
+
formatItem(item) {
|
|
241
|
+
return item;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Turns the typed text into an item. By default, trims it and refuses an empty one.
|
|
245
|
+
*
|
|
246
|
+
* @param text - The typed text.
|
|
247
|
+
* @returns The item, or `null` to add nothing.
|
|
248
|
+
*/
|
|
249
|
+
normalizeItem(text) {
|
|
250
|
+
const item = text.trim();
|
|
251
|
+
return item || null;
|
|
252
|
+
}
|
|
253
|
+
moveItem(index, offset) {
|
|
254
|
+
const items = [...this.value];
|
|
255
|
+
const item = (0, import_type_guards.ensureNonNullable)(items.splice(index, 1)[0]);
|
|
256
|
+
items.splice(index + offset, 0, item);
|
|
257
|
+
this.setValueAndNotify(items);
|
|
258
|
+
}
|
|
259
|
+
removeItem(index) {
|
|
260
|
+
this.setValueAndNotify(this.value.filter((_, itemIndex) => itemIndex !== index));
|
|
261
|
+
}
|
|
262
|
+
render() {
|
|
263
|
+
this.listEl.empty();
|
|
264
|
+
if (this.value.length === 0) {
|
|
265
|
+
this.listEl.createDiv({ cls: "list-component-empty", text: (0, import_i18n.t)(($) => $.obsidianLib.list.empty) });
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
for (const [index, item] of this.value.entries()) {
|
|
269
|
+
const rowEl = this.listEl.createDiv({ cls: "list-component-item" });
|
|
270
|
+
rowEl.createSpan({ cls: "list-component-item-text", text: this.formatItem(item) });
|
|
271
|
+
new import_obsidian.ExtraButtonComponent(rowEl).setIcon("arrow-up").setTooltip((0, import_i18n.t)(($) => $.obsidianLib.list.moveUp)).setDisabled(this.disabled || index === 0).onClick(() => {
|
|
272
|
+
this.moveItem(index, -1);
|
|
273
|
+
});
|
|
274
|
+
new import_obsidian.ExtraButtonComponent(rowEl).setIcon("arrow-down").setTooltip((0, import_i18n.t)(($) => $.obsidianLib.list.moveDown)).setDisabled(this.disabled || index === this.value.length - 1).onClick(() => {
|
|
275
|
+
this.moveItem(index, 1);
|
|
276
|
+
});
|
|
277
|
+
new import_obsidian.ExtraButtonComponent(rowEl).setIcon("x").setTooltip((0, import_i18n.t)(($) => $.obsidianLib.list.remove)).setDisabled(this.disabled).onClick(() => {
|
|
278
|
+
this.removeItem(index);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
setValueAndNotify(value) {
|
|
283
|
+
this.setValue(value);
|
|
284
|
+
this.changeCallback?.(this.value);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
288
|
+
0 && (module.exports = {
|
|
289
|
+
ListComponent
|
|
290
|
+
});
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvbGlzdC1jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZWRpdHMgYSByZW9yZGVyYWJsZSBsaXN0IG9mIHN0cmluZ3MuXG4gKi9cblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuaW1wb3J0IHtcbiAgRXh0cmFCdXR0b25Db21wb25lbnQsXG4gIFZhbHVlQ29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgaW5pdFBsdWdpbkNvbnRleHRgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBTZXR0aW5nRXhgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi9zZXR0aW5nLWV4LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgRm9sZGVyTGlzdENvbXBvbmVudCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgRm9sZGVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZm9sZGVyLWxpc3QtY29tcG9uZW50LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgVGFnTGlzdENvbXBvbmVudCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgVGFnTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdGFnLWxpc3QtY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgYWRkUGx1Z2luQ3NzQ2xhc3NlcyB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBlZGl0cyBhIHJlb3JkZXJhYmxlIGxpc3Qgb2Ygc3RyaW5nczogZWFjaCBpdGVtIGhhcyBtb3ZlLXVwLCBtb3ZlLWRvd24gYW5kIHJlbW92ZSBidXR0b25zLCBhbmQgYSByb3dcbiAqIGJlbG93IHRoZSBsaXN0IGFkZHMgYW4gaXRlbSwgb24gaXRzIGJ1dHRvbiBvciBvbiBFbnRlci5cbiAqXG4gKiB7QGxpbmsgTGlzdENvbXBvbmVudC5uZXdJdGVtSW5wdXRFbH0gaXMgYSBwbGFpbiBgPGlucHV0PmAsIHNvIGEgc3VnZ2VzdCBjYW4gYmUgYXR0YWNoZWQgdG8gaXQ7IHtAbGluayBGb2xkZXJMaXN0Q29tcG9uZW50fVxuICogYW5kIHtAbGluayBUYWdMaXN0Q29tcG9uZW50fSBkbyBleGFjdGx5IHRoYXQuIEEgc3ViY2xhc3Mgc2hhcGVzIHdoYXQgaXMgYWRkZWQgYnkgb3ZlcnJpZGluZ1xuICoge0BsaW5rIExpc3RDb21wb25lbnQubm9ybWFsaXplSXRlbX0gYW5kIGhvdyBhbiBpdGVtIHJlYWRzIGJ5IG92ZXJyaWRpbmcge0BsaW5rIExpc3RDb21wb25lbnQuZm9ybWF0SXRlbX0uIEFuIGl0ZW1cbiAqIGFscmVhZHkgaW4gdGhlIGxpc3QgaXMgbm90IGFkZGVkIHR3aWNlLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkTGlzdH0uXG4gKlxuICogSW4gb3JkZXIgdG8gYWRkIHRoZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnQsIHVzZSB7QGxpbmsgaW5pdFBsdWdpbkNvbnRleHR9IGluIHlvdXIgcGx1Z2luJ3MgYG9ubG9hZCgpYCBmdW5jdGlvbi5cbiAqXG4gKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgc3R5bGVzIGZyb20ge0BsaW5rIGh0dHBzOi8vdW5wa2cuY29tL0BtbmFvdW1vdi9vYnNpZGlhbi1saWIvZGlzdC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxyZWFkb25seSBzdHJpbmdbXT4gaW1wbGVtZW50cyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxyZWFkb25seSBzdHJpbmdbXT4ge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgaG9sZGluZyBvbmUgcm93IHBlciBpdGVtLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxpc3RFbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBidXR0b24gdGhhdCBhZGRzIHRoZSB0eXBlZCBpdGVtLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5ld0l0ZW1CdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgdGhlIG5leHQgaXRlbSBpcyB0eXBlZCBpbnRvLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5ld0l0ZW1JbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIHByaXZhdGUgY2hhbmdlQ2FsbGJhY2s/OiAobmV3VmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKSA9PiB2b2lkO1xuICBwcml2YXRlIHZhbHVlOiByZWFkb25seSBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGxpc3QgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBjc3NDbGFzcyAtIEFuIGV4dHJhIENTUyBjbGFzcyBmb3IgdGhlIGNvbnRhaW5lciwgZm9yIGEgc3ViY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCBjc3NDbGFzcz86IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhjb250YWluZXJFbCwgY3NzQ2xhc3MgPyBbQ3NzQ2xhc3MuTGlzdENvbXBvbmVudCwgY3NzQ2xhc3NdIDogQ3NzQ2xhc3MuTGlzdENvbXBvbmVudCk7XG4gICAgdGhpcy5saXN0RWwgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoeyBjbHM6ICdsaXN0LWNvbXBvbmVudC1pdGVtcycgfSk7XG4gICAgY29uc3QgbmV3SXRlbVJvd0VsID0gY29udGFpbmVyRWwuY3JlYXRlRGl2KHsgY2xzOiAnbGlzdC1jb21wb25lbnQtbmV3LWl0ZW0nIH0pO1xuICAgIHRoaXMubmV3SXRlbUlucHV0RWwgPSBuZXdJdGVtUm93RWwuY3JlYXRlRWwoJ2lucHV0JywgeyB0eXBlOiAndGV4dCcgfSk7XG4gICAgdGhpcy5uZXdJdGVtSW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50XykgPT4ge1xuICAgICAgaWYgKGV2ZW50Xy5rZXkgIT09ICdFbnRlcicgfHwgZXZlbnRfLmlzQ29tcG9zaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXZlbnRfLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmFkZFR5cGVkSXRlbSgpO1xuICAgIH0pO1xuICAgIHRoaXMubmV3SXRlbUJ1dHRvbiA9IG5ldyBFeHRyYUJ1dHRvbkNvbXBvbmVudChuZXdJdGVtUm93RWwpXG4gICAgICAuc2V0SWNvbigncGx1cycpXG4gICAgICAuc2V0VG9vbHRpcCh0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmxpc3QuYWRkKSlcbiAgICAgIC5vbkNsaWNrKCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGRUeXBlZEl0ZW0oKTtcbiAgICAgIH0pO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgdGV4dCB0eXBlZCBpbnRvIHtAbGluayBMaXN0Q29tcG9uZW50Lm5ld0l0ZW1JbnB1dEVsfSwgd2hlbiBpdCBub3JtYWxpemVzIHRvIGFuIGl0ZW0gbm90IHlldCBpbiB0aGUgbGlzdCwgYW5kXG4gICAqIGNsZWFycyB0aGUgaW5wdXQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgYW4gaXRlbSB3YXMgYWRkZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkVHlwZWRJdGVtKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm5vcm1hbGl6ZUl0ZW0odGhpcy5uZXdJdGVtSW5wdXRFbC52YWx1ZSk7XG4gICAgaWYgKGl0ZW0gPT09IG51bGwgfHwgdGhpcy52YWx1ZS5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLm5ld0l0ZW1JbnB1dEVsLnZhbHVlID0gJyc7XG4gICAgdGhpcy5zZXRWYWx1ZUFuZE5vdGlmeShbLi4udGhpcy52YWx1ZSwgaXRlbV0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGl0ZW1zLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbXMsIGluIG9yZGVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldFZhbHVlKCk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgdXNlciBhZGRzLCBtb3ZlcyBvciByZW1vdmVzIGFuIGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjay5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShjYWxsYmFjazogKG5ld1ZhbHVlOiByZWFkb25seSBzdHJpbmdbXSkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHRoaXMuY2hhbmdlQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCAtIFRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXREaXNhYmxlZChpc0Rpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWQoaXNEaXNhYmxlZCk7XG4gICAgdGhpcy5uZXdJdGVtSW5wdXRFbC5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5uZXdJdGVtQnV0dG9uLnNldERpc2FibGVkKGlzRGlzYWJsZWQpO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2Yge0BsaW5rIExpc3RDb21wb25lbnQubmV3SXRlbUlucHV0RWx9LlxuICAgKlxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgLSBUaGUgcGxhY2Vob2xkZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMubmV3SXRlbUlucHV0RWwucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpdGVtcy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGl0ZW1zLCBpbiBvcmRlci5cbiAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRWYWx1ZSh2YWx1ZTogcmVhZG9ubHkgc3RyaW5nW10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbHVlID0gWy4uLnZhbHVlXTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYW4gaXRlbSBmb3IgZGlzcGxheS5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbS5cbiAgICogQHJldHVybnMgVGhlIHRleHQgc2hvd24gZm9yIGl0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcm1hdEl0ZW0oaXRlbTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJucyB0aGUgdHlwZWQgdGV4dCBpbnRvIGFuIGl0ZW0uIEJ5IGRlZmF1bHQsIHRyaW1zIGl0IGFuZCByZWZ1c2VzIGFuIGVtcHR5IG9uZS5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgdHlwZWQgdGV4dC5cbiAgICogQHJldHVybnMgVGhlIGl0ZW0sIG9yIGBudWxsYCB0byBhZGQgbm90aGluZy5cbiAgICovXG4gIHByb3RlY3RlZCBub3JtYWxpemVJdGVtKHRleHQ6IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICAgIGNvbnN0IGl0ZW0gPSB0ZXh0LnRyaW0oKTtcbiAgICByZXR1cm4gaXRlbSB8fCBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlSXRlbShpbmRleDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gWy4uLnRoaXMudmFsdWVdO1xuICAgIC8vIFRoZSBidXR0b25zIHRoYXQgd291bGQgbW92ZSBhbiBpdGVtIG9mZiBlaXRoZXIgZW5kIGFyZSBkaXNhYmxlZC5cbiAgICBjb25zdCBpdGVtID0gZW5zdXJlTm9uTnVsbGFibGUoaXRlbXMuc3BsaWNlKGluZGV4LCAxKVswXSk7XG4gICAgaXRlbXMuc3BsaWNlKGluZGV4ICsgb2Zmc2V0LCAwLCBpdGVtKTtcbiAgICB0aGlzLnNldFZhbHVlQW5kTm90aWZ5KGl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZUFuZE5vdGlmeSh0aGlzLnZhbHVlLmZpbHRlcigoXywgaXRlbUluZGV4KSA9PiBpdGVtSW5kZXggIT09IGluZGV4KSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RFbC5lbXB0eSgpO1xuICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5saXN0RWwuY3JlYXRlRGl2KHsgY2xzOiAnbGlzdC1jb21wb25lbnQtZW1wdHknLCB0ZXh0OiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmxpc3QuZW1wdHkpIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2luZGV4LCBpdGVtXSBvZiB0aGlzLnZhbHVlLmVudHJpZXMoKSkge1xuICAgICAgY29uc3Qgcm93RWwgPSB0aGlzLmxpc3RFbC5jcmVhdGVEaXYoeyBjbHM6ICdsaXN0LWNvbXBvbmVudC1pdGVtJyB9KTtcbiAgICAgIHJvd0VsLmNyZWF0ZVNwYW4oeyBjbHM6ICdsaXN0LWNvbXBvbmVudC1pdGVtLXRleHQnLCB0ZXh0OiB0aGlzLmZvcm1hdEl0ZW0oaXRlbSkgfSk7XG4gICAgICBuZXcgRXh0cmFCdXR0b25Db21wb25lbnQocm93RWwpXG4gICAgICAgIC5zZXRJY29uKCdhcnJvdy11cCcpXG4gICAgICAgIC5zZXRUb29sdGlwKHQoKCQpID0+ICQub2JzaWRpYW5MaWIubGlzdC5tb3ZlVXApKVxuICAgICAgICAuc2V0RGlzYWJsZWQodGhpcy5kaXNhYmxlZCB8fCBpbmRleCA9PT0gMClcbiAgICAgICAgLm9uQ2xpY2soKCkgPT4ge1xuICAgICAgICAgIHRoaXMubW92ZUl0ZW0oaW5kZXgsIC0xKTtcbiAgICAgICAgfSk7XG4gICAgICBuZXcgRXh0cmFCdXR0b25Db21wb25lbnQocm93RWwpXG4gICAgICAgIC5zZXRJY29uKCdhcnJvdy1kb3duJylcbiAgICAgICAgLnNldFRvb2x0aXAodCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5saXN0Lm1vdmVEb3duKSlcbiAgICAgICAgLnNldERpc2FibGVkKHRoaXMuZGlzYWJsZWQgfHwgaW5kZXggPT09IHRoaXMudmFsdWUubGVuZ3RoIC0gMSlcbiAgICAgICAgLm9uQ2xpY2soKCkgPT4ge1xuICAgICAgICAgIHRoaXMubW92ZUl0ZW0oaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgIG5ldyBFeHRyYUJ1dHRvbkNvbXBvbmVudChyb3dFbClcbiAgICAgICAgLnNldEljb24oJ3gnKVxuICAgICAgICAuc2V0VG9vbHRpcCh0KCgkKSA9PiAkLm9ic2lkaWFuTGliLmxpc3QucmVtb3ZlKSlcbiAgICAgICAgLnNldERpc2FibGVkKHRoaXMuZGlzYWJsZWQpXG4gICAgICAgIC5vbkNsaWNrKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUl0ZW0oaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFZhbHVlQW5kTm90aWZ5KHZhbHVlOiByZWFkb25seSBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgIHRoaXMuY2hhbmdlQ2FsbGJhY2s/Lih0aGlzLnZhbHVlKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEseUJBQWtDO0FBQ2xDLHNCQUdPO0FBWVAsdUJBQXlCO0FBQ3pCLGtCQUFrQjtBQUNsQiw0QkFBb0M7QUFpQjdCLE1BQU0sc0JBQXNCLCtCQUFpRztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWxIO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQSxFQUVSO0FBQUEsRUFDQSxRQUEyQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRN0IsWUFBWSxhQUEwQixVQUFtQjtBQUM5RCxVQUFNO0FBQ04sbURBQW9CLGFBQWEsV0FBVyxDQUFDLDBCQUFTLGVBQWUsUUFBUSxJQUFJLDBCQUFTLGFBQWE7QUFDdkcsU0FBSyxTQUFTLFlBQVksVUFBVSxFQUFFLEtBQUssdUJBQXVCLENBQUM7QUFDbkUsVUFBTSxlQUFlLFlBQVksVUFBVSxFQUFFLEtBQUssMEJBQTBCLENBQUM7QUFDN0UsU0FBSyxpQkFBaUIsYUFBYSxTQUFTLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyRSxTQUFLLGVBQWUsaUJBQWlCLFdBQVcsQ0FBQyxXQUFXO0FBQzFELFVBQUksT0FBTyxRQUFRLFdBQVcsT0FBTyxhQUFhO0FBQ2hEO0FBQUEsTUFDRjtBQUVBLGFBQU8sZUFBZTtBQUN0QixXQUFLLGFBQWE7QUFBQSxJQUNwQixDQUFDO0FBQ0QsU0FBSyxnQkFBZ0IsSUFBSSxxQ0FBcUIsWUFBWSxFQUN2RCxRQUFRLE1BQU0sRUFDZCxl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
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/// <reference lib="dom" />
|
|
3
|
+
/**
|
|
4
|
+
* @file
|
|
5
|
+
*
|
|
6
|
+
* Contains a component that edits a reorderable list of strings.
|
|
7
|
+
*/
|
|
8
|
+
import { ExtraButtonComponent, ValueComponent } from 'obsidian';
|
|
9
|
+
import type { ValueComponentWithChangeTracking } from './value-component-with-change-tracking.cjs';
|
|
10
|
+
/**
|
|
11
|
+
* A component that edits a reorderable list of strings: each item has move-up, move-down and remove buttons, and a row
|
|
12
|
+
* below the list adds an item, on its button or on Enter.
|
|
13
|
+
*
|
|
14
|
+
* {@link ListComponent.newItemInputEl} is a plain `<input>`, so a suggest can be attached to it; {@link FolderListComponent}
|
|
15
|
+
* and {@link TagListComponent} do exactly that. A subclass shapes what is added by overriding
|
|
16
|
+
* {@link ListComponent.normalizeItem} and how an item reads by overriding {@link ListComponent.formatItem}. An item
|
|
17
|
+
* already in the list is not added twice.
|
|
18
|
+
*
|
|
19
|
+
* You can add this component using {@link SettingEx.addList}.
|
|
20
|
+
*
|
|
21
|
+
* In order to add the styles for the component, use {@link initPluginContext} in your plugin's `onload()` function.
|
|
22
|
+
*
|
|
23
|
+
* Alternatively, you can copy styles from {@link https://unpkg.com/@mnaoumov/obsidian-lib/dist/styles.css}.
|
|
24
|
+
*/
|
|
25
|
+
export declare class ListComponent extends ValueComponent<readonly string[]> implements ValueComponentWithChangeTracking<readonly string[]> {
|
|
26
|
+
/**
|
|
27
|
+
* The element holding one row per item.
|
|
28
|
+
*/
|
|
29
|
+
readonly listEl: HTMLElement;
|
|
30
|
+
/**
|
|
31
|
+
* The button that adds the typed item.
|
|
32
|
+
*/
|
|
33
|
+
readonly newItemButton: ExtraButtonComponent;
|
|
34
|
+
/**
|
|
35
|
+
* The input the next item is typed into.
|
|
36
|
+
*/
|
|
37
|
+
readonly newItemInputEl: HTMLInputElement;
|
|
38
|
+
private changeCallback?;
|
|
39
|
+
private value;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new list component.
|
|
42
|
+
*
|
|
43
|
+
* @param containerEl - The container element.
|
|
44
|
+
* @param cssClass - An extra CSS class for the container, for a subclass.
|
|
45
|
+
*/
|
|
46
|
+
constructor(containerEl: HTMLElement, cssClass?: string);
|
|
47
|
+
/**
|
|
48
|
+
* Adds the text typed into {@link ListComponent.newItemInputEl}, when it normalizes to an item not yet in the list, and
|
|
49
|
+
* clears the input.
|
|
50
|
+
*
|
|
51
|
+
* @returns Whether an item was added.
|
|
52
|
+
*/
|
|
53
|
+
addTypedItem(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Gets the items.
|
|
56
|
+
*
|
|
57
|
+
* @returns The items, in order.
|
|
58
|
+
*/
|
|
59
|
+
getValue(): readonly string[];
|
|
60
|
+
/**
|
|
61
|
+
* Sets the callback to be called when the user adds, moves or removes an item.
|
|
62
|
+
*
|
|
63
|
+
* @param callback - The callback.
|
|
64
|
+
* @returns The component.
|
|
65
|
+
*/
|
|
66
|
+
onChange(callback: (newValue: readonly string[]) => void): this;
|
|
67
|
+
/**
|
|
68
|
+
* Sets the disabled state of the component.
|
|
69
|
+
*
|
|
70
|
+
* @param isDisabled - The disabled state.
|
|
71
|
+
* @returns The component.
|
|
72
|
+
*/
|
|
73
|
+
setDisabled(isDisabled: boolean): this;
|
|
74
|
+
/**
|
|
75
|
+
* Sets the placeholder of {@link ListComponent.newItemInputEl}.
|
|
76
|
+
*
|
|
77
|
+
* @param placeholder - The placeholder.
|
|
78
|
+
* @returns The component.
|
|
79
|
+
*/
|
|
80
|
+
setPlaceholder(placeholder: string): this;
|
|
81
|
+
/**
|
|
82
|
+
* Sets the items.
|
|
83
|
+
*
|
|
84
|
+
* @param value - The items, in order.
|
|
85
|
+
* @returns The component.
|
|
86
|
+
*/
|
|
87
|
+
setValue(value: readonly string[]): this;
|
|
88
|
+
/**
|
|
89
|
+
* Formats an item for display.
|
|
90
|
+
*
|
|
91
|
+
* @param item - The item.
|
|
92
|
+
* @returns The text shown for it.
|
|
93
|
+
*/
|
|
94
|
+
protected formatItem(item: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Turns the typed text into an item. By default, trims it and refuses an empty one.
|
|
97
|
+
*
|
|
98
|
+
* @param text - The typed text.
|
|
99
|
+
* @returns The item, or `null` to add nothing.
|
|
100
|
+
*/
|
|
101
|
+
protected normalizeItem(text: string): null | string;
|
|
102
|
+
private moveItem;
|
|
103
|
+
private removeItem;
|
|
104
|
+
private render;
|
|
105
|
+
private setValueAndNotify;
|
|
106
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
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
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return "/";
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: "android"
|
|
14
|
+
};
|
|
15
|
+
const existingProcess = globalThis.process;
|
|
16
|
+
if (!existingProcess) {
|
|
17
|
+
globalThis.process = browserProcess;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (existingProcess.versions?.node) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const existingProcessRecord = existingProcess;
|
|
24
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
25
|
+
existingProcessRecord[key] ??= value;
|
|
26
|
+
}
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ensureBrowserProcess();
|
|
31
|
+
})();
|
|
32
|
+
(function patchObsidianRequire() {
|
|
33
|
+
const originalRequire = require;
|
|
34
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
require = Object.assign(
|
|
38
|
+
(id) => requirePatched(id),
|
|
39
|
+
originalRequire,
|
|
40
|
+
{
|
|
41
|
+
__isPatched: true
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
function extractDefault($module) {
|
|
45
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
46
|
+
}
|
|
47
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
48
|
+
"@codemirror/autocomplete",
|
|
49
|
+
"@codemirror/collab",
|
|
50
|
+
"@codemirror/commands",
|
|
51
|
+
"@codemirror/language",
|
|
52
|
+
"@codemirror/lint",
|
|
53
|
+
"@codemirror/search",
|
|
54
|
+
"@codemirror/state",
|
|
55
|
+
"@codemirror/text",
|
|
56
|
+
"@codemirror/view",
|
|
57
|
+
"@lezer/common",
|
|
58
|
+
"@lezer/highlight",
|
|
59
|
+
"@lezer/lr",
|
|
60
|
+
"obsidian"
|
|
61
|
+
]);
|
|
62
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
63
|
+
"@codemirror/closebrackets",
|
|
64
|
+
"@codemirror/comment",
|
|
65
|
+
"@codemirror/fold",
|
|
66
|
+
"@codemirror/gutter",
|
|
67
|
+
"@codemirror/highlight",
|
|
68
|
+
"@codemirror/history",
|
|
69
|
+
"@codemirror/matchbrackets",
|
|
70
|
+
"@codemirror/panel",
|
|
71
|
+
"@codemirror/rangeset",
|
|
72
|
+
"@codemirror/rectangular-selection",
|
|
73
|
+
"@codemirror/stream-parser",
|
|
74
|
+
"@codemirror/tooltip"
|
|
75
|
+
]);
|
|
76
|
+
function requirePatched(id) {
|
|
77
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
|
+
return originalRequire?.(id);
|
|
79
|
+
}
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
82
|
+
if (id === "process" || id === "node:process") {
|
|
83
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
84
|
+
return process;
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
const $module = originalRequire?.(id);
|
|
88
|
+
if ($module) {
|
|
89
|
+
return extractDefault($module);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
})();
|
|
96
|
+
|
|
97
|
+
"use strict";
|
|
98
|
+
var __defProp = Object.defineProperty;
|
|
99
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
100
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
101
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
102
|
+
var __export = (target, all) => {
|
|
103
|
+
for (var name in all)
|
|
104
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
105
|
+
};
|
|
106
|
+
var __copyProps = (to, from, except, desc) => {
|
|
107
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
108
|
+
for (let key of __getOwnPropNames(from))
|
|
109
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
110
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
111
|
+
}
|
|
112
|
+
return to;
|
|
113
|
+
};
|
|
114
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
115
|
+
var tag_list_component_exports = {};
|
|
116
|
+
__export(tag_list_component_exports, {
|
|
117
|
+
TagInputSuggest: () => TagInputSuggest,
|
|
118
|
+
TagListComponent: () => TagListComponent
|
|
119
|
+
});
|
|
120
|
+
module.exports = __toCommonJS(tag_list_component_exports);
|
|
121
|
+
var import_obsidian = require('obsidian');
|
|
122
|
+
var import_css_class = require('../css-class.cjs');
|
|
123
|
+
var import_link_and_tag_input_suggest = require('../link-and-tag-input-suggest.cjs');
|
|
124
|
+
var import_list_component = require('./list-component.cjs');
|
|
125
|
+
const TAG_PREFIX = "#";
|
|
126
|
+
const LEADING_TAG_PREFIXES_REG_EXP = /^#+/u;
|
|
127
|
+
const TAG_REG_EXP = /^[\p{L}\p{N}_/-]+$/u;
|
|
128
|
+
const DIGITS_ONLY_REG_EXP = /^\d+$/u;
|
|
129
|
+
class TagInputSuggest extends import_obsidian.AbstractInputSuggest {
|
|
130
|
+
/**
|
|
131
|
+
* The input the suggest completes.
|
|
132
|
+
*/
|
|
133
|
+
inputEl;
|
|
134
|
+
/**
|
|
135
|
+
* Creates a new tag suggest.
|
|
136
|
+
*
|
|
137
|
+
* @param app - The Obsidian app.
|
|
138
|
+
* @param inputEl - The input.
|
|
139
|
+
*/
|
|
140
|
+
constructor(app, inputEl) {
|
|
141
|
+
super(app, inputEl);
|
|
142
|
+
this.inputEl = inputEl;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Renders a tag with its note count.
|
|
146
|
+
*
|
|
147
|
+
* @param suggestion - The tag.
|
|
148
|
+
* @param el - The element to render into.
|
|
149
|
+
*/
|
|
150
|
+
renderSuggestion(suggestion, el) {
|
|
151
|
+
el.addClass("mod-complex");
|
|
152
|
+
el.createDiv({ cls: "suggestion-content", text: `${TAG_PREFIX}${suggestion.tag}` });
|
|
153
|
+
el.createDiv({ cls: "suggestion-aux", text: String(suggestion.count) });
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Puts the tag into the input, dispatches an `input` event, then calls the `onSelect` callback.
|
|
157
|
+
*
|
|
158
|
+
* @param suggestion - The tag.
|
|
159
|
+
* @param $event - The event that picked it.
|
|
160
|
+
*/
|
|
161
|
+
selectSuggestion(suggestion, $event) {
|
|
162
|
+
this.setValue(suggestion.tag);
|
|
163
|
+
this.inputEl.dispatchEvent(new Event("input", { bubbles: true }));
|
|
164
|
+
super.selectSuggestion(suggestion, $event);
|
|
165
|
+
this.close();
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Gets the tags matching the typed text.
|
|
169
|
+
*
|
|
170
|
+
* @param query - The typed text.
|
|
171
|
+
* @returns The tags, best match first, then the most used.
|
|
172
|
+
*/
|
|
173
|
+
getSuggestions(query) {
|
|
174
|
+
return (0, import_link_and_tag_input_suggest.getVaultTagSuggestions)({ app: this.app, query: query.trim().replace(LEADING_TAG_PREFIXES_REG_EXP, "") });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
class TagListComponent extends import_list_component.ListComponent {
|
|
178
|
+
/**
|
|
179
|
+
* The tag suggest attached to {@link ListComponent.newItemInputEl}.
|
|
180
|
+
*/
|
|
181
|
+
suggest;
|
|
182
|
+
/**
|
|
183
|
+
* Creates a new tag list component.
|
|
184
|
+
*
|
|
185
|
+
* @param containerEl - The container element.
|
|
186
|
+
* @param app - The Obsidian app.
|
|
187
|
+
*/
|
|
188
|
+
constructor(containerEl, app) {
|
|
189
|
+
super(containerEl, import_css_class.CssClass.TagListComponent);
|
|
190
|
+
this.suggest = new TagInputSuggest(app, this.newItemInputEl);
|
|
191
|
+
this.suggest.onSelect(() => {
|
|
192
|
+
this.addTypedItem();
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Shows a tag with its `#`.
|
|
197
|
+
*
|
|
198
|
+
* @param item - The tag.
|
|
199
|
+
* @returns The tag with its `#`.
|
|
200
|
+
*/
|
|
201
|
+
formatItem(item) {
|
|
202
|
+
return `${TAG_PREFIX}${item}`;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Strips the `#` from a typed tag and validates it.
|
|
206
|
+
*
|
|
207
|
+
* @param text - The typed text.
|
|
208
|
+
* @returns The tag, or `null` when it is not a valid tag.
|
|
209
|
+
*/
|
|
210
|
+
normalizeItem(text) {
|
|
211
|
+
const tag = text.trim().replace(LEADING_TAG_PREFIXES_REG_EXP, "");
|
|
212
|
+
return TAG_REG_EXP.test(tag) && !DIGITS_ONLY_REG_EXP.test(tag) ? tag : null;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
216
|
+
0 && (module.exports = {
|
|
217
|
+
TagInputSuggest,
|
|
218
|
+
TagListComponent
|
|
219
|
+
});
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvdGFnLWxpc3QtY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIGNvbXBvbmVudCB0aGF0IGVkaXRzIGEgcmVvcmRlcmFibGUgbGlzdCBvZiB0YWdzLCB3aXRoIGEgdGFnIHN1Z2dlc3QuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEFic3RyYWN0SW5wdXRTdWdnZXN0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFRhZ1N1Z2dlc3Rpb24gfSBmcm9tICcuLi9saW5rLWFuZC10YWctaW5wdXQtc3VnZ2VzdC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBTZXR0aW5nRXhgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBTZXR0aW5nRXggfSBmcm9tICcuLi9zZXR0aW5nLWV4LnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgZ2V0VmF1bHRUYWdTdWdnZXN0aW9ucyB9IGZyb20gJy4uL2xpbmstYW5kLXRhZy1pbnB1dC1zdWdnZXN0LnRzJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29tcG9uZW50LnRzJztcblxuY29uc3QgVEFHX1BSRUZJWCA9ICcjJztcbmNvbnN0IExFQURJTkdfVEFHX1BSRUZJWEVTX1JFR19FWFAgPSAvXiMrL3U7XG5jb25zdCBUQUdfUkVHX0VYUCA9IC9eW1xccHtMfVxccHtOfV8vLV0rJC91O1xuY29uc3QgRElHSVRTX09OTFlfUkVHX0VYUCA9IC9eXFxkKyQvdTtcblxuLyoqXG4gKiBTdWdnZXN0cyB0aGUgdmF1bHQncyB0YWdzIGluIGFuIGA8aW5wdXQ+YCwgd2hldGhlciBvciBub3QgdGhlIHR5cGVkIHRleHQgc3RhcnRzIHdpdGggYCNgLiBBIHBpY2tlZCB0YWcgaXMgcHV0IGludG8gdGhlXG4gKiBpbnB1dCB3aXRob3V0IHRoZSBgI2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWdJbnB1dFN1Z2dlc3QgZXh0ZW5kcyBBYnN0cmFjdElucHV0U3VnZ2VzdDxUYWdTdWdnZXN0aW9uPiB7XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgdGhlIHN1Z2dlc3QgY29tcGxldGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0RWw6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdGFnIHN1Z2dlc3QuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICAgKiBAcGFyYW0gaW5wdXRFbCAtIFRoZSBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgaW5wdXRFbDogSFRNTElucHV0RWxlbWVudCkge1xuICAgIHN1cGVyKGFwcCwgaW5wdXRFbCk7XG4gICAgdGhpcy5pbnB1dEVsID0gaW5wdXRFbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgdGFnIHdpdGggaXRzIG5vdGUgY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSBzdWdnZXN0aW9uIC0gVGhlIHRhZy5cbiAgICogQHBhcmFtIGVsIC0gVGhlIGVsZW1lbnQgdG8gcmVuZGVyIGludG8uXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyU3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBUYWdTdWdnZXN0aW9uLCBlbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBlbC5hZGRDbGFzcygnbW9kLWNvbXBsZXgnKTtcbiAgICBlbC5jcmVhdGVEaXYoeyBjbHM6ICdzdWdnZXN0aW9uLWNvbnRlbnQnLCB0ZXh0OiBgJHtUQUdfUFJFRklYfSR7c3VnZ2VzdGlvbi50YWd9YCB9KTtcbiAgICBlbC5jcmVhdGVEaXYoeyBjbHM6ICdzdWdnZXN0aW9uLWF1eCcsIHRleHQ6IFN0cmluZyhzdWdnZXN0aW9uLmNvdW50KSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXRzIHRoZSB0YWcgaW50byB0aGUgaW5wdXQsIGRpc3BhdGNoZXMgYW4gYGlucHV0YCBldmVudCwgdGhlbiBjYWxscyB0aGUgYG9uU2VsZWN0YCBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtIHN1Z2dlc3Rpb24gLSBUaGUgdGFnLlxuICAgKiBAcGFyYW0gJGV2ZW50IC0gVGhlIGV2ZW50IHRoYXQgcGlja2VkIGl0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogVGFnU3VnZ2VzdGlvbiwgJGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUoc3VnZ2VzdGlvbi50YWcpO1xuICAgIHRoaXMuaW5wdXRFbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHN1cGVyLnNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbiwgJGV2ZW50KTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdGFncyBtYXRjaGluZyB0aGUgdHlwZWQgdGV4dC5cbiAgICpcbiAgICogQHBhcmFtIHF1ZXJ5IC0gVGhlIHR5cGVkIHRleHQuXG4gICAqIEByZXR1cm5zIFRoZSB0YWdzLCBiZXN0IG1hdGNoIGZpcnN0LCB0aGVuIHRoZSBtb3N0IHVzZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0U3VnZ2VzdGlvbnMocXVlcnk6IHN0cmluZyk6IFRhZ1N1Z2dlc3Rpb25bXSB7XG4gICAgcmV0dXJuIGdldFZhdWx0VGFnU3VnZ2VzdGlvbnMoeyBhcHA6IHRoaXMuYXBwLCBxdWVyeTogcXVlcnkudHJpbSgpLnJlcGxhY2UoTEVBRElOR19UQUdfUFJFRklYRVNfUkVHX0VYUCwgJycpIH0pO1xuICB9XG59XG5cbi8qKlxuICogQSB7QGxpbmsgTGlzdENvbXBvbmVudH0gb2YgdGFncywgc3RvcmVkIHdpdGhvdXQgdGhlIGAjYCBhbmQgc2hvd24gd2l0aCBpdC4gVGhlIGFkZCByb3cgc3VnZ2VzdHMgdGhlIHZhdWx0J3MgdGFncywgYW5kXG4gKiBhIHR5cGVkIHRhZyBpcyByZWZ1c2VkIHVubGVzcyBpdCBpcyBhIHZhbGlkIE9ic2lkaWFuIHRhZzogbGV0dGVycywgZGlnaXRzLCBgX2AsIGAtYCBhbmQgYC9gLCBub3QgZGlnaXRzIG9ubHkuXG4gKlxuICogWW91IGNhbiBhZGQgdGhpcyBjb21wb25lbnQgdXNpbmcge0BsaW5rIFNldHRpbmdFeC5hZGRUYWdMaXN0fS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhZ0xpc3RDb21wb25lbnQgZXh0ZW5kcyBMaXN0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSB0YWcgc3VnZ2VzdCBhdHRhY2hlZCB0byB7QGxpbmsgTGlzdENvbXBvbmVudC5uZXdJdGVtSW5wdXRFbH0uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdDogVGFnSW5wdXRTdWdnZXN0O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRhZyBsaXN0IGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIGFwcDogQXBwKSB7XG4gICAgc3VwZXIoY29udGFpbmVyRWwsIENzc0NsYXNzLlRhZ0xpc3RDb21wb25lbnQpO1xuICAgIHRoaXMuc3VnZ2VzdCA9IG5ldyBUYWdJbnB1dFN1Z2dlc3QoYXBwLCB0aGlzLm5ld0l0ZW1JbnB1dEVsKTtcbiAgICB0aGlzLnN1Z2dlc3Qub25TZWxlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5hZGRUeXBlZEl0ZW0oKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyBhIHRhZyB3aXRoIGl0cyBgI2AuXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIHRhZy5cbiAgICogQHJldHVybnMgVGhlIHRhZyB3aXRoIGl0cyBgI2AuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZm9ybWF0SXRlbShpdGVtOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtUQUdfUFJFRklYfSR7aXRlbX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmlwcyB0aGUgYCNgIGZyb20gYSB0eXBlZCB0YWcgYW5kIHZhbGlkYXRlcyBpdC5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgdHlwZWQgdGV4dC5cbiAgICogQHJldHVybnMgVGhlIHRhZywgb3IgYG51bGxgIHdoZW4gaXQgaXMgbm90IGEgdmFsaWQgdGFnLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5vcm1hbGl6ZUl0ZW0odGV4dDogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gICAgY29uc3QgdGFnID0gdGV4dC50cmltKCkucmVwbGFjZShMRUFESU5HX1RBR19QUkVGSVhFU19SRUdfRVhQLCAnJyk7XG4gICAgcmV0dXJuIFRBR19SRUdfRVhQLnRlc3QodGFnKSAmJiAhRElHSVRTX09OTFlfUkVHX0VYUC50ZXN0KHRhZykgPyB0YWcgOiBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHNCQUFxQztBQU1yQyx1QkFBeUI7QUFDekIsd0NBQXVDO0FBQ3ZDLDRCQUE4QjtBQUU5QixNQUFNLGFBQWE7QUFDbkIsTUFBTSwrQkFBK0I7QUFDckMsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sc0JBQXNCO0FBTXJCLE1BQU0sd0JBQXdCLHFDQUFvQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSXBEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRWixZQUFZLEtBQVUsU0FBMkI7QUFDdEQsVUFBTSxLQUFLLE9BQU87QUFDbEIsU0FBSyxVQUFVO0FBQUEsRUFDakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLGlCQUFpQixZQUEyQixJQUF1QjtBQUN4RSxPQUFHLFNBQVMsYUFBYTtBQUN6QixPQUFHLFVBQVUsRUFBRSxLQUFLLHNCQUFzQixNQUFNLEdBQUcsVUFBVSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDbEYsT0FBRyxVQUFVLEVBQUUsS0FBSyxrQkFBa0IsTUFBTSxPQUFPLFdBQVcsS0FBSyxFQUFFLENBQUM7QUFBQSxFQUN4RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGlCQUFpQixZQUEyQixRQUEwQztBQUNwRyxTQUFLLFNBQVMsV0FBVyxHQUFHO0FBQzVCLFNBQUssUUFBUSxjQUFjLElBQUksTUFBTSxTQUFTLEVBQUUsU0FBUyxLQUFLLENBQUMsQ0FBQztBQUNoRSxVQUFNLGlCQUFpQixZQUFZLE1BQU07QUFDekMsU0FBSyxNQUFNO0FBQUEsRUFDYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUW1CLGVBQWUsT0FBZ0M7QUFDaEUsZUFBTywwREFBdUIsRUFBRSxLQUFLLEtBQUssS0FBSyxPQUFPLE1BQU0sS0FBSyxFQUFFLFFBQVEsOEJBQThCLEVBQUUsRUFBRSxDQUFDO0FBQUEsRUFDaEg7QUFDRjtBQVFPLE1BQU0seUJBQXlCLG9DQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFULFlBQVksYUFBMEIsS0FBVTtBQUNyRCxVQUFNLGFBQWEsMEJBQVMsZ0JBQWdCO0FBQzVDLFNBQUssVUFBVSxJQUFJLGdCQUFnQixLQUFLLEtBQUssY0FBYztBQUMzRCxTQUFLLFFBQVEsU0FBUyxNQUFNO0FBQzFCLFdBQUssYUFBYTtBQUFBLElBQ3BCLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRbUIsV0FBVyxNQUFzQjtBQUNsRCxXQUFPLEdBQUcsVUFBVSxHQUFHLElBQUk7QUFBQSxFQUM3QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUW1CLGNBQWMsTUFBNkI7QUFDNUQsVUFBTSxNQUFNLEtBQUssS0FBSyxFQUFFLFFBQVEsOEJBQThCLEVBQUU7QUFDaEUsV0FBTyxZQUFZLEtBQUssR0FBRyxLQUFLLENBQUMsb0JBQW9CLEtBQUssR0FBRyxJQUFJLE1BQU07QUFBQSxFQUN6RTtBQUNGOyIsIm5hbWVzIjpbXX0=
|