@omegagrid/commands 0.10.105 → 0.10.106
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/dist/commandManager.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export declare class CommandManager {
|
|
|
23
23
|
private _menu;
|
|
24
24
|
private _menuContainer;
|
|
25
25
|
private _resolveCallback;
|
|
26
|
-
private _rejectCallback;
|
|
27
26
|
private _adapter;
|
|
28
27
|
private _commands;
|
|
29
28
|
private _origOptions;
|
|
@@ -32,8 +31,13 @@ export declare class CommandManager {
|
|
|
32
31
|
clear(): void;
|
|
33
32
|
add(commands: FlowCommandSource | FlowCommandSource[]): void;
|
|
34
33
|
get adapter(): CommandsFlowAdapter;
|
|
35
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Settles the promise returned by the pending `open()` call, if there is one.
|
|
36
|
+
* `null` means the menu was left without picking a command.
|
|
37
|
+
*/
|
|
38
|
+
private settle;
|
|
36
39
|
private _onExec;
|
|
40
|
+
private _onHide;
|
|
37
41
|
get menu(): CommandWindow;
|
|
38
42
|
get menuContainer(): FloatingWindow;
|
|
39
43
|
open(options?: OpenCommandsOptions): Promise<CommandResult | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandManager.d.ts","sourceRoot":"","sources":["../src/commandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAgB,aAAa,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACjD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;CAChD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ,CAAA;AAED,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"commandManager.d.ts","sourceRoot":"","sources":["../src/commandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAgB,aAAa,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACjD,OAAO,EAAkB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;CAChD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ,CAAA;AAED,qBAAa,cAAc;IAad,QAAQ,CAAC,MAAM,EAAE,UAAU;IAXvC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,YAAY,CAAU;IAE9B,IAAI,QAAQ,wBAEX;gBAEoB,MAAM,EAAE,UAAU;IAEvC,KAAK;IAKL,GAAG,CAAC,QAAQ,EAAE,iBAAiB,GAAC,iBAAiB,EAAE;IAKnD,IAAI,OAAO,wBAIV;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO,CAWd;IAED,OAAO,CAAC,OAAO,CAMd;IAED,IAAI,IAAI,kBAIP;IAED,IAAI,aAAa,mBAQhB;IAEK,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAC,IAAI,CAAC;IAwCtE,KAAK;IAOL,cAAc;CAMd"}
|
package/dist/commandManager.js
CHANGED
|
@@ -10,18 +10,22 @@ export class CommandManager {
|
|
|
10
10
|
this._commands = [];
|
|
11
11
|
this._onExec = (e) => {
|
|
12
12
|
log.getLogger().info(`trigger command: ${e.command.id}`);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
});
|
|
19
|
-
this._resolveCallback = null;
|
|
20
|
-
this._rejectCallback = null;
|
|
13
|
+
this.settle({
|
|
14
|
+
command: e.command,
|
|
15
|
+
id: e.command?.id,
|
|
16
|
+
value: e.value,
|
|
17
|
+
});
|
|
21
18
|
if (this.adapter.map.get(e.command.id)?.next == null) {
|
|
22
19
|
this.close();
|
|
23
20
|
}
|
|
24
21
|
};
|
|
22
|
+
this._onHide = () => {
|
|
23
|
+
this.target?.focus();
|
|
24
|
+
this.adapter?.reset();
|
|
25
|
+
// the window hides itself on a click outside or on Escape - settle the pending promise
|
|
26
|
+
// with 'no command' so the caller is not left waiting forever
|
|
27
|
+
this.settle(null);
|
|
28
|
+
};
|
|
25
29
|
}
|
|
26
30
|
clear() {
|
|
27
31
|
this._commands = [];
|
|
@@ -37,11 +41,14 @@ export class CommandManager {
|
|
|
37
41
|
this._adapter = new CommandsFlowAdapter(this._commands);
|
|
38
42
|
return this._adapter;
|
|
39
43
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Settles the promise returned by the pending `open()` call, if there is one.
|
|
46
|
+
* `null` means the menu was left without picking a command.
|
|
47
|
+
*/
|
|
48
|
+
settle(result) {
|
|
49
|
+
if (this._resolveCallback)
|
|
50
|
+
this._resolveCallback(result);
|
|
43
51
|
this._resolveCallback = null;
|
|
44
|
-
this._rejectCallback = null;
|
|
45
52
|
}
|
|
46
53
|
get menu() {
|
|
47
54
|
return this._menu ?? (this._menu = dom.createElement('og-commands', {
|
|
@@ -52,10 +59,7 @@ export class CommandManager {
|
|
|
52
59
|
if (this._menuContainer)
|
|
53
60
|
return this._menuContainer;
|
|
54
61
|
this._menuContainer = dom.createElement('og-floating-window', {
|
|
55
|
-
listeners: [['hide',
|
|
56
|
-
this.target?.focus();
|
|
57
|
-
this.adapter?.reset();
|
|
58
|
-
}]]
|
|
62
|
+
listeners: [['hide', this._onHide]]
|
|
59
63
|
});
|
|
60
64
|
this.menu.slot = 'content';
|
|
61
65
|
this._menuContainer.appendChild(this.menu);
|
|
@@ -63,6 +67,7 @@ export class CommandManager {
|
|
|
63
67
|
}
|
|
64
68
|
async open(options) {
|
|
65
69
|
log.getLogger().info('open menu');
|
|
70
|
+
this.settle(null); // a previous call left pending by a reopen gets an answer too
|
|
66
71
|
this.target.shadowRoot.appendChild(this.menuContainer);
|
|
67
72
|
this.menuContainer.show();
|
|
68
73
|
options ?? (options = { content: null });
|
|
@@ -93,15 +98,14 @@ export class CommandManager {
|
|
|
93
98
|
await this.menu.updateComplete;
|
|
94
99
|
this.menu.focus();
|
|
95
100
|
this.updatePosition();
|
|
96
|
-
return new Promise(
|
|
101
|
+
return new Promise(resolve => {
|
|
97
102
|
this._resolveCallback = resolve;
|
|
98
|
-
this._rejectCallback = reject;
|
|
99
103
|
});
|
|
100
104
|
}
|
|
101
105
|
close() {
|
|
102
|
-
this.menuContainer.hide(false);
|
|
106
|
+
this.menuContainer.hide(false); // no event - the promise is settled here
|
|
103
107
|
this.menuContainer.remove();
|
|
104
|
-
this.
|
|
108
|
+
this.settle(null);
|
|
105
109
|
this.target?.focus();
|
|
106
110
|
}
|
|
107
111
|
updatePosition() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandManager.js","sourceRoot":"","sources":["../src/commandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIlE,OAAO,EAAE,cAAc,EAAqB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AAkBpE,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"commandManager.js","sourceRoot":"","sources":["../src/commandManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, FloatingWindow, log, utils } from \"@omegagrid/core\";\nimport { Command, CommandMode, CommandSource, Options } from \"./model\";\nimport { CommandEvent, CommandWindow } from \"./ui\";\nimport { LitElement, TemplateResult } from \"lit\";\nimport { createCommands, CommonCommandType } from \"./common\";\nimport { CommandsFlowAdapter, FlowCommandSource } from \"./adapters\";\n\nexport type OpenCommandsOptions = {\n value?: string;\n text?: string|TemplateResult<1>;\n mode?: CommandMode;\n\toptions?: Partial<Options>;\n /** input placeholder (used when the active section does not define its own) */\n placeholder?: string;\n content: CommandSource[] | CommonCommandType;\n}\n\nexport type CommandResult = {\n\tcommand: Command;\n\tvalue?: string;\n\tid?: string;\n}\n\nexport class CommandManager {\n\n\tprivate _menu: CommandWindow;\n\tprivate _menuContainer: FloatingWindow;\n\tprivate _resolveCallback: (result: CommandResult|null) => void;\n\tprivate _adapter: CommandsFlowAdapter;\n\tprivate _commands: FlowCommandSource[] = [];\n\tprivate _origOptions: Options;\n\n\tget commands() {\n\t\treturn this._commands;\n\t}\n\t\n\tconstructor(readonly target: LitElement) { }\n\n\tclear() {\n\t\tthis._commands = [];\n\t\tthis._adapter = null;\n\t}\n\n\tadd(commands: FlowCommandSource|FlowCommandSource[]) {\n\t\tthis._commands.push(...(Array.isArray(commands) ? commands : [commands]));\n\t\tthis._adapter = null;\n\t}\n\n\tget adapter() {\n\t\tif (this._adapter) return this._adapter;\n\t\tthis._adapter = new CommandsFlowAdapter(this._commands);\n\t\treturn this._adapter;\n\t}\n\n\t/**\n\t * Settles the promise returned by the pending `open()` call, if there is one.\n\t * `null` means the menu was left without picking a command.\n\t */\n\tprivate settle(result: CommandResult|null) {\n\t\tif (this._resolveCallback) this._resolveCallback(result);\n\t\tthis._resolveCallback = null;\n\t}\n\n\tprivate _onExec = (e: CommandEvent) => {\n\t\tlog.getLogger().info(`trigger command: ${e.command.id}`);\n\t\tthis.settle({\n\t\t\tcommand: e.command,\n\t\t\tid: e.command?.id,\n\t\t\tvalue: e.value,\n\t\t});\n\n\t\tif (this.adapter.map.get(e.command.id)?.next == null) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprivate _onHide = () => {\n\t\tthis.target?.focus();\n\t\tthis.adapter?.reset();\n\t\t// the window hides itself on a click outside or on Escape - settle the pending promise\n\t\t// with 'no command' so the caller is not left waiting forever\n\t\tthis.settle(null);\n\t}\n\n\tget menu() {\n\t\treturn this._menu ?? (this._menu = dom.createElement<CommandWindow>('og-commands', {\n\t\t\tlisteners: [['command.exec', this._onExec]]\n\t\t}));\n\t}\n\t\n\tget menuContainer() {\n\t\tif (this._menuContainer) return this._menuContainer;\n\t\tthis._menuContainer = dom.createElement<FloatingWindow>('og-floating-window', {\n\t\t\tlisteners: [['hide', this._onHide]]\n\t\t});\n\t\tthis.menu.slot = 'content';\n\t\tthis._menuContainer.appendChild(this.menu);\n\t\treturn this._menuContainer;\n\t}\n\n\tasync open(options?: OpenCommandsOptions): Promise<CommandResult|null> {\n\t\tlog.getLogger().info('open menu');\n\t\tthis.settle(null); // a previous call left pending by a reopen gets an answer too\n\t\tthis.target.shadowRoot.appendChild(this.menuContainer);\n\t\tthis.menuContainer.show();\n\t\toptions ??= {content: null};\n\n\t\tthis.menu.text = options.text;\n\t\tthis.menu.value = options.value;\n\t\tthis.menu.mode = options.mode || 'search';\n\t\tthis.menu.placeholder = options.placeholder ?? '';\n\n\t\tif (!this._origOptions) this._origOptions = this.menu.options;\n\t\tif (options.options) {\n\t\t\tthis.menu.options = utils.mergeDeep({}, this._origOptions, options.options);\n\t\t} else {\n\t\t\tthis.menu.options = this._origOptions;\n\t\t}\n\n\t\tif (Array.isArray(options.content)) {\n\t\t\tthis.menu.commands = options.content;\n\t\t\tthis.menu.adapter = null;\n\t\t} else if (typeof options.content === 'string') {\n\t\t\tthis.menu.commands = createCommands(options.content);\n\t\t\tthis.menu.adapter = null;\n\t\t} else {\n\t\t\tthis.menu.commands = null;\n\t\t\tthis.menu.adapter = this.adapter;\n\t\t}\n\n\t\tawait this.menu.updateComplete;\n\t\tthis.menu.focus();\n\n\t\tthis.updatePosition();\n\n\t\treturn new Promise(resolve => {\n\t\t\tthis._resolveCallback = resolve;\n\t\t});\n\t}\n\n\tclose() {\n\t\tthis.menuContainer.hide(false); // no event - the promise is settled here\n\t\tthis.menuContainer.remove();\n\t\tthis.settle(null);\n\t\tthis.target?.focus();\n\t}\n\n\tupdatePosition() {\n\t\tdom.setSize(this.menuContainer, {w: 0.9 * this.target.clientWidth});\n\t\tdom.setCenterPosition(this.menuContainer, this.target, {horizontal: true, vertical: false});\n\t\tdom.setPosition(this.menuContainer, {t: 50});\n\t}\n\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/commands",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.106",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Command window",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"_prepublish": "yarn test && yarn lint"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@omegagrid/core": "^0.10.
|
|
31
|
-
"@omegagrid/localize": "^0.10.
|
|
32
|
-
"@omegagrid/tabs": "^0.10.
|
|
30
|
+
"@omegagrid/core": "^0.10.106",
|
|
31
|
+
"@omegagrid/localize": "^0.10.106",
|
|
32
|
+
"@omegagrid/tabs": "^0.10.106",
|
|
33
33
|
"lit": "^3.1.1",
|
|
34
34
|
"lit-html": "^3.1.1",
|
|
35
35
|
"ts-debounce": "^4.0.0"
|