@omegagrid/commands 0.10.103 → 0.10.105
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/adapters/commandsFlowAdapter.d.ts.map +1 -1
- package/dist/adapters/commandsFlowAdapter.js.map +1 -1
- package/dist/commandManager.d.ts +5 -3
- package/dist/commandManager.d.ts.map +1 -1
- package/dist/commandManager.js +9 -1
- package/dist/commandManager.js.map +1 -1
- package/dist/common.d.ts +1 -1
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +9 -0
- package/dist/common.js.map +1 -1
- package/dist/model/commands.d.ts +6 -1
- package/dist/model/commands.d.ts.map +1 -1
- package/dist/model/commands.js +4 -0
- package/dist/model/commands.js.map +1 -1
- package/dist/ui/commandWindow.d.ts +2 -2
- package/dist/ui/commandWindow.d.ts.map +1 -1
- package/dist/ui/commandWindow.js +20 -10
- package/dist/ui/commandWindow.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandsFlowAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/commandsFlowAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commandsFlowAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/commandsFlowAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC/C,IAAI,CAAC,EAAE;QACN,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACF,CAAA;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IAEvD,QAAQ,CAAC,GAAG,iCAAwC;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAc;IAEnC,OAAO,CAAC,SAAS,CAA2B;IAC5C,IAAI,QAAQ,IAGQ,iBAAiB,EAAE,CADtC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAUtC;gBAEW,QAAQ,EAAE,iBAAiB,EAAE;IAKzC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,EAAE,GAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IAM1E,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM;IAetC,KAAK;IAUL,UAAU,IAAI,OAAO,GAAC,OAAO,CAAC,OAAO,CAAC,GAAC,IAAI;CAI3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandsFlowAdapter.js","sourceRoot":"","sources":["../../src/adapters/commandsFlowAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commandsFlowAdapter.js","sourceRoot":"","sources":["../../src/adapters/commandsFlowAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult } from \"lit-html\";\nimport { CommandSource, Command, CommandMode } from \"../model/commands\";\nimport { Options } from \"../model/options\";\nimport { CommandQuery, CommandsAdapter } from \"./adapter\";\n\nexport type FlowCommandSource = CommandSource & {\n\tnext?: {\n\t\tcommands: FlowCommandSource[];\n\t\tmode?: CommandMode;\n\t\ttext?: string;\n\t};\n}\n\nexport class CommandsFlowAdapter extends CommandsAdapter {\n\n\treadonly map = new Map<string, FlowCommandSource>();\n\tprivate commandChain: Command[] = [];\n\tprivate _originalText: string|TemplateResult<1>;\n\tprivate _originalMode: CommandMode;\n\n\tprivate _commands: FlowCommandSource[] = [];\n\tget commands() {\n\t\treturn this._commands;\n\t}\n\tset commands(value: FlowCommandSource[]) {\n\t\tthis._commands = value;\n\t\tthis.map.clear();\n\t\tconst map = (commands: FlowCommandSource[]) => {\n\t\t\tcommands.forEach(c => {\n\t\t\t\tthis.map.set(c.id ?? c.name, c);\n\t\t\t\tif (c.next?.commands) map(c.next.commands);\n\t\t\t});\n\t\t};\n\t\tmap(this._commands);\n\t}\n\n\tconstructor(commands: FlowCommandSource[]) {\n\t\tsuper();\n\t\tthis.commands = commands;\n\t}\n\t\t\n\tgetCommands(query: CommandQuery): CommandSource[]|Promise<CommandSource[]> {\n\t\tconst lastCommand = this.commandChain.length ? this.commandChain[this.commandChain.length - 1] : null;\n\t\tconst nextCommands = lastCommand ? this.map.get(lastCommand.id)?.next?.commands : null;\n\t\treturn this.filterCommands(nextCommands ? nextCommands : this.commands, query);\n\t}\n\n\texec(command: Command, _value?: string) {\n\t\tconst next = this.map.get(command.id)?.next;\n\t\tif (next?.commands?.length) {\n\t\t\tthis.commandChain.push(command);\n\t\t\tif (this._originalText == null) this._originalText = this.component.text;\n\t\t\tif (this._originalMode == null) this._originalMode = this.component.mode;\n\t\t\tif (next.text != null) this.component.text = next.text;\n\t\t\tif (next.mode != null) this.component.mode = next.mode;\n\t\t} else {\n\t\t\tthis.reset();\n\t\t}\n\n\t\tthis.component.updateCommands();\n\t}\n\n\treset() {\n\t\tthis.commandChain = [];\n\t\tif (this.component) {\n\t\t\tthis.component.text = this._originalText;\n\t\t\tthis.component.mode = this._originalMode;\n\t\t}\n\t\tthis._originalText = null;\n\t\tthis._originalMode = null;\n\t}\n\n\tgetOptions(): Options|Promise<Options>|null {\n\t\treturn null;\n\t}\n\n}"]}
|
package/dist/commandManager.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { FloatingWindow } from "@omegagrid/core";
|
|
2
|
-
import { Command, CommandMode, CommandSource } from "./model";
|
|
2
|
+
import { Command, CommandMode, CommandSource, Options } from "./model";
|
|
3
3
|
import { CommandWindow } from "./ui";
|
|
4
|
-
import { LitElement } from "lit";
|
|
4
|
+
import { LitElement, TemplateResult } from "lit";
|
|
5
5
|
import { CommonCommandType } from "./common";
|
|
6
6
|
import { CommandsFlowAdapter, FlowCommandSource } from "./adapters";
|
|
7
7
|
export type OpenCommandsOptions = {
|
|
8
8
|
value?: string;
|
|
9
|
-
text?: string
|
|
9
|
+
text?: string | TemplateResult<1>;
|
|
10
10
|
mode?: CommandMode;
|
|
11
|
+
options?: Partial<Options>;
|
|
11
12
|
/** input placeholder (used when the active section does not define its own) */
|
|
12
13
|
placeholder?: string;
|
|
13
14
|
content: CommandSource[] | CommonCommandType;
|
|
@@ -25,6 +26,7 @@ export declare class CommandManager {
|
|
|
25
26
|
private _rejectCallback;
|
|
26
27
|
private _adapter;
|
|
27
28
|
private _commands;
|
|
29
|
+
private _origOptions;
|
|
28
30
|
get commands(): FlowCommandSource[];
|
|
29
31
|
constructor(target: LitElement);
|
|
30
32
|
clear(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandManager.d.ts","sourceRoot":"","sources":["../src/commandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,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;IAcd,QAAQ,CAAC,MAAM,EAAE,UAAU;IAZvC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,eAAe,CAAa;IACpC,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,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO,CAad;IAED,IAAI,IAAI,kBAIP;IAED,IAAI,aAAa,mBAWhB;IAEK,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAC,IAAI,CAAC;IAwCtE,KAAK;IAOL,cAAc;CAMd"}
|
package/dist/commandManager.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { dom, log } from "@omegagrid/core";
|
|
1
|
+
import { dom, log, utils } from "@omegagrid/core";
|
|
2
2
|
import { createCommands } from "./common";
|
|
3
3
|
import { CommandsFlowAdapter } from "./adapters";
|
|
4
4
|
export class CommandManager {
|
|
@@ -70,6 +70,14 @@ export class CommandManager {
|
|
|
70
70
|
this.menu.value = options.value;
|
|
71
71
|
this.menu.mode = options.mode || 'search';
|
|
72
72
|
this.menu.placeholder = options.placeholder ?? '';
|
|
73
|
+
if (!this._origOptions)
|
|
74
|
+
this._origOptions = this.menu.options;
|
|
75
|
+
if (options.options) {
|
|
76
|
+
this.menu.options = utils.mergeDeep({}, this._origOptions, options.options);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.menu.options = this._origOptions;
|
|
80
|
+
}
|
|
73
81
|
if (Array.isArray(options.content)) {
|
|
74
82
|
this.menu.commands = options.content;
|
|
75
83
|
this.menu.adapter = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandManager.js","sourceRoot":"","sources":["../src/commandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,GAAG,EAAE,MAAM,iBAAiB,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 _rejectCallback: () => 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\tprivate cleanCallbacks() {\n\t\tif (this._rejectCallback) this._rejectCallback();\n\t\tthis._resolveCallback = null;\n\t\tthis._rejectCallback = null;\n\t}\n\n\tprivate _onExec = (e: CommandEvent) => {\n\t\tlog.getLogger().info(`trigger command: ${e.command.id}`);\n\t\tif (this._resolveCallback) this._resolveCallback({\n\t\t\tcommand: e.command,\n\t\t\tid: e.command?.id,\n\t\t\tvalue: e.value,\n\t\t});\n\t\tthis._resolveCallback = null;\n\t\tthis._rejectCallback = null;\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\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', () => {\n\t\t\t\tthis.target?.focus();\n\t\t\t\tthis.adapter?.reset();\n\t\t\t}]]\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.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, reject) => {\n\t\t\tthis._resolveCallback = resolve;\n\t\t\tthis._rejectCallback = reject;\n\t\t});\n\t}\n\n\tclose() {\n\t\tthis.menuContainer.hide(false);\n\t\tthis.menuContainer.remove();\n\t\tthis.cleanCallbacks();\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/dist/common.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommandFunction, CommandSource } from '@omegagrid/commands';
|
|
2
|
-
export type CommonCommandType = 'yes_no' | 'apply' | 'ok';
|
|
2
|
+
export type CommonCommandType = 'yes_no' | 'apply' | 'ok' | 'save_discard_cancel' | 'discard_cancel';
|
|
3
3
|
export declare const commandFactories: Record<CommonCommandType, (exec?: CommandFunction) => CommandSource[]>;
|
|
4
4
|
export declare const createCommands: (type: CommonCommandType, exec?: CommandFunction) => CommandSource[];
|
|
5
5
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAErG,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,aAAa,EAAE,CAsBnG,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,iBAAiB,EAAE,OAAO,eAAe,KAAG,aAAa,EAE7F,CAAC"}
|
package/dist/common.js
CHANGED
|
@@ -4,6 +4,15 @@ export const commandFactories = {
|
|
|
4
4
|
{ id: 'Y', name: msg('Yes'), exec },
|
|
5
5
|
{ id: 'N', name: msg('No'), exec }
|
|
6
6
|
],
|
|
7
|
+
'save_discard_cancel': (exec) => [
|
|
8
|
+
{ id: 'save', name: msg('Save changes'), icon: { icon: 'save', color: 'var(--og-colortype-green-background-color)' }, exec },
|
|
9
|
+
{ id: 'discard', name: msg('Discard changes'), icon: { icon: 'trash', color: 'var(--og-colortype-red-background-color)' }, exec },
|
|
10
|
+
{ id: 'cancel', name: msg('Cancel'), icon: 'times', exec }
|
|
11
|
+
],
|
|
12
|
+
'discard_cancel': (exec) => [
|
|
13
|
+
{ id: 'discard', name: msg('Discard changes'), icon: { icon: 'trash', color: 'var(--og-colortype-red-background-color)' }, exec },
|
|
14
|
+
{ id: 'cancel', name: msg('Cancel'), icon: 'times', exec }
|
|
15
|
+
],
|
|
7
16
|
'apply': (exec) => [
|
|
8
17
|
{ id: 'apply', name: msg('Apply'), exec },
|
|
9
18
|
{ id: 'cancel', name: msg('Cancel'), exec }
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI1C,MAAM,CAAC,MAAM,gBAAgB,GAA2E;IACvG,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,EAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAC;QACjC,EAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC;KAChC;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,EAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAC;QACvC,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAC;KACzC;IACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;QAC5B,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAC;KACzC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAuB,EAAE,IAAsB,EAAmB,EAAE;IAClG,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC","sourcesContent":["import { CommandFunction, CommandSource } from '@omegagrid/commands';\nimport { msg } from '@omegagrid/localize';\n\nexport type CommonCommandType = 'yes_no' | 'apply' | 'ok';\n\nexport const commandFactories: Record<CommonCommandType, (exec?: CommandFunction) => CommandSource[]> = {\n\t'yes_no': (exec) => [\n\t\t{id: 'Y', name: msg('Yes'), exec},\n\t\t{id: 'N', name: msg('No'), exec}\n\t],\n\t'apply': (exec) => [\n\t\t{id: 'apply', name: msg('Apply'), exec},\n\t\t{id: 'cancel', name: msg('Cancel'), exec}\n\t],\n\t'ok': (exec) => [\n\t\t{id: 'ok', name: 'OK', exec},\n\t\t{id: 'cancel', name: msg('Cancel'), exec}\n\t]\n};\n\nexport const createCommands = (type: CommonCommandType, exec?: CommandFunction): CommandSource[] => {\n\treturn commandFactories[type](exec);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI1C,MAAM,CAAC,MAAM,gBAAgB,GAA2E;IACvG,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,EAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAC;QACjC,EAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC;KAChC;IACD,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,EAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,4CAA4C,EAAC,EAAE,IAAI,EAAC;QACxH,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,0CAA0C,EAAC,EAAE,IAAI,EAAC;QAC7H,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC;KACxD;IACD,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3B,EAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,0CAA0C,EAAC,EAAE,IAAI,EAAC;QAC7H,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC;KACxD;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,EAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAC;QACvC,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAC;KACzC;IACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;QAC5B,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAC;KACzC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAuB,EAAE,IAAsB,EAAmB,EAAE;IAClG,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC","sourcesContent":["import { CommandFunction, CommandSource } from '@omegagrid/commands';\nimport { msg } from '@omegagrid/localize';\n\nexport type CommonCommandType = 'yes_no' | 'apply' | 'ok' | 'save_discard_cancel' | 'discard_cancel';\n\nexport const commandFactories: Record<CommonCommandType, (exec?: CommandFunction) => CommandSource[]> = {\n\t'yes_no': (exec) => [\n\t\t{id: 'Y', name: msg('Yes'), exec},\n\t\t{id: 'N', name: msg('No'), exec}\n\t],\n\t'save_discard_cancel': (exec) => [\n\t\t{id: 'save', name: msg('Save changes'), icon: {icon: 'save', color: 'var(--og-colortype-green-background-color)'}, exec},\n\t\t{id: 'discard', name: msg('Discard changes'), icon: {icon: 'trash', color: 'var(--og-colortype-red-background-color)'}, exec},\n\t\t{id: 'cancel', name: msg('Cancel'), icon: 'times', exec}\n\t],\n\t'discard_cancel': (exec) => [\n\t\t{id: 'discard', name: msg('Discard changes'), icon: {icon: 'trash', color: 'var(--og-colortype-red-background-color)'}, exec},\n\t\t{id: 'cancel', name: msg('Cancel'), icon: 'times', exec}\n\t],\n\t'apply': (exec) => [\n\t\t{id: 'apply', name: msg('Apply'), exec},\n\t\t{id: 'cancel', name: msg('Cancel'), exec}\n\t],\n\t'ok': (exec) => [\n\t\t{id: 'ok', name: 'OK', exec},\n\t\t{id: 'cancel', name: msg('Cancel'), exec}\n\t]\n};\n\nexport const createCommands = (type: CommonCommandType, exec?: CommandFunction): CommandSource[] => {\n\treturn commandFactories[type](exec);\n};\n"]}
|
package/dist/model/commands.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CustomProperties, IconSpec } from "@omegagrid/core";
|
|
2
2
|
import { TabItem } from "@omegagrid/tabs";
|
|
3
|
+
import { CommandRenderer } from "../ui";
|
|
3
4
|
export type CommandSectionSwitch = {
|
|
4
5
|
key: string;
|
|
5
6
|
value: string;
|
|
@@ -11,7 +12,7 @@ export type CommandsSection = TabItem & {
|
|
|
11
12
|
triggerCommand?: string;
|
|
12
13
|
switches?: CommandSectionSwitch[];
|
|
13
14
|
};
|
|
14
|
-
export type CommandMode = 'search' | 'input' | 'none';
|
|
15
|
+
export type CommandMode = 'search' | 'input' | 'none' | 'menu';
|
|
15
16
|
export type CommandInput = {
|
|
16
17
|
id: string;
|
|
17
18
|
value?: string;
|
|
@@ -22,7 +23,9 @@ export type CommandSource = {
|
|
|
22
23
|
name?: string;
|
|
23
24
|
value?: string;
|
|
24
25
|
group?: string;
|
|
26
|
+
icon?: IconSpec | string;
|
|
25
27
|
exec?: CommandFunction;
|
|
28
|
+
renderer?: CommandRenderer;
|
|
26
29
|
props?: CustomProperties;
|
|
27
30
|
};
|
|
28
31
|
export declare class Command {
|
|
@@ -30,6 +33,8 @@ export declare class Command {
|
|
|
30
33
|
name: string;
|
|
31
34
|
group: string;
|
|
32
35
|
props: CustomProperties;
|
|
36
|
+
renderer?: CommandRenderer;
|
|
37
|
+
icon?: IconSpec | string;
|
|
33
38
|
private _exec;
|
|
34
39
|
constructor(source?: CommandSource);
|
|
35
40
|
populate(source: CommandSource): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/model/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAS,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/model/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/model/commands.js
CHANGED
|
@@ -10,6 +10,8 @@ export class Command {
|
|
|
10
10
|
this.group = source.group || 'default';
|
|
11
11
|
this._exec = source.exec;
|
|
12
12
|
this.props = source.props;
|
|
13
|
+
this.renderer = source.renderer;
|
|
14
|
+
this.icon = source.icon;
|
|
13
15
|
}
|
|
14
16
|
getSourceData() {
|
|
15
17
|
return {
|
|
@@ -18,6 +20,8 @@ export class Command {
|
|
|
18
20
|
group: this.group,
|
|
19
21
|
props: this.props,
|
|
20
22
|
exec: this._exec,
|
|
23
|
+
renderer: this.renderer,
|
|
24
|
+
icon: this.icon,
|
|
21
25
|
};
|
|
22
26
|
}
|
|
23
27
|
exec(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/model/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/model/commands.ts"],"names":[],"mappings":"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","sourcesContent":["import { CustomProperties, IconSpec, utils } from \"@omegagrid/core\";\nimport { TabItem } from \"@omegagrid/tabs\";\nimport { CommandRenderer } from \"../ui\";\n\nexport type CommandSectionSwitch = {\n\tkey: string,\n\tvalue: string,\n\tchecked?: boolean,\n\ticon?: IconSpec|string,\n}\n\nexport type CommandsSection = TabItem & {\n\tplaceholder?: string,\n\ttriggerCommand?: string,\n\tswitches?: CommandSectionSwitch[],\n}\n\nexport type CommandMode = 'search' | 'input' | 'none' | 'menu';\nexport type CommandInput = {id: string, value?: string};\nexport type CommandFunction = (command: Command, value?: string) => void|Promise<void>;\n\t\nexport type CommandSource = {\n\tid?: string;\n\tname?: string;\n\tvalue?: string;\n\tgroup?: string;\n\ticon?: IconSpec|string;\n\texec?: CommandFunction;\n\trenderer?: CommandRenderer;\n\tprops?: CustomProperties;\n}\n\nexport class Command {\n\n\tid: string;\n\tname: string;\n\tgroup: string;\n\tprops: CustomProperties;\n\trenderer?: CommandRenderer;\n\ticon?: IconSpec|string;\n\n\tprivate _exec: CommandFunction;\n\n\tconstructor(source?: CommandSource) {\n\t\tif (source) this.populate(source);\n\t}\n\n\tpopulate(source: CommandSource) {\n\t\tthis.id = source.id || source.name;\n\t\tthis.name = source.name || source.id;\n\t\tthis.group = source.group || 'default';\n\t\tthis._exec = source.exec;\n\t\tthis.props = source.props;\n\t\tthis.renderer = source.renderer;\n\t\tthis.icon = source.icon;\n\t}\n\n\tgetSourceData(): CommandSource {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tname: this.name,\n\t\t\tgroup: this.group,\n\t\t\tprops: this.props,\n\t\t\texec: this._exec,\n\t\t\trenderer: this.renderer,\n\t\t\ticon: this.icon,\n\t\t};\n\t}\n\n\texec(value?: string) {\n\t\treturn this._exec ? this._exec(this, value) : null;\n\t}\n\n}\n\nexport type CommandGroupSource = {\n\tid: string,\n\tname?: string\n\tcommands?: CommandSource[];\n}\n\nexport class CommandGroup {\n\n\tpublic readonly commands = new Map<string, Command>();\n\tpublic readonly id: string;\n\tpublic readonly name: string;\n\tpublic open = true;\n\n\tconstructor(source: CommandGroupSource) {\n\t\tthis.id = source.id || source.name;\n\t\tthis.name = source.name || source.id;\n\t\tsource.commands?.forEach(c => this.addCommand(c));\n\t}\n\n\taddCommand(command: Command|CommandSource) {\n\t\tconst cmd = command instanceof Command ? command : new Command(command);\n\t\tthis.commands.set(cmd.id, cmd);\n\t}\n\n\tgetSourceData(): CommandGroupSource {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tname: this.name,\n\t\t\tcommands: Array.from([...this.commands].map(([_, c]) => c.getSourceData())),\n\t\t};\n\t}\n\n}\n\nexport class Commands {\n\t\n\tpublic readonly groups = new Map<string, CommandGroup>();\n\n\tget count() {\n\t\tlet cnt = 0;\n\t\tthis.groups.forEach(group => cnt += group.commands.size);\n\t\treturn cnt;\n\t}\n\n\tconstructor(commands?: CommandSource[]) {\n\t\tif (commands) commands.forEach(c => this.register(c));\n\t}\n\n\tclear() {\n\t\tthis.groups.clear();\n\t\treturn this;\n\t}\n\n\tregisterGroup(group: CommandGroupSource) {\n\t\tconst g = this.groups.has(group.id) ? this.groups.get(group.id) : new CommandGroup(group);\n\t\tgroup.commands?.forEach(c => g.commands.set(c.id, new Command(c)));\n\t\tthis.groups.set(g.id, g);\n\t\treturn g;\n\t}\n\n\tremoveSection(sectionId: string) {\n\t\tthis.groups.delete(sectionId);\n\t}\n\t\n\tregister(command: Command|CommandSource) {\n\t\tconst groupId = command.group || 'default';\n\t\tconst group = this.groups.get(groupId) || this.registerGroup({id: groupId, name: groupId});\n\t\tgroup.addCommand(command);\n\t}\n\n\tremove(name: string) {\n\t\tthis.groups.forEach(group => group.commands.delete(name));\n\t}\n\n\tget(name: string) {\n\t\tfor (const group of this.groups.values()) {\n\t\t\tif (group.commands.has(name)) return group.commands.get(name);\n\t\t}\n\t\treturn null;\n\t}\n\n\texec(id: string, value?: string) {\n\t\treturn this.get(id)?.exec(value);\n\t}\n\n\tfilter(term?: string, includeGroups = false, emptyGroups = false): (CommandGroup|Command)[] {\n\t\tconst items: (CommandGroup|Command)[] = [];\n\t\tconst regex = term == null ? null : new RegExp(utils.escapeRegExp(term), 'ig');\n\t\tfor (const group of this.groups.values()) {\n\t\t\tlet groupIncluded = false;\n\t\t\tconst groupMatch = regex ? regex.test(group.name) : true;\n\t\t\tif (groupMatch && emptyGroups) {\n\t\t\t\tif (includeGroups) {\n\t\t\t\t\titems.push(group);\n\t\t\t\t}\n\t\t\t\tgroupIncluded = true;\n\t\t\t}\n\n\t\t\tif (group.open) {\n\t\t\t\tgroup.commands.forEach(command => {\n\t\t\t\t\tif (groupMatch || regex.test(command.name)) {\n\t\t\t\t\t\tif (includeGroups && !groupIncluded) {\n\t\t\t\t\t\t\titems.push(group);\n\t\t\t\t\t\t\tgroupIncluded = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\titems.push(command);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn items;\n\t}\n\n\t// merge(commands: Commands): Commands {\n\t// \tconst mergedCommands = new Commands();\n\t// \tthis.groups.forEach(g => mergedCommands.registerGroup(g.getSourceData()));\n\t// \tcommands.groups.forEach(g => mergedCommands.registerGroup(g.getSourceData()));\n\t// \treturn mergedCommands;\n\t// }\n\n}"]}
|
|
@@ -24,7 +24,7 @@ export declare class CommandWindow extends LitElement {
|
|
|
24
24
|
value: string;
|
|
25
25
|
sectionPosition: 'top' | 'bottom' | 'left' | 'right';
|
|
26
26
|
dropdownWidth: number;
|
|
27
|
-
text: string
|
|
27
|
+
text: string | TemplateResult<1>;
|
|
28
28
|
commands: CommandSource[];
|
|
29
29
|
adapter: CommandsAdapter;
|
|
30
30
|
target: HTMLElement;
|
|
@@ -48,7 +48,7 @@ export declare class CommandWindow extends LitElement {
|
|
|
48
48
|
value: string;
|
|
49
49
|
};
|
|
50
50
|
get filterValue(): string;
|
|
51
|
-
|
|
51
|
+
getCommandRenderer(index: number): CommandRenderer;
|
|
52
52
|
get groupRenderer(): GroupRenderer;
|
|
53
53
|
exec(dispatchEvent?: boolean): Promise<void>;
|
|
54
54
|
_onKeyDown: (e: KeyboardEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandWindow.d.ts","sourceRoot":"","sources":["../../src/ui/commandWindow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAe,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACrH,OAAO,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAe,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,eAAe,EAAqB,MAAM,iBAAiB,CAAC;AACzJ,OAAO,EAAE,UAAU,EAAQ,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAKvE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,qBAAa,YAAa,SAAQ,KAAK;IAEtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;gBAEvB,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAItD;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,uBAAuB,KAAK,MAAM,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClJ,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,uBAAuB,KAAK,MAAM,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"commandWindow.d.ts","sourceRoot":"","sources":["../../src/ui/commandWindow.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/commandWindow.js
CHANGED
|
@@ -20,7 +20,12 @@ export class CommandEvent extends Event {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
const DEFAULT_COMMAND_RENDERER = (_div, command) => {
|
|
23
|
-
return html
|
|
23
|
+
return html `
|
|
24
|
+
<div class="command">
|
|
25
|
+
${command.icon ? html `<og-icon .icon="${command.icon}" style="margin-right: 8px;"></og-icon>` : ''}
|
|
26
|
+
${command.name}
|
|
27
|
+
</div>
|
|
28
|
+
`;
|
|
24
29
|
};
|
|
25
30
|
const DEFAULT_GROUP_RENDERER = (_div, group) => {
|
|
26
31
|
return html `
|
|
@@ -53,8 +58,11 @@ let CommandWindow = class CommandWindow extends LitElement {
|
|
|
53
58
|
get filterValue() {
|
|
54
59
|
return this.mode == 'search' ? this.parsedInput?.value ?? '' : '';
|
|
55
60
|
}
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
getCommandRenderer(index) {
|
|
62
|
+
const command = this.visibleItems[index];
|
|
63
|
+
if (command instanceof Command && command.renderer)
|
|
64
|
+
return command.renderer;
|
|
65
|
+
return command.renderer || this.options?.commandRenderer || DEFAULT_COMMAND_RENDERER;
|
|
58
66
|
}
|
|
59
67
|
get groupRenderer() {
|
|
60
68
|
return this.options?.groupRenderer || DEFAULT_GROUP_RENDERER;
|
|
@@ -167,17 +175,18 @@ let CommandWindow = class CommandWindow extends LitElement {
|
|
|
167
175
|
}
|
|
168
176
|
}
|
|
169
177
|
else {
|
|
170
|
-
this.input
|
|
178
|
+
if (this.input)
|
|
179
|
+
this.input.value = '';
|
|
171
180
|
if (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {
|
|
172
181
|
this.toggleGroup(item.id);
|
|
173
182
|
}
|
|
174
183
|
}
|
|
175
|
-
setTimeout(() => this.input
|
|
184
|
+
setTimeout(() => this.input?.focus());
|
|
176
185
|
};
|
|
177
186
|
this._itemRenderer = (div, index, opts) => {
|
|
178
187
|
return this.visibleItems[index] instanceof CommandGroup
|
|
179
188
|
? this.groupRenderer(div, this.visibleItems[index], opts)
|
|
180
|
-
: this.
|
|
189
|
+
: this.getCommandRenderer(index)(div, this.visibleItems[index], opts);
|
|
181
190
|
};
|
|
182
191
|
this._updateToken = 0;
|
|
183
192
|
this.renderTabs = () => this.sections?.length > 1 ? html `
|
|
@@ -240,7 +249,7 @@ let CommandWindow = class CommandWindow extends LitElement {
|
|
|
240
249
|
</div>
|
|
241
250
|
` : '';
|
|
242
251
|
this.render = () => html `
|
|
243
|
-
<div class="input">
|
|
252
|
+
<div class="input" style="${styleMap(this.mode == 'menu' ? { maxHeight: '0', overflow: 'hidden', padding: '0' } : {})}">
|
|
244
253
|
${this.sectionPosition == 'left' ? this.renderDropdown() : ''}
|
|
245
254
|
|
|
246
255
|
<input
|
|
@@ -250,7 +259,7 @@ let CommandWindow = class CommandWindow extends LitElement {
|
|
|
250
259
|
.value="${this.value ?? ''}">
|
|
251
260
|
|
|
252
261
|
${this.sectionPosition == 'right' ? this.renderDropdown() : ''}
|
|
253
|
-
</div>
|
|
262
|
+
</div>
|
|
254
263
|
|
|
255
264
|
${this.sectionPosition != 'bottom' ? this.renderControls() : ''}
|
|
256
265
|
|
|
@@ -292,7 +301,8 @@ let CommandWindow = class CommandWindow extends LitElement {
|
|
|
292
301
|
this.input?.focus();
|
|
293
302
|
}
|
|
294
303
|
clearFilter(updateCommands = true) {
|
|
295
|
-
this.input
|
|
304
|
+
if (this.input)
|
|
305
|
+
this.input.value = '';
|
|
296
306
|
this.focus();
|
|
297
307
|
if (updateCommands)
|
|
298
308
|
this.updateCommands();
|
|
@@ -455,7 +465,7 @@ __decorate([
|
|
|
455
465
|
property({ type: Number })
|
|
456
466
|
], CommandWindow.prototype, "dropdownWidth", void 0);
|
|
457
467
|
__decorate([
|
|
458
|
-
property(
|
|
468
|
+
property()
|
|
459
469
|
], CommandWindow.prototype, "text", void 0);
|
|
460
470
|
__decorate([
|
|
461
471
|
property({ type: Array })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandWindow.js","sourceRoot":"","sources":["../../src/ui/commandWindow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Commands, Command, CommandGroup, CommandsSection, initOptions, CommandMode, CommandSource } from \"../model\";\nimport { CommandsAdapter} from \"../adapters\";\nimport { Button, dom, DropdownList, events, List, ListItemRenderer, ListItemRendererOptions, ListSelectEvent, ListSelectTrigger } from \"@omegagrid/core\";\nimport { LitElement, html, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { debounce } from \"ts-debounce\";\nimport { style, itemStyle } from \"./commandWindow.style\";\nimport { styleMap } from \"lit-html/directives/style-map.js\";\nimport { TabEvent } from \"@omegagrid/tabs\";\nimport { msg } from \"@omegagrid/localize\";\n\nexport class CommandEvent extends Event {\n\n\treadonly command?: Command;\n\treadonly value?: string;\n\treadonly section?: CommandsSection;\n\n\tconstructor(type: string, args?: Partial<CommandEvent>) {\n\t\tsuper(`command.${type}`, {bubbles: true, composed: true})\n\t\tif (args) Object.assign(this, args);\n\t}\n}\n\nexport type CommandRenderer = (div: HTMLDivElement, command: Command, opts?: ListItemRendererOptions) => string | void | TemplateResult<1> | null;\nexport type GroupRenderer = (div: HTMLDivElement, group: CommandGroup, opts?: ListItemRendererOptions) => string | void | TemplateResult<1> | null;\n\nconst DEFAULT_COMMAND_RENDERER: CommandRenderer = (_div: HTMLDivElement, command: Command) => {\n\treturn html`<div class=\"command\">${command.name}</div>`;\n};\n\nconst DEFAULT_GROUP_RENDERER: GroupRenderer = (_div: HTMLDivElement, group: CommandGroup) => {\n\treturn html`\n\t\t<div class=\"group\" @mousedown=\"${(e: MouseEvent) => e.preventDefault()}\">\n\t\t\t<div class=\"group-toggle\">\n\t\t\t\t<og-icon icon=\"angle-${group.open ? 'down' : 'right'}\"></og-icon>\n\t\t\t</div>\n\n\t\t\t<div class=\"group-text\">\n\t\t\t\t${group.name}\n\t\t\t</div>\n\t\t</div>\n\t`;\n};\n\n@customElement('og-commands')\nexport class CommandWindow extends LitElement {\n\n\tstatic styles = [style];\n\n\tprivate visibleItems: (Command|CommandGroup)[];\n\n\t@property({type: Object})\n\toptions = initOptions();\n\n\t/**\n\t * search = commands are filtered by input value\n\t * input = commands are not filtered, input is used to enter custom value\n\t * none = no input, only command list is shown\n\t */\n\t@property({type: String})\n\tmode: CommandMode = 'search';\n\n\t@property({type: String})\n\tvalue: string;\n\n\t@property({type: String, reflect: true})\n\tsectionPosition: 'top'|'bottom'|'left'|'right' = 'right';\n\n\t@property({type: Number})\n\tdropdownWidth = 100;\n\n\t@property({type: String})\n\ttext: string;\n\n\t@property({type: Array})\n\tcommands: CommandSource[];\n\n\t@property({type: Object})\n\tadapter: CommandsAdapter;\n\n\t@property({type: Object})\n\ttarget: HTMLElement;\n\n\t/** default input placeholder, sections can override it with their own */\n\t@property({type: String})\n\tplaceholder = '';\n\n\t/** currently displayed placeholder (section placeholder or the default one) */\n\t@state()\n\tactivePlaceholder = '';\n\n\t@property({type: Boolean})\n\tshowGroups = false\n\n\t@property({type: Object})\n\tmodel = new Commands();\n\n\t@state()\n\tsections: CommandsSection[] = [{id: 'default'}];\n\n\t@state()\n\tactiveSectionIndex = 0;\n\n\t@state()\n\tnoResults = false;\n\n\t@query('.list')\n\tlistWrapper: HTMLDivElement;\n\n\t@query('og-list')\n\tlist: List;\n\n\t@query('input')\n\tinput: HTMLInputElement;\n\n\t@query('og-dropdown-list')\n\tdropdown: DropdownList;\n\n\tget activeSection() { return this.sections?.[this.activeSectionIndex] }\n\n\tget inputValue() { return this.input?.value ?? '' }\n\tget parsedInput() {\n\t\tconst input = this.inputValue;\n\t\tconst chunks = input.split(' ', 2);\n\t\tif (chunks.length > 1) {\n\t\t\tconst section = (this.sections ?? []).findIndex(s => s?.triggerCommand == chunks[0]);\n\t\t\tconst value = section > -1 ? chunks[1] ?? '' : input;\n\t\t\treturn { section, value };\n\t\t} else {\n\t\t\treturn { section: -1, value: input};\n\t\t}\n\t}\n\n\tget filterValue() {\n\t\treturn this.mode == 'search' ? this.parsedInput?.value ?? '' : '';\n\t}\n\n\tget commandRenderer(): CommandRenderer {\n\t\treturn this.options?.commandRenderer || DEFAULT_COMMAND_RENDERER;\n\t}\n\n\tget groupRenderer(): GroupRenderer {\n\t\treturn this.options?.groupRenderer || DEFAULT_GROUP_RENDERER;\n\t}\n\n\tasync exec(dispatchEvent = true) {\n\t\tconst input = this.parsedInput;\n\t\tconst command = this.visibleItems[this.list.selectedIndex];\n\n\t\tif (!(command instanceof Command)) return;\n\n\t\tthis.clearFilter(false);\n\n\t\tcommand.exec(input.value);\n\t\tif (this.adapter) {\n\t\t\tthis.adapter.exec(command, input.value);\n\t\t}\n\n\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('exec', {\n\t\t\tcommand: command,\n\t\t\tsection: this.sections.find(s => s.id === input.section),\n\t\t\tvalue: input.value\n\t\t}));\n\t}\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.key != 'Escape') e.stopPropagation();\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.visibleItems[this.list.selectedIndex] instanceof CommandGroup)\n\t\t\t\t\tthis.toggleGroup((this.visibleItems[this.list.selectedIndex] as CommandGroup).id);\n\t\t\t\telse this.exec();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_debounceInput = debounce(() => {\n\t\tif (this.mode == 'search') {\n\t\t\tconst input = this.parsedInput;\n\t\t\tif (input.section > -1) {\n\t\t\t\tthis.activeSectionIndex = input.section;\n\t\t\t\tthis.input.value = '';\n\t\t\t\tthis.updateCommands(true);\n\t\t\t} else {\n\t\t\t\tthis.updateCommands();\n\t\t\t}\n\t\t} else if (this.mode == 'none') { // online highlight first match\n\t\t\tconst input = this.parsedInput;\n\t\t\tconst commands = this.model.filter(input.value, false) as Command[];\n\t\t\tif (commands.length > 0) {\n\t\t\t\tconst index = this.visibleItems.findIndex(item => item instanceof Command && item.id === commands[0].id);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tthis.list.selectedIndex = index;\n\t\t\t\t\tthis.list.renderItems(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, this.options.inputDelay);\n\n\t_onInput = (e: InputEvent) => {\n\t\te.stopPropagation();\n\t\tthis._debounceInput();\n\t}\n\n\t_onSectionSelect = async (e: TabEvent) => {\n\t\tif (this.activeSectionIndex == e.index) return;\n\t\tthis.activeSectionIndex = e.index;\n\t\tthis.updateCommands(true);\n\t\tthis.focus();\n\t}\n\n\t_onDropdownChange = async (_e: events.ChangeEvent) => {\n\t\tthis.activeSectionIndex = this.sections.findIndex(s => s.id === this.dropdown.value);\n\t\tthis.updateCommands(true);\n\t\tthis.focus();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', e => e.stopPropagation());\n\t\tthis.addEventListener('keydown', this._onKeyDown);\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\tfocus() {\n\t\tthis.input?.focus();\n\t}\n\n\tclearFilter(updateCommands = true) {\n\t\tthis.input.value = '';\n\t\tthis.focus();\n\t\tif (updateCommands) this.updateCommands();\n\t}\n\n\tasync willUpdate(props: PropertyValues) {\n\t\tif (props.has('adapter') && this.adapter) {\n\t\t\tthis.adapter.attach(this);\n\t\t\tconst sections = await this.adapter.getSections();\n\t\t\tconst options = await this.adapter.getOptions(sections?.length ? sections[0].id : null);\n\t\t\tthis.sections = sections;\n\t\t\tif (options) this.options = initOptions(options);\n\t\t} else {\n\t\t\tif (props.has('commands') && this.commands) {\n\t\t\t\tthis.model.clear();\n\t\t\t\tthis.commands.forEach(c => this.model.register(c));\n\t\t\t}\n\n\t\t\tif (props.has('options')) {\n\t\t\t\tthis.options = initOptions(this.options);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (['commands', 'adapter', 'model', 'activeSectionIndex'].some(p => props.has(p))) {\n\t\t\tawait this.updateCommands(true);\n\t\t}\n\t}\n\n\t_onSelect = (e: ListSelectEvent) => {\n\t\tconst item = this.visibleItems[e.index];\n\t\tif (item instanceof Command) {\n\t\t\tif (this.mode == 'search') this.input.value = item.name;\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.exec();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.input.value = '';\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.toggleGroup((item as CommandGroup).id);\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(() => this.input.focus());\n\t}\n\n\t_itemRenderer: ListItemRenderer = (div: HTMLDivElement, index: number, opts?: ListItemRendererOptions) => {\n\t\treturn this.visibleItems[index] instanceof CommandGroup\n\t\t\t? this.groupRenderer(div, this.visibleItems[index] as CommandGroup, opts)\n\t\t\t: this.commandRenderer(div, this.visibleItems[index] as Command, opts);\n\t}\n\n\tprivate _updateToken = 0;\n\n\tasync updateCommands(updateOptions = false) {\n\t\tif (this.adapter) {\n\t\t\tthis.model.clear();\n\t\t\tconst switches = this.activeSection?.switches?.filter(s => s.checked).map(s => s.key) || [];\n\n\t\t\tif (updateOptions) {\n\t\t\t\tconst options = await this.adapter.getOptions(this.activeSection?.id);\n\t\t\t\tthis.options = initOptions(options);\n\t\t\t}\n\n\t\t\tthis._updateToken++; // prevents race conditions when multiple requests are made in quick succession\n\t\t\tconst updateToken = this._updateToken;\n\n\t\t\tconst [groups, commands] = (await Promise.all([this.adapter.getGroups({\n\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\tfilter: this.filterValue,\n\t\t\t\tswitches\n\t\t\t}), this.adapter.getCommands({\n\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\tfilter: this.filterValue,\n\t\t\t\tswitches\n\t\t\t})]));\n\n\t\t\tif (updateToken != this._updateToken) return;\n\n\t\t\tgroups?.forEach(group => this.model.registerGroup(group));\n\t\t\tcommands?.forEach(command => this.model.register(command));\n\t\t\tthis.visibleItems = this.model.filter(null, this.showGroups, true);\n\t\t} else {\n\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups);\n\t\t}\n\n\t\tthis.activePlaceholder = this.activeSection?.placeholder || this.placeholder || '';\n\t\tthis.list.reset();\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.list.selectedIndex = this.visibleItems.findIndex(item => item instanceof Command) ?? 0;\n\t\tthis.list.renderItems(true);\n\t\tthis.noResults = this.visibleItems.length == 0;\n\t}\n\n\tasync toggleGroup(groupId: string) {\n\t\tconst group = this.model.groups.get(groupId);\n\t\tthis.list.reset();\n\n\t\tif (group.open) {\n\t\t\tgroup.open = false;\n\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups, true);\n\t\t\tthis.list.size = this.visibleItems.length;\n\t\t} else {\n\t\t\tgroup.open = true;\n\t\t\tif (this.adapter) {\n\t\t\t\tconst commands = (await Promise.all([this.adapter.getCommands({\n\t\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\t\tgroupId,\n\t\t\t\t\tfilter: this.filterValue\n\t\t\t\t})]))[0];\n\n\t\t\t\tif (commands.length > 0) {\n\t\t\t\t\tgroup.commands.clear();\n\t\t\t\t\tcommands.forEach(c => {\n\t\t\t\t\t\tif (!c.group || c.group == groupId) group.addCommand(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.visibleItems = this.model.filter(null, this.showGroups, true);\n\t\t\t} else {\n\t\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups, true);\n\t\t\t}\n\t\t}\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.requestUpdate();\n\t}\n\n\tasync toggleCollapse() {\n\t\tconst open = this.isCollapsed;\n\t\tconst groups = [...this.model.groups.values()];\n\t\tthis.list.reset();\n\n\t\tif (open && this.adapter) {\n\t\t\t// load commands of groups that are being opened, same as in toggleGroup\n\t\t\tawait Promise.all(groups.filter(g => !g.open).map(async group => {\n\t\t\t\tconst commands = await this.adapter.getCommands({\n\t\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\t\tgroupId: group.id,\n\t\t\t\t\tfilter: this.filterValue\n\t\t\t\t});\n\n\t\t\t\tif (commands?.length > 0) {\n\t\t\t\t\tgroup.commands.clear();\n\t\t\t\t\tcommands.forEach(c => {\n\t\t\t\t\t\tif (!c.group || c.group == group.id) group.addCommand(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\n\t\tgroups.forEach(g => g.open = open);\n\n\t\tthis.visibleItems = this.adapter\n\t\t\t? this.model.filter(null, this.showGroups, true)\n\t\t\t: this.model.filter(this.filterValue, this.showGroups, true);\n\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.list.selectedIndex = Math.max(0, this.visibleItems.findIndex(item => item instanceof Command));\n\t\tthis.list.renderItems(true);\n\t\tthis.requestUpdate(); // visibleItems is not reactive, refresh collapse button icon\n\t\tthis.focus();\n\t}\n\n\tprivate getSectionTitle(section: CommandsSection) {\n\t\treturn (section.title ?? section.id) + (section.triggerCommand ? ` (${section.triggerCommand})` : '');\n\t}\n\n\tlayout() {\n\t\tif (!this.listWrapper) return;\n\n\t\tthis.listWrapper.style.transition = `flex-basis 0.2s ease-in-out`;\n\t\tthis.listWrapper.style.flexBasis = dom.px(this.list.offsetHeight);\n\t\tdom.setSize(this.listWrapper, {h: this.list.offsetHeight});\n\t}\n\n\tget hasControls() {\n\t\treturn this.activeSection?.switches?.length > 0 || this.options.collapseToggle;\n\t}\n\n\trenderTabs = () => this.sections?.length > 1 ? html`\n\t\t<og-container\n\t\t\t.horizontalSliderPosition=\"${this.sectionPosition == 'top' ? 'bottom' : 'top'}\"\n\t\t\tscrollMode=\"horizontal\"\n\t\t\tsliderSize=\"4\">\n\t\t\t<og-tabs\n\t\t\t\tslot=\"content\"\n\t\t\t\tclass=\"tabs\"\n\t\t\t\ttabSize=\"stretch\"\n\t\t\t\ttabAlign=\"center\"\n\t\t\t\tstyle=\"${styleMap({borderTop: this.sectionPosition == 'bottom' ? '1px solid var(--og-border)' : ''})}\"\n\t\t\t\t@tab.select=\"${this._onSectionSelect}\"\n\t\t\t\t.position=\"${this.sectionPosition == 'top' ? 'top' : 'bottom'}\"\n\t\t\t\t.selectedIndex=\"${this.activeSectionIndex}\"\n\t\t\t\t.items=\"${this.sections.map(section => ({...section, title: this.getSectionTitle(section)}))}\">\n\t\t\t</og-tabs>\n\t\t</og-container>\n\t` : ''\n\n\trenderDropdown = () => this.sections?.length > 1 ? html`\n\t\t<og-dropdown-list\n\t\t\tstyle=\"${styleMap({flex: `0 0 ${this.dropdownWidth}px`})}\"\n\t\t\tcolor=\"transparent\"\n\t\t\t.value=\"${this.activeSection?.id}\"\n\t\t\t@change=\"${this._onDropdownChange}\"\n\t\t\t.items=\"${this.sections.map(section => ({\n\t\t\t\tk: section.id as string,\n\t\t\t\tv: this.getSectionTitle(section),\n\t\t\t\ticon: section.icon\n\t\t\t}))}\">\n\t\t</og-dropdown-list>\n\t` : '';\n\n\tget isCollapsed() {\n\t\tif (!(this.visibleItems?.[0] instanceof CommandGroup)) return false;\n\t\treturn !this.visibleItems[0].open;\n\t}\n\n\trenderControls = () => this.hasControls ? html`\n\t\t<div class=\"controls\">\n\t\t\t<div class=\"switches\">\n\t\t\t\t${this.activeSection?.switches?.map((s) => html`\n\t\t\t\t\t<og-button\n\t\t\t\t\t\ttype=\"toggle\"\n\t\t\t\t\t\t.text=\"${s.value}\"\n\t\t\t\t\t\t.state=\"${s.checked ? 'checked' : 'unchecked'}\"\n\t\t\t\t\t\t@click=\"${(e: PointerEvent) => {\n\t\t\t\t\t\t\ts.checked = (e.target as Button).state === 'checked';\n\t\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\t\tthis.updateCommands();\n\t\t\t\t\t\t}}\">\n\t\t\t\t\t</og-button>\n\t\t\t\t`)}\n\t\t\t</div>\n\n\t\t\t${this.options.collapseToggle && this.visibleItems?.[0] ? html`\n\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t<og-button\n\t\t\t\t\t\tcolor=\"transparent\"\n\t\t\t\t\t\t.icon=\"${this.isCollapsed ? 'square-plus' : 'square-minus'}\"\n\t\t\t\t\t\t@click=\"${() => this.toggleCollapse()}\">\n\t\t\t\t\t</og-button>\n\t\t\t\t</div>\t\n\t\t\t` : ''}\n\t\t</div>\n\t` : '';\n\n\trender = () => html`\n\t\t<div class=\"input\">\n\t\t\t${this.sectionPosition == 'left' ? this.renderDropdown() : ''}\n\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\t@input=\"${this._onInput}\"\n\t\t\t\t.placeholder=\"${this.activePlaceholder || this.placeholder}\"\n\t\t\t\t.value=\"${this.value ?? ''}\">\n\n\t\t\t${this.sectionPosition == 'right' ? this.renderDropdown() : ''}\n\t\t</div>\n\n\t\t${this.sectionPosition != 'bottom' ? this.renderControls() : ''}\n\n\t\t${this.text != null ? html`<div class=\"text\">${this.text}</div>` : ''}\n\n\t\t${this.sectionPosition == 'top' ? this.renderTabs() : ''}\n\n\t\t${this.noResults ? html`\n\t\t\t<div class=\"no-results\">${msg('No results found')}</div>\n\t\t` : ''}\n\n\t\t<div class=\"list\">\n\t\t\t<og-list\n\t\t\t\tanimations\n\t\t\t\tarrowEvents\n\t\t\t\tmaxHeight=\"300\"\n\t\t\t\t?dynamicItemHeight=\"${this.options?.commandRenderer != null}\"\n\t\t\t\t.customStyle=\"${[this.options?.itemStyle, itemStyle]}\"\n\t\t\t\t.lineHeight=\"${this.options.itemHeight - 2}\"\n\t\t\t\t.itemHeight=\"${this.options.itemHeight}\"\n\t\t\t\t.itemRenderer=\"${this._itemRenderer}\"\n\t\t\t\t@select=\"${this._onSelect}\"\n\t\t\t\t@render=\"${() => this.layout()}\">\n\t\t\t</og-list>\n\t\t</div>\n\n\t\t${this.sectionPosition == 'bottom' ? this.renderControls() : ''}\n\n\t\t${this.sectionPosition == 'bottom' ? this.renderTabs() : ''}\n\t`;\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"commandWindow.js","sourceRoot":"","sources":["../../src/ui/commandWindow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAmB,WAAW,EAA8B,MAAM,UAAU,CAAC;AAErH,OAAO,EAAU,GAAG,EAA0F,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzJ,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,MAAM,OAAO,YAAa,SAAQ,KAAK;IAMtC,YAAY,IAAY,EAAE,IAA4B;QACrD,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;QACzD,IAAI,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACD;AAKD,MAAM,wBAAwB,GAAoB,CAAC,IAAoB,EAAE,OAAgB,EAAE,EAAE;IAC5F,OAAO,IAAI,CAAA;;KAEP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,mBAAmB,OAAO,CAAC,IAAI,yCAAyC,CAAC,CAAC,CAAC,EAAE;KAChG,OAAO,CAAC,IAAI;;EAEf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAkB,CAAC,IAAoB,EAAE,KAAmB,EAAE,EAAE;IAC3F,OAAO,IAAI,CAAA;mCACuB,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE;;2BAE7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;;MAIlD,KAAK,CAAC,IAAI;;;EAGd,CAAC;AACH,CAAC,CAAC;AAGK,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAyE5C,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA,CAAC,CAAC;IAEvE,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAA,CAAC,CAAC;IACnD,IAAI,WAAW;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,kBAAkB,CAAC,KAAa;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAY,CAAC;QACpD,IAAI,OAAO,YAAY,OAAO,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5E,OAAO,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,eAAe,IAAI,wBAAwB,CAAC;IACtF,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,sBAAsB,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC;YAAE,OAAO;QAE1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,aAAa;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE;gBAC9D,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAgED;QACC,KAAK,EAAE,CAAC;QAlLT,YAAO,GAAG,WAAW,EAAE,CAAC;QAExB;;;;WAIG;QAEH,SAAI,GAAgB,QAAQ,CAAC;QAM7B,oBAAe,GAAkC,OAAO,CAAC;QAGzD,kBAAa,GAAG,GAAG,CAAC;QAcpB,yEAAyE;QAEzE,gBAAW,GAAG,EAAE,CAAC;QAEjB,+EAA+E;QAE/E,sBAAiB,GAAG,EAAE,CAAC;QAGvB,eAAU,GAAG,KAAK,CAAA;QAGlB,UAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;QAGvB,aAAQ,GAAsB,CAAC,EAAC,EAAE,EAAE,SAAS,EAAC,CAAC,CAAC;QAGhD,uBAAkB,GAAG,CAAC,CAAC;QAGvB,cAAS,GAAG,KAAK,CAAC;QA+DlB,eAAU,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,IAAI,QAAQ;gBAAE,CAAC,CAAC,eAAe,EAAE,CAAC;YAE3C,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,WAAW;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM;gBACP,KAAK,SAAS;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM;gBACP,KAAK,OAAO;oBACX,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,YAAY;wBACrE,IAAI,CAAC,WAAW,CAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAkB,CAAC,EAAE,CAAC,CAAC;;wBAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;oBACjB,MAAM;YACR,CAAC;QACF,CAAC,CAAA;QAED,mBAAc,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC/B,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvB,CAAC;YACF,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,+BAA+B;gBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAc,CAAC;gBACpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzG,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;wBAChB,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5B,aAAQ,GAAG,CAAC,CAAa,EAAE,EAAE;YAC5B,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAA;QAED,qBAAgB,GAAG,KAAK,EAAE,CAAW,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,KAAK;gBAAE,OAAO;YAC/C,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAA;QAED,sBAAiB,GAAG,KAAK,EAAE,EAAsB,EAAE,EAAE;YACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAA;QAgDD,cAAS,GAAG,CAAC,CAAkB,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxD,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAClF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACb,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAClF,IAAI,CAAC,WAAW,CAAE,IAAqB,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;YAED,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC,CAAA;QAED,kBAAa,GAAqB,CAAC,GAAmB,EAAE,KAAa,EAAE,IAA8B,EAAE,EAAE;YACxG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,YAAY;gBACtD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAiB,EAAE,IAAI,CAAC;gBACzE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAY,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC,CAAA;QAEO,iBAAY,GAAG,CAAC,CAAC;QA+HzB,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;;gCAEpB,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;;;;;;;;aAQnE,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC;mBACrF,IAAI,CAAC,gBAAgB;iBACvB,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;sBAC3C,IAAI,CAAC,kBAAkB;cAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;;;EAG9F,CAAC,CAAC,CAAC,EAAE,CAAA;QAEN,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;;YAE5C,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,IAAI,CAAC,aAAa,IAAI,EAAC,CAAC;;aAE9C,IAAI,CAAC,aAAa,EAAE,EAAE;cACrB,IAAI,CAAC,iBAAiB;aACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC,EAAE,OAAO,CAAC,EAAY;YACvB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB,CAAC,CAAC;;EAEJ,CAAC,CAAC,CAAC,EAAE,CAAC;QAOP,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;;;MAGzC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA;;;eAGpC,CAAC,CAAC,KAAK;gBACN,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACnC,CAAC,CAAe,EAAE,EAAE;YAC7B,CAAC,CAAC,OAAO,GAAI,CAAC,CAAC,MAAiB,CAAC,KAAK,KAAK,SAAS,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;;KAEF,CAAC;;;KAGD,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;;;;eAIlD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;gBAChD,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;;;IAGvC,CAAC,CAAC,CAAC,EAAE;;EAEP,CAAC,CAAC,CAAC,EAAE,CAAC;QAEP,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;8BACU,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChH,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;;;;cAIlD,IAAI,CAAC,QAAQ;oBACP,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW;cAChD,IAAI,CAAC,KAAK,IAAI,EAAE;;KAEzB,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;;;IAG7D,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;;IAE7D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,qBAAqB,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;;IAEnE,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;;IAEtD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;6BACI,GAAG,CAAC,kBAAkB,CAAC;GACjD,CAAC,CAAC,CAAC,EAAE;;;;;;;0BAOkB,IAAI,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI;oBAC3C,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;mBACrC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC;mBAC3B,IAAI,CAAC,OAAO,CAAC,UAAU;qBACrB,IAAI,CAAC,aAAa;eACxB,IAAI,CAAC,SAAS;eACd,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;;;;IAI9B,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;;IAE7D,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;EAC3D,CAAC;QA9SD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,cAAc,GAAG,IAAI;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,cAAc;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB;QACrC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACP,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgC;QAC7C,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IA2BD,KAAK,CAAC,cAAc,CAAC,aAAa,GAAG,KAAK;QACzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAE5F,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,+EAA+E;YACpG,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAEtC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACrE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;oBACjC,MAAM,EAAE,IAAI,CAAC,WAAW;oBACxB,QAAQ;iBACR,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC5B,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;oBACjC,MAAM,EAAE,IAAI,CAAC,WAAW;oBACxB,QAAQ;iBACR,CAAC,CAAC,CAAC,CAAC,CAAC;YAEN,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE7C,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QACnF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAElB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;wBAC7D,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;wBACjC,OAAO;wBACP,MAAM,EAAE,IAAI,CAAC,WAAW;qBACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAET,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACpB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO;4BAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChF,CAAC;QACF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAElB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,wEAAwE;YACxE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC/C,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;oBACjC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,MAAM,EAAE,IAAI,CAAC,WAAW;iBACxB,CAAC,CAAC;gBAEH,IAAI,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACpB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE;4BAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC1D,CAAC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO;YAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,6DAA6D;QACnF,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,OAAwB;QAC/C,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM;QACL,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,6BAA6B,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAChF,CAAC;IAmCD,IAAI,WAAW;QACd,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;;AA9ZM,oBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAKxB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;8CACD;AAQxB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;2CACI;AAG7B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACX;AAGd;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;sDACiB;AAGzD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;oDACL;AAGpB;IADC,QAAQ,EAAE;2CACoB;AAG/B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;+CACE;AAG1B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;8CACA;AAGzB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;6CACL;AAIpB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;kDACR;AAIjB;IADC,KAAK,EAAE;wDACe;AAGvB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDACR;AAGlB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACF;AAGvB;IADC,KAAK,EAAE;+CACwC;AAGhD;IADC,KAAK,EAAE;yDACe;AAGvB;IADC,KAAK,EAAE;gDACU;AAGlB;IADC,KAAK,CAAC,OAAO,CAAC;kDACa;AAG5B;IADC,KAAK,CAAC,SAAS,CAAC;2CACN;AAGX;IADC,KAAK,CAAC,OAAO,CAAC;4CACS;AAGxB;IADC,KAAK,CAAC,kBAAkB,CAAC;+CACH;AAvEX,aAAa;IADzB,aAAa,CAAC,aAAa,CAAC;GAChB,aAAa,CA0ezB","sourcesContent":["import { Commands, Command, CommandGroup, CommandsSection, initOptions, CommandMode, CommandSource } from \"../model\";\nimport { CommandsAdapter} from \"../adapters\";\nimport { Button, dom, DropdownList, events, List, ListItemRenderer, ListItemRendererOptions, ListSelectEvent, ListSelectTrigger } from \"@omegagrid/core\";\nimport { LitElement, html, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { debounce } from \"ts-debounce\";\nimport { style, itemStyle } from \"./commandWindow.style\";\nimport { styleMap } from \"lit-html/directives/style-map.js\";\nimport { TabEvent } from \"@omegagrid/tabs\";\nimport { msg } from \"@omegagrid/localize\";\n\nexport class CommandEvent extends Event {\n\n\treadonly command?: Command;\n\treadonly value?: string;\n\treadonly section?: CommandsSection;\n\n\tconstructor(type: string, args?: Partial<CommandEvent>) {\n\t\tsuper(`command.${type}`, {bubbles: true, composed: true})\n\t\tif (args) Object.assign(this, args);\n\t}\n}\n\nexport type CommandRenderer = (div: HTMLDivElement, command: Command, opts?: ListItemRendererOptions) => string | void | TemplateResult<1> | null;\nexport type GroupRenderer = (div: HTMLDivElement, group: CommandGroup, opts?: ListItemRendererOptions) => string | void | TemplateResult<1> | null;\n\nconst DEFAULT_COMMAND_RENDERER: CommandRenderer = (_div: HTMLDivElement, command: Command) => {\n\treturn html`\n\t\t<div class=\"command\">\n\t\t\t${command.icon ? html`<og-icon .icon=\"${command.icon}\" style=\"margin-right: 8px;\"></og-icon>` : ''}\n\t\t\t${command.name}\n\t\t</div>\n\t`;\n};\n\nconst DEFAULT_GROUP_RENDERER: GroupRenderer = (_div: HTMLDivElement, group: CommandGroup) => {\n\treturn html`\n\t\t<div class=\"group\" @mousedown=\"${(e: MouseEvent) => e.preventDefault()}\">\n\t\t\t<div class=\"group-toggle\">\n\t\t\t\t<og-icon icon=\"angle-${group.open ? 'down' : 'right'}\"></og-icon>\n\t\t\t</div>\n\n\t\t\t<div class=\"group-text\">\n\t\t\t\t${group.name}\n\t\t\t</div>\n\t\t</div>\n\t`;\n};\n\n@customElement('og-commands')\nexport class CommandWindow extends LitElement {\n\n\tstatic styles = [style];\n\n\tprivate visibleItems: (Command|CommandGroup)[];\n\n\t@property({type: Object})\n\toptions = initOptions();\n\n\t/**\n\t * search = commands are filtered by input value\n\t * input = commands are not filtered, input is used to enter custom value\n\t * none = no input, only command list is shown\n\t */\n\t@property({type: String})\n\tmode: CommandMode = 'search';\n\n\t@property({type: String})\n\tvalue: string;\n\n\t@property({type: String, reflect: true})\n\tsectionPosition: 'top'|'bottom'|'left'|'right' = 'right';\n\n\t@property({type: Number})\n\tdropdownWidth = 100;\n\n\t@property()\n\ttext: string|TemplateResult<1>;\n\n\t@property({type: Array})\n\tcommands: CommandSource[];\n\n\t@property({type: Object})\n\tadapter: CommandsAdapter;\n\n\t@property({type: Object})\n\ttarget: HTMLElement;\n\n\t/** default input placeholder, sections can override it with their own */\n\t@property({type: String})\n\tplaceholder = '';\n\n\t/** currently displayed placeholder (section placeholder or the default one) */\n\t@state()\n\tactivePlaceholder = '';\n\n\t@property({type: Boolean})\n\tshowGroups = false\n\n\t@property({type: Object})\n\tmodel = new Commands();\n\n\t@state()\n\tsections: CommandsSection[] = [{id: 'default'}];\n\n\t@state()\n\tactiveSectionIndex = 0;\n\n\t@state()\n\tnoResults = false;\n\n\t@query('.list')\n\tlistWrapper: HTMLDivElement;\n\n\t@query('og-list')\n\tlist: List;\n\n\t@query('input')\n\tinput: HTMLInputElement;\n\n\t@query('og-dropdown-list')\n\tdropdown: DropdownList;\n\n\tget activeSection() { return this.sections?.[this.activeSectionIndex] }\n\n\tget inputValue() { return this.input?.value ?? '' }\n\tget parsedInput() {\n\t\tconst input = this.inputValue;\n\t\tconst chunks = input.split(' ', 2);\n\t\tif (chunks.length > 1) {\n\t\t\tconst section = (this.sections ?? []).findIndex(s => s?.triggerCommand == chunks[0]);\n\t\t\tconst value = section > -1 ? chunks[1] ?? '' : input;\n\t\t\treturn { section, value };\n\t\t} else {\n\t\t\treturn { section: -1, value: input};\n\t\t}\n\t}\n\n\tget filterValue() {\n\t\treturn this.mode == 'search' ? this.parsedInput?.value ?? '' : '';\n\t}\n\n\tgetCommandRenderer(index: number): CommandRenderer {\n\t\tconst command = this.visibleItems[index] as Command;\n\t\tif (command instanceof Command && command.renderer) return command.renderer;\n\t\treturn command.renderer || this.options?.commandRenderer || DEFAULT_COMMAND_RENDERER;\n\t}\n\n\tget groupRenderer(): GroupRenderer {\n\t\treturn this.options?.groupRenderer || DEFAULT_GROUP_RENDERER;\n\t}\n\n\tasync exec(dispatchEvent = true) {\n\t\tconst input = this.parsedInput;\n\t\tconst command = this.visibleItems[this.list.selectedIndex];\n\n\t\tif (!(command instanceof Command)) return;\n\n\t\tthis.clearFilter(false);\n\n\t\tcommand.exec(input.value);\n\t\tif (this.adapter) {\n\t\t\tthis.adapter.exec(command, input.value);\n\t\t}\n\n\t\tif (dispatchEvent) this.dispatchEvent(new CommandEvent('exec', {\n\t\t\tcommand: command,\n\t\t\tsection: this.sections.find(s => s.id === input.section),\n\t\t\tvalue: input.value\n\t\t}));\n\t}\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.key != 'Escape') e.stopPropagation();\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.visibleItems[this.list.selectedIndex] instanceof CommandGroup)\n\t\t\t\t\tthis.toggleGroup((this.visibleItems[this.list.selectedIndex] as CommandGroup).id);\n\t\t\t\telse this.exec();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_debounceInput = debounce(() => {\n\t\tif (this.mode == 'search') {\n\t\t\tconst input = this.parsedInput;\n\t\t\tif (input.section > -1) {\n\t\t\t\tthis.activeSectionIndex = input.section;\n\t\t\t\tthis.input.value = '';\n\t\t\t\tthis.updateCommands(true);\n\t\t\t} else {\n\t\t\t\tthis.updateCommands();\n\t\t\t}\n\t\t} else if (this.mode == 'none') { // online highlight first match\n\t\t\tconst input = this.parsedInput;\n\t\t\tconst commands = this.model.filter(input.value, false) as Command[];\n\t\t\tif (commands.length > 0) {\n\t\t\t\tconst index = this.visibleItems.findIndex(item => item instanceof Command && item.id === commands[0].id);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tthis.list.selectedIndex = index;\n\t\t\t\t\tthis.list.renderItems(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, this.options.inputDelay);\n\n\t_onInput = (e: InputEvent) => {\n\t\te.stopPropagation();\n\t\tthis._debounceInput();\n\t}\n\n\t_onSectionSelect = async (e: TabEvent) => {\n\t\tif (this.activeSectionIndex == e.index) return;\n\t\tthis.activeSectionIndex = e.index;\n\t\tthis.updateCommands(true);\n\t\tthis.focus();\n\t}\n\n\t_onDropdownChange = async (_e: events.ChangeEvent) => {\n\t\tthis.activeSectionIndex = this.sections.findIndex(s => s.id === this.dropdown.value);\n\t\tthis.updateCommands(true);\n\t\tthis.focus();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', e => e.stopPropagation());\n\t\tthis.addEventListener('keydown', this._onKeyDown);\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\tfocus() {\n\t\tthis.input?.focus();\n\t}\n\n\tclearFilter(updateCommands = true) {\n\t\tif (this.input) this.input.value = '';\n\t\tthis.focus();\n\t\tif (updateCommands) this.updateCommands();\n\t}\n\n\tasync willUpdate(props: PropertyValues) {\n\t\tif (props.has('adapter') && this.adapter) {\n\t\t\tthis.adapter.attach(this);\n\t\t\tconst sections = await this.adapter.getSections();\n\t\t\tconst options = await this.adapter.getOptions(sections?.length ? sections[0].id : null);\n\t\t\tthis.sections = sections;\n\t\t\tif (options) this.options = initOptions(options);\n\t\t} else {\n\t\t\tif (props.has('commands') && this.commands) {\n\t\t\t\tthis.model.clear();\n\t\t\t\tthis.commands.forEach(c => this.model.register(c));\n\t\t\t}\n\n\t\t\tif (props.has('options')) {\n\t\t\t\tthis.options = initOptions(this.options);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (['commands', 'adapter', 'model', 'activeSectionIndex'].some(p => props.has(p))) {\n\t\t\tawait this.updateCommands(true);\n\t\t}\n\t}\n\n\t_onSelect = (e: ListSelectEvent) => {\n\t\tconst item = this.visibleItems[e.index];\n\t\tif (item instanceof Command) {\n\t\t\tif (this.mode == 'search') this.input.value = item.name;\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.exec();\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.input) this.input.value = '';\n\t\t\tif (e.trigger == ListSelectTrigger.Click || e.trigger == ListSelectTrigger.Enter) {\n\t\t\t\tthis.toggleGroup((item as CommandGroup).id);\n\t\t\t}\n\t\t}\n\n\t\tsetTimeout(() => this.input?.focus());\n\t}\n\n\t_itemRenderer: ListItemRenderer = (div: HTMLDivElement, index: number, opts?: ListItemRendererOptions) => {\n\t\treturn this.visibleItems[index] instanceof CommandGroup\n\t\t\t? this.groupRenderer(div, this.visibleItems[index] as CommandGroup, opts)\n\t\t\t: this.getCommandRenderer(index)(div, this.visibleItems[index] as Command, opts);\n\t}\n\n\tprivate _updateToken = 0;\n\n\tasync updateCommands(updateOptions = false) {\n\t\tif (this.adapter) {\n\t\t\tthis.model.clear();\n\t\t\tconst switches = this.activeSection?.switches?.filter(s => s.checked).map(s => s.key) || [];\n\n\t\t\tif (updateOptions) {\n\t\t\t\tconst options = await this.adapter.getOptions(this.activeSection?.id);\n\t\t\t\tthis.options = initOptions(options);\n\t\t\t}\n\n\t\t\tthis._updateToken++; // prevents race conditions when multiple requests are made in quick succession\n\t\t\tconst updateToken = this._updateToken;\n\n\t\t\tconst [groups, commands] = (await Promise.all([this.adapter.getGroups({\n\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\tfilter: this.filterValue,\n\t\t\t\tswitches\n\t\t\t}), this.adapter.getCommands({\n\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\tfilter: this.filterValue,\n\t\t\t\tswitches\n\t\t\t})]));\n\n\t\t\tif (updateToken != this._updateToken) return;\n\n\t\t\tgroups?.forEach(group => this.model.registerGroup(group));\n\t\t\tcommands?.forEach(command => this.model.register(command));\n\t\t\tthis.visibleItems = this.model.filter(null, this.showGroups, true);\n\t\t} else {\n\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups);\n\t\t}\n\n\t\tthis.activePlaceholder = this.activeSection?.placeholder || this.placeholder || '';\n\t\tthis.list.reset();\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.list.selectedIndex = this.visibleItems.findIndex(item => item instanceof Command) ?? 0;\n\t\tthis.list.renderItems(true);\n\t\tthis.noResults = this.visibleItems.length == 0;\n\t}\n\n\tasync toggleGroup(groupId: string) {\n\t\tconst group = this.model.groups.get(groupId);\n\t\tthis.list.reset();\n\n\t\tif (group.open) {\n\t\t\tgroup.open = false;\n\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups, true);\n\t\t\tthis.list.size = this.visibleItems.length;\n\t\t} else {\n\t\t\tgroup.open = true;\n\t\t\tif (this.adapter) {\n\t\t\t\tconst commands = (await Promise.all([this.adapter.getCommands({\n\t\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\t\tgroupId,\n\t\t\t\t\tfilter: this.filterValue\n\t\t\t\t})]))[0];\n\n\t\t\t\tif (commands.length > 0) {\n\t\t\t\t\tgroup.commands.clear();\n\t\t\t\t\tcommands.forEach(c => {\n\t\t\t\t\t\tif (!c.group || c.group == groupId) group.addCommand(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.visibleItems = this.model.filter(null, this.showGroups, true);\n\t\t\t} else {\n\t\t\t\tthis.visibleItems = this.model.filter(this.filterValue, this.showGroups, true);\n\t\t\t}\n\t\t}\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.requestUpdate();\n\t}\n\n\tasync toggleCollapse() {\n\t\tconst open = this.isCollapsed;\n\t\tconst groups = [...this.model.groups.values()];\n\t\tthis.list.reset();\n\n\t\tif (open && this.adapter) {\n\t\t\t// load commands of groups that are being opened, same as in toggleGroup\n\t\t\tawait Promise.all(groups.filter(g => !g.open).map(async group => {\n\t\t\t\tconst commands = await this.adapter.getCommands({\n\t\t\t\t\tsectionId: this.activeSection?.id,\n\t\t\t\t\tgroupId: group.id,\n\t\t\t\t\tfilter: this.filterValue\n\t\t\t\t});\n\n\t\t\t\tif (commands?.length > 0) {\n\t\t\t\t\tgroup.commands.clear();\n\t\t\t\t\tcommands.forEach(c => {\n\t\t\t\t\t\tif (!c.group || c.group == group.id) group.addCommand(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\n\t\tgroups.forEach(g => g.open = open);\n\n\t\tthis.visibleItems = this.adapter\n\t\t\t? this.model.filter(null, this.showGroups, true)\n\t\t\t: this.model.filter(this.filterValue, this.showGroups, true);\n\n\t\tthis.list.size = this.visibleItems.length;\n\t\tthis.list.selectedIndex = Math.max(0, this.visibleItems.findIndex(item => item instanceof Command));\n\t\tthis.list.renderItems(true);\n\t\tthis.requestUpdate(); // visibleItems is not reactive, refresh collapse button icon\n\t\tthis.focus();\n\t}\n\n\tprivate getSectionTitle(section: CommandsSection) {\n\t\treturn (section.title ?? section.id) + (section.triggerCommand ? ` (${section.triggerCommand})` : '');\n\t}\n\n\tlayout() {\n\t\tif (!this.listWrapper) return;\n\n\t\tthis.listWrapper.style.transition = `flex-basis 0.2s ease-in-out`;\n\t\tthis.listWrapper.style.flexBasis = dom.px(this.list.offsetHeight);\n\t\tdom.setSize(this.listWrapper, {h: this.list.offsetHeight});\n\t}\n\n\tget hasControls() {\n\t\treturn this.activeSection?.switches?.length > 0 || this.options.collapseToggle;\n\t}\n\n\trenderTabs = () => this.sections?.length > 1 ? html`\n\t\t<og-container\n\t\t\t.horizontalSliderPosition=\"${this.sectionPosition == 'top' ? 'bottom' : 'top'}\"\n\t\t\tscrollMode=\"horizontal\"\n\t\t\tsliderSize=\"4\">\n\t\t\t<og-tabs\n\t\t\t\tslot=\"content\"\n\t\t\t\tclass=\"tabs\"\n\t\t\t\ttabSize=\"stretch\"\n\t\t\t\ttabAlign=\"center\"\n\t\t\t\tstyle=\"${styleMap({borderTop: this.sectionPosition == 'bottom' ? '1px solid var(--og-border)' : ''})}\"\n\t\t\t\t@tab.select=\"${this._onSectionSelect}\"\n\t\t\t\t.position=\"${this.sectionPosition == 'top' ? 'top' : 'bottom'}\"\n\t\t\t\t.selectedIndex=\"${this.activeSectionIndex}\"\n\t\t\t\t.items=\"${this.sections.map(section => ({...section, title: this.getSectionTitle(section)}))}\">\n\t\t\t</og-tabs>\n\t\t</og-container>\n\t` : ''\n\n\trenderDropdown = () => this.sections?.length > 1 ? html`\n\t\t<og-dropdown-list\n\t\t\tstyle=\"${styleMap({flex: `0 0 ${this.dropdownWidth}px`})}\"\n\t\t\tcolor=\"transparent\"\n\t\t\t.value=\"${this.activeSection?.id}\"\n\t\t\t@change=\"${this._onDropdownChange}\"\n\t\t\t.items=\"${this.sections.map(section => ({\n\t\t\t\tk: section.id as string,\n\t\t\t\tv: this.getSectionTitle(section),\n\t\t\t\ticon: section.icon\n\t\t\t}))}\">\n\t\t</og-dropdown-list>\n\t` : '';\n\n\tget isCollapsed() {\n\t\tif (!(this.visibleItems?.[0] instanceof CommandGroup)) return false;\n\t\treturn !this.visibleItems[0].open;\n\t}\n\n\trenderControls = () => this.hasControls ? html`\n\t\t<div class=\"controls\">\n\t\t\t<div class=\"switches\">\n\t\t\t\t${this.activeSection?.switches?.map((s) => html`\n\t\t\t\t\t<og-button\n\t\t\t\t\t\ttype=\"toggle\"\n\t\t\t\t\t\t.text=\"${s.value}\"\n\t\t\t\t\t\t.state=\"${s.checked ? 'checked' : 'unchecked'}\"\n\t\t\t\t\t\t@click=\"${(e: PointerEvent) => {\n\t\t\t\t\t\t\ts.checked = (e.target as Button).state === 'checked';\n\t\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\t\tthis.updateCommands();\n\t\t\t\t\t\t}}\">\n\t\t\t\t\t</og-button>\n\t\t\t\t`)}\n\t\t\t</div>\n\n\t\t\t${this.options.collapseToggle && this.visibleItems?.[0] ? html`\n\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t<og-button\n\t\t\t\t\t\tcolor=\"transparent\"\n\t\t\t\t\t\t.icon=\"${this.isCollapsed ? 'square-plus' : 'square-minus'}\"\n\t\t\t\t\t\t@click=\"${() => this.toggleCollapse()}\">\n\t\t\t\t\t</og-button>\n\t\t\t\t</div>\t\n\t\t\t` : ''}\n\t\t</div>\n\t` : '';\n\n\trender = () => html`\n\t\t<div class=\"input\" style=\"${styleMap(this.mode == 'menu' ? {maxHeight: '0', overflow: 'hidden', padding: '0'} : {})}\">\n\t\t\t${this.sectionPosition == 'left' ? this.renderDropdown() : ''}\n\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\t@input=\"${this._onInput}\"\n\t\t\t\t.placeholder=\"${this.activePlaceholder || this.placeholder}\"\n\t\t\t\t.value=\"${this.value ?? ''}\">\n\n\t\t\t${this.sectionPosition == 'right' ? this.renderDropdown() : ''}\n\t\t</div>\t\n\n\t\t${this.sectionPosition != 'bottom' ? this.renderControls() : ''}\n\n\t\t${this.text != null ? html`<div class=\"text\">${this.text}</div>` : ''}\n\n\t\t${this.sectionPosition == 'top' ? this.renderTabs() : ''}\n\n\t\t${this.noResults ? html`\n\t\t\t<div class=\"no-results\">${msg('No results found')}</div>\n\t\t` : ''}\n\n\t\t<div class=\"list\">\n\t\t\t<og-list\n\t\t\t\tanimations\n\t\t\t\tarrowEvents\n\t\t\t\tmaxHeight=\"300\"\n\t\t\t\t?dynamicItemHeight=\"${this.options?.commandRenderer != null}\"\n\t\t\t\t.customStyle=\"${[this.options?.itemStyle, itemStyle]}\"\n\t\t\t\t.lineHeight=\"${this.options.itemHeight - 2}\"\n\t\t\t\t.itemHeight=\"${this.options.itemHeight}\"\n\t\t\t\t.itemRenderer=\"${this._itemRenderer}\"\n\t\t\t\t@select=\"${this._onSelect}\"\n\t\t\t\t@render=\"${() => this.layout()}\">\n\t\t\t</og-list>\n\t\t</div>\n\n\t\t${this.sectionPosition == 'bottom' ? this.renderControls() : ''}\n\n\t\t${this.sectionPosition == 'bottom' ? this.renderTabs() : ''}\n\t`;\n\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.105",
|
|
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.105",
|
|
31
|
+
"@omegagrid/localize": "^0.10.105",
|
|
32
|
+
"@omegagrid/tabs": "^0.10.105",
|
|
33
33
|
"lit": "^3.1.1",
|
|
34
34
|
"lit-html": "^3.1.1",
|
|
35
35
|
"ts-debounce": "^4.0.0"
|