@wcardinal/wcardinal-ui 0.284.0 → 0.286.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -124,7 +124,18 @@ var DTableBodyCellInputTree = /** @class */ (function (_super) {
124
124
  }
125
125
  var data = body.data;
126
126
  if (data && data.toggle) {
127
- data.toggle(row);
127
+ if (data.isExpanded(row)) {
128
+ if (data.collapse(row)) {
129
+ this.emit("collapse", this);
130
+ data.emit("collapse", row, this);
131
+ }
132
+ }
133
+ else {
134
+ if (data.expand(row)) {
135
+ this.emit("expand", this);
136
+ data.emit("expand", row, this);
137
+ }
138
+ }
128
139
  }
129
140
  };
130
141
  DTableBodyCellInputTree.prototype.onRowSelect = function (e, local) {
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-body-cell-input-tree.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell-input-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Point } from \"pixi.js\";\nimport { DBase, DThemeBase } from \"./d-base\";\nimport { DBaseState } from \"./d-base-state\";\nimport {\n\tDTableBodyCellInputTreeInput,\n\tDTableBodyCellInputTreeInputOptions\n} from \"./d-table-body-cell-input-tree-input\";\nimport { DTableBodyCellInputTreeMarker } from \"./d-table-body-cell-input-tree-marker\";\nimport { DTableBodyCells } from \"./d-table-body-cells\";\nimport { DTableState } from \"./d-table-state\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { isNumber } from \"./util/is-number\";\nimport { DTableBodyCell, DTableBodyCellOnChange } from \"./d-table-body-cell\";\n\nexport interface DThemeTableBodyCellInputTree extends DThemeBase {\n\tgetLevelPadding(level: number): number;\n}\n\nconst toBaseOptions = (options?: DTableBodyCellInputTreeInputOptions) => {\n\tif (options != null) {\n\t\treturn {\n\t\t\tweight: options.weight,\n\t\t\twidth: options.width\n\t\t};\n\t}\n\treturn undefined;\n};\n\nexport class DTableBodyCellInputTree<\n\t\tROW = unknown,\n\t\tTHEME extends DThemeTableBodyCellInputTree = DThemeTableBodyCellInputTree,\n\t\tOPTIONS extends DTableBodyCellInputTreeInputOptions = DTableBodyCellInputTreeInputOptions\n\t>\n\textends DBase<THEME>\n\timplements DTableBodyCell<ROW, string>\n{\n\tprotected _row?: ROW;\n\tprotected _rowIndex: number;\n\tprotected _columnIndex: number;\n\tprotected _column: DTableColumn<ROW, string>;\n\tprotected _onChange: DTableBodyCellOnChange<ROW, string>;\n\n\tprotected _marker: DTableBodyCellInputTreeMarker;\n\tprotected _input: DTableBodyCellInputTreeInput;\n\n\tconstructor(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, string>,\n\t\tonChange: DTableBodyCellOnChange<ROW, string>,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(toBaseOptions(options));\n\n\t\tthis._rowIndex = -1;\n\t\tthis._columnIndex = columnIndex;\n\t\tthis._column = column;\n\t\tthis._onChange = onChange;\n\n\t\t// Input\n\t\tconst input = this.newInput(options);\n\t\tthis._input = input;\n\t\tthis.addChild(input);\n\n\t\t// Marker\n\t\tconst marker = this.newMarker(options);\n\t\tthis._marker = marker;\n\t\tthis.addChild(marker);\n\t}\n\n\tprotected newInput(options?: OPTIONS): DTableBodyCellInputTreeInput {\n\t\treturn new DTableBodyCellInputTreeInput(this.toInputOptions(options));\n\t}\n\n\tprotected toInputOptions(options?: OPTIONS): DTableBodyCellInputTreeInputOptions {\n\t\treturn {\n\t\t\tweight: 1,\n\t\t\ttext: options?.text,\n\t\t\tediting: options?.editing,\n\t\t\twhen: options?.when,\n\t\t\tcursor: options?.cursor,\n\t\t\ton: {\n\t\t\t\tchange: (newValue: string, oldValue: string): void => {\n\t\t\t\t\tthis.onInputChange(newValue, oldValue);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected onInputChange(newValue: string, oldValue: string): void {\n\t\tconst row = this._row;\n\t\tif (row !== undefined) {\n\t\t\tconst rowIndex = this._rowIndex;\n\t\t\tconst columnIndex = this._columnIndex;\n\t\t\tthis._column.setter(row, columnIndex, newValue);\n\t\t\tthis.emit(\"change\", newValue, oldValue, this);\n\t\t\tthis._onChange(newValue, oldValue, row, rowIndex, columnIndex, this);\n\t\t}\n\t}\n\n\tprotected newMarker(options?: OPTIONS): DTableBodyCellInputTreeMarker {\n\t\treturn new DTableBodyCellInputTreeMarker({\n\t\t\tvisible: false,\n\t\t\ton: {\n\t\t\t\tactive: (): void => {\n\t\t\t\t\tthis.onMarkerActive();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected onMarkerActive(): void {\n\t\tif (this._marker.state.is(DTableState.HAS_CHILDREN)) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\tget row(): ROW | undefined {\n\t\treturn this._row;\n\t}\n\n\tget rowIndex(): number {\n\t\treturn this._rowIndex;\n\t}\n\n\tget columnIndex(): number {\n\t\treturn this._columnIndex;\n\t}\n\n\tget column(): DTableColumn<ROW, string> {\n\t\treturn this._column;\n\t}\n\n\tprotected toggle(): void {\n\t\tconst row = this._row;\n\t\tif (row === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst parent = this.parent;\n\t\tif (parent == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst body = parent.parent;\n\t\tif (body == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst data = (body as any).data;\n\t\tif (data && data.toggle) {\n\t\t\tdata.toggle(row);\n\t\t}\n\t}\n\n\tonRowSelect(e: interaction.InteractionEvent, local: Point): boolean {\n\t\tif (local.x <= this.position.x + this._input.padding.getLeft()) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: unknown,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tthis._row = row;\n\t\tthis._rowIndex = rowIndex;\n\t\tconst input = this._input;\n\t\tinput.visible = true;\n\t\tinput.text = String(value);\n\n\t\tconst marker = this._marker;\n\t\tif (isNumber(supplimental)) {\n\t\t\tconst isOpened = !!(supplimental & 0x1);\n\t\t\tconst hasChildren = !!(supplimental & 0x2);\n\t\t\tconst level = supplimental >> 2;\n\t\t\tconst markerState = marker.state;\n\t\t\tmarkerState.lock();\n\t\t\tmarkerState.set(DTableState.HAS_CHILDREN, hasChildren);\n\t\t\tmarkerState.set(DBaseState.DISABLED, !hasChildren);\n\t\t\tmarkerState.set(DTableState.OPENED, isOpened);\n\t\t\tmarkerState.unlock();\n\t\t\tconst padding = this.theme.getLevelPadding(level);\n\t\t\tmarker.width = padding;\n\t\t\tif (hasChildren) {\n\t\t\t\tmarker.show();\n\t\t\t} else {\n\t\t\t\tmarker.hide();\n\t\t\t}\n\t\t\tinput.padding.adjLeft(padding);\n\t\t} else {\n\t\t\tmarker.state.removeAll(DTableState.OPENED, DTableState.HAS_CHILDREN);\n\t\t\tmarker.hide();\n\t\t\tinput.padding.adjLeft(0);\n\t\t}\n\n\t\tDTableBodyCells.set(this._input, row, columnIndex, this._column);\n\t}\n\n\tunset(): void {\n\t\tthis._row = undefined;\n\t\tthis._rowIndex = -1;\n\t\tthis._input.visible = false;\n\t\tthis._marker.hide();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyCellInputTree\";\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-body-cell-input-tree.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell-input-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Point } from \"pixi.js\";\nimport { DBase, DThemeBase } from \"./d-base\";\nimport { DBaseState } from \"./d-base-state\";\nimport {\n\tDTableBodyCellInputTreeInput,\n\tDTableBodyCellInputTreeInputOptions\n} from \"./d-table-body-cell-input-tree-input\";\nimport { DTableBodyCellInputTreeMarker } from \"./d-table-body-cell-input-tree-marker\";\nimport { DTableBodyCells } from \"./d-table-body-cells\";\nimport { DTableState } from \"./d-table-state\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { isNumber } from \"./util/is-number\";\nimport { DTableBodyCell, DTableBodyCellOnChange } from \"./d-table-body-cell\";\n\nexport interface DThemeTableBodyCellInputTree extends DThemeBase {\n\tgetLevelPadding(level: number): number;\n}\n\nconst toBaseOptions = (options?: DTableBodyCellInputTreeInputOptions) => {\n\tif (options != null) {\n\t\treturn {\n\t\t\tweight: options.weight,\n\t\t\twidth: options.width\n\t\t};\n\t}\n\treturn undefined;\n};\n\nexport class DTableBodyCellInputTree<\n\t\tROW = unknown,\n\t\tTHEME extends DThemeTableBodyCellInputTree = DThemeTableBodyCellInputTree,\n\t\tOPTIONS extends DTableBodyCellInputTreeInputOptions = DTableBodyCellInputTreeInputOptions\n\t>\n\textends DBase<THEME>\n\timplements DTableBodyCell<ROW, string>\n{\n\tprotected _row?: ROW;\n\tprotected _rowIndex: number;\n\tprotected _columnIndex: number;\n\tprotected _column: DTableColumn<ROW, string>;\n\tprotected _onChange: DTableBodyCellOnChange<ROW, string>;\n\n\tprotected _marker: DTableBodyCellInputTreeMarker;\n\tprotected _input: DTableBodyCellInputTreeInput;\n\n\tconstructor(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, string>,\n\t\tonChange: DTableBodyCellOnChange<ROW, string>,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(toBaseOptions(options));\n\n\t\tthis._rowIndex = -1;\n\t\tthis._columnIndex = columnIndex;\n\t\tthis._column = column;\n\t\tthis._onChange = onChange;\n\n\t\t// Input\n\t\tconst input = this.newInput(options);\n\t\tthis._input = input;\n\t\tthis.addChild(input);\n\n\t\t// Marker\n\t\tconst marker = this.newMarker(options);\n\t\tthis._marker = marker;\n\t\tthis.addChild(marker);\n\t}\n\n\tprotected newInput(options?: OPTIONS): DTableBodyCellInputTreeInput {\n\t\treturn new DTableBodyCellInputTreeInput(this.toInputOptions(options));\n\t}\n\n\tprotected toInputOptions(options?: OPTIONS): DTableBodyCellInputTreeInputOptions {\n\t\treturn {\n\t\t\tweight: 1,\n\t\t\ttext: options?.text,\n\t\t\tediting: options?.editing,\n\t\t\twhen: options?.when,\n\t\t\tcursor: options?.cursor,\n\t\t\ton: {\n\t\t\t\tchange: (newValue: string, oldValue: string): void => {\n\t\t\t\t\tthis.onInputChange(newValue, oldValue);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected onInputChange(newValue: string, oldValue: string): void {\n\t\tconst row = this._row;\n\t\tif (row !== undefined) {\n\t\t\tconst rowIndex = this._rowIndex;\n\t\t\tconst columnIndex = this._columnIndex;\n\t\t\tthis._column.setter(row, columnIndex, newValue);\n\t\t\tthis.emit(\"change\", newValue, oldValue, this);\n\t\t\tthis._onChange(newValue, oldValue, row, rowIndex, columnIndex, this);\n\t\t}\n\t}\n\n\tprotected newMarker(options?: OPTIONS): DTableBodyCellInputTreeMarker {\n\t\treturn new DTableBodyCellInputTreeMarker({\n\t\t\tvisible: false,\n\t\t\ton: {\n\t\t\t\tactive: (): void => {\n\t\t\t\t\tthis.onMarkerActive();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected onMarkerActive(): void {\n\t\tif (this._marker.state.is(DTableState.HAS_CHILDREN)) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\tget row(): ROW | undefined {\n\t\treturn this._row;\n\t}\n\n\tget rowIndex(): number {\n\t\treturn this._rowIndex;\n\t}\n\n\tget columnIndex(): number {\n\t\treturn this._columnIndex;\n\t}\n\n\tget column(): DTableColumn<ROW, string> {\n\t\treturn this._column;\n\t}\n\n\tprotected toggle(): void {\n\t\tconst row = this._row;\n\t\tif (row === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst parent = this.parent;\n\t\tif (parent == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst body = parent.parent;\n\t\tif (body == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst data = (body as any).data;\n\t\tif (data && data.toggle) {\n\t\t\tif (data.isExpanded(row)) {\n\t\t\t\tif (data.collapse(row)) {\n\t\t\t\t\tthis.emit(\"collapse\", this);\n\t\t\t\t\tdata.emit(\"collapse\", row, this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (data.expand(row)) {\n\t\t\t\t\tthis.emit(\"expand\", this);\n\t\t\t\t\tdata.emit(\"expand\", row, this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowSelect(e: interaction.InteractionEvent, local: Point): boolean {\n\t\tif (local.x <= this.position.x + this._input.padding.getLeft()) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: unknown,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tthis._row = row;\n\t\tthis._rowIndex = rowIndex;\n\t\tconst input = this._input;\n\t\tinput.visible = true;\n\t\tinput.text = String(value);\n\n\t\tconst marker = this._marker;\n\t\tif (isNumber(supplimental)) {\n\t\t\tconst isOpened = !!(supplimental & 0x1);\n\t\t\tconst hasChildren = !!(supplimental & 0x2);\n\t\t\tconst level = supplimental >> 2;\n\t\t\tconst markerState = marker.state;\n\t\t\tmarkerState.lock();\n\t\t\tmarkerState.set(DTableState.HAS_CHILDREN, hasChildren);\n\t\t\tmarkerState.set(DBaseState.DISABLED, !hasChildren);\n\t\t\tmarkerState.set(DTableState.OPENED, isOpened);\n\t\t\tmarkerState.unlock();\n\t\t\tconst padding = this.theme.getLevelPadding(level);\n\t\t\tmarker.width = padding;\n\t\t\tif (hasChildren) {\n\t\t\t\tmarker.show();\n\t\t\t} else {\n\t\t\t\tmarker.hide();\n\t\t\t}\n\t\t\tinput.padding.adjLeft(padding);\n\t\t} else {\n\t\t\tmarker.state.removeAll(DTableState.OPENED, DTableState.HAS_CHILDREN);\n\t\t\tmarker.hide();\n\t\t\tinput.padding.adjLeft(0);\n\t\t}\n\n\t\tDTableBodyCells.set(this._input, row, columnIndex, this._column);\n\t}\n\n\tunset(): void {\n\t\tthis._row = undefined;\n\t\tthis._rowIndex = -1;\n\t\tthis._input.visible = false;\n\t\tthis._marker.hide();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyCellInputTree\";\n\t}\n}\n"]}
@@ -71,7 +71,18 @@ var DTableBodyCellTree = /** @class */ (function (_super) {
71
71
  }
72
72
  var data = body.data;
73
73
  if (data && data.toggle) {
74
- data.toggle(row);
74
+ if (data.isExpanded(row)) {
75
+ if (data.collapse(row)) {
76
+ this.emit("collapse", this);
77
+ data.emit("collapse", row, this);
78
+ }
79
+ }
80
+ else {
81
+ if (data.expand(row)) {
82
+ this.emit("expand", this);
83
+ data.emit("expand", row, this);
84
+ }
85
+ }
75
86
  }
76
87
  };
77
88
  DTableBodyCellTree.prototype.onRowSelect = function (e, local) {
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-body-cell-tree.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Point } from \"pixi.js\";\nimport { DBasePaddingAdjustable } from \"./d-base-padding-adjustable\";\nimport { DLink } from \"./d-link\";\nimport { DLinks } from \"./d-links\";\nimport {\n\tDTableBodyCellButton,\n\tDTableBodyCellButtonOptions,\n\tDThemeTableBodyCellButton\n} from \"./d-table-body-cell-button\";\nimport { DTableBodyCellLinkLinkOptions, toLinkOptions } from \"./d-table-body-cell-link\";\nimport { DTableBodyCells } from \"./d-table-body-cells\";\nimport { DTableState } from \"./d-table-state\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { isNumber } from \"./util/is-number\";\nimport { DTableBodyCellOnChange } from \"./d-table-body-cell\";\n\nexport interface DTableBodyCellTreeOptions<\n\tROW,\n\tVALUE = unknown,\n\tTHEME extends DThemeTableBodyCellTree<VALUE> = DThemeTableBodyCellTree<VALUE>\n> extends DTableBodyCellButtonOptions<ROW, VALUE, THEME> {\n\tlink?: DTableBodyCellLinkLinkOptions<ROW, VALUE>;\n}\n\nexport interface DThemeTableBodyCellTree<VALUE = unknown> extends DThemeTableBodyCellButton<VALUE> {\n\tgetLevelPadding(level: number): number;\n}\n\nexport class DTableBodyCellTree<\n\tROW,\n\tVALUE = unknown,\n\tTHEME extends DThemeTableBodyCellTree<VALUE> = DThemeTableBodyCellTree<VALUE>,\n\tOPTIONS extends DTableBodyCellTreeOptions<ROW, VALUE, THEME> = DTableBodyCellTreeOptions<\n\t\tROW,\n\t\tVALUE,\n\t\tTHEME\n\t>\n> extends DTableBodyCellButton<ROW, VALUE, THEME, OPTIONS> {\n\tprotected _padding!: DBasePaddingAdjustable;\n\tprotected _link?: DLink | null;\n\n\tconstructor(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, VALUE | null>,\n\t\tonChange: DTableBodyCellOnChange<ROW, VALUE | null>,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(columnIndex, column, onChange, DLinks.toStateOptions(options?.link?.target, options));\n\t\tthis._padding = new DBasePaddingAdjustable(this._padding);\n\t}\n\n\tprotected onClick(e: interaction.InteractionEvent): void {\n\t\tif (this.link?.onClick(this, e) !== true) {\n\t\t\tsuper.onClick(e);\n\t\t}\n\t}\n\n\tget link(): DLink | null {\n\t\tlet result = this._link;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newLink();\n\t\t\tthis._link = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newLink(): DLink | null {\n\t\tconst options = this._options?.link;\n\t\tif (options) {\n\t\t\treturn new DLink(toLinkOptions(this, options));\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onActivate(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tsuper.onActivate(e);\n\t\tif (this.state.is(DTableState.HAS_CHILDREN)) {\n\t\t\tthis.toggle();\n\t\t} else {\n\t\t\tthis.link?.open(e);\n\t\t}\n\t}\n\n\tprotected toggle(): void {\n\t\tconst row = this._row;\n\t\tif (row === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst parent = this.parent;\n\t\tif (parent == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst body = parent.parent;\n\t\tif (body == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst data = (body as any).data;\n\t\tif (data && data.toggle) {\n\t\t\tdata.toggle(row);\n\t\t}\n\t}\n\n\tonRowSelect(e: interaction.InteractionEvent, local: Point): boolean {\n\t\tif (local.x <= this.position.x + this.padding.getLeft()) {\n\t\t\tthis.toggle();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: unknown,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tthis._row = row;\n\t\tthis._rowIndex = rowIndex;\n\t\tthis.text = value as VALUE | null;\n\n\t\tDTableBodyCells.set(this, row, columnIndex, this._column, false);\n\n\t\tconst link = this.link;\n\t\tconst padding = this._padding;\n\t\tif (isNumber(supplimental)) {\n\t\t\tconst isOpened = !!(supplimental & 0x1);\n\t\t\tconst hasChildren = !!(supplimental & 0x2);\n\t\t\tconst level = supplimental >> 2;\n\t\t\tconst state = this.state;\n\t\t\tstate.lock();\n\t\t\tstate.set(DTableState.HAS_CHILDREN, hasChildren);\n\t\t\tstate.set(DTableState.OPENED, isOpened);\n\t\t\tstate.unlock();\n\t\t\tpadding.adjLeft(this.theme.getLevelPadding(level));\n\t\t\tif (link) {\n\t\t\t\tlink.menu.enable = !hasChildren;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.state.removeAll(DTableState.OPENED, DTableState.HAS_CHILDREN);\n\t\t\tpadding.adjLeft(0);\n\t\t\tif (link) {\n\t\t\t\tlink.menu.enable = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyCellTree\";\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-body-cell-tree.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Point } from \"pixi.js\";\nimport { DBasePaddingAdjustable } from \"./d-base-padding-adjustable\";\nimport { DLink } from \"./d-link\";\nimport { DLinks } from \"./d-links\";\nimport {\n\tDTableBodyCellButton,\n\tDTableBodyCellButtonOptions,\n\tDThemeTableBodyCellButton\n} from \"./d-table-body-cell-button\";\nimport { DTableBodyCellLinkLinkOptions, toLinkOptions } from \"./d-table-body-cell-link\";\nimport { DTableBodyCells } from \"./d-table-body-cells\";\nimport { DTableState } from \"./d-table-state\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { isNumber } from \"./util/is-number\";\nimport { DTableBodyCellOnChange } from \"./d-table-body-cell\";\n\nexport interface DTableBodyCellTreeOptions<\n\tROW,\n\tVALUE = unknown,\n\tTHEME extends DThemeTableBodyCellTree<VALUE> = DThemeTableBodyCellTree<VALUE>\n> extends DTableBodyCellButtonOptions<ROW, VALUE, THEME> {\n\tlink?: DTableBodyCellLinkLinkOptions<ROW, VALUE>;\n}\n\nexport interface DThemeTableBodyCellTree<VALUE = unknown> extends DThemeTableBodyCellButton<VALUE> {\n\tgetLevelPadding(level: number): number;\n}\n\nexport class DTableBodyCellTree<\n\tROW,\n\tVALUE = unknown,\n\tTHEME extends DThemeTableBodyCellTree<VALUE> = DThemeTableBodyCellTree<VALUE>,\n\tOPTIONS extends DTableBodyCellTreeOptions<ROW, VALUE, THEME> = DTableBodyCellTreeOptions<\n\t\tROW,\n\t\tVALUE,\n\t\tTHEME\n\t>\n> extends DTableBodyCellButton<ROW, VALUE, THEME, OPTIONS> {\n\tprotected _padding!: DBasePaddingAdjustable;\n\tprotected _link?: DLink | null;\n\n\tconstructor(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, VALUE | null>,\n\t\tonChange: DTableBodyCellOnChange<ROW, VALUE | null>,\n\t\toptions?: OPTIONS\n\t) {\n\t\tsuper(columnIndex, column, onChange, DLinks.toStateOptions(options?.link?.target, options));\n\t\tthis._padding = new DBasePaddingAdjustable(this._padding);\n\t}\n\n\tprotected onClick(e: interaction.InteractionEvent): void {\n\t\tif (this.link?.onClick(this, e) !== true) {\n\t\t\tsuper.onClick(e);\n\t\t}\n\t}\n\n\tget link(): DLink | null {\n\t\tlet result = this._link;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newLink();\n\t\t\tthis._link = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newLink(): DLink | null {\n\t\tconst options = this._options?.link;\n\t\tif (options) {\n\t\t\treturn new DLink(toLinkOptions(this, options));\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onActivate(\n\t\te?: interaction.InteractionEvent | KeyboardEvent | MouseEvent | TouchEvent\n\t): void {\n\t\tsuper.onActivate(e);\n\t\tif (this.state.is(DTableState.HAS_CHILDREN)) {\n\t\t\tthis.toggle();\n\t\t} else {\n\t\t\tthis.link?.open(e);\n\t\t}\n\t}\n\n\tprotected toggle(): void {\n\t\tconst row = this._row;\n\t\tif (row === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst parent = this.parent;\n\t\tif (parent == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst body = parent.parent;\n\t\tif (body == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst data = (body as any).data;\n\t\tif (data && data.toggle) {\n\t\t\tif (data.isExpanded(row)) {\n\t\t\t\tif (data.collapse(row)) {\n\t\t\t\t\tthis.emit(\"collapse\", this);\n\t\t\t\t\tdata.emit(\"collapse\", row, this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (data.expand(row)) {\n\t\t\t\t\tthis.emit(\"expand\", this);\n\t\t\t\t\tdata.emit(\"expand\", row, this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowSelect(e: interaction.InteractionEvent, local: Point): boolean {\n\t\tif (local.x <= this.position.x + this.padding.getLeft()) {\n\t\t\tthis.toggle();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: unknown,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tthis._row = row;\n\t\tthis._rowIndex = rowIndex;\n\t\tthis.text = value as VALUE | null;\n\n\t\tDTableBodyCells.set(this, row, columnIndex, this._column, false);\n\n\t\tconst link = this.link;\n\t\tconst padding = this._padding;\n\t\tif (isNumber(supplimental)) {\n\t\t\tconst isOpened = !!(supplimental & 0x1);\n\t\t\tconst hasChildren = !!(supplimental & 0x2);\n\t\t\tconst level = supplimental >> 2;\n\t\t\tconst state = this.state;\n\t\t\tstate.lock();\n\t\t\tstate.set(DTableState.HAS_CHILDREN, hasChildren);\n\t\t\tstate.set(DTableState.OPENED, isOpened);\n\t\t\tstate.unlock();\n\t\t\tpadding.adjLeft(this.theme.getLevelPadding(level));\n\t\t\tif (link) {\n\t\t\t\tlink.menu.enable = !hasChildren;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.state.removeAll(DTableState.OPENED, DTableState.HAS_CHILDREN);\n\t\t\tpadding.adjLeft(0);\n\t\t\tif (link) {\n\t\t\t\tlink.menu.enable = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyCellTree\";\n\t}\n}\n"]}
@@ -172,7 +172,6 @@ var DTableDataTree = /** @class */ (function (_super) {
172
172
  this._isRowsDirty = true;
173
173
  this._filter.toDirty();
174
174
  this.update(true);
175
- this.emit("expand", node, this);
176
175
  return true;
177
176
  }
178
177
  return false;
@@ -184,7 +183,6 @@ var DTableDataTree = /** @class */ (function (_super) {
184
183
  this._isRowsDirty = true;
185
184
  this._filter.toDirty();
186
185
  this.update(true);
187
- this.emit("collapse", node, this);
188
186
  return true;
189
187
  }
190
188
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-data-tree.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-data-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2021 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DTableData, DTableDataMapped, DTableDataParent } from \"./d-table-data\";\nimport { DTableDataFilter, DTableDataFilterer } from \"./d-table-data-filter\";\nimport { DTableDataTreeFilter } from \"./d-table-data-tree-filter\";\nimport { DTableDataListMapped } from \"./d-table-data-list-mapped\";\nimport { DTableDataSelection } from \"./d-table-data-selection\";\nimport { DTableDataComparator, DTableDataSorter } from \"./d-table-data-sorter\";\nimport { DTableDataTreeSorter } from \"./d-table-data-tree-sorter\";\nimport { DTableDataTreeNode } from \"./d-table-data-tree-item\";\nimport {\n\tDTableDataTreeItemAccessor,\n\tDTableDataTreeItemAccessorOptions\n} from \"./d-table-data-tree-item-accessor\";\nimport {\n\tDTableDataTreeSelection,\n\tDTableDataTreeSelectionCreator,\n\tDTableDataTreeSelectionOptions\n} from \"./d-table-data-tree-selection\";\nimport { DTableDataTreeSelectionImpl } from \"./d-table-data-tree-selection-impl\";\nimport { isFunction } from \"./util/is-function\";\nimport { DBaseEvents } from \"./d-base\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DTableDataTree} events.\n */\nexport interface DTableDataTreeEvents<NODE, EMITTER> extends DBaseEvents<EMITTER> {\n\t/**\n\t * Triggered when a node is expanded.\n\t *\n\t * @param node a node\n\t * @param emitter an emitter\n\t */\n\texpand(node: NODE, emitter: EMITTER): void;\n\n\t/**\n\t * Triggered when a node is collapsed.\n\t *\n\t * @param node a node\n\t * @param emitter an emitter\n\t */\n\tcollapse(node: NODE, emitter: EMITTER): void;\n}\n\n/**\n * {@link DTableDataTree} \"on\" options.\n */\nexport interface DTableDataTreeOnOptions<NODE, EMITTER>\n\textends Partial<DTableDataTreeEvents<NODE, EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DTableDataTree} options.\n */\nexport interface DTableDataTreeOptions<NODE, EMITTER = any>\n\textends DTableDataTreeItemAccessorOptions<NODE> {\n\tnodes?: NODE[];\n\n\t/**\n\t * Selection options.\n\t */\n\tselection?:\n\t\t| DTableDataTreeSelection<NODE>\n\t\t| DTableDataTreeSelectionCreator<NODE>\n\t\t| DTableDataTreeSelectionOptions;\n\n\t/**\n\t * A filter.\n\t */\n\tfilter?: DTableDataFilterer<NODE>;\n\n\t/**\n\t * A comparator.\n\t */\n\tcomparator?: DTableDataComparator<NODE>;\n\n\t/**\n\t * True to list up nodes in the given node array in the reverse order.\n\t */\n\treverse?: boolean;\n\n\t/**\n\t * Mappings of event names and event handlers.\n\t */\n\ton?: DTableDataTreeOnOptions<NODE, EMITTER>;\n}\n\n/**\n * Please note that this data class does not support the sorter.\n */\nexport class DTableDataTree<NODE extends DTableDataTreeNode<NODE, NODE>>\n\textends utils.EventEmitter\n\timplements DTableData<NODE>\n{\n\tprotected _parent: DTableDataParent | null;\n\tprotected _nodes?: NODE[];\n\tprotected _rows: NODE[];\n\tprotected _isRowsDirty: boolean;\n\tprotected _supplimentals: number[];\n\tprotected _flags: WeakMap<NODE, number>;\n\tprotected _filter: DTableDataTreeFilter<NODE>;\n\tprotected _sorter: DTableDataTreeSorter<NODE>;\n\tprotected _selection: DTableDataTreeSelection<NODE>;\n\tprotected _mapped: DTableDataMapped<NODE>;\n\tprotected _accessor: DTableDataTreeItemAccessor<NODE>;\n\tprotected _reverse: boolean;\n\n\tconstructor(options?: DTableDataTreeOptions<NODE>) {\n\t\tsuper();\n\n\t\tthis._parent = null;\n\t\tthis._accessor = this.toAccessor(options);\n\t\tthis._mapped = new DTableDataListMapped<NODE>(this);\n\t\tthis._rows = [];\n\t\tthis._isRowsDirty = false;\n\t\tthis._supplimentals = [];\n\t\tthis._flags = new WeakMap<NODE, number>();\n\t\tthis._reverse = !!options?.reverse;\n\t\tthis._selection = this.toSelection(options?.selection);\n\t\tthis._filter = new DTableDataTreeFilter<NODE>(this);\n\t\tthis._sorter = new DTableDataTreeSorter<NODE>();\n\n\t\tif (options) {\n\t\t\t// Filter\n\t\t\tconst filter = options.filter;\n\t\t\tif (filter) {\n\t\t\t\tthis._filter.set(filter);\n\t\t\t}\n\n\t\t\t// Events\n\t\t\tconst on = options.on;\n\t\t\tif (on) {\n\t\t\t\tfor (const name in on) {\n\t\t\t\t\tconst handler = on[name];\n\t\t\t\t\tif (handler) {\n\t\t\t\t\t\tthis.on(name, handler);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update rows\n\t\tthis.nodes = options?.nodes;\n\t}\n\n\tprotected toSelection(\n\t\toptions?:\n\t\t\t| DTableDataTreeSelection<NODE>\n\t\t\t| DTableDataTreeSelectionCreator<NODE>\n\t\t\t| DTableDataTreeSelectionOptions\n\t): DTableDataTreeSelection<NODE> {\n\t\tif (options instanceof utils.EventEmitter) {\n\t\t\treturn options;\n\t\t} else if (isFunction(options)) {\n\t\t\treturn options(this);\n\t\t}\n\t\treturn this.newSelection(options);\n\t}\n\n\tprotected newSelection(\n\t\toptions?: DTableDataTreeSelectionOptions\n\t): DTableDataTreeSelection<NODE> {\n\t\treturn new DTableDataTreeSelectionImpl(this, options);\n\t}\n\n\tprotected toAccessor(options?: DTableDataTreeOptions<NODE>): DTableDataTreeItemAccessor<NODE> {\n\t\treturn new DTableDataTreeItemAccessor(options);\n\t}\n\n\tbind(parent: DTableDataParent): void {\n\t\tthis._parent = parent;\n\t}\n\n\tget nodes(): NODE[] | undefined {\n\t\treturn this._nodes;\n\t}\n\n\tset nodes(nodes: NODE[] | undefined) {\n\t\tthis._nodes = nodes;\n\t\tthis._isRowsDirty = true;\n\t\tthis._selection.onNodeChange(nodes);\n\t\tthis._filter.toDirty();\n\t\tthis.update(true);\n\t}\n\n\tget rows(): NODE[] {\n\t\tif (this._isRowsDirty) {\n\t\t\tthis._isRowsDirty = false;\n\t\t\tthis.updateRows(this._nodes);\n\t\t}\n\t\treturn this._rows;\n\t}\n\n\tget supplimentals(): number[] {\n\t\treturn this._supplimentals;\n\t}\n\n\tget accessor(): DTableDataTreeItemAccessor<NODE> {\n\t\treturn this._accessor;\n\t}\n\n\tprotected updateRows(nodes: NODE[] | undefined): void {\n\t\tconst rows = this._rows;\n\t\tconst supplimentals = this._supplimentals;\n\t\tconst flags = this._flags;\n\t\tif (nodes != null) {\n\t\t\tconst irows = this.newRows(\n\t\t\t\tnodes,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\trows,\n\t\t\t\tsupplimentals,\n\t\t\t\tflags,\n\t\t\t\tthis._reverse,\n\t\t\t\tthis._accessor.toChildren\n\t\t\t);\n\t\t\tif (irows !== rows.length) {\n\t\t\t\trows.length = irows;\n\t\t\t\tsupplimentals.length = irows;\n\t\t\t}\n\t\t} else {\n\t\t\trows.length = 0;\n\t\t\tsupplimentals.length = 0;\n\t\t}\n\t}\n\n\tprotected toSupplimental(ilevel: number, hasChildren: boolean, isOpened: boolean): number {\n\t\treturn (ilevel << 2) | (hasChildren ? 2 : 0) | (isOpened ? 1 : 0);\n\t}\n\n\tprotected newRows(\n\t\tnodes: NODE[],\n\t\tirows: number,\n\t\tilevel: number,\n\t\trows: NODE[],\n\t\tsupplimentals: number[],\n\t\tflags: WeakMap<NODE, number>,\n\t\treverse: boolean,\n\t\ttoChildren: (node: NODE) => NODE[] | null | undefined\n\t): number {\n\t\tconst nodesLength = nodes.length;\n\t\tconst istart = reverse ? nodesLength - 1 : 0;\n\t\tconst idelta = reverse ? -1 : +1;\n\t\tfor (let i = istart; 0 <= i && i < nodesLength; i += idelta) {\n\t\t\tconst node = nodes[i];\n\t\t\tconst children = toChildren(node);\n\t\t\tconst isOpened = flags.has(node);\n\t\t\tconst supplimental = this.toSupplimental(\n\t\t\t\tilevel,\n\t\t\t\t!!(children && 0 < children.length),\n\t\t\t\tisOpened\n\t\t\t);\n\t\t\tif (irows < rows.length) {\n\t\t\t\trows[irows] = node;\n\t\t\t\tsupplimentals[irows] = supplimental;\n\t\t\t} else {\n\t\t\t\trows.push(node);\n\t\t\t\tsupplimentals.push(supplimental);\n\t\t\t}\n\t\t\tirows += 1;\n\n\t\t\tif (isOpened && children) {\n\t\t\t\tirows = this.newRows(\n\t\t\t\t\tchildren,\n\t\t\t\t\tirows,\n\t\t\t\t\tilevel + 1,\n\t\t\t\t\trows,\n\t\t\t\t\tsupplimentals,\n\t\t\t\t\tflags,\n\t\t\t\t\treverse,\n\t\t\t\t\ttoChildren\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn irows;\n\t}\n\n\tupdate(forcibly?: boolean): void {\n\t\tconst parent = this._parent;\n\t\tif (parent) {\n\t\t\tparent.update(forcibly);\n\t\t}\n\t}\n\n\tsize(): number {\n\t\treturn this.rows.length;\n\t}\n\n\tget(index: number): NODE | null {\n\t\tconst rows = this.rows;\n\t\tif (0 <= index && index < rows.length) {\n\t\t\treturn rows[index];\n\t\t}\n\t\treturn null;\n\t}\n\n\texpand(node: NODE): boolean {\n\t\tconst flags = this._flags;\n\t\tif (!flags.has(node)) {\n\t\t\tflags.set(node, 1);\n\t\t\tthis._isRowsDirty = true;\n\t\t\tthis._filter.toDirty();\n\t\t\tthis.update(true);\n\t\t\tthis.emit(\"expand\", node, this);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcollapse(node: NODE): boolean {\n\t\tconst flags = this._flags;\n\t\tif (flags.has(node)) {\n\t\t\tflags.delete(node);\n\t\t\tthis._isRowsDirty = true;\n\t\t\tthis._filter.toDirty();\n\t\t\tthis.update(true);\n\t\t\tthis.emit(\"collapse\", node, this);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisCollapsed(node: NODE): boolean {\n\t\treturn !this._flags.has(node);\n\t}\n\n\tisExpanded(node: NODE): boolean {\n\t\treturn this._flags.has(node);\n\t}\n\n\ttoggle(node: NODE): boolean {\n\t\tif (this.isExpanded(node)) {\n\t\t\treturn this.collapse(node);\n\t\t} else {\n\t\t\treturn this.expand(node);\n\t\t}\n\t}\n\n\t/** @deprecated in favor of {@link expand}. */\n\topen(node: NODE): boolean {\n\t\treturn this.expand(node);\n\t}\n\n\t/** @deprecated in favor of {@link collapse}. */\n\tclose(node: NODE): boolean {\n\t\treturn this.collapse(node);\n\t}\n\n\t/** @deprecated in favor of {@link isExpanded}. */\n\tisOpened(node: NODE): boolean {\n\t\treturn this.isExpanded(node);\n\t}\n\n\teach(\n\t\titeratee: (node: NODE, index: number) => boolean | void,\n\t\tifrom?: number,\n\t\tito?: number\n\t): void {\n\t\tconst rows = this.rows;\n\t\tifrom = ifrom != null ? Math.max(0, ifrom) : 0;\n\t\tito = ito != null ? Math.min(rows.length, ito) : rows.length;\n\t\tfor (let i = ifrom; i < ito; ++i) {\n\t\t\tconst row = rows[i];\n\t\t\tif (iteratee(row, i) === false) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tget selection(): DTableDataSelection<NODE> {\n\t\treturn this._selection;\n\t}\n\n\tget filter(): DTableDataFilter<NODE> {\n\t\treturn this._filter;\n\t}\n\n\tget sorter(): DTableDataSorter<NODE> {\n\t\treturn this._sorter;\n\t}\n\n\tget mapped(): DTableDataMapped<NODE> {\n\t\treturn this._mapped;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-data-tree.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-data-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2021 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DTableData, DTableDataMapped, DTableDataParent } from \"./d-table-data\";\nimport { DTableDataFilter, DTableDataFilterer } from \"./d-table-data-filter\";\nimport { DTableDataTreeFilter } from \"./d-table-data-tree-filter\";\nimport { DTableDataListMapped } from \"./d-table-data-list-mapped\";\nimport { DTableDataSelection } from \"./d-table-data-selection\";\nimport { DTableDataComparator, DTableDataSorter } from \"./d-table-data-sorter\";\nimport { DTableDataTreeSorter } from \"./d-table-data-tree-sorter\";\nimport { DTableDataTreeNode } from \"./d-table-data-tree-item\";\nimport {\n\tDTableDataTreeItemAccessor,\n\tDTableDataTreeItemAccessorOptions\n} from \"./d-table-data-tree-item-accessor\";\nimport {\n\tDTableDataTreeSelection,\n\tDTableDataTreeSelectionCreator,\n\tDTableDataTreeSelectionOptions\n} from \"./d-table-data-tree-selection\";\nimport { DTableDataTreeSelectionImpl } from \"./d-table-data-tree-selection-impl\";\nimport { isFunction } from \"./util/is-function\";\nimport { DBaseEvents } from \"./d-base\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DTableDataTree} events.\n */\nexport interface DTableDataTreeEvents<NODE, EMITTER> extends DBaseEvents<EMITTER> {\n\t/**\n\t * Triggered when a node is expanded.\n\t *\n\t * @param node a node\n\t * @param emitter an emitter\n\t */\n\texpand(node: NODE, emitter: EMITTER): void;\n\n\t/**\n\t * Triggered when a node is collapsed.\n\t *\n\t * @param node a node\n\t * @param emitter an emitter\n\t */\n\tcollapse(node: NODE, emitter: EMITTER): void;\n}\n\n/**\n * {@link DTableDataTree} \"on\" options.\n */\nexport interface DTableDataTreeOnOptions<NODE, EMITTER>\n\textends Partial<DTableDataTreeEvents<NODE, EMITTER>>,\n\t\tDOnOptions {}\n\n/**\n * {@link DTableDataTree} options.\n */\nexport interface DTableDataTreeOptions<NODE, EMITTER = any>\n\textends DTableDataTreeItemAccessorOptions<NODE> {\n\tnodes?: NODE[];\n\n\t/**\n\t * Selection options.\n\t */\n\tselection?:\n\t\t| DTableDataTreeSelection<NODE>\n\t\t| DTableDataTreeSelectionCreator<NODE>\n\t\t| DTableDataTreeSelectionOptions;\n\n\t/**\n\t * A filter.\n\t */\n\tfilter?: DTableDataFilterer<NODE>;\n\n\t/**\n\t * A comparator.\n\t */\n\tcomparator?: DTableDataComparator<NODE>;\n\n\t/**\n\t * True to list up nodes in the given node array in the reverse order.\n\t */\n\treverse?: boolean;\n\n\t/**\n\t * Mappings of event names and event handlers.\n\t */\n\ton?: DTableDataTreeOnOptions<NODE, EMITTER>;\n}\n\n/**\n * Please note that this data class does not support the sorter.\n */\nexport class DTableDataTree<NODE extends DTableDataTreeNode<NODE, NODE>>\n\textends utils.EventEmitter\n\timplements DTableData<NODE>\n{\n\tprotected _parent: DTableDataParent | null;\n\tprotected _nodes?: NODE[];\n\tprotected _rows: NODE[];\n\tprotected _isRowsDirty: boolean;\n\tprotected _supplimentals: number[];\n\tprotected _flags: WeakMap<NODE, number>;\n\tprotected _filter: DTableDataTreeFilter<NODE>;\n\tprotected _sorter: DTableDataTreeSorter<NODE>;\n\tprotected _selection: DTableDataTreeSelection<NODE>;\n\tprotected _mapped: DTableDataMapped<NODE>;\n\tprotected _accessor: DTableDataTreeItemAccessor<NODE>;\n\tprotected _reverse: boolean;\n\n\tconstructor(options?: DTableDataTreeOptions<NODE>) {\n\t\tsuper();\n\n\t\tthis._parent = null;\n\t\tthis._accessor = this.toAccessor(options);\n\t\tthis._mapped = new DTableDataListMapped<NODE>(this);\n\t\tthis._rows = [];\n\t\tthis._isRowsDirty = false;\n\t\tthis._supplimentals = [];\n\t\tthis._flags = new WeakMap<NODE, number>();\n\t\tthis._reverse = !!options?.reverse;\n\t\tthis._selection = this.toSelection(options?.selection);\n\t\tthis._filter = new DTableDataTreeFilter<NODE>(this);\n\t\tthis._sorter = new DTableDataTreeSorter<NODE>();\n\n\t\tif (options) {\n\t\t\t// Filter\n\t\t\tconst filter = options.filter;\n\t\t\tif (filter) {\n\t\t\t\tthis._filter.set(filter);\n\t\t\t}\n\n\t\t\t// Events\n\t\t\tconst on = options.on;\n\t\t\tif (on) {\n\t\t\t\tfor (const name in on) {\n\t\t\t\t\tconst handler = on[name];\n\t\t\t\t\tif (handler) {\n\t\t\t\t\t\tthis.on(name, handler);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update rows\n\t\tthis.nodes = options?.nodes;\n\t}\n\n\tprotected toSelection(\n\t\toptions?:\n\t\t\t| DTableDataTreeSelection<NODE>\n\t\t\t| DTableDataTreeSelectionCreator<NODE>\n\t\t\t| DTableDataTreeSelectionOptions\n\t): DTableDataTreeSelection<NODE> {\n\t\tif (options instanceof utils.EventEmitter) {\n\t\t\treturn options;\n\t\t} else if (isFunction(options)) {\n\t\t\treturn options(this);\n\t\t}\n\t\treturn this.newSelection(options);\n\t}\n\n\tprotected newSelection(\n\t\toptions?: DTableDataTreeSelectionOptions\n\t): DTableDataTreeSelection<NODE> {\n\t\treturn new DTableDataTreeSelectionImpl(this, options);\n\t}\n\n\tprotected toAccessor(options?: DTableDataTreeOptions<NODE>): DTableDataTreeItemAccessor<NODE> {\n\t\treturn new DTableDataTreeItemAccessor(options);\n\t}\n\n\tbind(parent: DTableDataParent): void {\n\t\tthis._parent = parent;\n\t}\n\n\tget nodes(): NODE[] | undefined {\n\t\treturn this._nodes;\n\t}\n\n\tset nodes(nodes: NODE[] | undefined) {\n\t\tthis._nodes = nodes;\n\t\tthis._isRowsDirty = true;\n\t\tthis._selection.onNodeChange(nodes);\n\t\tthis._filter.toDirty();\n\t\tthis.update(true);\n\t}\n\n\tget rows(): NODE[] {\n\t\tif (this._isRowsDirty) {\n\t\t\tthis._isRowsDirty = false;\n\t\t\tthis.updateRows(this._nodes);\n\t\t}\n\t\treturn this._rows;\n\t}\n\n\tget supplimentals(): number[] {\n\t\treturn this._supplimentals;\n\t}\n\n\tget accessor(): DTableDataTreeItemAccessor<NODE> {\n\t\treturn this._accessor;\n\t}\n\n\tprotected updateRows(nodes: NODE[] | undefined): void {\n\t\tconst rows = this._rows;\n\t\tconst supplimentals = this._supplimentals;\n\t\tconst flags = this._flags;\n\t\tif (nodes != null) {\n\t\t\tconst irows = this.newRows(\n\t\t\t\tnodes,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\trows,\n\t\t\t\tsupplimentals,\n\t\t\t\tflags,\n\t\t\t\tthis._reverse,\n\t\t\t\tthis._accessor.toChildren\n\t\t\t);\n\t\t\tif (irows !== rows.length) {\n\t\t\t\trows.length = irows;\n\t\t\t\tsupplimentals.length = irows;\n\t\t\t}\n\t\t} else {\n\t\t\trows.length = 0;\n\t\t\tsupplimentals.length = 0;\n\t\t}\n\t}\n\n\tprotected toSupplimental(ilevel: number, hasChildren: boolean, isOpened: boolean): number {\n\t\treturn (ilevel << 2) | (hasChildren ? 2 : 0) | (isOpened ? 1 : 0);\n\t}\n\n\tprotected newRows(\n\t\tnodes: NODE[],\n\t\tirows: number,\n\t\tilevel: number,\n\t\trows: NODE[],\n\t\tsupplimentals: number[],\n\t\tflags: WeakMap<NODE, number>,\n\t\treverse: boolean,\n\t\ttoChildren: (node: NODE) => NODE[] | null | undefined\n\t): number {\n\t\tconst nodesLength = nodes.length;\n\t\tconst istart = reverse ? nodesLength - 1 : 0;\n\t\tconst idelta = reverse ? -1 : +1;\n\t\tfor (let i = istart; 0 <= i && i < nodesLength; i += idelta) {\n\t\t\tconst node = nodes[i];\n\t\t\tconst children = toChildren(node);\n\t\t\tconst isOpened = flags.has(node);\n\t\t\tconst supplimental = this.toSupplimental(\n\t\t\t\tilevel,\n\t\t\t\t!!(children && 0 < children.length),\n\t\t\t\tisOpened\n\t\t\t);\n\t\t\tif (irows < rows.length) {\n\t\t\t\trows[irows] = node;\n\t\t\t\tsupplimentals[irows] = supplimental;\n\t\t\t} else {\n\t\t\t\trows.push(node);\n\t\t\t\tsupplimentals.push(supplimental);\n\t\t\t}\n\t\t\tirows += 1;\n\n\t\t\tif (isOpened && children) {\n\t\t\t\tirows = this.newRows(\n\t\t\t\t\tchildren,\n\t\t\t\t\tirows,\n\t\t\t\t\tilevel + 1,\n\t\t\t\t\trows,\n\t\t\t\t\tsupplimentals,\n\t\t\t\t\tflags,\n\t\t\t\t\treverse,\n\t\t\t\t\ttoChildren\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn irows;\n\t}\n\n\tupdate(forcibly?: boolean): void {\n\t\tconst parent = this._parent;\n\t\tif (parent) {\n\t\t\tparent.update(forcibly);\n\t\t}\n\t}\n\n\tsize(): number {\n\t\treturn this.rows.length;\n\t}\n\n\tget(index: number): NODE | null {\n\t\tconst rows = this.rows;\n\t\tif (0 <= index && index < rows.length) {\n\t\t\treturn rows[index];\n\t\t}\n\t\treturn null;\n\t}\n\n\texpand(node: NODE): boolean {\n\t\tconst flags = this._flags;\n\t\tif (!flags.has(node)) {\n\t\t\tflags.set(node, 1);\n\t\t\tthis._isRowsDirty = true;\n\t\t\tthis._filter.toDirty();\n\t\t\tthis.update(true);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcollapse(node: NODE): boolean {\n\t\tconst flags = this._flags;\n\t\tif (flags.has(node)) {\n\t\t\tflags.delete(node);\n\t\t\tthis._isRowsDirty = true;\n\t\t\tthis._filter.toDirty();\n\t\t\tthis.update(true);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisCollapsed(node: NODE): boolean {\n\t\treturn !this._flags.has(node);\n\t}\n\n\tisExpanded(node: NODE): boolean {\n\t\treturn this._flags.has(node);\n\t}\n\n\ttoggle(node: NODE): boolean {\n\t\tif (this.isExpanded(node)) {\n\t\t\treturn this.collapse(node);\n\t\t} else {\n\t\t\treturn this.expand(node);\n\t\t}\n\t}\n\n\t/** @deprecated in favor of {@link expand}. */\n\topen(node: NODE): boolean {\n\t\treturn this.expand(node);\n\t}\n\n\t/** @deprecated in favor of {@link collapse}. */\n\tclose(node: NODE): boolean {\n\t\treturn this.collapse(node);\n\t}\n\n\t/** @deprecated in favor of {@link isExpanded}. */\n\tisOpened(node: NODE): boolean {\n\t\treturn this.isExpanded(node);\n\t}\n\n\teach(\n\t\titeratee: (node: NODE, index: number) => boolean | void,\n\t\tifrom?: number,\n\t\tito?: number\n\t): void {\n\t\tconst rows = this.rows;\n\t\tifrom = ifrom != null ? Math.max(0, ifrom) : 0;\n\t\tito = ito != null ? Math.min(rows.length, ito) : rows.length;\n\t\tfor (let i = ifrom; i < ito; ++i) {\n\t\t\tconst row = rows[i];\n\t\t\tif (iteratee(row, i) === false) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tget selection(): DTableDataSelection<NODE> {\n\t\treturn this._selection;\n\t}\n\n\tget filter(): DTableDataFilter<NODE> {\n\t\treturn this._filter;\n\t}\n\n\tget sorter(): DTableDataSorter<NODE> {\n\t\treturn this._sorter;\n\t}\n\n\tget mapped(): DTableDataMapped<NODE> {\n\t\treturn this._mapped;\n\t}\n}\n"]}
@@ -176,17 +176,44 @@ var UtilKeyboardEvent = /** @class */ (function () {
176
176
  var keyExpression = void 0;
177
177
  var event_1;
178
178
  if (0 <= arrowIndex) {
179
- keyExpression = expression.substring(0, arrowIndex).trim();
179
+ keyExpression = expression.substring(0, arrowIndex).trim().toLowerCase();
180
180
  event_1 = expression.substring(arrowIndex + 2).trim();
181
181
  }
182
182
  else {
183
- keyExpression = expression.trim();
183
+ keyExpression = expression.trim().toLowerCase();
184
+ }
185
+ var alt = false;
186
+ var ctrl = false;
187
+ var shift = false;
188
+ var key = "a";
189
+ var length_1 = keyExpression.length;
190
+ var i = 0;
191
+ var j = 1;
192
+ for (; j < length_1; ++j) {
193
+ var c = keyExpression.charAt(j);
194
+ if (c === "+") {
195
+ var part = keyExpression.substring(i, j);
196
+ switch (part) {
197
+ case "alt":
198
+ alt = true;
199
+ break;
200
+ case "ctrl":
201
+ ctrl = true;
202
+ break;
203
+ case "shift":
204
+ shift = true;
205
+ break;
206
+ default:
207
+ key = part;
208
+ break;
209
+ }
210
+ j += 1;
211
+ i = j;
212
+ }
213
+ }
214
+ if (i !== j) {
215
+ key = keyExpression.substring(i, j);
184
216
  }
185
- var keys = keyExpression.toLowerCase().split("+");
186
- var alt = 0 <= keys.indexOf("alt");
187
- var ctrl = 0 <= keys.indexOf("ctrl");
188
- var shift = 0 <= keys.indexOf("shift");
189
- var key = keys[keys.length - 1];
190
217
  return setShortcutKeyAndWhich({
191
218
  alt: alt,
192
219
  ctrl: ctrl,
@@ -1 +1 @@
1
- {"version":3,"file":"util-keyboard-event.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-keyboard-event.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DApplicationLayerLike } from \"../d-application-layer-like\";\nimport { DApplications } from \"../d-applications\";\nimport { DBase } from \"../d-base\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { isString } from \"./is-string\";\n\nexport interface UtilKeyboardEventLayerPicker {\n\tpicked: DApplicationLayerLike | null;\n}\n\nexport interface UtilKeyboardEventShortcut {\n\talt: boolean;\n\tctrl: boolean;\n\tshift: boolean;\n\tkey: string;\n\twhich: number;\n\tevent?: string;\n}\n\nexport interface UtilKeyboardEventShortcutTarget {\n\tstate: DBaseStateSet;\n\temit(eventName: string): void;\n}\n\nconst setShortcutKeyAndWhich = (shortcut: UtilKeyboardEventShortcut): UtilKeyboardEventShortcut => {\n\tconst key = shortcut.key;\n\tif (key.length <= 1) {\n\t\tif (shortcut.shift) {\n\t\t\tshortcut.key = key.toUpperCase();\n\t\t}\n\t\tconst code = key.charCodeAt(0);\n\t\tif (97 <= code && code <= 122) {\n\t\t\t// a ... z\n\t\t\tshortcut.which = code - 32;\n\t\t} else {\n\t\t\tshortcut.which = code;\n\t\t}\n\t} else {\n\t\tswitch (key) {\n\t\t\tcase \"Enter\":\n\t\t\t\tshortcut.which = 13;\n\t\t\t\tbreak;\n\t\t\tcase \"Space\":\n\t\t\t\tshortcut.key = \" \";\n\t\t\t\tshortcut.which = 32;\n\t\t\t\tbreak;\n\t\t\tcase \"Escape\":\n\t\t\t\tshortcut.which = 27;\n\t\t\t\tbreak;\n\t\t\tcase \"F1\":\n\t\t\t\tshortcut.which = 112;\n\t\t\t\tbreak;\n\t\t\tcase \"F2\":\n\t\t\t\tshortcut.which = 113;\n\t\t\t\tbreak;\n\t\t\tcase \"F3\":\n\t\t\t\tshortcut.which = 114;\n\t\t\t\tbreak;\n\t\t\tcase \"F4\":\n\t\t\t\tshortcut.which = 115;\n\t\t\t\tbreak;\n\t\t\tcase \"F5\":\n\t\t\t\tshortcut.which = 116;\n\t\t\t\tbreak;\n\t\t\tcase \"F6\":\n\t\t\t\tshortcut.which = 117;\n\t\t\t\tbreak;\n\t\t\tcase \"F7\":\n\t\t\t\tshortcut.which = 118;\n\t\t\t\tbreak;\n\t\t\tcase \"F8\":\n\t\t\t\tshortcut.which = 119;\n\t\t\t\tbreak;\n\t\t\tcase \"F9\":\n\t\t\t\tshortcut.which = 120;\n\t\t\t\tbreak;\n\t\t\tcase \"F10\":\n\t\t\t\tshortcut.which = 121;\n\t\t\t\tbreak;\n\t\t\tcase \"F11\":\n\t\t\t\tshortcut.which = 122;\n\t\t\t\tbreak;\n\t\t\tcase \"F12\":\n\t\t\t\tshortcut.which = 123;\n\t\t\t\tbreak;\n\t\t\tcase \"CapsLock\":\n\t\t\t\tif (shortcut.shift) {\n\t\t\t\t\tshortcut.which = 20;\n\t\t\t\t} else {\n\t\t\t\t\tshortcut.which = 240;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tshortcut.which = 38;\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tshortcut.which = 40;\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowLeft\":\n\t\t\t\tshortcut.which = 37;\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowRight\":\n\t\t\t\tshortcut.which = 39;\n\t\t\t\tbreak;\n\t\t\tcase \"Insert\":\n\t\t\t\tshortcut.which = 45;\n\t\t\t\tbreak;\n\t\t\tcase \"Delete\":\n\t\t\t\tshortcut.which = 46;\n\t\t\t\tbreak;\n\t\t\tcase \"PageUp\":\n\t\t\t\tshortcut.which = 33;\n\t\t\t\tbreak;\n\t\t\tcase \"PageDown\":\n\t\t\t\tshortcut.which = 34;\n\t\t\t\tbreak;\n\t\t\tcase \"Backspace\":\n\t\t\t\tshortcut.which = 8;\n\t\t\t\tbreak;\n\t\t\tcase \";\":\n\t\t\t\tshortcut.which = 187;\n\t\t\t\tbreak;\n\t\t\tcase \"Pause\":\n\t\t\t\tshortcut.which = 19;\n\t\t\t\tbreak;\n\t\t\tcase \"ScrollLock\":\n\t\t\t\tshortcut.which = 145;\n\t\t\t\tbreak;\n\t\t\tcase \"Tab\":\n\t\t\t\tshortcut.which = 9;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn shortcut;\n};\n\nexport class UtilKeyboardEvent {\n\tstatic isActivateKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Space\" || e.key === \"Enter\" || e.which === 32 || e.which === 13;\n\t}\n\n\tstatic isArrowUpKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowUp\" || e.which === 38;\n\t}\n\n\tstatic isArrowDownKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowDown\" || e.which === 40;\n\t}\n\n\tstatic isArrowLeftKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowLeft\" || e.which === 37;\n\t}\n\n\tstatic isArrowRightKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowRight\" || e.which === 39;\n\t}\n\n\tstatic isCancelKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Esc\" || e.which === 27;\n\t}\n\n\tstatic isFocusKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Tab\" || e.which === 9;\n\t}\n\n\tstatic isUndoKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && (e.key === \"z\" || e.which === 90);\n\t}\n\n\tstatic isRedoKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && (e.key === \"y\" || e.which === 89);\n\t}\n\n\tstatic isSaveKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && !e.shiftKey && (e.key === \"s\" || e.which === 83);\n\t}\n\n\tstatic isSaveAsKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && e.shiftKey && (e.key === \"S\" || e.which === 83);\n\t}\n\n\tstatic isDeleteKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Delete\" || e.which === 46;\n\t}\n\n\tstatic isSelectAllKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && !e.shiftKey && (e.key === \"a\" || e.which === 65);\n\t}\n\n\tstatic isOkKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Enter\" || e.which === 13;\n\t}\n\n\tstatic getFocusDirection(e: KeyboardEvent): boolean {\n\t\treturn e.shiftKey !== true;\n\t}\n\n\tstatic toShortcut(\n\t\texpressionOrShortcut: string | UtilKeyboardEventShortcut\n\t): UtilKeyboardEventShortcut {\n\t\tif (!isString(expressionOrShortcut)) {\n\t\t\treturn expressionOrShortcut;\n\t\t} else {\n\t\t\tconst expression = expressionOrShortcut;\n\t\t\tconst arrowIndex = expression.indexOf(\"->\");\n\t\t\tlet keyExpression: string;\n\t\t\tlet event: string | undefined;\n\t\t\tif (0 <= arrowIndex) {\n\t\t\t\tkeyExpression = expression.substring(0, arrowIndex).trim();\n\t\t\t\tevent = expression.substring(arrowIndex + 2).trim();\n\t\t\t} else {\n\t\t\t\tkeyExpression = expression.trim();\n\t\t\t}\n\t\t\tconst keys = keyExpression.toLowerCase().split(\"+\");\n\t\t\tconst alt: boolean = 0 <= keys.indexOf(\"alt\");\n\t\t\tconst ctrl: boolean = 0 <= keys.indexOf(\"ctrl\");\n\t\t\tconst shift: boolean = 0 <= keys.indexOf(\"shift\");\n\t\t\tconst key: string = keys[keys.length - 1];\n\t\t\treturn setShortcutKeyAndWhich({\n\t\t\t\talt,\n\t\t\t\tctrl,\n\t\t\t\tshift,\n\t\t\t\tkey,\n\t\t\t\twhich: 0,\n\t\t\t\tevent\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic toString(shortcut: UtilKeyboardEventShortcut): string {\n\t\tconst parts = [];\n\t\tif (shortcut.ctrl) {\n\t\t\tparts.push(\"Ctrl\");\n\t\t}\n\t\tif (shortcut.shift) {\n\t\t\tparts.push(\"Shift\");\n\t\t}\n\t\tif (shortcut.alt) {\n\t\t\tparts.push(\"Alt\");\n\t\t}\n\t\tparts.push(shortcut.key.toUpperCase());\n\t\treturn parts.join(\"+\");\n\t}\n\n\tstatic on(\n\t\ttarget: UtilKeyboardEventShortcutTarget,\n\t\texpressionOrShortcut: string | UtilKeyboardEventShortcut,\n\t\thandler?: (e: KeyboardEvent) => void\n\t): void {\n\t\tconst shortcut = this.toShortcut(expressionOrShortcut);\n\t\tdocument.body.addEventListener(\"keydown\", (e: KeyboardEvent): void => {\n\t\t\tif (\n\t\t\t\te.altKey === shortcut.alt &&\n\t\t\t\te.ctrlKey === shortcut.ctrl &&\n\t\t\t\te.shiftKey === shortcut.shift &&\n\t\t\t\t(e.key === shortcut.key || e.which === shortcut.which)\n\t\t\t) {\n\t\t\t\tif (target.state.isActionable) {\n\t\t\t\t\tif (shortcut.event != null) {\n\t\t\t\t\t\ttarget.emit(shortcut.event);\n\t\t\t\t\t} else if (handler != null) {\n\t\t\t\t\t\thandler(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic moveFocusVertically(\n\t\te: KeyboardEvent,\n\t\ttarget: DBase,\n\t\tpicker?: UtilKeyboardEventLayerPicker\n\t): boolean {\n\t\tif (target.state.isActionable) {\n\t\t\tconst isBackward = UtilKeyboardEvent.isArrowUpKey(e);\n\t\t\tconst isForward = UtilKeyboardEvent.isArrowDownKey(e);\n\t\t\tif (isBackward || isForward) {\n\t\t\t\treturn this.moveFocus(isForward, target, picker);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic moveFocusHorizontally(\n\t\te: KeyboardEvent,\n\t\ttarget: DBase,\n\t\tpicker?: UtilKeyboardEventLayerPicker\n\t): boolean {\n\t\tif (target.state.isActionable) {\n\t\t\tconst isBackward = UtilKeyboardEvent.isArrowLeftKey(e);\n\t\t\tconst isForward = UtilKeyboardEvent.isArrowRightKey(e);\n\t\t\tif (isBackward || isForward) {\n\t\t\t\treturn this.moveFocus(isForward, target, picker);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic moveFocus(\n\t\tdirection: boolean,\n\t\ttarget: DBase,\n\t\tpicker?: UtilKeyboardEventLayerPicker\n\t): boolean {\n\t\tconst layer = picker?.picked ?? DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tconst focusController = layer.getFocusController();\n\t\t\tconst focused = focusController.get();\n\t\t\tif (focused != null) {\n\t\t\t\tconst next = focusController.find(\n\t\t\t\t\tfocused,\n\t\t\t\t\tfalse,\n\t\t\t\t\tfocused.state.isFocusRoot || direction,\n\t\t\t\t\tdirection,\n\t\t\t\t\ttarget\n\t\t\t\t);\n\t\t\t\tif (next != null) {\n\t\t\t\t\tfocusController.focus(next);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
1
+ {"version":3,"file":"util-keyboard-event.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-keyboard-event.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DApplicationLayerLike } from \"../d-application-layer-like\";\nimport { DApplications } from \"../d-applications\";\nimport { DBase } from \"../d-base\";\nimport { DBaseStateSet } from \"../d-base-state-set\";\nimport { isString } from \"./is-string\";\n\nexport interface UtilKeyboardEventLayerPicker {\n\tpicked: DApplicationLayerLike | null;\n}\n\nexport interface UtilKeyboardEventShortcut {\n\talt: boolean;\n\tctrl: boolean;\n\tshift: boolean;\n\tkey: string;\n\twhich: number;\n\tevent?: string;\n}\n\nexport interface UtilKeyboardEventShortcutTarget {\n\tstate: DBaseStateSet;\n\temit(eventName: string): void;\n}\n\nconst setShortcutKeyAndWhich = (shortcut: UtilKeyboardEventShortcut): UtilKeyboardEventShortcut => {\n\tconst key = shortcut.key;\n\tif (key.length <= 1) {\n\t\tif (shortcut.shift) {\n\t\t\tshortcut.key = key.toUpperCase();\n\t\t}\n\t\tconst code = key.charCodeAt(0);\n\t\tif (97 <= code && code <= 122) {\n\t\t\t// a ... z\n\t\t\tshortcut.which = code - 32;\n\t\t} else {\n\t\t\tshortcut.which = code;\n\t\t}\n\t} else {\n\t\tswitch (key) {\n\t\t\tcase \"Enter\":\n\t\t\t\tshortcut.which = 13;\n\t\t\t\tbreak;\n\t\t\tcase \"Space\":\n\t\t\t\tshortcut.key = \" \";\n\t\t\t\tshortcut.which = 32;\n\t\t\t\tbreak;\n\t\t\tcase \"Escape\":\n\t\t\t\tshortcut.which = 27;\n\t\t\t\tbreak;\n\t\t\tcase \"F1\":\n\t\t\t\tshortcut.which = 112;\n\t\t\t\tbreak;\n\t\t\tcase \"F2\":\n\t\t\t\tshortcut.which = 113;\n\t\t\t\tbreak;\n\t\t\tcase \"F3\":\n\t\t\t\tshortcut.which = 114;\n\t\t\t\tbreak;\n\t\t\tcase \"F4\":\n\t\t\t\tshortcut.which = 115;\n\t\t\t\tbreak;\n\t\t\tcase \"F5\":\n\t\t\t\tshortcut.which = 116;\n\t\t\t\tbreak;\n\t\t\tcase \"F6\":\n\t\t\t\tshortcut.which = 117;\n\t\t\t\tbreak;\n\t\t\tcase \"F7\":\n\t\t\t\tshortcut.which = 118;\n\t\t\t\tbreak;\n\t\t\tcase \"F8\":\n\t\t\t\tshortcut.which = 119;\n\t\t\t\tbreak;\n\t\t\tcase \"F9\":\n\t\t\t\tshortcut.which = 120;\n\t\t\t\tbreak;\n\t\t\tcase \"F10\":\n\t\t\t\tshortcut.which = 121;\n\t\t\t\tbreak;\n\t\t\tcase \"F11\":\n\t\t\t\tshortcut.which = 122;\n\t\t\t\tbreak;\n\t\t\tcase \"F12\":\n\t\t\t\tshortcut.which = 123;\n\t\t\t\tbreak;\n\t\t\tcase \"CapsLock\":\n\t\t\t\tif (shortcut.shift) {\n\t\t\t\t\tshortcut.which = 20;\n\t\t\t\t} else {\n\t\t\t\t\tshortcut.which = 240;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tshortcut.which = 38;\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tshortcut.which = 40;\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowLeft\":\n\t\t\t\tshortcut.which = 37;\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowRight\":\n\t\t\t\tshortcut.which = 39;\n\t\t\t\tbreak;\n\t\t\tcase \"Insert\":\n\t\t\t\tshortcut.which = 45;\n\t\t\t\tbreak;\n\t\t\tcase \"Delete\":\n\t\t\t\tshortcut.which = 46;\n\t\t\t\tbreak;\n\t\t\tcase \"PageUp\":\n\t\t\t\tshortcut.which = 33;\n\t\t\t\tbreak;\n\t\t\tcase \"PageDown\":\n\t\t\t\tshortcut.which = 34;\n\t\t\t\tbreak;\n\t\t\tcase \"Backspace\":\n\t\t\t\tshortcut.which = 8;\n\t\t\t\tbreak;\n\t\t\tcase \";\":\n\t\t\t\tshortcut.which = 187;\n\t\t\t\tbreak;\n\t\t\tcase \"Pause\":\n\t\t\t\tshortcut.which = 19;\n\t\t\t\tbreak;\n\t\t\tcase \"ScrollLock\":\n\t\t\t\tshortcut.which = 145;\n\t\t\t\tbreak;\n\t\t\tcase \"Tab\":\n\t\t\t\tshortcut.which = 9;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn shortcut;\n};\n\nexport class UtilKeyboardEvent {\n\tstatic isActivateKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Space\" || e.key === \"Enter\" || e.which === 32 || e.which === 13;\n\t}\n\n\tstatic isArrowUpKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowUp\" || e.which === 38;\n\t}\n\n\tstatic isArrowDownKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowDown\" || e.which === 40;\n\t}\n\n\tstatic isArrowLeftKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowLeft\" || e.which === 37;\n\t}\n\n\tstatic isArrowRightKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"ArrowRight\" || e.which === 39;\n\t}\n\n\tstatic isCancelKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Esc\" || e.which === 27;\n\t}\n\n\tstatic isFocusKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Tab\" || e.which === 9;\n\t}\n\n\tstatic isUndoKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && (e.key === \"z\" || e.which === 90);\n\t}\n\n\tstatic isRedoKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && (e.key === \"y\" || e.which === 89);\n\t}\n\n\tstatic isSaveKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && !e.shiftKey && (e.key === \"s\" || e.which === 83);\n\t}\n\n\tstatic isSaveAsKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && e.shiftKey && (e.key === \"S\" || e.which === 83);\n\t}\n\n\tstatic isDeleteKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Delete\" || e.which === 46;\n\t}\n\n\tstatic isSelectAllKey(e: KeyboardEvent): boolean {\n\t\treturn e.ctrlKey && !e.shiftKey && (e.key === \"a\" || e.which === 65);\n\t}\n\n\tstatic isOkKey(e: KeyboardEvent): boolean {\n\t\treturn e.key === \"Enter\" || e.which === 13;\n\t}\n\n\tstatic getFocusDirection(e: KeyboardEvent): boolean {\n\t\treturn e.shiftKey !== true;\n\t}\n\n\tstatic toShortcut(\n\t\texpressionOrShortcut: string | UtilKeyboardEventShortcut\n\t): UtilKeyboardEventShortcut {\n\t\tif (!isString(expressionOrShortcut)) {\n\t\t\treturn expressionOrShortcut;\n\t\t} else {\n\t\t\tconst expression = expressionOrShortcut;\n\t\t\tconst arrowIndex = expression.indexOf(\"->\");\n\t\t\tlet keyExpression: string;\n\t\t\tlet event: string | undefined;\n\t\t\tif (0 <= arrowIndex) {\n\t\t\t\tkeyExpression = expression.substring(0, arrowIndex).trim().toLowerCase();\n\t\t\t\tevent = expression.substring(arrowIndex + 2).trim();\n\t\t\t} else {\n\t\t\t\tkeyExpression = expression.trim().toLowerCase();\n\t\t\t}\n\t\t\tlet alt = false;\n\t\t\tlet ctrl = false;\n\t\t\tlet shift = false;\n\t\t\tlet key = \"a\";\n\t\t\tconst length = keyExpression.length;\n\t\t\tlet i = 0;\n\t\t\tlet j = 1;\n\t\t\tfor (; j < length; ++j) {\n\t\t\t\tconst c = keyExpression.charAt(j);\n\t\t\t\tif (c === \"+\") {\n\t\t\t\t\tconst part = keyExpression.substring(i, j);\n\t\t\t\t\tswitch (part) {\n\t\t\t\t\t\tcase \"alt\":\n\t\t\t\t\t\t\talt = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"ctrl\":\n\t\t\t\t\t\t\tctrl = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"shift\":\n\t\t\t\t\t\t\tshift = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tkey = part;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tj += 1;\n\t\t\t\t\ti = j;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i !== j) {\n\t\t\t\tkey = keyExpression.substring(i, j);\n\t\t\t}\n\t\t\treturn setShortcutKeyAndWhich({\n\t\t\t\talt,\n\t\t\t\tctrl,\n\t\t\t\tshift,\n\t\t\t\tkey,\n\t\t\t\twhich: 0,\n\t\t\t\tevent\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic toString(shortcut: UtilKeyboardEventShortcut): string {\n\t\tconst parts = [];\n\t\tif (shortcut.ctrl) {\n\t\t\tparts.push(\"Ctrl\");\n\t\t}\n\t\tif (shortcut.shift) {\n\t\t\tparts.push(\"Shift\");\n\t\t}\n\t\tif (shortcut.alt) {\n\t\t\tparts.push(\"Alt\");\n\t\t}\n\t\tparts.push(shortcut.key.toUpperCase());\n\t\treturn parts.join(\"+\");\n\t}\n\n\tstatic on(\n\t\ttarget: UtilKeyboardEventShortcutTarget,\n\t\texpressionOrShortcut: string | UtilKeyboardEventShortcut,\n\t\thandler?: (e: KeyboardEvent) => void\n\t): void {\n\t\tconst shortcut = this.toShortcut(expressionOrShortcut);\n\t\tdocument.body.addEventListener(\"keydown\", (e: KeyboardEvent): void => {\n\t\t\tif (\n\t\t\t\te.altKey === shortcut.alt &&\n\t\t\t\te.ctrlKey === shortcut.ctrl &&\n\t\t\t\te.shiftKey === shortcut.shift &&\n\t\t\t\t(e.key === shortcut.key || e.which === shortcut.which)\n\t\t\t) {\n\t\t\t\tif (target.state.isActionable) {\n\t\t\t\t\tif (shortcut.event != null) {\n\t\t\t\t\t\ttarget.emit(shortcut.event);\n\t\t\t\t\t} else if (handler != null) {\n\t\t\t\t\t\thandler(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic moveFocusVertically(\n\t\te: KeyboardEvent,\n\t\ttarget: DBase,\n\t\tpicker?: UtilKeyboardEventLayerPicker\n\t): boolean {\n\t\tif (target.state.isActionable) {\n\t\t\tconst isBackward = UtilKeyboardEvent.isArrowUpKey(e);\n\t\t\tconst isForward = UtilKeyboardEvent.isArrowDownKey(e);\n\t\t\tif (isBackward || isForward) {\n\t\t\t\treturn this.moveFocus(isForward, target, picker);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic moveFocusHorizontally(\n\t\te: KeyboardEvent,\n\t\ttarget: DBase,\n\t\tpicker?: UtilKeyboardEventLayerPicker\n\t): boolean {\n\t\tif (target.state.isActionable) {\n\t\t\tconst isBackward = UtilKeyboardEvent.isArrowLeftKey(e);\n\t\t\tconst isForward = UtilKeyboardEvent.isArrowRightKey(e);\n\t\t\tif (isBackward || isForward) {\n\t\t\t\treturn this.moveFocus(isForward, target, picker);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic moveFocus(\n\t\tdirection: boolean,\n\t\ttarget: DBase,\n\t\tpicker?: UtilKeyboardEventLayerPicker\n\t): boolean {\n\t\tconst layer = picker?.picked ?? DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tconst focusController = layer.getFocusController();\n\t\t\tconst focused = focusController.get();\n\t\t\tif (focused != null) {\n\t\t\t\tconst next = focusController.find(\n\t\t\t\t\tfocused,\n\t\t\t\t\tfalse,\n\t\t\t\t\tfocused.state.isFocusRoot || direction,\n\t\t\t\t\tdirection,\n\t\t\t\t\ttarget\n\t\t\t\t);\n\t\t\t\tif (next != null) {\n\t\t\t\t\tfocusController.focus(next);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.284.0
2
+ Winter Cardinal UI v0.286.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.284.0
2
+ Winter Cardinal UI v0.286.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.284.0
2
+ Winter Cardinal UI v0.286.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.284.0
2
+ Winter Cardinal UI v0.286.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.284.0
2
+ Winter Cardinal UI v0.286.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -12796,17 +12796,44 @@ var UtilKeyboardEvent = /** @class */ (function () {
12796
12796
  var keyExpression = void 0;
12797
12797
  var event_1;
12798
12798
  if (0 <= arrowIndex) {
12799
- keyExpression = expression.substring(0, arrowIndex).trim();
12799
+ keyExpression = expression.substring(0, arrowIndex).trim().toLowerCase();
12800
12800
  event_1 = expression.substring(arrowIndex + 2).trim();
12801
12801
  }
12802
12802
  else {
12803
- keyExpression = expression.trim();
12803
+ keyExpression = expression.trim().toLowerCase();
12804
+ }
12805
+ var alt = false;
12806
+ var ctrl = false;
12807
+ var shift = false;
12808
+ var key = "a";
12809
+ var length_1 = keyExpression.length;
12810
+ var i = 0;
12811
+ var j = 1;
12812
+ for (; j < length_1; ++j) {
12813
+ var c = keyExpression.charAt(j);
12814
+ if (c === "+") {
12815
+ var part = keyExpression.substring(i, j);
12816
+ switch (part) {
12817
+ case "alt":
12818
+ alt = true;
12819
+ break;
12820
+ case "ctrl":
12821
+ ctrl = true;
12822
+ break;
12823
+ case "shift":
12824
+ shift = true;
12825
+ break;
12826
+ default:
12827
+ key = part;
12828
+ break;
12829
+ }
12830
+ j += 1;
12831
+ i = j;
12832
+ }
12833
+ }
12834
+ if (i !== j) {
12835
+ key = keyExpression.substring(i, j);
12804
12836
  }
12805
- var keys = keyExpression.toLowerCase().split("+");
12806
- var alt = 0 <= keys.indexOf("alt");
12807
- var ctrl = 0 <= keys.indexOf("ctrl");
12808
- var shift = 0 <= keys.indexOf("shift");
12809
- var key = keys[keys.length - 1];
12810
12837
  return setShortcutKeyAndWhich({
12811
12838
  alt: alt,
12812
12839
  ctrl: ctrl,
@@ -85353,7 +85380,18 @@ var DTableBodyCellInputTree = /** @class */ (function (_super) {
85353
85380
  }
85354
85381
  var data = body.data;
85355
85382
  if (data && data.toggle) {
85356
- data.toggle(row);
85383
+ if (data.isExpanded(row)) {
85384
+ if (data.collapse(row)) {
85385
+ this.emit("collapse", this);
85386
+ data.emit("collapse", row, this);
85387
+ }
85388
+ }
85389
+ else {
85390
+ if (data.expand(row)) {
85391
+ this.emit("expand", this);
85392
+ data.emit("expand", row, this);
85393
+ }
85394
+ }
85357
85395
  }
85358
85396
  };
85359
85397
  DTableBodyCellInputTree.prototype.onRowSelect = function (e, local) {
@@ -85784,7 +85822,18 @@ var DTableBodyCellTree = /** @class */ (function (_super) {
85784
85822
  }
85785
85823
  var data = body.data;
85786
85824
  if (data && data.toggle) {
85787
- data.toggle(row);
85825
+ if (data.isExpanded(row)) {
85826
+ if (data.collapse(row)) {
85827
+ this.emit("collapse", this);
85828
+ data.emit("collapse", row, this);
85829
+ }
85830
+ }
85831
+ else {
85832
+ if (data.expand(row)) {
85833
+ this.emit("expand", this);
85834
+ data.emit("expand", row, this);
85835
+ }
85836
+ }
85788
85837
  }
85789
85838
  };
85790
85839
  DTableBodyCellTree.prototype.onRowSelect = function (e, local) {
@@ -88375,7 +88424,6 @@ var DTableDataTree = /** @class */ (function (_super) {
88375
88424
  this._isRowsDirty = true;
88376
88425
  this._filter.toDirty();
88377
88426
  this.update(true);
88378
- this.emit("expand", node, this);
88379
88427
  return true;
88380
88428
  }
88381
88429
  return false;
@@ -88387,7 +88435,6 @@ var DTableDataTree = /** @class */ (function (_super) {
88387
88435
  this._isRowsDirty = true;
88388
88436
  this._filter.toDirty();
88389
88437
  this.update(true);
88390
- this.emit("collapse", node, this);
88391
88438
  return true;
88392
88439
  }
88393
88440
  return false;