obsidian-dev-utils 48.1.4 → 49.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/lib/cjs/Async.cjs +24 -24
- package/dist/lib/cjs/Async.d.cts +6 -6
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/ObjectUtils.cjs +8 -9
- package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.cjs +18 -5
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +6 -6
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +3 -3
- package/dist/lib/cjs/ScriptUtils/version.cjs +1 -1
- package/dist/lib/cjs/obsidian/AsyncWithNotice.cjs +7 -7
- package/dist/lib/cjs/obsidian/AsyncWithNotice.d.cts +6 -6
- package/dist/lib/cjs/obsidian/AttachmentPath.cjs +9 -9
- package/dist/lib/cjs/obsidian/AttachmentPath.d.cts +10 -10
- package/dist/lib/cjs/obsidian/Backlink.cjs +5 -5
- package/dist/lib/cjs/obsidian/Backlink.d.cts +6 -6
- package/dist/lib/cjs/obsidian/Callout.cjs +4 -4
- package/dist/lib/cjs/obsidian/Callout.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.cjs +11 -11
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.d.cts +4 -4
- package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +7 -7
- package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.cjs +8 -8
- package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.d.cts +4 -4
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +4 -4
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.cjs +4 -4
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.cjs +4 -4
- package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Dataview.cjs +10 -10
- package/dist/lib/cjs/obsidian/Dataview.d.cts +10 -10
- package/dist/lib/cjs/obsidian/Link.cjs +58 -58
- package/dist/lib/cjs/obsidian/Link.d.cts +22 -22
- package/dist/lib/cjs/obsidian/Loop.cjs +4 -4
- package/dist/lib/cjs/obsidian/Loop.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Markdown.cjs +9 -9
- package/dist/lib/cjs/obsidian/Markdown.d.cts +4 -4
- package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.cjs +24 -24
- package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.d.cts +14 -14
- package/dist/lib/cjs/obsidian/Modals/Alert.cjs +12 -12
- package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +13 -13
- package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Modals/ModalBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/ModalBase.d.cts +2 -2
- package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +14 -14
- package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +11 -11
- package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Queue.cjs +13 -13
- package/dist/lib/cjs/obsidian/Queue.d.cts +6 -6
- package/dist/lib/cjs/obsidian/RenameDeleteHandler.cjs +19 -19
- package/dist/lib/cjs/obsidian/i18n/i18n.cjs +1 -1
- package/dist/lib/esm/Async.d.mts +6 -6
- package/dist/lib/esm/Async.mjs +24 -24
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/ObjectUtils.mjs +8 -9
- package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.mjs +18 -5
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +3 -3
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +6 -6
- package/dist/lib/esm/ScriptUtils/version.mjs +1 -1
- package/dist/lib/esm/obsidian/AsyncWithNotice.d.mts +6 -6
- package/dist/lib/esm/obsidian/AsyncWithNotice.mjs +7 -7
- package/dist/lib/esm/obsidian/AttachmentPath.d.mts +10 -10
- package/dist/lib/esm/obsidian/AttachmentPath.mjs +9 -9
- package/dist/lib/esm/obsidian/Backlink.d.mts +6 -6
- package/dist/lib/esm/obsidian/Backlink.mjs +5 -5
- package/dist/lib/esm/obsidian/Callout.d.mts +3 -3
- package/dist/lib/esm/obsidian/Callout.mjs +4 -4
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.d.mts +4 -4
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.mjs +11 -11
- package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +3 -3
- package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +7 -7
- package/dist/lib/esm/obsidian/Commands/EditorCommandBase.d.mts +4 -4
- package/dist/lib/esm/obsidian/Commands/EditorCommandBase.mjs +8 -8
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.d.mts +3 -3
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +4 -4
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.d.mts +3 -3
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.mjs +4 -4
- package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.d.mts +3 -3
- package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.mjs +4 -4
- package/dist/lib/esm/obsidian/Dataview.d.mts +10 -10
- package/dist/lib/esm/obsidian/Dataview.mjs +10 -10
- package/dist/lib/esm/obsidian/Link.d.mts +22 -22
- package/dist/lib/esm/obsidian/Link.mjs +58 -58
- package/dist/lib/esm/obsidian/Loop.d.mts +3 -3
- package/dist/lib/esm/obsidian/Loop.mjs +4 -4
- package/dist/lib/esm/obsidian/Markdown.d.mts +4 -4
- package/dist/lib/esm/obsidian/Markdown.mjs +9 -9
- package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.d.mts +14 -14
- package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.mjs +24 -24
- package/dist/lib/esm/obsidian/Modals/Alert.d.mts +3 -3
- package/dist/lib/esm/obsidian/Modals/Alert.mjs +12 -12
- package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +3 -3
- package/dist/lib/esm/obsidian/Modals/Confirm.mjs +13 -13
- package/dist/lib/esm/obsidian/Modals/ModalBase.d.mts +2 -2
- package/dist/lib/esm/obsidian/Modals/ModalBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +3 -3
- package/dist/lib/esm/obsidian/Modals/Prompt.mjs +14 -14
- package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +3 -3
- package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +11 -11
- package/dist/lib/esm/obsidian/Queue.d.mts +6 -6
- package/dist/lib/esm/obsidian/Queue.mjs +13 -13
- package/dist/lib/esm/obsidian/RenameDeleteHandler.mjs +19 -19
- package/dist/lib/esm/obsidian/i18n/i18n.mjs +1 -1
- package/package.json +1 -1
|
@@ -27,17 +27,17 @@ import {
|
|
|
27
27
|
showModal
|
|
28
28
|
} from "./ModalBase.mjs";
|
|
29
29
|
class AlertModal extends ModalBase {
|
|
30
|
-
|
|
31
|
-
constructor(
|
|
32
|
-
super(
|
|
30
|
+
params;
|
|
31
|
+
constructor(params, resolve) {
|
|
32
|
+
super(params, resolve, CssClass.AlertModal);
|
|
33
33
|
const DEFAULT_OPTIONS = {
|
|
34
|
-
app:
|
|
34
|
+
app: params.app,
|
|
35
35
|
cssClass: "",
|
|
36
|
-
message:
|
|
36
|
+
message: params.message,
|
|
37
37
|
okButtonText: t(($) => $.obsidianDevUtils.buttons.ok),
|
|
38
38
|
title: ""
|
|
39
39
|
};
|
|
40
|
-
this.
|
|
40
|
+
this.params = { ...DEFAULT_OPTIONS, ...params };
|
|
41
41
|
}
|
|
42
42
|
onClose() {
|
|
43
43
|
super.onClose();
|
|
@@ -45,19 +45,19 @@ class AlertModal extends ModalBase {
|
|
|
45
45
|
}
|
|
46
46
|
onOpen() {
|
|
47
47
|
super.onOpen();
|
|
48
|
-
this.titleEl.setText(this.
|
|
49
|
-
this.contentEl.createEl("p", { text: this.
|
|
48
|
+
this.titleEl.setText(this.params.title);
|
|
49
|
+
this.contentEl.createEl("p", { text: this.params.message });
|
|
50
50
|
const okButton = new ButtonComponent(this.contentEl);
|
|
51
|
-
okButton.setButtonText(this.
|
|
51
|
+
okButton.setButtonText(this.params.okButtonText);
|
|
52
52
|
okButton.setCta();
|
|
53
53
|
okButton.onClick(this.close.bind(this));
|
|
54
54
|
okButton.setClass(CssClass.OkButton);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
async function alert(
|
|
58
|
-
await showModal((resolve) => new AlertModal(
|
|
57
|
+
async function alert(params) {
|
|
58
|
+
await showModal((resolve) => new AlertModal(params, resolve));
|
|
59
59
|
}
|
|
60
60
|
export {
|
|
61
61
|
alert
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL01vZGFscy9BbGVydC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGFsZXJ0IG1vZGFscyBpbiBPYnNpZGlhbi5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIGEgZnVuY3Rpb24gdG8gZGlzcGxheSBhIG1vZGFsIHdpdGggYSBtZXNzYWdlIGluIE9ic2lkaWFuLiBUaGUgbW9kYWwgaW5jbHVkZXMgYW4gXCJPS1wiIGJ1dHRvbiB0byBjbG9zZSBpdC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgdCB9IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2VSZXNvbHZlIH0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vTW9kYWxCYXNlLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgYWxlcnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsZXJ0UGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgbW9kYWwuXG4gICAqL1xuICByZWFkb25seSBjc3NDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIG1vZGFsLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogRG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZztcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSB0aXRsZSBvZiB0aGUgbW9kYWwuXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG59XG5cbmNsYXNzIEFsZXJ0TW9kYWwgZXh0ZW5kcyBNb2RhbEJhc2U8dm9pZCwgQWxlcnRQYXJhbXM+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbXM6IFJlcXVpcmVkPEFsZXJ0UGFyYW1zPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBBbGVydFBhcmFtcywgcmVzb2x2ZTogUHJvbWlzZVJlc29sdmU8dm9pZD4pIHtcbiAgICBzdXBlcihwYXJhbXMsIHJlc29sdmUsIENzc0NsYXNzLkFsZXJ0TW9kYWwpO1xuICAgIGNvbnN0IERFRkFVTFRfT1BUSU9OUzogUmVxdWlyZWQ8QWxlcnRQYXJhbXM+ID0ge1xuICAgICAgYXBwOiBwYXJhbXMuYXBwLFxuICAgICAgY3NzQ2xhc3M6ICcnLFxuICAgICAgbWVzc2FnZTogcGFyYW1zLm1lc3NhZ2UsXG4gICAgICBva0J1dHRvblRleHQ6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLm9rKSxcbiAgICAgIHRpdGxlOiAnJ1xuICAgIH07XG4gICAgdGhpcy5wYXJhbXMgPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ucGFyYW1zIH07XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNsb3NlKCk7XG4gICAgdGhpcy5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25PcGVuKCk6IHZvaWQge1xuICAgIHN1cGVyLm9uT3BlbigpO1xuICAgIHRoaXMudGl0bGVFbC5zZXRUZXh0KHRoaXMucGFyYW1zLnRpdGxlKTtcbiAgICB0aGlzLmNvbnRlbnRFbC5jcmVhdGVFbCgncCcsIHsgdGV4dDogdGhpcy5wYXJhbXMubWVzc2FnZSB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IG5ldyBCdXR0b25Db21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIG9rQnV0dG9uLnNldEJ1dHRvblRleHQodGhpcy5wYXJhbXMub2tCdXR0b25UZXh0KTtcbiAgICBva0J1dHRvbi5zZXRDdGEoKTtcbiAgICBva0J1dHRvbi5vbkNsaWNrKHRoaXMuY2xvc2UuYmluZCh0aGlzKSk7XG4gICAgb2tCdXR0b24uc2V0Q2xhc3MoQ3NzQ2xhc3MuT2tCdXR0b24pO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gYWxlcnQgbW9kYWwgaW4gT2JzaWRpYW4gd2l0aCBhIHNwZWNpZmllZCBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGFsZXJ0IG1vZGFsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhbGVydChwYXJhbXM6IEFsZXJ0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHNob3dNb2RhbCgocmVzb2x2ZSkgPT4gbmV3IEFsZXJ0TW9kYWwocGFyYW1zLCByZXNvbHZlKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQSxTQUFTLFNBQVM7QUFDbEIsU0FBUyx1QkFBdUI7QUFJaEMsU0FBUyxnQkFBZ0I7QUFDekI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFnQ1AsTUFBTSxtQkFBbUIsVUFBNkI7QUFBQSxFQUNuQztBQUFBLEVBRVYsWUFBWSxRQUFxQixTQUErQjtBQUNyRSxVQUFNLFFBQVEsU0FBUyxTQUFTLFVBQVU7QUFDMUMsVUFBTSxrQkFBeUM7QUFBQSxNQUM3QyxLQUFLLE9BQU87QUFBQSxNQUNaLFVBQVU7QUFBQSxNQUNWLFNBQVMsT0FBTztBQUFBLE1BQ2hCLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxFQUFFO0FBQUEsTUFDcEQsT0FBTztBQUFBLElBQ1Q7QUFDQSxTQUFLLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixHQUFHLE9BQU87QUFBQSxFQUNoRDtBQUFBLEVBRWdCLFVBQWdCO0FBQzlCLFVBQU0sUUFBUTtBQUNkLFNBQUssUUFBUTtBQUFBLEVBQ2Y7QUFBQSxFQUVnQixTQUFlO0FBQzdCLFVBQU0sT0FBTztBQUNiLFNBQUssUUFBUSxRQUFRLEtBQUssT0FBTyxLQUFLO0FBQ3RDLFNBQUssVUFBVSxTQUFTLEtBQUssRUFBRSxNQUFNLEtBQUssT0FBTyxRQUFRLENBQUM7QUFDMUQsVUFBTSxXQUFXLElBQUksZ0JBQWdCLEtBQUssU0FBUztBQUNuRCxhQUFTLGNBQWMsS0FBSyxPQUFPLFlBQVk7QUFDL0MsYUFBUyxPQUFPO0FBQ2hCLGFBQVMsUUFBUSxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFDdEMsYUFBUyxTQUFTLFNBQVMsUUFBUTtBQUFBLEVBQ3JDO0FBQ0Y7QUFRQSxlQUFzQixNQUFNLFFBQW9DO0FBQzlELFFBQU0sVUFBVSxDQUFDLFlBQVksSUFBSSxXQUFXLFFBQVEsT0FBTyxDQUFDO0FBQzlEOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -9,7 +9,7 @@ import type { App } from 'obsidian';
|
|
|
9
9
|
/**
|
|
10
10
|
* Options for {@link confirm}.
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
12
|
+
export interface ConfirmParams {
|
|
13
13
|
/**
|
|
14
14
|
* An Obsidian app instance.
|
|
15
15
|
*/
|
|
@@ -38,7 +38,7 @@ export interface ConfirmOptions {
|
|
|
38
38
|
/**
|
|
39
39
|
* Displays an confirm modal in Obsidian with a specified message.
|
|
40
40
|
*
|
|
41
|
-
* @param
|
|
41
|
+
* @param params - The parameters for the confirm modal.
|
|
42
42
|
* @returns A {@link Promise} that resolves with a boolean indicating whether the "OK" button was clicked.
|
|
43
43
|
*/
|
|
44
|
-
export declare function confirm(
|
|
44
|
+
export declare function confirm(params: ConfirmParams): Promise<boolean>;
|
|
@@ -28,18 +28,18 @@ import {
|
|
|
28
28
|
} from "./ModalBase.mjs";
|
|
29
29
|
class ConfirmModal extends ModalBase {
|
|
30
30
|
isConfirmed = false;
|
|
31
|
-
|
|
32
|
-
constructor(
|
|
33
|
-
super(
|
|
31
|
+
params;
|
|
32
|
+
constructor(params, resolve) {
|
|
33
|
+
super(params, resolve, CssClass.ConfirmModal);
|
|
34
34
|
const DEFAULT_OPTIONS = {
|
|
35
|
-
app:
|
|
35
|
+
app: params.app,
|
|
36
36
|
cancelButtonText: t(($) => $.obsidianDevUtils.buttons.cancel),
|
|
37
37
|
cssClass: "",
|
|
38
|
-
message:
|
|
38
|
+
message: params.message,
|
|
39
39
|
okButtonText: t(($) => $.obsidianDevUtils.buttons.ok),
|
|
40
40
|
title: ""
|
|
41
41
|
};
|
|
42
|
-
this.
|
|
42
|
+
this.params = { ...DEFAULT_OPTIONS, ...params };
|
|
43
43
|
}
|
|
44
44
|
onClose() {
|
|
45
45
|
super.onClose();
|
|
@@ -47,10 +47,10 @@ class ConfirmModal extends ModalBase {
|
|
|
47
47
|
}
|
|
48
48
|
onOpen() {
|
|
49
49
|
super.onOpen();
|
|
50
|
-
this.titleEl.setText(this.
|
|
51
|
-
this.contentEl.createEl("p", { text: this.
|
|
50
|
+
this.titleEl.setText(this.params.title);
|
|
51
|
+
this.contentEl.createEl("p", { text: this.params.message });
|
|
52
52
|
const okButton = new ButtonComponent(this.contentEl);
|
|
53
|
-
okButton.setButtonText(this.
|
|
53
|
+
okButton.setButtonText(this.params.okButtonText);
|
|
54
54
|
okButton.setCta();
|
|
55
55
|
okButton.onClick(() => {
|
|
56
56
|
this.isConfirmed = true;
|
|
@@ -58,15 +58,15 @@ class ConfirmModal extends ModalBase {
|
|
|
58
58
|
});
|
|
59
59
|
okButton.setClass(CssClass.OkButton);
|
|
60
60
|
const cancelButton = new ButtonComponent(this.contentEl);
|
|
61
|
-
cancelButton.setButtonText(this.
|
|
61
|
+
cancelButton.setButtonText(this.params.cancelButtonText);
|
|
62
62
|
cancelButton.onClick(this.close.bind(this));
|
|
63
63
|
cancelButton.setClass(CssClass.CancelButton);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
async function confirm(
|
|
67
|
-
return await showModal((resolve) => new ConfirmModal(
|
|
66
|
+
async function confirm(params) {
|
|
67
|
+
return await showModal((resolve) => new ConfirmModal(params, resolve));
|
|
68
68
|
}
|
|
69
69
|
export {
|
|
70
70
|
confirm
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL01vZGFscy9Db25maXJtLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFV0aWxpdHkgZm9yIGRpc3BsYXlpbmcgY29uZmlybSBtb2RhbHMgaW4gT2JzaWRpYW4uXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYSBtb2RhbCB3aXRoIGEgbWVzc2FnZSBpbiBPYnNpZGlhbi4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zIHRvIGNvbmZpcm0gb3IgY2FuY2VsIHRoZSBhY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBQcm9taXNlUmVzb2x2ZSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vTW9kYWxCYXNlLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgY29uZmlybX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybVBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJDYW5jZWxcIiBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBjYW5jZWxCdXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgbW9kYWwuXG4gICAqL1xuICByZWFkb25seSBjc3NDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIG1vZGFsLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogRG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZztcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSB0aXRsZSBvZiB0aGUgbW9kYWwuXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG59XG5cbmNsYXNzIENvbmZpcm1Nb2RhbCBleHRlbmRzIE1vZGFsQmFzZTxib29sZWFuLCBDb25maXJtUGFyYW1zPiB7XG4gIHByaXZhdGUgaXNDb25maXJtZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbXM6IFJlcXVpcmVkPENvbmZpcm1QYXJhbXM+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IENvbmZpcm1QYXJhbXMsIHJlc29sdmU6IFByb21pc2VSZXNvbHZlPGJvb2xlYW4+KSB7XG4gICAgc3VwZXIocGFyYW1zLCByZXNvbHZlLCBDc3NDbGFzcy5Db25maXJtTW9kYWwpO1xuICAgIGNvbnN0IERFRkFVTFRfT1BUSU9OUzogUmVxdWlyZWQ8Q29uZmlybVBhcmFtcz4gPSB7XG4gICAgICBhcHA6IHBhcmFtcy5hcHAsXG4gICAgICBjYW5jZWxCdXR0b25UZXh0OiB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYnV0dG9ucy5jYW5jZWwpLFxuICAgICAgY3NzQ2xhc3M6ICcnLFxuICAgICAgbWVzc2FnZTogcGFyYW1zLm1lc3NhZ2UsXG4gICAgICBva0J1dHRvblRleHQ6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLm9rKSxcbiAgICAgIHRpdGxlOiAnJ1xuICAgIH07XG4gICAgdGhpcy5wYXJhbXMgPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ucGFyYW1zIH07XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNsb3NlKCk7XG4gICAgdGhpcy5yZXNvbHZlKHRoaXMuaXNDb25maXJtZWQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uT3BlbigpOiB2b2lkIHtcbiAgICBzdXBlci5vbk9wZW4oKTtcbiAgICB0aGlzLnRpdGxlRWwuc2V0VGV4dCh0aGlzLnBhcmFtcy50aXRsZSk7XG4gICAgdGhpcy5jb250ZW50RWwuY3JlYXRlRWwoJ3AnLCB7IHRleHQ6IHRoaXMucGFyYW1zLm1lc3NhZ2UgfSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBva0J1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMucGFyYW1zLm9rQnV0dG9uVGV4dCk7XG4gICAgb2tCdXR0b24uc2V0Q3RhKCk7XG4gICAgb2tCdXR0b24ub25DbGljaygoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29uZmlybWVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9KTtcbiAgICBva0J1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbik7XG5cbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBjYW5jZWxCdXR0b24uc2V0QnV0dG9uVGV4dCh0aGlzLnBhcmFtcy5jYW5jZWxCdXR0b25UZXh0KTtcbiAgICBjYW5jZWxCdXR0b24ub25DbGljayh0aGlzLmNsb3NlLmJpbmQodGhpcykpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gY29uZmlybSBtb2RhbCBpbiBPYnNpZGlhbiB3aXRoIGEgc3BlY2lmaWVkIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY29uZmlybSBtb2RhbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBcIk9LXCIgYnV0dG9uIHdhcyBjbGlja2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29uZmlybShwYXJhbXM6IENvbmZpcm1QYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIGF3YWl0IHNob3dNb2RhbDxib29sZWFuPigocmVzb2x2ZSkgPT4gbmV3IENvbmZpcm1Nb2RhbChwYXJhbXMsIHJlc29sdmUpKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLFNBQVMsdUJBQXVCO0FBSWhDLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsU0FBUztBQUNsQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQXFDUCxNQUFNLHFCQUFxQixVQUFrQztBQUFBLEVBQ25ELGNBQWM7QUFBQSxFQUNMO0FBQUEsRUFFVixZQUFZLFFBQXVCLFNBQWtDO0FBQzFFLFVBQU0sUUFBUSxTQUFTLFNBQVMsWUFBWTtBQUM1QyxVQUFNLGtCQUEyQztBQUFBLE1BQy9DLEtBQUssT0FBTztBQUFBLE1BQ1osa0JBQWtCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLFFBQVEsTUFBTTtBQUFBLE1BQzVELFVBQVU7QUFBQSxNQUNWLFNBQVMsT0FBTztBQUFBLE1BQ2hCLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxFQUFFO0FBQUEsTUFDcEQsT0FBTztBQUFBLElBQ1Q7QUFDQSxTQUFLLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixHQUFHLE9BQU87QUFBQSxFQUNoRDtBQUFBLEVBRWdCLFVBQWdCO0FBQzlCLFVBQU0sUUFBUTtBQUNkLFNBQUssUUFBUSxLQUFLLFdBQVc7QUFBQSxFQUMvQjtBQUFBLEVBRWdCLFNBQWU7QUFDN0IsVUFBTSxPQUFPO0FBQ2IsU0FBSyxRQUFRLFFBQVEsS0FBSyxPQUFPLEtBQUs7QUFDdEMsU0FBSyxVQUFVLFNBQVMsS0FBSyxFQUFFLE1BQU0sS0FBSyxPQUFPLFFBQVEsQ0FBQztBQUMxRCxVQUFNLFdBQVcsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTO0FBQ25ELGFBQVMsY0FBYyxLQUFLLE9BQU8sWUFBWTtBQUMvQyxhQUFTLE9BQU87QUFDaEIsYUFBUyxRQUFRLE1BQU07QUFDckIsV0FBSyxjQUFjO0FBQ25CLFdBQUssTUFBTTtBQUFBLElBQ2IsQ0FBQztBQUNELGFBQVMsU0FBUyxTQUFTLFFBQVE7QUFFbkMsVUFBTSxlQUFlLElBQUksZ0JBQWdCLEtBQUssU0FBUztBQUN2RCxpQkFBYSxjQUFjLEtBQUssT0FBTyxnQkFBZ0I7QUFDdkQsaUJBQWEsUUFBUSxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFDMUMsaUJBQWEsU0FBUyxTQUFTLFlBQVk7QUFBQSxFQUM3QztBQUNGO0FBUUEsZUFBc0IsUUFBUSxRQUF5QztBQUNyRSxTQUFPLE1BQU0sVUFBbUIsQ0FBQyxZQUFZLElBQUksYUFBYSxRQUFRLE9BQU8sQ0FBQztBQUNoRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -9,7 +9,7 @@ import type { PromiseResolve } from '../../Async.mjs';
|
|
|
9
9
|
/**
|
|
10
10
|
* Base options for a modal.
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
12
|
+
export interface ModalParamsBase {
|
|
13
13
|
/**
|
|
14
14
|
* An Obsidian app instance.
|
|
15
15
|
*/
|
|
@@ -22,7 +22,7 @@ export interface ModalOptionsBase {
|
|
|
22
22
|
/**
|
|
23
23
|
* A base class for displaying modals in Obsidian.
|
|
24
24
|
*/
|
|
25
|
-
export declare abstract class ModalBase<Value, Options extends
|
|
25
|
+
export declare abstract class ModalBase<Value, Options extends ModalParamsBase> extends Modal {
|
|
26
26
|
protected resolve: PromiseResolve<Value>;
|
|
27
27
|
/**
|
|
28
28
|
* Creates a new modal.
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
ModalBase,
|
|
49
49
|
showModal
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL01vZGFscy9Nb2RhbEJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhIGJhc2UgY2xhc3MgZm9yIGRpc3BsYXlpbmcgbW9kYWxzIGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBQcm9taXNlUmVzb2x2ZSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgYWRkUGx1Z2luQ3NzQ2xhc3NlcyB9IGZyb20gJy4uL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzJztcblxuLyoqXG4gKiBCYXNlIG9wdGlvbnMgZm9yIGEgbW9kYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxQYXJhbXNCYXNlIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgbW9kYWwuXG4gICAqL1xuICBjc3NDbGFzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGRpc3BsYXlpbmcgbW9kYWxzIGluIE9ic2lkaWFuLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kYWxCYXNlPFZhbHVlLCBPcHRpb25zIGV4dGVuZHMgTW9kYWxQYXJhbXNCYXNlPiBleHRlbmRzIE1vZGFsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kYWwuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSByZXNvbHZlIC0gVGhlIHJlc29sdmUgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBtb2RhbENzc0NsYXNzIC0gVGhlIG1vZGFsIENTUyBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBPcHRpb25zLCBwcm90ZWN0ZWQgcmVzb2x2ZTogUHJvbWlzZVJlc29sdmU8VmFsdWU+LCBtb2RhbENzc0NsYXNzOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zLmFwcCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0aGlzLmNvbnRhaW5lckVsLCBtb2RhbENzc0NsYXNzKTtcbiAgICBpZiAob3B0aW9ucy5jc3NDbGFzcykge1xuICAgICAgdGhpcy5jb250YWluZXJFbC5hZGRDbGFzcyhvcHRpb25zLmNzc0NsYXNzKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIEBwYXJhbSBtb2RhbENyZWF0b3IgLSBBIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIG1vZGFsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93TW9kYWw8VD4obW9kYWxDcmVhdG9yOiAocmVzb2x2ZTogUHJvbWlzZVJlc29sdmU8VD4pID0+IE1vZGFsKTogUHJvbWlzZTxUPiB7XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IG1vZGFsID0gbW9kYWxDcmVhdG9yKHJlc29sdmUpO1xuICAgIG1vZGFsLm9wZW4oKTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLGFBQWE7QUFJdEIsU0FBUywyQkFBMkI7QUFvQjdCLE1BQWUsa0JBQTBELE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUTdFLFlBQVksU0FBNEIsU0FBZ0MsZUFBdUI7QUFDcEcsVUFBTSxRQUFRLEdBQUc7QUFENEI7QUFFN0Msd0JBQW9CLEtBQUssYUFBYSxhQUFhO0FBQ25ELFFBQUksUUFBUSxVQUFVO0FBQ3BCLFdBQUssWUFBWSxTQUFTLFFBQVEsUUFBUTtBQUFBLElBQzVDO0FBQUEsRUFDRjtBQUNGO0FBUUEsZUFBc0IsVUFBYSxjQUFpRTtBQUNsRyxTQUFPLE1BQU0sSUFBSSxRQUFXLENBQUMsWUFBWTtBQUN2QyxVQUFNLFFBQVEsYUFBYSxPQUFPO0FBQ2xDLFVBQU0sS0FBSztBQUFBLEVBQ2IsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -11,7 +11,7 @@ import type { MaybeReturn } from '../../Type.mjs';
|
|
|
11
11
|
/**
|
|
12
12
|
* Options for {@link prompt}.
|
|
13
13
|
*/
|
|
14
|
-
export interface
|
|
14
|
+
export interface PromptParams {
|
|
15
15
|
/**
|
|
16
16
|
* An Obsidian app instance.
|
|
17
17
|
*/
|
|
@@ -47,7 +47,7 @@ export interface PromptOptions {
|
|
|
47
47
|
/**
|
|
48
48
|
* Displays a prompt modal in Obsidian to get user input.
|
|
49
49
|
*
|
|
50
|
-
* @param
|
|
50
|
+
* @param params - The parameters for the prompt modal.
|
|
51
51
|
* @returns A {@link Promise} that resolves with the user input or null if the prompt was cancelled.
|
|
52
52
|
*/
|
|
53
|
-
export declare function prompt(
|
|
53
|
+
export declare function prompt(params: PromptParams): Promise<null | string>;
|
|
@@ -36,12 +36,12 @@ import {
|
|
|
36
36
|
} from "./ModalBase.mjs";
|
|
37
37
|
class PromptModal extends ModalBase {
|
|
38
38
|
isOkClicked = false;
|
|
39
|
-
|
|
39
|
+
params;
|
|
40
40
|
value;
|
|
41
|
-
constructor(
|
|
42
|
-
super(
|
|
41
|
+
constructor(params, resolve) {
|
|
42
|
+
super(params, resolve, CssClass.PromptModal);
|
|
43
43
|
const DEFAULT_OPTIONS = {
|
|
44
|
-
app:
|
|
44
|
+
app: params.app,
|
|
45
45
|
cancelButtonText: t(($) => $.obsidianDevUtils.buttons.cancel),
|
|
46
46
|
defaultValue: "",
|
|
47
47
|
okButtonText: t(($) => $.obsidianDevUtils.buttons.ok),
|
|
@@ -49,8 +49,8 @@ class PromptModal extends ModalBase {
|
|
|
49
49
|
title: "",
|
|
50
50
|
valueValidator: noop
|
|
51
51
|
};
|
|
52
|
-
this.
|
|
53
|
-
this.value =
|
|
52
|
+
this.params = { ...DEFAULT_OPTIONS, ...params };
|
|
53
|
+
this.value = params.defaultValue ?? "";
|
|
54
54
|
}
|
|
55
55
|
onClose() {
|
|
56
56
|
super.onClose();
|
|
@@ -58,17 +58,17 @@ class PromptModal extends ModalBase {
|
|
|
58
58
|
}
|
|
59
59
|
onOpen() {
|
|
60
60
|
super.onOpen();
|
|
61
|
-
this.titleEl.setText(this.
|
|
61
|
+
this.titleEl.setText(this.params.title);
|
|
62
62
|
const textComponent = new TextComponent(this.contentEl);
|
|
63
63
|
const inputEl = textComponent.inputEl;
|
|
64
64
|
const validate = async () => {
|
|
65
|
-
const errorMessage = await this.
|
|
65
|
+
const errorMessage = await this.params.valueValidator(inputEl.value);
|
|
66
66
|
inputEl.setCustomValidity(errorMessage ?? "");
|
|
67
67
|
inputEl.reportValidity();
|
|
68
68
|
};
|
|
69
69
|
textComponent.setValue(this.value);
|
|
70
70
|
textComponent.inputEl.select();
|
|
71
|
-
textComponent.setPlaceholder(this.
|
|
71
|
+
textComponent.setPlaceholder(this.params.placeholder);
|
|
72
72
|
inputEl.addClass(CssClass.TextBox);
|
|
73
73
|
textComponent.onChange((newValue) => {
|
|
74
74
|
this.value = newValue;
|
|
@@ -84,14 +84,14 @@ class PromptModal extends ModalBase {
|
|
|
84
84
|
inputEl.addEventListener("focus", convertAsyncToSync(validate));
|
|
85
85
|
invokeAsyncSafely(validate);
|
|
86
86
|
const okButton = new ButtonComponent(this.contentEl);
|
|
87
|
-
okButton.setButtonText(this.
|
|
87
|
+
okButton.setButtonText(this.params.okButtonText);
|
|
88
88
|
okButton.setCta();
|
|
89
89
|
okButton.onClick((event) => {
|
|
90
90
|
this.handleOk(event, textComponent);
|
|
91
91
|
});
|
|
92
92
|
okButton.setClass(CssClass.OkButton);
|
|
93
93
|
const cancelButton = new ButtonComponent(this.contentEl);
|
|
94
|
-
cancelButton.setButtonText(this.
|
|
94
|
+
cancelButton.setButtonText(this.params.cancelButtonText);
|
|
95
95
|
cancelButton.onClick(this.close.bind(this));
|
|
96
96
|
cancelButton.setClass(CssClass.CancelButton);
|
|
97
97
|
}
|
|
@@ -104,10 +104,10 @@ class PromptModal extends ModalBase {
|
|
|
104
104
|
this.close();
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
async function prompt(
|
|
108
|
-
return await showModal((resolve) => new PromptModal(
|
|
107
|
+
async function prompt(params) {
|
|
108
|
+
return await showModal((resolve) => new PromptModal(params, resolve));
|
|
109
109
|
}
|
|
110
110
|
export {
|
|
111
111
|
prompt
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL01vZGFscy9Qcm9tcHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVXRpbGl0eSBmb3IgZGlzcGxheWluZyBhIHByb21wdCBtb2RhbCBpbiBPYnNpZGlhbi5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIGEgZnVuY3Rpb24gdG8gZGlzcGxheSBhIG1vZGFsIHRoYXQgcHJvbXB0cyB0aGUgdXNlciBmb3IgaW5wdXQuIFRoZSBtb2RhbCBpbmNsdWRlcyBcIk9LXCIgYW5kIFwiQ2FuY2VsXCIgYnV0dG9ucy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzZVJlc29sdmUgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnLi4vLi4vVHlwZS50cyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHlcbn0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQge1xuICBNb2RhbEJhc2UsXG4gIHNob3dNb2RhbFxufSBmcm9tICcuL01vZGFsQmFzZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHByb21wdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0UGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVmYXVsdCB2YWx1ZSB0byBwcmUtZmlsbCB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiT0tcIiBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBva0J1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIGlucHV0IGZpZWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIHRoZSBpbnB1dCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGlucHV0IHZhbHVlIHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSB2YWx1ZSBpcyBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlVmFsaWRhdG9yPzogKHZhbHVlOiBzdHJpbmcpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48c3RyaW5nPj47XG59XG5cbmNsYXNzIFByb21wdE1vZGFsIGV4dGVuZHMgTW9kYWxCYXNlPG51bGwgfCBzdHJpbmcsIFByb21wdFBhcmFtcz4ge1xuICBwcml2YXRlIGlzT2tDbGlja2VkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1zOiBSZXF1aXJlZDxQcm9tcHRQYXJhbXM+O1xuICBwcml2YXRlIHZhbHVlOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUHJvbXB0UGFyYW1zLCByZXNvbHZlOiBQcm9taXNlUmVzb2x2ZTxudWxsIHwgc3RyaW5nPikge1xuICAgIHN1cGVyKHBhcmFtcywgcmVzb2x2ZSwgQ3NzQ2xhc3MuUHJvbXB0TW9kYWwpO1xuICAgIGNvbnN0IERFRkFVTFRfT1BUSU9OUzogUmVxdWlyZWQ8UHJvbXB0UGFyYW1zPiA9IHtcbiAgICAgIGFwcDogcGFyYW1zLmFwcCxcbiAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLmNhbmNlbCksXG4gICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgb2tCdXR0b25UZXh0OiB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYnV0dG9ucy5vayksXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICB0aXRsZTogJycsXG4gICAgICB2YWx1ZVZhbGlkYXRvcjogbm9vcFxuICAgIH07XG4gICAgdGhpcy5wYXJhbXMgPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ucGFyYW1zIH07XG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy5kZWZhdWx0VmFsdWUgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNsb3NlKCk7XG4gICAgdGhpcy5yZXNvbHZlKHRoaXMuaXNPa0NsaWNrZWQgPyB0aGlzLnZhbHVlIDogbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25PcGVuKCk6IHZvaWQge1xuICAgIHN1cGVyLm9uT3BlbigpO1xuICAgIHRoaXMudGl0bGVFbC5zZXRUZXh0KHRoaXMucGFyYW1zLnRpdGxlKTtcbiAgICBjb25zdCB0ZXh0Q29tcG9uZW50ID0gbmV3IFRleHRDb21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIGNvbnN0IGlucHV0RWwgPSB0ZXh0Q29tcG9uZW50LmlucHV0RWw7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHRoaXMucGFyYW1zLnZhbHVlVmFsaWRhdG9yKGlucHV0RWwudmFsdWUpIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlucHV0RWwuc2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3JNZXNzYWdlID8/ICcnKTtcbiAgICAgIGlucHV0RWwucmVwb3J0VmFsaWRpdHkoKTtcbiAgICB9O1xuXG4gICAgdGV4dENvbXBvbmVudC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0ZXh0Q29tcG9uZW50LmlucHV0RWwuc2VsZWN0KCk7XG4gICAgdGV4dENvbXBvbmVudC5zZXRQbGFjZWhvbGRlcih0aGlzLnBhcmFtcy5wbGFjZWhvbGRlcik7XG4gICAgaW5wdXRFbC5hZGRDbGFzcyhDc3NDbGFzcy5UZXh0Qm94KTtcbiAgICB0ZXh0Q29tcG9uZW50Lm9uQ2hhbmdlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH0pO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmhhbmRsZU9rKGV2ZW50LCB0ZXh0Q29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGNvbnZlcnRBc3luY1RvU3luYyh2YWxpZGF0ZSkpO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjb252ZXJ0QXN5bmNUb1N5bmModmFsaWRhdGUpKTtcbiAgICBpbnZva2VBc3luY1NhZmVseSh2YWxpZGF0ZSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBva0J1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMucGFyYW1zLm9rQnV0dG9uVGV4dCk7XG4gICAgb2tCdXR0b24uc2V0Q3RhKCk7XG4gICAgb2tCdXR0b24ub25DbGljaygoZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlT2soZXZlbnQsIHRleHRDb21wb25lbnQpO1xuICAgIH0pO1xuICAgIG9rQnV0dG9uLnNldENsYXNzKENzc0NsYXNzLk9rQnV0dG9uKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBjYW5jZWxCdXR0b24uc2V0QnV0dG9uVGV4dCh0aGlzLnBhcmFtcy5jYW5jZWxCdXR0b25UZXh0KTtcbiAgICBjYW5jZWxCdXR0b24ub25DbGljayh0aGlzLmNsb3NlLmJpbmQodGhpcykpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPayhldmVudDogRXZlbnQsIHRleHRDb21wb25lbnQ6IFRleHRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGV4dENvbXBvbmVudC5pbnB1dEVsLmNoZWNrVmFsaWRpdHkoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNPa0NsaWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuIHRvIGdldCB1c2VyIGlucHV0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdXNlciBpbnB1dCBvciBudWxsIGlmIHRoZSBwcm9tcHQgd2FzIGNhbmNlbGxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb21wdChwYXJhbXM6IFByb21wdFBhcmFtcyk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4ge1xuICByZXR1cm4gYXdhaXQgc2hvd01vZGFsPG51bGwgfCBzdHJpbmc+KChyZXNvbHZlKSA9PiBuZXcgUHJvbXB0TW9kYWwocGFyYW1zLCByZXNvbHZlKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUtQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsU0FBUztBQUNsQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQTZDUCxNQUFNLG9CQUFvQixVQUF1QztBQUFBLEVBQ3ZELGNBQWM7QUFBQSxFQUNMO0FBQUEsRUFDVDtBQUFBLEVBRUQsWUFBWSxRQUFzQixTQUF3QztBQUMvRSxVQUFNLFFBQVEsU0FBUyxTQUFTLFdBQVc7QUFDM0MsVUFBTSxrQkFBMEM7QUFBQSxNQUM5QyxLQUFLLE9BQU87QUFBQSxNQUNaLGtCQUFrQixFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixRQUFRLE1BQU07QUFBQSxNQUM1RCxjQUFjO0FBQUEsTUFDZCxjQUFjLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLFFBQVEsRUFBRTtBQUFBLE1BQ3BELGFBQWE7QUFBQSxNQUNiLE9BQU87QUFBQSxNQUNQLGdCQUFnQjtBQUFBLElBQ2xCO0FBQ0EsU0FBSyxTQUFTLEVBQUUsR0FBRyxpQkFBaUIsR0FBRyxPQUFPO0FBQzlDLFNBQUssUUFBUSxPQUFPLGdCQUFnQjtBQUFBLEVBQ3RDO0FBQUEsRUFFZ0IsVUFBZ0I7QUFDOUIsVUFBTSxRQUFRO0FBQ2QsU0FBSyxRQUFRLEtBQUssY0FBYyxLQUFLLFFBQVEsSUFBSTtBQUFBLEVBQ25EO0FBQUEsRUFFZ0IsU0FBZTtBQUM3QixVQUFNLE9BQU87QUFDYixTQUFLLFFBQVEsUUFBUSxLQUFLLE9BQU8sS0FBSztBQUN0QyxVQUFNLGdCQUFnQixJQUFJLGNBQWMsS0FBSyxTQUFTO0FBQ3RELFVBQU0sVUFBVSxjQUFjO0FBRTlCLFVBQU0sV0FBVyxZQUEyQjtBQUMxQyxZQUFNLGVBQWUsTUFBTSxLQUFLLE9BQU8sZUFBZSxRQUFRLEtBQUs7QUFDbkUsY0FBUSxrQkFBa0IsZ0JBQWdCLEVBQUU7QUFDNUMsY0FBUSxlQUFlO0FBQUEsSUFDekI7QUFFQSxrQkFBYyxTQUFTLEtBQUssS0FBSztBQUNqQyxrQkFBYyxRQUFRLE9BQU87QUFDN0Isa0JBQWMsZUFBZSxLQUFLLE9BQU8sV0FBVztBQUNwRCxZQUFRLFNBQVMsU0FBUyxPQUFPO0FBQ2pDLGtCQUFjLFNBQVMsQ0FBQyxhQUFhO0FBQ25DLFdBQUssUUFBUTtBQUFBLElBQ2YsQ0FBQztBQUNELFlBQVEsaUJBQWlCLFdBQVcsQ0FBQyxVQUF5QjtBQUM1RCxVQUFJLE1BQU0sUUFBUSxTQUFTO0FBQ3pCLGFBQUssU0FBUyxPQUFPLGFBQWE7QUFBQSxNQUNwQyxXQUFXLE1BQU0sUUFBUSxVQUFVO0FBQ2pDLGFBQUssTUFBTTtBQUFBLE1BQ2I7QUFBQSxJQUNGLENBQUM7QUFDRCxZQUFRLGlCQUFpQixTQUFTLG1CQUFtQixRQUFRLENBQUM7QUFDOUQsWUFBUSxpQkFBaUIsU0FBUyxtQkFBbUIsUUFBUSxDQUFDO0FBQzlELHNCQUFrQixRQUFRO0FBQzFCLFVBQU0sV0FBVyxJQUFJLGdCQUFnQixLQUFLLFNBQVM7QUFDbkQsYUFBUyxjQUFjLEtBQUssT0FBTyxZQUFZO0FBQy9DLGFBQVMsT0FBTztBQUNoQixhQUFTLFFBQVEsQ0FBQyxVQUFVO0FBQzFCLFdBQUssU0FBUyxPQUFPLGFBQWE7QUFBQSxJQUNwQyxDQUFDO0FBQ0QsYUFBUyxTQUFTLFNBQVMsUUFBUTtBQUNuQyxVQUFNLGVBQWUsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTO0FBQ3ZELGlCQUFhLGNBQWMsS0FBSyxPQUFPLGdCQUFnQjtBQUN2RCxpQkFBYSxRQUFRLEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQztBQUMxQyxpQkFBYSxTQUFTLFNBQVMsWUFBWTtBQUFBLEVBQzdDO0FBQUEsRUFFUSxTQUFTLE9BQWMsZUFBb0M7QUFDakUsVUFBTSxlQUFlO0FBQ3JCLFFBQUksQ0FBQyxjQUFjLFFBQVEsY0FBYyxHQUFHO0FBQzFDO0FBQUEsSUFDRjtBQUVBLFNBQUssY0FBYztBQUNuQixTQUFLLE1BQU07QUFBQSxFQUNiO0FBQ0Y7QUFRQSxlQUFzQixPQUFPLFFBQThDO0FBQ3pFLFNBQU8sTUFBTSxVQUF5QixDQUFDLFlBQVksSUFBSSxZQUFZLFFBQVEsT0FBTyxDQUFDO0FBQ3JGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -9,7 +9,7 @@ import type { App } from 'obsidian';
|
|
|
9
9
|
/**
|
|
10
10
|
* Options for {@link selectItem}.
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
12
|
+
export interface SelectItemParams<T> {
|
|
13
13
|
/**
|
|
14
14
|
* An Obsidian app instance.
|
|
15
15
|
*/
|
|
@@ -37,7 +37,7 @@ export interface SelectItemOptions<T> {
|
|
|
37
37
|
/**
|
|
38
38
|
* Displays a selection modal in Obsidian for choosing an item from a list.
|
|
39
39
|
*
|
|
40
|
-
* @param
|
|
40
|
+
* @param params - The parameters for the selection modal.
|
|
41
41
|
* @returns A {@link Promise} that resolves with the selected item or null if no item was selected.
|
|
42
42
|
*/
|
|
43
|
-
export declare function selectItem<T>(
|
|
43
|
+
export declare function selectItem<T>(params: SelectItemParams<T>): Promise<null | T>;
|
|
@@ -24,22 +24,22 @@ import { CssClass } from "../../CssClass.mjs";
|
|
|
24
24
|
import { addPluginCssClasses } from "../Plugin/PluginContext.mjs";
|
|
25
25
|
import { showModal } from "./ModalBase.mjs";
|
|
26
26
|
class ItemSelectModal extends FuzzySuggestModal {
|
|
27
|
-
constructor(
|
|
28
|
-
super(
|
|
29
|
-
this.
|
|
27
|
+
constructor(params, resolve) {
|
|
28
|
+
super(params.app);
|
|
29
|
+
this.params = params;
|
|
30
30
|
this.resolve = resolve;
|
|
31
|
-
this.setPlaceholder(
|
|
31
|
+
this.setPlaceholder(params.placeholder ?? "");
|
|
32
32
|
addPluginCssClasses(this.containerEl, CssClass.SelectItemModal);
|
|
33
|
-
if (
|
|
34
|
-
this.containerEl.addClass(
|
|
33
|
+
if (params.cssClass) {
|
|
34
|
+
this.containerEl.addClass(params.cssClass);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
isSelected = false;
|
|
38
38
|
getItems() {
|
|
39
|
-
return this.
|
|
39
|
+
return this.params.items;
|
|
40
40
|
}
|
|
41
41
|
getItemText(item) {
|
|
42
|
-
return this.
|
|
42
|
+
return this.params.itemTextFunc(item);
|
|
43
43
|
}
|
|
44
44
|
onChooseItem(item) {
|
|
45
45
|
this.resolve(item);
|
|
@@ -55,10 +55,10 @@ class ItemSelectModal extends FuzzySuggestModal {
|
|
|
55
55
|
super.selectSuggestion(value, evt);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
async function selectItem(
|
|
59
|
-
return await showModal((resolve) => new ItemSelectModal(
|
|
58
|
+
async function selectItem(params) {
|
|
59
|
+
return await showModal((resolve) => new ItemSelectModal(params, resolve));
|
|
60
60
|
}
|
|
61
61
|
export {
|
|
62
62
|
selectItem
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL01vZGFscy9TZWxlY3RJdGVtLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFV0aWxpdHkgZm9yIGRpc3BsYXlpbmcgYSBzZWxlY3Rpb24gbW9kYWwgaW4gT2JzaWRpYW4uXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYSBtb2RhbCB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYW4gaXRlbSBmcm9tIGEgbGlzdC4gVGhlIG1vZGFsIHVzZXMgZnV6enkgc2VhcmNoIHRvIGhlbHAgdGhlIHVzZXIgZmluZCB0aGUgaXRlbS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRnV6enlNYXRjaFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEZ1enp5U3VnZ2VzdE1vZGFsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2VSZXNvbHZlIH0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9QbHVnaW4vUGx1Z2luQ29udGV4dC50cyc7XG5pbXBvcnQgeyBzaG93TW9kYWwgfSBmcm9tICcuL01vZGFsQmFzZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHNlbGVjdEl0ZW19LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEl0ZW1QYXJhbXM8VD4ge1xuICAvKipcbiAgICogQW4gT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBtb2RhbC5cbiAgICovXG4gIHJlYWRvbmx5IGNzc0NsYXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgaXRlbXMgdG8gY2hvb3NlIGZyb20uXG4gICAqL1xuICByZWFkb25seSBpdGVtczogVFtdO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRpc3BsYXkgdGV4dCBmb3IgZWFjaCBpdGVtXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIGl0ZW0gdG8gZ2V0IHRoZSBkaXNwbGF5IHRleHQgZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgZGlzcGxheSB0ZXh0IGZvciB0aGUgaXRlbS5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1UZXh0RnVuYzogKGl0ZW06IFQpID0+IHN0cmluZztcblxuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICByZWFkb25seSBwbGFjZWhvbGRlcj86IHN0cmluZztcbn1cblxuY2xhc3MgSXRlbVNlbGVjdE1vZGFsPFQ+IGV4dGVuZHMgRnV6enlTdWdnZXN0TW9kYWw8VD4ge1xuICBwcml2YXRlIGlzU2VsZWN0ZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwYXJhbXM6IFNlbGVjdEl0ZW1QYXJhbXM8VD4sIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZTogUHJvbWlzZVJlc29sdmU8bnVsbCB8IFQ+KSB7XG4gICAgc3VwZXIocGFyYW1zLmFwcCk7XG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcihwYXJhbXMucGxhY2Vob2xkZXIgPz8gJycpO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXModGhpcy5jb250YWluZXJFbCwgQ3NzQ2xhc3MuU2VsZWN0SXRlbU1vZGFsKTtcbiAgICBpZiAocGFyYW1zLmNzc0NsYXNzKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckVsLmFkZENsYXNzKHBhcmFtcy5jc3NDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldEl0ZW1zKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLml0ZW1zO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldEl0ZW1UZXh0KGl0ZW06IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5pdGVtVGV4dEZ1bmMoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DaG9vc2VJdGVtKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29sdmUoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkNsb3NlKCk7XG4gICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMucmVzb2x2ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0U3VnZ2VzdGlvbihcbiAgICB2YWx1ZTogRnV6enlNYXRjaDxUPixcbiAgICBldnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50XG4gICk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgc3VwZXIuc2VsZWN0U3VnZ2VzdGlvbih2YWx1ZSwgZXZ0KTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgc2VsZWN0aW9uIG1vZGFsIGluIE9ic2lkaWFuIGZvciBjaG9vc2luZyBhbiBpdGVtIGZyb20gYSBsaXN0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHNlbGVjdGlvbiBtb2RhbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgc2VsZWN0ZWQgaXRlbSBvciBudWxsIGlmIG5vIGl0ZW0gd2FzIHNlbGVjdGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VsZWN0SXRlbTxUPihwYXJhbXM6IFNlbGVjdEl0ZW1QYXJhbXM8VD4pOiBQcm9taXNlPG51bGwgfCBUPiB7XG4gIHJldHVybiBhd2FpdCBzaG93TW9kYWw8bnVsbCB8IFQ+KChyZXNvbHZlKSA9PiBuZXcgSXRlbVNlbGVjdE1vZGFsKHBhcmFtcywgcmVzb2x2ZSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUEsU0FBUyx5QkFBeUI7QUFJbEMsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyxpQkFBaUI7QUFtQzFCLE1BQU0sd0JBQTJCLGtCQUFxQjtBQUFBLEVBRzdDLFlBQTZCLFFBQThDLFNBQW1DO0FBQ25ILFVBQU0sT0FBTyxHQUFHO0FBRGtCO0FBQThDO0FBRWhGLFNBQUssZUFBZSxPQUFPLGVBQWUsRUFBRTtBQUM1Qyx3QkFBb0IsS0FBSyxhQUFhLFNBQVMsZUFBZTtBQUM5RCxRQUFJLE9BQU8sVUFBVTtBQUNuQixXQUFLLFlBQVksU0FBUyxPQUFPLFFBQVE7QUFBQSxJQUMzQztBQUFBLEVBQ0Y7QUFBQSxFQVRRLGFBQWE7QUFBQSxFQVdMLFdBQWdCO0FBQzlCLFdBQU8sS0FBSyxPQUFPO0FBQUEsRUFDckI7QUFBQSxFQUVnQixZQUFZLE1BQWlCO0FBQzNDLFdBQU8sS0FBSyxPQUFPLGFBQWEsSUFBSTtBQUFBLEVBQ3RDO0FBQUEsRUFFZ0IsYUFBYSxNQUFlO0FBQzFDLFNBQUssUUFBUSxJQUFJO0FBQUEsRUFDbkI7QUFBQSxFQUVnQixVQUFnQjtBQUM5QixVQUFNLFFBQVE7QUFDZCxRQUFJLENBQUMsS0FBSyxZQUFZO0FBQ3BCLFdBQUssUUFBUSxJQUFJO0FBQUEsSUFDbkI7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsaUJBQ2QsT0FDQSxLQUNNO0FBQ04sU0FBSyxhQUFhO0FBQ2xCLFVBQU0saUJBQWlCLE9BQU8sR0FBRztBQUFBLEVBQ25DO0FBQ0Y7QUFRQSxlQUFzQixXQUFjLFFBQWdEO0FBQ2xGLFNBQU8sTUFBTSxVQUFvQixDQUFDLFlBQVksSUFBSSxnQkFBZ0IsUUFBUSxPQUFPLENBQUM7QUFDcEY7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -8,7 +8,7 @@ import type { Promisable } from 'type-fest';
|
|
|
8
8
|
/**
|
|
9
9
|
* Options for the {@link addToQueueAndWait} function.
|
|
10
10
|
*/
|
|
11
|
-
export interface
|
|
11
|
+
export interface AddToQueueAndWaitParams {
|
|
12
12
|
/**
|
|
13
13
|
* Optional abort signal.
|
|
14
14
|
*/
|
|
@@ -41,7 +41,7 @@ export interface AddToQueueAndWaitOptions {
|
|
|
41
41
|
/**
|
|
42
42
|
* Options for the {@link addToQueue} function.
|
|
43
43
|
*/
|
|
44
|
-
export interface
|
|
44
|
+
export interface AddToQueueParams {
|
|
45
45
|
/**
|
|
46
46
|
* Optional abort signal.
|
|
47
47
|
*/
|
|
@@ -74,15 +74,15 @@ export interface AddToQueueOptions {
|
|
|
74
74
|
/**
|
|
75
75
|
* Adds an asynchronous function to be executed after the previous function completes.
|
|
76
76
|
*
|
|
77
|
-
* @param
|
|
77
|
+
* @param params - The parameters for the function.
|
|
78
78
|
*/
|
|
79
|
-
export declare function addToQueue(
|
|
79
|
+
export declare function addToQueue(params: AddToQueueParams): void;
|
|
80
80
|
/**
|
|
81
81
|
* Adds an asynchronous function to be executed after the previous function completes and returns a {@link Promise} that resolves when the function completes.
|
|
82
82
|
*
|
|
83
|
-
* @param
|
|
83
|
+
* @param params - The parameters for the function.
|
|
84
84
|
*/
|
|
85
|
-
export declare function addToQueueAndWait(
|
|
85
|
+
export declare function addToQueueAndWait(params: AddToQueueAndWaitParams): Promise<void>;
|
|
86
86
|
/**
|
|
87
87
|
* Flushes the queue;
|
|
88
88
|
*
|
|
@@ -33,27 +33,27 @@ import { getObsidianDevUtilsState } from "./App.mjs";
|
|
|
33
33
|
import { runWithTimeoutNotice } from "./AsyncWithNotice.mjs";
|
|
34
34
|
import { t } from "./i18n/i18n.mjs";
|
|
35
35
|
import { invokeAsyncAndLog } from "./Logger.mjs";
|
|
36
|
-
function addToQueue(
|
|
37
|
-
const stackTrace =
|
|
38
|
-
invokeAsyncSafely(() => addToQueueAndWait(
|
|
36
|
+
function addToQueue(params) {
|
|
37
|
+
const stackTrace = params.stackTrace ?? getStackTrace(1);
|
|
38
|
+
invokeAsyncSafely(() => addToQueueAndWait(params), stackTrace);
|
|
39
39
|
}
|
|
40
|
-
async function addToQueueAndWait(
|
|
41
|
-
const abortSignal =
|
|
40
|
+
async function addToQueueAndWait(params) {
|
|
41
|
+
const abortSignal = params.abortSignal ?? abortSignalNever();
|
|
42
42
|
abortSignal.throwIfAborted();
|
|
43
43
|
const DEFAULT_TIMEOUT_IN_MILLISECONDS = 6e4;
|
|
44
|
-
const timeoutInMilliseconds =
|
|
45
|
-
const stackTrace =
|
|
46
|
-
const operationName =
|
|
47
|
-
const queue = getQueue(
|
|
44
|
+
const timeoutInMilliseconds = params.timeoutInMilliseconds ?? DEFAULT_TIMEOUT_IN_MILLISECONDS;
|
|
45
|
+
const stackTrace = params.stackTrace ?? getStackTrace(1);
|
|
46
|
+
const operationName = params.operationName ?? "";
|
|
47
|
+
const queue = getQueue(params.app).value;
|
|
48
48
|
queue.items.push({
|
|
49
49
|
abortSignal,
|
|
50
|
-
operationFn:
|
|
50
|
+
operationFn: params.operationFn,
|
|
51
51
|
operationName,
|
|
52
|
-
shouldShowTimeoutNotice:
|
|
52
|
+
shouldShowTimeoutNotice: params.shouldShowTimeoutNotice ?? true,
|
|
53
53
|
stackTrace,
|
|
54
54
|
timeoutInMilliseconds
|
|
55
55
|
});
|
|
56
|
-
queue.promise = queue.promise.then(() => processNextQueueItem(
|
|
56
|
+
queue.promise = queue.promise.then(() => processNextQueueItem(params.app));
|
|
57
57
|
await queue.promise;
|
|
58
58
|
}
|
|
59
59
|
async function flushQueue(app) {
|
|
@@ -96,4 +96,4 @@ export {
|
|
|
96
96
|
addToQueueAndWait,
|
|
97
97
|
flushQueue
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBlbnF1ZXVpbmcgYW5kIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICcuL0FwcC50cyc7XG5cbmltcG9ydCB7XG4gIGFib3J0U2lnbmFsQW55LFxuICBhYm9ydFNpZ25hbE5ldmVyXG59IGZyb20gJy4uL0Fib3J0Q29udHJvbGxlci50cyc7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGdldFN0YWNrVHJhY2UgfSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9BcHAudHMnO1xuaW1wb3J0IHsgcnVuV2l0aFRpbWVvdXROb3RpY2UgfSBmcm9tICcuL0FzeW5jV2l0aE5vdGljZS50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgaW52b2tlQXN5bmNBbmRMb2cgfSBmcm9tICcuL0xvZ2dlci50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIHtAbGluayBhZGRUb1F1ZXVlQW5kV2FpdH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZUFuZFdhaXRQYXJhbXMge1xuICAvKipcbiAgICogT3B0aW9uYWwgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBhZGQuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWV9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZFRvUXVldWVQYXJhbXMge1xuICAvKipcbiAgICogT3B0aW9uYWwgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBhZGQuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFF1ZXVlIHtcbiAgaXRlbXM6IFF1ZXVlSXRlbVtdO1xuICBwcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5pbnRlcmZhY2UgUXVldWVJdGVtIHtcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsO1xuICBvcGVyYXRpb25Gbih0aGlzOiB2b2lkLCBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNhYmxlPHZvaWQ+O1xuICBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG4gIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlOiBib29sZWFuO1xuICBzdGFja1RyYWNlOiBzdHJpbmc7XG4gIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBwcmV2aW91cyBmdW5jdGlvbiBjb21wbGV0ZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb1F1ZXVlKHBhcmFtczogQWRkVG9RdWV1ZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zKSwgc3RhY2tUcmFjZSk7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFRvUXVldWVBbmRXYWl0KHBhcmFtczogQWRkVG9RdWV1ZUFuZFdhaXRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYWJvcnRTaWduYWwgPSBwYXJhbXMuYWJvcnRTaWduYWwgPz8gYWJvcnRTaWduYWxOZXZlcigpO1xuICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSA2MDAwMDtcbiAgY29uc3QgdGltZW91dEluTWlsbGlzZWNvbmRzID0gcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IHBhcmFtcy5vcGVyYXRpb25OYW1lID8/ICcnO1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKHBhcmFtcy5hcHApLnZhbHVlO1xuICBxdWV1ZS5pdGVtcy5wdXNoKHtcbiAgICBhYm9ydFNpZ25hbCxcbiAgICBvcGVyYXRpb25GbjogcGFyYW1zLm9wZXJhdGlvbkZuLFxuICAgIG9wZXJhdGlvbk5hbWUsXG4gICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSA/PyB0cnVlLFxuICAgIHN0YWNrVHJhY2UsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gIH0pO1xuICBxdWV1ZS5wcm9taXNlID0gcXVldWUucHJvbWlzZS50aGVuKCgpID0+IHByb2Nlc3NOZXh0UXVldWVJdGVtKHBhcmFtcy5hcHApKTtcbiAgYXdhaXQgcXVldWUucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBGbHVzaGVzIHRoZSBxdWV1ZTtcbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmx1c2hRdWV1ZShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBhZGRUb1F1ZXVlQW5kV2FpdCh7XG4gICAgYXBwLFxuICAgIG9wZXJhdGlvbkZuOiBub29wLFxuICAgIG9wZXJhdGlvbk5hbWU6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5xdWV1ZS5mbHVzaFF1ZXVlKVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0UXVldWUoYXBwOiBBcHApOiBWYWx1ZVdyYXBwZXI8UXVldWU+IHtcbiAgcmV0dXJuIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZShhcHAsICdxdWV1ZScsIHsgaXRlbXM6IFtdLCBwcm9taXNlOiBQcm9taXNlLnJlc29sdmUoKSB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05leHRRdWV1ZUl0ZW0oYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcXVldWUgPSBnZXRRdWV1ZShhcHApLnZhbHVlO1xuICBjb25zdCBpdGVtID0gcXVldWUuaXRlbXNbMF07XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWZlbnNpdmUgY2hlY2s7IHByb2Nlc3NOZXh0UXVldWVJdGVtIGlzIG9ubHkgY2FsbGVkIGFmdGVyIGFuIGl0ZW0gaXMgcHVzaGVkLiAqL1xuICBpZiAoIWl0ZW0pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBhd2FpdCBhZGRFcnJvckhhbmRsZXIoKCkgPT5cbiAgICBydW5XaXRoVGltZW91dE5vdGljZSh7XG4gICAgICBjb250ZXh0OiB7IHF1ZXVlZEZuOiBpdGVtLm9wZXJhdGlvbkZuIH0sXG4gICAgICBhc3luYyBvcGVyYXRpb25GbihhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgaW52b2tlQXN5bmNBbmRMb2coXG4gICAgICAgICAgaXRlbS5vcGVyYXRpb25OYW1lIHx8IHByb2Nlc3NOZXh0UXVldWVJdGVtLm5hbWUsXG4gICAgICAgICAgaXRlbS5vcGVyYXRpb25GbixcbiAgICAgICAgICBhYm9ydFNpZ25hbEFueShhYm9ydFNpZ25hbCwgaXRlbS5hYm9ydFNpZ25hbCksXG4gICAgICAgICAgaXRlbS5zdGFja1RyYWNlXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgb3BlcmF0aW9uTmFtZTogaXRlbS5vcGVyYXRpb25OYW1lLFxuICAgICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGl0ZW0uc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UsXG4gICAgICBzdGFja1RyYWNlOiBpdGVtLnN0YWNrVHJhY2UsXG4gICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IGl0ZW0udGltZW91dEluTWlsbGlzZWNvbmRzXG4gICAgfSlcbiAgKTtcbiAgcXVldWUuaXRlbXMuc2hpZnQoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLFlBQVk7QUFDckIsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxTQUFTO0FBQ2xCLFNBQVMseUJBQXlCO0FBcUczQixTQUFTLFdBQVcsUUFBZ0M7QUFDekQsUUFBTSxhQUFhLE9BQU8sY0FBYyxjQUFjLENBQUM7QUFDdkQsb0JBQWtCLE1BQU0sa0JBQWtCLE1BQU0sR0FBRyxVQUFVO0FBQy9EO0FBT0EsZUFBc0Isa0JBQWtCLFFBQWdEO0FBQ3RGLFFBQU0sY0FBYyxPQUFPLGVBQWUsaUJBQWlCO0FBQzNELGNBQVksZUFBZTtBQUUzQixRQUFNLGtDQUFrQztBQUN4QyxRQUFNLHdCQUF3QixPQUFPLHlCQUF5QjtBQUM5RCxRQUFNLGFBQWEsT0FBTyxjQUFjLGNBQWMsQ0FBQztBQUN2RCxRQUFNLGdCQUFnQixPQUFPLGlCQUFpQjtBQUM5QyxRQUFNLFFBQVEsU0FBUyxPQUFPLEdBQUcsRUFBRTtBQUNuQyxRQUFNLE1BQU0sS0FBSztBQUFBLElBQ2Y7QUFBQSxJQUNBLGFBQWEsT0FBTztBQUFBLElBQ3BCO0FBQUEsSUFDQSx5QkFBeUIsT0FBTywyQkFBMkI7QUFBQSxJQUMzRDtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUM7QUFDRCxRQUFNLFVBQVUsTUFBTSxRQUFRLEtBQUssTUFBTSxxQkFBcUIsT0FBTyxHQUFHLENBQUM7QUFDekUsUUFBTSxNQUFNO0FBQ2Q7QUFPQSxlQUFzQixXQUFXLEtBQXlCO0FBQ3hELFFBQU0sa0JBQWtCO0FBQUEsSUFDdEI7QUFBQSxJQUNBLGFBQWE7QUFBQSxJQUNiLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsTUFBTSxVQUFVO0FBQUEsRUFDN0QsQ0FBQztBQUNIO0FBRUEsU0FBUyxTQUFTLEtBQStCO0FBQy9DLFNBQU8seUJBQXlCLEtBQUssU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLFNBQVMsUUFBUSxRQUFRLEVBQUUsQ0FBQztBQUN6RjtBQUVBLGVBQWUscUJBQXFCLEtBQXlCO0FBQzNELFFBQU0sUUFBUSxTQUFTLEdBQUcsRUFBRTtBQUM1QixRQUFNLE9BQU8sTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBSSxDQUFDLE1BQU07QUFDVDtBQUFBLEVBQ0Y7QUFHQSxRQUFNO0FBQUEsSUFBZ0IsTUFDcEIscUJBQXFCO0FBQUEsTUFDbkIsU0FBUyxFQUFFLFVBQVUsS0FBSyxZQUFZO0FBQUEsTUFDdEMsTUFBTSxZQUFZLGFBQXlDO0FBQ3pELGNBQU07QUFBQSxVQUNKLEtBQUssaUJBQWlCLHFCQUFxQjtBQUFBLFVBQzNDLEtBQUs7QUFBQSxVQUNMLGVBQWUsYUFBYSxLQUFLLFdBQVc7QUFBQSxVQUM1QyxLQUFLO0FBQUEsUUFDUDtBQUFBLE1BQ0Y7QUFBQSxNQUNBLGVBQWUsS0FBSztBQUFBLE1BQ3BCLHlCQUF5QixLQUFLO0FBQUEsTUFDOUIsWUFBWSxLQUFLO0FBQUEsTUFDakIsdUJBQXVCLEtBQUs7QUFBQSxJQUM5QixDQUFDO0FBQUEsRUFDSDtBQUNBLFFBQU0sTUFBTSxNQUFNO0FBQ3BCOyIsCiAgIm5hbWVzIjogW10KfQo=
|