obsidian-dev-utils 44.2.3 → 44.3.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/CHANGELOG.md +9 -0
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/obsidian/Backlink.cjs +2 -3
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.cjs +56 -41
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.d.cts +45 -12
- package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +13 -1
- package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +7 -0
- package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.cjs +3 -9
- package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.d.cts +7 -7
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +123 -26
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.d.cts +100 -9
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.cjs +115 -26
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.d.cts +94 -10
- package/dist/lib/cjs/obsidian/FileSystem.cjs +44 -1
- package/dist/lib/cjs/obsidian/FileSystem.d.cts +81 -33
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/obsidian/Backlink.mjs +4 -4
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.d.mts +45 -12
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.mjs +54 -40
- package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +7 -0
- package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +13 -1
- package/dist/lib/esm/obsidian/Commands/EditorCommandBase.d.mts +7 -7
- package/dist/lib/esm/obsidian/Commands/EditorCommandBase.mjs +3 -9
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.d.mts +100 -9
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +127 -26
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.d.mts +94 -10
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.mjs +119 -26
- package/dist/lib/esm/obsidian/FileSystem.d.mts +81 -33
- package/dist/lib/esm/obsidian/FileSystem.mjs +38 -1
- package/package.json +5 -5
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Base classes for editor commands.
|
|
5
5
|
*/
|
|
6
|
-
import type { Editor, MarkdownFileInfo,
|
|
6
|
+
import type { Editor, MarkdownFileInfo, Plugin, TFile } from 'obsidian';
|
|
7
7
|
import { CommandBase, CommandInvocationBase } from './CommandBase.cjs';
|
|
8
8
|
/**
|
|
9
9
|
* Base class for editor commands.
|
|
@@ -27,7 +27,7 @@ export declare abstract class EditorCommandBase<TPlugin extends Plugin> extends
|
|
|
27
27
|
* @param ctx - The context of the command.
|
|
28
28
|
* @returns Whether the command can execute.
|
|
29
29
|
*/
|
|
30
|
-
editorCheckCallback(checking: boolean, editor: Editor, ctx: MarkdownFileInfo
|
|
30
|
+
editorCheckCallback(checking: boolean, editor: Editor, ctx: MarkdownFileInfo): boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Registers the command.
|
|
33
33
|
*/
|
|
@@ -39,7 +39,7 @@ export declare abstract class EditorCommandBase<TPlugin extends Plugin> extends
|
|
|
39
39
|
* @param ctx - The context of the command.
|
|
40
40
|
* @returns The command invocation.
|
|
41
41
|
*/
|
|
42
|
-
protected abstract createEditorCommandInvocation(editor: Editor, ctx: MarkdownFileInfo
|
|
42
|
+
protected abstract createEditorCommandInvocation(editor: Editor, ctx: MarkdownFileInfo): CommandInvocationBase;
|
|
43
43
|
/**
|
|
44
44
|
* Checks if the command should be added to the command palette.
|
|
45
45
|
*
|
|
@@ -53,7 +53,7 @@ export declare abstract class EditorCommandBase<TPlugin extends Plugin> extends
|
|
|
53
53
|
* @param _ctx - The context of the command.
|
|
54
54
|
* @returns Whether the command should be added to the editor menu.
|
|
55
55
|
*/
|
|
56
|
-
protected shouldAddToEditorMenu(_editor: Editor, _ctx: MarkdownFileInfo
|
|
56
|
+
protected shouldAddToEditorMenu(_editor: Editor, _ctx: MarkdownFileInfo): boolean;
|
|
57
57
|
private handleEditorMenu;
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
@@ -63,7 +63,7 @@ export declare abstract class EditorCommandBase<TPlugin extends Plugin> extends
|
|
|
63
63
|
*/
|
|
64
64
|
export declare class EditorCommandInvocationBase<TPlugin extends Plugin> extends CommandInvocationBase<TPlugin> {
|
|
65
65
|
protected readonly editor: Editor;
|
|
66
|
-
protected readonly ctx: MarkdownFileInfo
|
|
66
|
+
protected readonly ctx: MarkdownFileInfo;
|
|
67
67
|
/**
|
|
68
68
|
* The file to invoke the command for.
|
|
69
69
|
*
|
|
@@ -71,7 +71,7 @@ export declare class EditorCommandInvocationBase<TPlugin extends Plugin> extends
|
|
|
71
71
|
* @throws If the file is not set.
|
|
72
72
|
*/
|
|
73
73
|
protected get file(): TFile;
|
|
74
|
-
private _file
|
|
74
|
+
private readonly _file;
|
|
75
75
|
/**
|
|
76
76
|
* Creates a new editor command invocation.
|
|
77
77
|
*
|
|
@@ -79,7 +79,7 @@ export declare class EditorCommandInvocationBase<TPlugin extends Plugin> extends
|
|
|
79
79
|
* @param editor - The editor to create the command invocation for.
|
|
80
80
|
* @param ctx - The context of the command.
|
|
81
81
|
*/
|
|
82
|
-
constructor(plugin: TPlugin, editor: Editor, ctx: MarkdownFileInfo
|
|
82
|
+
constructor(plugin: TPlugin, editor: Editor, ctx: MarkdownFileInfo);
|
|
83
83
|
/**
|
|
84
84
|
* Checks if the command can execute.
|
|
85
85
|
*
|
|
@@ -122,25 +122,78 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
122
122
|
var FileCommandBase_exports = {};
|
|
123
123
|
__export(FileCommandBase_exports, {
|
|
124
124
|
FileCommandBase: () => FileCommandBase,
|
|
125
|
-
FileCommandInvocationBase: () => FileCommandInvocationBase
|
|
125
|
+
FileCommandInvocationBase: () => FileCommandInvocationBase,
|
|
126
|
+
FilesCommandInvocationBase: () => FilesCommandInvocationBase,
|
|
127
|
+
SequentialFilesCommandInvocationBase: () => SequentialFilesCommandInvocationBase
|
|
126
128
|
});
|
|
127
129
|
module.exports = __toCommonJS(FileCommandBase_exports);
|
|
128
130
|
var import_obsidian = require('obsidian');
|
|
131
|
+
var import_FileSystem = require('../FileSystem.cjs');
|
|
129
132
|
var import_AbstractFileCommandBase = require('./AbstractFileCommandBase.cjs');
|
|
130
133
|
class FileCommandBase extends import_AbstractFileCommandBase.AbstractFileCommandBase {
|
|
134
|
+
/**
|
|
135
|
+
* Creates a new abstract file command invocation.
|
|
136
|
+
*
|
|
137
|
+
* @param abstractFile - The abstract file to invoke the command for.
|
|
138
|
+
* @returns The command invocation.
|
|
139
|
+
*/
|
|
140
|
+
createCommandInvocation(abstractFile) {
|
|
141
|
+
return this.createCommandInvocationForAbstractFile(abstractFile ?? this.app.workspace.getActiveFile());
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Creates a new abstract file command invocation for an abstract file.
|
|
145
|
+
*
|
|
146
|
+
* @param abstractFile - The abstract file to invoke the command for. If `null`, the active file is used.
|
|
147
|
+
* @returns The command invocation.
|
|
148
|
+
*/
|
|
149
|
+
createCommandInvocationForAbstractFile(abstractFile) {
|
|
150
|
+
return this.createCommandInvocationForFile((0, import_FileSystem.asFileOrNull)(abstractFile));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Creates a new abstract files command invocation for abstract files.
|
|
154
|
+
*
|
|
155
|
+
* @param abstractFiles - The abstract files to invoke the command for.
|
|
156
|
+
* @returns A new abstract files command invocation.
|
|
157
|
+
*/
|
|
158
|
+
createCommandInvocationForAbstractFiles(abstractFiles) {
|
|
159
|
+
return this.createCommandInvocationForFiles((0, import_FileSystem.asArrayOfFiles)(abstractFiles));
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Creates a new files command invocation for files.
|
|
163
|
+
*
|
|
164
|
+
* @param files - The files to invoke the command for.
|
|
165
|
+
* @returns A new files command invocation.
|
|
166
|
+
*/
|
|
167
|
+
createCommandInvocationForFiles(files) {
|
|
168
|
+
return new SequentialFilesCommandInvocationBase(this.plugin, files, this.createCommandInvocationForFile.bind(this));
|
|
169
|
+
}
|
|
131
170
|
/**
|
|
132
171
|
* Checks if the command should be added to the abstract file menu.
|
|
133
172
|
*
|
|
134
173
|
* @param abstractFile - The abstract file to check.
|
|
135
|
-
* @param
|
|
136
|
-
* @param
|
|
174
|
+
* @param source - The source of the abstract file.
|
|
175
|
+
* @param leaf - The leaf to check.
|
|
137
176
|
* @returns Whether the command should be added to the abstract file menu.
|
|
138
177
|
*/
|
|
139
|
-
shouldAddToAbstractFileMenu(abstractFile,
|
|
140
|
-
if (!(
|
|
178
|
+
shouldAddToAbstractFileMenu(abstractFile, source, leaf) {
|
|
179
|
+
if (!(0, import_FileSystem.isFile)(abstractFile)) {
|
|
141
180
|
return false;
|
|
142
181
|
}
|
|
143
|
-
return this.shouldAddToFileMenu(abstractFile,
|
|
182
|
+
return this.shouldAddToFileMenu(abstractFile, source, leaf);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Checks if the command should be added to the abstract files menu.
|
|
186
|
+
*
|
|
187
|
+
* @param abstractFiles - The abstract files to check.
|
|
188
|
+
* @param source - The source of the abstract files.
|
|
189
|
+
* @param leaf - The leaf to check.
|
|
190
|
+
* @returns Whether the command should be added to the abstract files menu.
|
|
191
|
+
*/
|
|
192
|
+
shouldAddToAbstractFilesMenu(abstractFiles, source, leaf) {
|
|
193
|
+
if (!abstractFiles.every((abstractFile) => (0, import_FileSystem.isFile)(abstractFile))) {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
return this.shouldAddToFilesMenu((0, import_FileSystem.asArrayOfFiles)(abstractFiles), source, leaf);
|
|
144
197
|
}
|
|
145
198
|
/**
|
|
146
199
|
* Checks if the command should be added to the file menu.
|
|
@@ -153,6 +206,17 @@ class FileCommandBase extends import_AbstractFileCommandBase.AbstractFileCommand
|
|
|
153
206
|
shouldAddToFileMenu(_file, _source, _leaf) {
|
|
154
207
|
return false;
|
|
155
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Checks if the command should be added to the files menu.
|
|
211
|
+
*
|
|
212
|
+
* @param _files - The files to check.
|
|
213
|
+
* @param _source - The source of the files.
|
|
214
|
+
* @param _leaf - The leaf to check.
|
|
215
|
+
* @returns Whether the command should be added to the files menu.
|
|
216
|
+
*/
|
|
217
|
+
shouldAddToFilesMenu(_files, _source, _leaf) {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
156
220
|
}
|
|
157
221
|
class FileCommandInvocationBase extends import_AbstractFileCommandBase.AbstractFileCommandInvocationBase {
|
|
158
222
|
/**
|
|
@@ -162,18 +226,16 @@ class FileCommandInvocationBase extends import_AbstractFileCommandBase.AbstractF
|
|
|
162
226
|
* @throws If the abstract file is not a file.
|
|
163
227
|
*/
|
|
164
228
|
get file() {
|
|
165
|
-
|
|
166
|
-
throw new Error("Abstract file is not a file");
|
|
167
|
-
}
|
|
168
|
-
return this.abstractFile;
|
|
229
|
+
return (0, import_FileSystem.asFile)(this._abstractFile);
|
|
169
230
|
}
|
|
170
231
|
/**
|
|
171
|
-
*
|
|
232
|
+
* Creates a new file command invocation.
|
|
172
233
|
*
|
|
173
|
-
* @param
|
|
234
|
+
* @param plugin - The plugin that the command invocation belongs to.
|
|
235
|
+
* @param file - The file to invoke the command for.
|
|
174
236
|
*/
|
|
175
|
-
|
|
176
|
-
|
|
237
|
+
constructor(plugin, file) {
|
|
238
|
+
super(plugin, file);
|
|
177
239
|
}
|
|
178
240
|
/**
|
|
179
241
|
* Checks if the command can execute.
|
|
@@ -181,22 +243,57 @@ class FileCommandInvocationBase extends import_AbstractFileCommandBase.AbstractF
|
|
|
181
243
|
* @returns Whether the command can execute.
|
|
182
244
|
*/
|
|
183
245
|
canExecute() {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
246
|
+
return super.canExecute() && !!this._abstractFile;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
class FilesCommandInvocationBase extends import_AbstractFileCommandBase.AbstractFilesCommandInvocationBase {
|
|
250
|
+
/**
|
|
251
|
+
* Creates a new files command invocation.
|
|
252
|
+
*
|
|
253
|
+
* @param plugin - The plugin that the command invocation belongs to.
|
|
254
|
+
* @param files - The files to invoke the command for.
|
|
255
|
+
*/
|
|
256
|
+
constructor(plugin, files) {
|
|
257
|
+
super(plugin, files);
|
|
258
|
+
this.files = files;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
class SequentialFilesCommandInvocationBase extends FilesCommandInvocationBase {
|
|
262
|
+
/**
|
|
263
|
+
* Creates a new sequential files command invocation.
|
|
264
|
+
*
|
|
265
|
+
* @param plugin - The plugin that the command invocation belongs to.
|
|
266
|
+
* @param files - The files to invoke the command for.
|
|
267
|
+
* @param createCommandInvocationForFile - The function to create a command invocation for a file.
|
|
268
|
+
*/
|
|
269
|
+
constructor(plugin, files, createCommandInvocationForFile) {
|
|
270
|
+
super(plugin, files);
|
|
271
|
+
this.createCommandInvocationForFile = createCommandInvocationForFile;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Checks if the command can execute.
|
|
275
|
+
*
|
|
276
|
+
* @returns Whether the command can execute.
|
|
277
|
+
*/
|
|
278
|
+
canExecute() {
|
|
279
|
+
return super.canExecute() && this.files.every((file) => this.createCommandInvocationForFile(file).invoke(true));
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Executes the command.
|
|
283
|
+
*
|
|
284
|
+
* @returns A promise that resolves when the command has been executed.
|
|
285
|
+
*/
|
|
286
|
+
async execute() {
|
|
287
|
+
for (const file of this.files) {
|
|
288
|
+
await this.createCommandInvocationForFile(file).invokeAsync(false);
|
|
193
289
|
}
|
|
194
|
-
return true;
|
|
195
290
|
}
|
|
196
291
|
}
|
|
197
292
|
// Annotate the CommonJS export names for ESM import in node:
|
|
198
293
|
0 && (module.exports = {
|
|
199
294
|
FileCommandBase,
|
|
200
|
-
FileCommandInvocationBase
|
|
295
|
+
FileCommandInvocationBase,
|
|
296
|
+
FilesCommandInvocationBase,
|
|
297
|
+
SequentialFilesCommandInvocationBase
|
|
201
298
|
});
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0ZpbGVDb21tYW5kQmFzZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBCYXNlIGNsYXNzZXMgZm9yIGZpbGUgY29tbWFuZHMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBQbHVnaW4sXG4gIFRBYnN0cmFjdEZpbGUsXG4gIFdvcmtzcGFjZUxlYWZcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBURmlsZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RGaWxlQ29tbWFuZEJhc2UsXG4gIEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZVxufSBmcm9tICcuL0Fic3RyYWN0RmlsZUNvbW1hbmRCYXNlLnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBmaWxlIGNvbW1hbmRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlsZUNvbW1hbmRCYXNlPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4gPSBQbHVnaW4+IGV4dGVuZHMgQWJzdHJhY3RGaWxlQ29tbWFuZEJhc2U8VFBsdWdpbj4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvdmVycmlkZSBjcmVhdGVDb21tYW5kSW52b2NhdGlvbigpOiBGaWxlQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBhYnN0cmFjdCBmaWxlIG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGUgLSBUaGUgYWJzdHJhY3QgZmlsZSB0byBjaGVjay5cbiAgICogQHBhcmFtIF9zb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBhYnN0cmFjdCBmaWxlLlxuICAgKiBAcGFyYW0gX2xlYWYgLSBUaGUgbGVhZiB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlLCBfc291cmNlOiBzdHJpbmcsIF9sZWFmPzogV29ya3NwYWNlTGVhZik6IGJvb2xlYW4ge1xuICAgIGlmICghKGFic3RyYWN0RmlsZSBpbnN0YW5jZW9mIFRGaWxlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaG91bGRBZGRUb0ZpbGVNZW51KGFic3RyYWN0RmlsZSwgX3NvdXJjZSwgX2xlYWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGZpbGUgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9maWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBfc291cmNlIC0gVGhlIHNvdXJjZSBvZiB0aGUgZmlsZS5cbiAgICogQHBhcmFtIF9sZWFmIC0gVGhlIGxlYWYgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmaWxlIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9GaWxlTWVudShfZmlsZTogVEZpbGUsIF9zb3VyY2U6IHN0cmluZywgX2xlYWY/OiBXb3Jrc3BhY2VMZWFmKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgZmlsZSBjb21tYW5kIGludm9jYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWxlIHRoYXQgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmlsZSB0aGF0IHRoZSBjb21tYW5kIGludm9jYXRpb24gYmVsb25ncyB0by5cbiAgICogQHRocm93cyBJZiB0aGUgYWJzdHJhY3QgZmlsZSBpcyBub3QgYSBmaWxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmaWxlKCk6IFRGaWxlIHtcbiAgICBpZiAoISh0aGlzLmFic3RyYWN0RmlsZSBpbnN0YW5jZW9mIFRGaWxlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYnN0cmFjdCBmaWxlIGlzIG5vdCBhIGZpbGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWJzdHJhY3RGaWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZpbGUgdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGZpbGUoZmlsZTogVEZpbGUpIHtcbiAgICB0aGlzLmFic3RyYWN0RmlsZSA9IGZpbGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdXBlci5jYW5FeGVjdXRlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoISh0aGlzLmFic3RyYWN0RmlsZSBpbnN0YW5jZW9mIFRGaWxlKSkge1xuICAgICAgY29uc3QgZmlsZSA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKCk7XG4gICAgICBpZiAoIWZpbGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5maWxlID0gZmlsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLHNCQUFzQjtBQUV0QixxQ0FHTztBQU9BLE1BQWUsd0JBQXlELHVEQUFpQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWdCM0YsNEJBQTRCLGNBQTZCLFNBQWlCLE9BQWdDO0FBQzNILFFBQUksRUFBRSx3QkFBd0Isd0JBQVE7QUFDcEMsYUFBTztBQUFBLElBQ1Q7QUFDQSxXQUFPLEtBQUssb0JBQW9CLGNBQWMsU0FBUyxLQUFLO0FBQUEsRUFDOUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVVSxvQkFBb0IsT0FBYyxTQUFpQixPQUFnQztBQUMzRixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBT08sTUFBZSxrQ0FBMEQsaUVBQTJDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPekgsSUFBYyxPQUFjO0FBQzFCLFFBQUksRUFBRSxLQUFLLHdCQUF3Qix3QkFBUTtBQUN6QyxZQUFNLElBQUksTUFBTSw2QkFBNkI7QUFBQSxJQUMvQztBQUNBLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLEtBQUssTUFBYTtBQUM5QixTQUFLLGVBQWU7QUFBQSxFQUN0QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9tQixhQUFzQjtBQUN2QyxRQUFJLENBQUMsTUFBTSxXQUFXLEdBQUc7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFJLEVBQUUsS0FBSyx3QkFBd0Isd0JBQVE7QUFDekMsWUFBTSxPQUFPLEtBQUssSUFBSSxVQUFVLGNBQWM7QUFDOUMsVUFBSSxDQUFDLE1BQU07QUFDVCxlQUFPO0FBQUEsTUFDVDtBQUNBLFdBQUssT0FBTztBQUFBLElBQ2Q7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbW1hbmRzL0ZpbGVDb21tYW5kQmFzZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBCYXNlIGNsYXNzZXMgZm9yIGZpbGUgY29tbWFuZHMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBQbHVnaW4sXG4gIFRBYnN0cmFjdEZpbGUsXG4gIFdvcmtzcGFjZUxlYWZcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBURmlsZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgYXNBcnJheU9mRmlsZXMsXG4gIGFzRmlsZSxcbiAgYXNGaWxlT3JOdWxsLFxuICBpc0ZpbGVcbn0gZnJvbSAnLi4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEZpbGVDb21tYW5kQmFzZSxcbiAgQWJzdHJhY3RGaWxlQ29tbWFuZEludm9jYXRpb25CYXNlLFxuICBBYnN0cmFjdEZpbGVzQ29tbWFuZEludm9jYXRpb25CYXNlXG59IGZyb20gJy4vQWJzdHJhY3RGaWxlQ29tbWFuZEJhc2UudHMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGZpbGUgY29tbWFuZHMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWxlQ29tbWFuZEJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbiA9IFBsdWdpbj4gZXh0ZW5kcyBBYnN0cmFjdEZpbGVDb21tYW5kQmFzZTxUUGx1Z2luPiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFic3RyYWN0IGZpbGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGFic3RyYWN0IGZpbGUgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVDb21tYW5kSW52b2NhdGlvbihhYnN0cmFjdEZpbGU/OiBUQWJzdHJhY3RGaWxlKTogQWJzdHJhY3RGaWxlQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb21tYW5kSW52b2NhdGlvbkZvckFic3RyYWN0RmlsZShhYnN0cmFjdEZpbGUgPz8gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZUZpbGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhYnN0cmFjdCBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IgYW4gYWJzdHJhY3QgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZSAtIFRoZSBhYnN0cmFjdCBmaWxlIHRvIGludm9rZSB0aGUgY29tbWFuZCBmb3IuIElmIGBudWxsYCwgdGhlIGFjdGl2ZSBmaWxlIGlzIHVzZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JBYnN0cmFjdEZpbGUoYWJzdHJhY3RGaWxlOiBudWxsIHwgVEFic3RyYWN0RmlsZSk6IEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlKGFzRmlsZU9yTnVsbChhYnN0cmFjdEZpbGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFic3RyYWN0IGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IgYWJzdHJhY3QgZmlsZXMuXG4gICAqXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGVzIC0gVGhlIGFic3RyYWN0IGZpbGVzIHRvIGludm9rZSB0aGUgY29tbWFuZCBmb3IuXG4gICAqIEByZXR1cm5zIEEgbmV3IGFic3RyYWN0IGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVDb21tYW5kSW52b2NhdGlvbkZvckFic3RyYWN0RmlsZXMoYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdKTogQWJzdHJhY3RGaWxlc0NvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlcyhhc0FycmF5T2ZGaWxlcyhhYnN0cmFjdEZpbGVzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IgYSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIHRvIGludm9rZSB0aGUgY29tbWFuZCBmb3IuXG4gICAqIEByZXR1cm5zIEEgbmV3IGZpbGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yRmlsZShmaWxlOiBudWxsIHwgVEZpbGUpOiBGaWxlQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IgZmlsZXMuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlcyAtIFRoZSBmaWxlcyB0byBpbnZva2UgdGhlIGNvbW1hbmQgZm9yLlxuICAgKiBAcmV0dXJucyBBIG5ldyBmaWxlcyBjb21tYW5kIGludm9jYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlcyhmaWxlczogVEZpbGVbXSk6IEZpbGVzQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+IHtcbiAgICByZXR1cm4gbmV3IFNlcXVlbnRpYWxGaWxlc0NvbW1hbmRJbnZvY2F0aW9uQmFzZSh0aGlzLnBsdWdpbiwgZmlsZXMsIHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGUgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZSAtIFRoZSBhYnN0cmFjdCBmaWxlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc291cmNlIC0gVGhlIHNvdXJjZSBvZiB0aGUgYWJzdHJhY3QgZmlsZS5cbiAgICogQHBhcmFtIGxlYWYgLSBUaGUgbGVhZiB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlLCBzb3VyY2U6IHN0cmluZywgbGVhZj86IFdvcmtzcGFjZUxlYWYpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzRmlsZShhYnN0cmFjdEZpbGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNob3VsZEFkZFRvRmlsZU1lbnUoYWJzdHJhY3RGaWxlLCBzb3VyY2UsIGxlYWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGVzIG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGVzIC0gVGhlIGFic3RyYWN0IGZpbGVzIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc291cmNlIC0gVGhlIHNvdXJjZSBvZiB0aGUgYWJzdHJhY3QgZmlsZXMuXG4gICAqIEBwYXJhbSBsZWFmIC0gVGhlIGxlYWYgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBhYnN0cmFjdCBmaWxlcyBtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZEFkZFRvQWJzdHJhY3RGaWxlc01lbnUoYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdLCBzb3VyY2U6IHN0cmluZywgbGVhZj86IFdvcmtzcGFjZUxlYWYpOiBib29sZWFuIHtcbiAgICBpZiAoIWFic3RyYWN0RmlsZXMuZXZlcnkoKGFic3RyYWN0RmlsZSkgPT4gaXNGaWxlKGFic3RyYWN0RmlsZSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNob3VsZEFkZFRvRmlsZXNNZW51KGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpLCBzb3VyY2UsIGxlYWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGZpbGUgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9maWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBfc291cmNlIC0gVGhlIHNvdXJjZSBvZiB0aGUgZmlsZS5cbiAgICogQHBhcmFtIF9sZWFmIC0gVGhlIGxlYWYgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmaWxlIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9GaWxlTWVudShfZmlsZTogVEZpbGUsIF9zb3VyY2U6IHN0cmluZywgX2xlYWY/OiBXb3Jrc3BhY2VMZWFmKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGZpbGVzIG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBfZmlsZXMgLSBUaGUgZmlsZXMgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBfc291cmNlIC0gVGhlIHNvdXJjZSBvZiB0aGUgZmlsZXMuXG4gICAqIEBwYXJhbSBfbGVhZiAtIFRoZSBsZWFmIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZmlsZXMgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0ZpbGVzTWVudShfZmlsZXM6IFRGaWxlW10sIF9zb3VyY2U6IHN0cmluZywgX2xlYWY/OiBXb3Jrc3BhY2VMZWFmKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgZmlsZSBjb21tYW5kIGludm9jYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWxlIHRoYXQgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmlsZSB0aGF0IHRoZSBjb21tYW5kIGludm9jYXRpb24gYmVsb25ncyB0by5cbiAgICogQHRocm93cyBJZiB0aGUgYWJzdHJhY3QgZmlsZSBpcyBub3QgYSBmaWxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmaWxlKCk6IFRGaWxlIHtcbiAgICByZXR1cm4gYXNGaWxlKHRoaXMuX2Fic3RyYWN0RmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IFRQbHVnaW4sIGZpbGU6IG51bGwgfCBURmlsZSkge1xuICAgIHN1cGVyKHBsdWdpbiwgZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmNhbkV4ZWN1dGUoKSAmJiAhIXRoaXMuX2Fic3RyYWN0RmlsZTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWxlc0NvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZXNDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBmaWxlcyBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBiZWxvbmdzIHRvLlxuICAgKiBAcGFyYW0gZmlsZXMgLSBUaGUgZmlsZXMgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IFRQbHVnaW4sIHB1YmxpYyByZWFkb25seSBmaWxlczogVEZpbGVbXSkge1xuICAgIHN1cGVyKHBsdWdpbiwgZmlsZXMpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igc2VxdWVudGlhbCBmaWxlcyBjb21tYW5kIGludm9jYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgY2xhc3MgU2VxdWVudGlhbEZpbGVzQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4+IGV4dGVuZHMgRmlsZXNDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBzZXF1ZW50aWFsIGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqIEBwYXJhbSBmaWxlcyAtIFRoZSBmaWxlcyB0byBpbnZva2UgdGhlIGNvbW1hbmQgZm9yLlxuICAgKiBAcGFyYW0gY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlIC0gVGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IgYSBmaWxlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBsdWdpbjogVFBsdWdpbiwgZmlsZXM6IFRGaWxlW10sIHByaXZhdGUgcmVhZG9ubHkgY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlOiAoZmlsZTogVEZpbGUpID0+IEZpbGVDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4pIHtcbiAgICBzdXBlcihwbHVnaW4sIGZpbGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuY2FuRXhlY3V0ZSgpICYmIHRoaXMuZmlsZXMuZXZlcnkoKGZpbGUpID0+IHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlKGZpbGUpLmludm9rZSh0cnVlKSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbW1hbmQgaGFzIGJlZW4gZXhlY3V0ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVDb21tYW5kSW52b2NhdGlvbkZvckZpbGUoZmlsZSkuaW52b2tlQXN5bmMoZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxzQkFBc0I7QUFFdEIsd0JBS087QUFDUCxxQ0FJTztBQU9BLE1BQWUsd0JB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
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Plugin, TAbstractFile, WorkspaceLeaf } from 'obsidian';
|
|
7
7
|
import { TFile } from 'obsidian';
|
|
8
|
-
import { AbstractFileCommandBase, AbstractFileCommandInvocationBase } from './AbstractFileCommandBase.cjs';
|
|
8
|
+
import { AbstractFileCommandBase, AbstractFileCommandInvocationBase, AbstractFilesCommandInvocationBase } from './AbstractFileCommandBase.cjs';
|
|
9
9
|
/**
|
|
10
10
|
* Base class for file commands.
|
|
11
11
|
*
|
|
@@ -13,20 +13,58 @@ import { AbstractFileCommandBase, AbstractFileCommandInvocationBase } from './Ab
|
|
|
13
13
|
*/
|
|
14
14
|
export declare abstract class FileCommandBase<TPlugin extends Plugin = Plugin> extends AbstractFileCommandBase<TPlugin> {
|
|
15
15
|
/**
|
|
16
|
-
* Creates a new file command invocation.
|
|
16
|
+
* Creates a new abstract file command invocation.
|
|
17
|
+
*
|
|
18
|
+
* @param abstractFile - The abstract file to invoke the command for.
|
|
19
|
+
* @returns The command invocation.
|
|
20
|
+
*/
|
|
21
|
+
protected createCommandInvocation(abstractFile?: TAbstractFile): AbstractFileCommandInvocationBase<TPlugin>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new abstract file command invocation for an abstract file.
|
|
17
24
|
*
|
|
25
|
+
* @param abstractFile - The abstract file to invoke the command for. If `null`, the active file is used.
|
|
18
26
|
* @returns The command invocation.
|
|
19
27
|
*/
|
|
20
|
-
protected
|
|
28
|
+
protected createCommandInvocationForAbstractFile(abstractFile: null | TAbstractFile): AbstractFileCommandInvocationBase<TPlugin>;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new abstract files command invocation for abstract files.
|
|
31
|
+
*
|
|
32
|
+
* @param abstractFiles - The abstract files to invoke the command for.
|
|
33
|
+
* @returns A new abstract files command invocation.
|
|
34
|
+
*/
|
|
35
|
+
protected createCommandInvocationForAbstractFiles(abstractFiles: TAbstractFile[]): AbstractFilesCommandInvocationBase<TPlugin>;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new file command invocation for a file.
|
|
38
|
+
*
|
|
39
|
+
* @param file - The file to invoke the command for.
|
|
40
|
+
* @returns A new file command invocation.
|
|
41
|
+
*/
|
|
42
|
+
protected abstract createCommandInvocationForFile(file: null | TFile): FileCommandInvocationBase<TPlugin>;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new files command invocation for files.
|
|
45
|
+
*
|
|
46
|
+
* @param files - The files to invoke the command for.
|
|
47
|
+
* @returns A new files command invocation.
|
|
48
|
+
*/
|
|
49
|
+
protected createCommandInvocationForFiles(files: TFile[]): FilesCommandInvocationBase<TPlugin>;
|
|
21
50
|
/**
|
|
22
51
|
* Checks if the command should be added to the abstract file menu.
|
|
23
52
|
*
|
|
24
53
|
* @param abstractFile - The abstract file to check.
|
|
25
|
-
* @param
|
|
26
|
-
* @param
|
|
54
|
+
* @param source - The source of the abstract file.
|
|
55
|
+
* @param leaf - The leaf to check.
|
|
27
56
|
* @returns Whether the command should be added to the abstract file menu.
|
|
28
57
|
*/
|
|
29
|
-
protected shouldAddToAbstractFileMenu(abstractFile: TAbstractFile,
|
|
58
|
+
protected shouldAddToAbstractFileMenu(abstractFile: TAbstractFile, source: string, leaf?: WorkspaceLeaf): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Checks if the command should be added to the abstract files menu.
|
|
61
|
+
*
|
|
62
|
+
* @param abstractFiles - The abstract files to check.
|
|
63
|
+
* @param source - The source of the abstract files.
|
|
64
|
+
* @param leaf - The leaf to check.
|
|
65
|
+
* @returns Whether the command should be added to the abstract files menu.
|
|
66
|
+
*/
|
|
67
|
+
protected shouldAddToAbstractFilesMenu(abstractFiles: TAbstractFile[], source: string, leaf?: WorkspaceLeaf): boolean;
|
|
30
68
|
/**
|
|
31
69
|
* Checks if the command should be added to the file menu.
|
|
32
70
|
*
|
|
@@ -36,6 +74,15 @@ export declare abstract class FileCommandBase<TPlugin extends Plugin = Plugin> e
|
|
|
36
74
|
* @returns Whether the command should be added to the file menu.
|
|
37
75
|
*/
|
|
38
76
|
protected shouldAddToFileMenu(_file: TFile, _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Checks if the command should be added to the files menu.
|
|
79
|
+
*
|
|
80
|
+
* @param _files - The files to check.
|
|
81
|
+
* @param _source - The source of the files.
|
|
82
|
+
* @param _leaf - The leaf to check.
|
|
83
|
+
* @returns Whether the command should be added to the files menu.
|
|
84
|
+
*/
|
|
85
|
+
protected shouldAddToFilesMenu(_files: TFile[], _source: string, _leaf?: WorkspaceLeaf): boolean;
|
|
39
86
|
}
|
|
40
87
|
/**
|
|
41
88
|
* Base class for file command invocations.
|
|
@@ -51,15 +98,59 @@ export declare abstract class FileCommandInvocationBase<TPlugin extends Plugin>
|
|
|
51
98
|
*/
|
|
52
99
|
protected get file(): TFile;
|
|
53
100
|
/**
|
|
54
|
-
*
|
|
101
|
+
* Creates a new file command invocation.
|
|
102
|
+
*
|
|
103
|
+
* @param plugin - The plugin that the command invocation belongs to.
|
|
104
|
+
* @param file - The file to invoke the command for.
|
|
105
|
+
*/
|
|
106
|
+
constructor(plugin: TPlugin, file: null | TFile);
|
|
107
|
+
/**
|
|
108
|
+
* Checks if the command can execute.
|
|
109
|
+
*
|
|
110
|
+
* @returns Whether the command can execute.
|
|
111
|
+
*/
|
|
112
|
+
protected canExecute(): boolean;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Base class for files command invocations.
|
|
116
|
+
*
|
|
117
|
+
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
118
|
+
*/
|
|
119
|
+
export declare abstract class FilesCommandInvocationBase<TPlugin extends Plugin> extends AbstractFilesCommandInvocationBase<TPlugin> {
|
|
120
|
+
readonly files: TFile[];
|
|
121
|
+
/**
|
|
122
|
+
* Creates a new files command invocation.
|
|
123
|
+
*
|
|
124
|
+
* @param plugin - The plugin that the command invocation belongs to.
|
|
125
|
+
* @param files - The files to invoke the command for.
|
|
126
|
+
*/
|
|
127
|
+
constructor(plugin: TPlugin, files: TFile[]);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Base class for sequential files command invocations.
|
|
131
|
+
*
|
|
132
|
+
* @typeParam TPlugin - The type of the plugin that the command belongs to.
|
|
133
|
+
*/
|
|
134
|
+
export declare class SequentialFilesCommandInvocationBase<TPlugin extends Plugin> extends FilesCommandInvocationBase<TPlugin> {
|
|
135
|
+
private readonly createCommandInvocationForFile;
|
|
136
|
+
/**
|
|
137
|
+
* Creates a new sequential files command invocation.
|
|
55
138
|
*
|
|
56
|
-
* @param
|
|
139
|
+
* @param plugin - The plugin that the command invocation belongs to.
|
|
140
|
+
* @param files - The files to invoke the command for.
|
|
141
|
+
* @param createCommandInvocationForFile - The function to create a command invocation for a file.
|
|
57
142
|
*/
|
|
58
|
-
|
|
143
|
+
constructor(plugin: TPlugin, files: TFile[], createCommandInvocationForFile: (file: TFile) => FileCommandInvocationBase<TPlugin>);
|
|
59
144
|
/**
|
|
60
145
|
* Checks if the command can execute.
|
|
61
146
|
*
|
|
62
147
|
* @returns Whether the command can execute.
|
|
63
148
|
*/
|
|
64
149
|
protected canExecute(): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Executes the command.
|
|
152
|
+
*
|
|
153
|
+
* @returns A promise that resolves when the command has been executed.
|
|
154
|
+
*/
|
|
155
|
+
protected execute(): Promise<void>;
|
|
65
156
|
}
|