@wcardinal/wcardinal-ui 0.294.0 → 0.296.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.
Files changed (26) hide show
  1. package/dist/types/wcardinal/ui/d-chart-axis-base-tick-container.d.ts +6 -1
  2. package/dist/types/wcardinal/ui/d-chart-coordinate-base.d.ts +2 -0
  3. package/dist/types/wcardinal/ui/d-table-data-tree-item-accessor.d.ts +9 -4
  4. package/dist/types/wcardinal/ui/d-table-data-tree-selection-impl.d.ts +2 -1
  5. package/dist/types/wcardinal/ui/d-table-data-tree.d.ts +2 -2
  6. package/dist/wcardinal/ui/d-chart-axis-base-tick-container.js +22 -15
  7. package/dist/wcardinal/ui/d-chart-axis-base-tick-container.js.map +1 -1
  8. package/dist/wcardinal/ui/d-chart-coordinate-base.js +12 -3
  9. package/dist/wcardinal/ui/d-chart-coordinate-base.js.map +1 -1
  10. package/dist/wcardinal/ui/d-table-data-tree-filter.js +12 -8
  11. package/dist/wcardinal/ui/d-table-data-tree-filter.js.map +1 -1
  12. package/dist/wcardinal/ui/d-table-data-tree-item-accessor.js +13 -3
  13. package/dist/wcardinal/ui/d-table-data-tree-item-accessor.js.map +1 -1
  14. package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js +7 -5
  15. package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js.map +1 -1
  16. package/dist/wcardinal/ui/d-table-data-tree.js +5 -4
  17. package/dist/wcardinal/ui/d-table-data-tree.js.map +1 -1
  18. package/dist/wcardinal-ui-theme-dark.js +1 -1
  19. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  20. package/dist/wcardinal-ui-theme-white.js +1 -1
  21. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  22. package/dist/wcardinal-ui.cjs.js +106 -74
  23. package/dist/wcardinal-ui.js +106 -74
  24. package/dist/wcardinal-ui.min.js +2 -2
  25. package/dist/wcardinal-ui.min.js.map +1 -1
  26. package/package.json +1 -1
@@ -39,9 +39,11 @@ var DTableDataTreeSelectionImpl = /** @class */ (function (_super) {
39
39
  });
40
40
  DTableDataTreeSelectionImpl.prototype.onNodeChange = function (nodes) {
41
41
  if (nodes != null) {
42
- var toChildren = this._parent.accessor.toChildren;
42
+ var accessor = this._parent.accessor;
43
+ var toChildren = accessor.toChildren;
44
+ var hasChildren = accessor.hasChildren;
43
45
  var oldRows = this._rows;
44
- var newRows = this.newRows(nodes, toChildren, oldRows, new Set());
46
+ var newRows = this.newRows(nodes, toChildren, hasChildren, oldRows, new Set());
45
47
  if (oldRows.size !== newRows.size) {
46
48
  this._rows = newRows;
47
49
  this.onChange();
@@ -55,15 +57,15 @@ var DTableDataTreeSelectionImpl = /** @class */ (function (_super) {
55
57
  }
56
58
  }
57
59
  };
58
- DTableDataTreeSelectionImpl.prototype.newRows = function (nodes, toChildren, rows, result) {
60
+ DTableDataTreeSelectionImpl.prototype.newRows = function (nodes, toChildren, hasChildren, rows, result) {
59
61
  for (var i = 0, imax = nodes.length; i < imax; ++i) {
60
62
  var node = nodes[i];
61
63
  if (rows.has(node)) {
62
64
  result.add(node);
63
65
  }
64
66
  var children = toChildren(node);
65
- if (children != null) {
66
- this.newRows(children, toChildren, rows, result);
67
+ if (hasChildren(node, children)) {
68
+ this.newRows(children, toChildren, hasChildren, rows, result);
67
69
  }
68
70
  }
69
71
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-data-tree-selection-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-data-tree-selection-impl.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 } from \"./d-table-data\";\nimport {\n\tDTableDataSelectionEachIteratee,\n\tDTableDataSelectionOptions,\n\tDTableDataSelectionType\n} from \"./d-table-data-selection\";\nimport {\n\tDTableDataTreeSelection,\n\tDTableDataTreeSelectionParent\n} from \"./d-table-data-tree-selection\";\nimport { toEnum } from \"./util/to-enum\";\n\nconst COMPARATOR = (a: [number, unknown], b: [number, unknown]): number => {\n\treturn a[0] - b[0];\n};\n\nexport class DTableDataTreeSelectionImpl<NODE>\n\textends utils.EventEmitter\n\timplements DTableDataTreeSelection<NODE>\n{\n\tprotected _parent: DTableDataTreeSelectionParent<NODE>;\n\tprotected _type: DTableDataSelectionType;\n\tprotected _rows: Set<NODE>;\n\n\tconstructor(parent: DTableDataTreeSelectionParent<NODE>, options?: DTableDataSelectionOptions) {\n\t\tsuper();\n\t\tthis._parent = parent;\n\t\tthis._type = toEnum(options?.type ?? DTableDataSelectionType.NONE, DTableDataSelectionType);\n\t\tthis._rows = new Set<NODE>();\n\n\t\t// Events\n\t\tconst on = options?.on;\n\t\tif (on) {\n\t\t\tfor (const name in on) {\n\t\t\t\tconst handler = on[name];\n\t\t\t\tif (handler) {\n\t\t\t\t\tthis.on(name, handler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tget parent(): DTableData<NODE> {\n\t\treturn this._parent;\n\t}\n\n\tonNodeChange(nodes?: NODE[]): void {\n\t\tif (nodes != null) {\n\t\t\tconst toChildren = this._parent.accessor.toChildren;\n\t\t\tconst oldRows = this._rows;\n\t\t\tconst newRows = this.newRows(nodes, toChildren, oldRows, new Set<NODE>());\n\t\t\tif (oldRows.size !== newRows.size) {\n\t\t\t\tthis._rows = newRows;\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t} else {\n\t\t\tconst rows = this._rows;\n\t\t\tif (0 < rows.size) {\n\t\t\t\trows.clear();\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected newRows(\n\t\tnodes: NODE[],\n\t\ttoChildren: (node: NODE) => NODE[] | null | undefined,\n\t\trows: Set<NODE>,\n\t\tresult: Set<NODE>\n\t): Set<NODE> {\n\t\tfor (let i = 0, imax = nodes.length; i < imax; ++i) {\n\t\t\tconst node = nodes[i];\n\t\t\tif (rows.has(node)) {\n\t\t\t\tresult.add(node);\n\t\t\t}\n\t\t\tconst children = toChildren(node);\n\t\t\tif (children != null) {\n\t\t\t\tthis.newRows(children, toChildren, rows, result);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tget indices(): number[] {\n\t\tconst rows = this._rows;\n\t\tconst result: number[] = [];\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult.push(index);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tget rows(): NODE[] {\n\t\tconst result: NODE[] = [];\n\t\tthis._rows.forEach((row: NODE): void => {\n\t\t\tresult.push(row);\n\t\t});\n\t\treturn result;\n\t}\n\n\tget type(): DTableDataSelectionType {\n\t\treturn this._type;\n\t}\n\n\tprotected getFirst(): NODE | null {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size) {\n\t\t\tlet result: NODE | null = null;\n\t\t\trows.forEach((row: NODE): void => {\n\t\t\t\tif (result == null) {\n\t\t\t\t\tresult = row;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected getLast(): NODE | null {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size) {\n\t\t\tlet result: NODE | null = null;\n\t\t\trows.forEach((row: NODE): void => {\n\t\t\t\tresult = row;\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected toIndex(target: NODE): number | null {\n\t\tlet result: number | null = null;\n\t\tthis._parent.each((row: NODE, index: number): boolean => {\n\t\t\tif (target === row) {\n\t\t\t\tresult = index;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\treturn result;\n\t}\n\n\tget first(): number | null {\n\t\tconst row = this.getFirst();\n\t\tif (row) {\n\t\t\treturn this.toIndex(row);\n\t\t}\n\t\treturn null;\n\t}\n\n\tget last(): number | null {\n\t\tconst row = this.getLast();\n\t\tif (row) {\n\t\t\treturn this.toIndex(row);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onChange(): void {\n\t\tthis._parent.update();\n\t\tthis.emit(\"change\", this);\n\t}\n\n\ttoggle(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (rows.has(row)) {\n\t\t\t\trows.delete(row);\n\t\t\t} else {\n\t\t\t\trows.add(row);\n\t\t\t}\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tadd(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (!rows.has(row)) {\n\t\t\t\trows.add(row);\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\taddTo(rowIndex: number): void {\n\t\tconst lastRowIndex = this.last;\n\t\tif (lastRowIndex != null) {\n\t\t\tthis.addRange(lastRowIndex, false, rowIndex, true);\n\t\t}\n\t}\n\n\taddRange(from: number, includeFrom: boolean, to: number, includeTo: boolean): void {\n\t\tconst rows = this._rows;\n\t\tconst oldSize = rows.size;\n\t\tconst parent = this._parent;\n\t\tif (from < to) {\n\t\t\tparent.each(\n\t\t\t\t(row: NODE): void => {\n\t\t\t\t\trows.add(row);\n\t\t\t\t},\n\t\t\t\tfrom + (includeFrom ? 0 : 1),\n\t\t\t\tto + (includeTo ? 1 : 0)\n\t\t\t);\n\t\t} else {\n\t\t\tparent.each(\n\t\t\t\t(row: NODE): void => {\n\t\t\t\t\trows.add(row);\n\t\t\t\t},\n\t\t\t\tto + (includeTo ? 0 : 1),\n\t\t\t\tfrom + (includeFrom ? 1 : 0)\n\t\t\t);\n\t\t}\n\t\tconst newSize = rows.size;\n\t\tif (oldSize !== newSize) {\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\taddAll(rowIndices: number[]): void {\n\t\tif (0 < rowIndices.length) {\n\t\t\tconst rows = this._rows;\n\t\t\tconst parent = this._parent;\n\t\t\tfor (let i = 0, imax = rowIndices.length; i < imax; ++i) {\n\t\t\t\tconst row = parent.get(rowIndices[i]);\n\t\t\t\tif (row) {\n\t\t\t\t\trows.add(row);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tcontains(rowIndex: number): boolean {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\treturn this._rows.has(row);\n\t\t}\n\t\treturn false;\n\t}\n\n\tremove(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (rows.has(row)) {\n\t\t\t\trows.delete(row);\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tclear(): void {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size) {\n\t\t\trows.clear();\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tclearAndAdd(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (rows.has(row)) {\n\t\t\t\tif (1 < rows.size) {\n\t\t\t\t\trows.clear();\n\t\t\t\t\trows.add(row);\n\t\t\t\t\tthis.onChange();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trows.clear();\n\t\t\t\trows.add(row);\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tclearAndAddAll(rowIndices: number[]): void {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size || 0 < rowIndices.length) {\n\t\t\trows.clear();\n\t\t\tconst parent = this._parent;\n\t\t\tfor (let i = 0, imax = rowIndices.length; i < imax; ++i) {\n\t\t\t\tconst row = parent.get(rowIndices[i]);\n\t\t\t\tif (row) {\n\t\t\t\t\trows.add(row);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tshift(rowIndex: number, amount: number): void {\n\t\t// DO NOTHING\n\t}\n\n\tsize(): number {\n\t\treturn this._rows.size;\n\t}\n\n\tisEmpty(): boolean {\n\t\treturn this._rows.size <= 0;\n\t}\n\n\teach(iteratee: DTableDataSelectionEachIteratee): void {\n\t\tconst rows = this._rows;\n\t\tthis._parent.each((row: NODE, index: number): boolean => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tif (iteratee(index) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t}\n\n\ttoArray(): Array<[number, NODE]> {\n\t\tconst rows = this._rows;\n\t\tconst result: Array<[number, NODE]> = [];\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult.push([index, row]);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\ttoSortedArray(): Array<[number, NODE]> {\n\t\treturn this.toArray().sort(COMPARATOR);\n\t}\n\n\ttoObject(): Record<number, NODE> {\n\t\tconst rows = this._rows;\n\t\tconst result: Record<number, NODE> = {};\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult[index] = row;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\ttoMap(): Map<number, NODE> {\n\t\tconst rows = this._rows;\n\t\tconst result = new Map<number, NODE>();\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult.set(index, row);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-data-tree-selection-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-data-tree-selection-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAGN,uBAAuB,EACvB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,IAAM,UAAU,GAAG,UAAC,CAAoB,EAAE,CAAoB;IAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC;AAEF;IACS,+CAAkB;IAO1B,qCAAY,MAA2C,EAAE,OAAoC;QAA7F,iBAgBC;;gBAfA,iBAAO;QACP,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,KAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAC5F,KAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;QAE7B,SAAS;QACT,IAAM,EAAE,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC;QACvB,IAAI,EAAE,EAAE;YACP,KAAK,IAAM,MAAI,IAAI,EAAE,EAAE;gBACtB,IAAM,OAAO,GAAG,EAAE,CAAC,MAAI,CAAC,CAAC;gBACzB,IAAI,OAAO,EAAE;oBACZ,KAAI,CAAC,EAAE,CAAC,MAAI,EAAE,OAAO,CAAC,CAAC;iBACvB;aACD;SACD;;IACF,CAAC;IAED,sBAAI,+CAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IAED,kDAAY,GAAZ,UAAa,KAAc;QAC1B,IAAI,KAAK,IAAI,IAAI,EAAE;YAClB,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvC,IAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YACvC,IAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACzC,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,EAAQ,CAAC,CAAC;YACvF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;gBAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;SACD;aAAM;YACN,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;SACD;IACF,CAAC;IAES,6CAAO,GAAjB,UACC,KAAa,EACb,UAAsD,EACtD,WAAwD,EACxD,IAAe,EACf,MAAiB;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACnD,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACnB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,IAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aAC9D;SACD;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,sBAAI,gDAAO;aAAX;YACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,GAAS,EAAE,KAAa;gBAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnB;YACF,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,sBAAI,6CAAI;aAAR;YACC,IAAM,MAAM,GAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,GAAS;gBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,sBAAI,6CAAI;aAAR;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAES,8CAAQ,GAAlB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YAClB,IAAI,QAAM,GAAgB,IAAI,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,UAAC,GAAS;gBACtB,IAAI,QAAM,IAAI,IAAI,EAAE;oBACnB,QAAM,GAAG,GAAG,CAAC;iBACb;YACF,CAAC,CAAC,CAAC;YACH,OAAO,QAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,6CAAO,GAAjB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YAClB,IAAI,QAAM,GAAgB,IAAI,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,UAAC,GAAS;gBACtB,QAAM,GAAG,GAAG,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,QAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,6CAAO,GAAjB,UAAkB,MAAY;QAC7B,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,GAAS,EAAE,KAAa;YAC1C,IAAI,MAAM,KAAK,GAAG,EAAE;gBACnB,MAAM,GAAG,KAAK,CAAC;gBACf,OAAO,KAAK,CAAC;aACb;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAED,sBAAI,8CAAK;aAAT;YACC,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,IAAI,GAAG,EAAE;gBACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC;QACb,CAAC;;;OAAA;IAED,sBAAI,6CAAI;aAAR;YACC,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,GAAG,EAAE;gBACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC;QACb,CAAC;;;OAAA;IAES,8CAAQ,GAAlB;QACC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,4CAAM,GAAN,UAAO,QAAgB;QACtB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE;YACR,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACd;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;IACF,CAAC;IAED,yCAAG,GAAH,UAAI,QAAgB;QACnB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE;YACR,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;SACD;IACF,CAAC;IAED,2CAAK,GAAL,UAAM,QAAgB;QACrB,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,YAAY,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SACnD;IACF,CAAC;IAED,8CAAQ,GAAR,UAAS,IAAY,EAAE,WAAoB,EAAE,EAAU,EAAE,SAAkB;QAC1E,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,IAAI,GAAG,EAAE,EAAE;YACd,MAAM,CAAC,IAAI,CACV,UAAC,GAAS;gBACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,CAAC,EACD,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5B,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;SACF;aAAM;YACN,MAAM,CAAC,IAAI,CACV,UAAC,GAAS;gBACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,CAAC,EACD,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5B,CAAC;SACF;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,OAAO,KAAK,OAAO,EAAE;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;IACF,CAAC;IAED,4CAAM,GAAN,UAAO,UAAoB;QAC1B,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE;YAC1B,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,QAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACxD,IAAM,GAAG,GAAG,QAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,GAAG,EAAE;oBACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACd;aACD;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;IACF,CAAC;IAED,8CAAQ,GAAR,UAAS,QAAgB;QACxB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,4CAAM,GAAN,UAAO,QAAgB;QACtB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE;YACR,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;SACD;IACF,CAAC;IAED,2CAAK,GAAL;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;IACF,CAAC;IAED,iDAAW,GAAX,UAAY,QAAgB;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE;YACR,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;oBAClB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,QAAQ,EAAE,CAAC;iBAChB;aACD;iBAAM;gBACN,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;SACD;IACF,CAAC;IAED,oDAAc,GAAd,UAAe,UAAoB;QAClC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAM,QAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACxD,IAAM,GAAG,GAAG,QAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,GAAG,EAAE;oBACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACd;aACD;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB;IACF,CAAC;IAED,2CAAK,GAAL,UAAM,QAAgB,EAAE,MAAc;QACrC,aAAa;IACd,CAAC;IAED,0CAAI,GAAJ;QACC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,6CAAO,GAAP;QACC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,0CAAI,GAAJ,UAAK,QAAyC;QAC7C,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,GAAS,EAAE,KAAa;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;oBAC9B,OAAO,KAAK,CAAC;iBACb;aACD;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,6CAAO,GAAP;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,GAAS,EAAE,KAAa;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;aAC1B;QACF,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAED,mDAAa,GAAb;QACC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,8CAAQ,GAAR;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,GAAS,EAAE,KAAa;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;aACpB;QACF,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAED,2CAAK,GAAL;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,GAAS,EAAE,KAAa;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aACvB;QACF,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IACF,kCAAC;AAAD,CAAC,AAxVD,CACS,KAAK,CAAC,YAAY,GAuV1B","sourcesContent":["/*\n * Copyright (C) 2021 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DTableData } from \"./d-table-data\";\nimport {\n\tDTableDataSelectionEachIteratee,\n\tDTableDataSelectionOptions,\n\tDTableDataSelectionType\n} from \"./d-table-data-selection\";\nimport {\n\tDTableDataTreeItemAccessorHasChildren,\n\tDTableDataTreeItemAccessorToChildren\n} from \"./d-table-data-tree-item-accessor\";\nimport {\n\tDTableDataTreeSelection,\n\tDTableDataTreeSelectionParent\n} from \"./d-table-data-tree-selection\";\nimport { toEnum } from \"./util/to-enum\";\n\nconst COMPARATOR = (a: [number, unknown], b: [number, unknown]): number => {\n\treturn a[0] - b[0];\n};\n\nexport class DTableDataTreeSelectionImpl<NODE>\n\textends utils.EventEmitter\n\timplements DTableDataTreeSelection<NODE>\n{\n\tprotected _parent: DTableDataTreeSelectionParent<NODE>;\n\tprotected _type: DTableDataSelectionType;\n\tprotected _rows: Set<NODE>;\n\n\tconstructor(parent: DTableDataTreeSelectionParent<NODE>, options?: DTableDataSelectionOptions) {\n\t\tsuper();\n\t\tthis._parent = parent;\n\t\tthis._type = toEnum(options?.type ?? DTableDataSelectionType.NONE, DTableDataSelectionType);\n\t\tthis._rows = new Set<NODE>();\n\n\t\t// Events\n\t\tconst on = options?.on;\n\t\tif (on) {\n\t\t\tfor (const name in on) {\n\t\t\t\tconst handler = on[name];\n\t\t\t\tif (handler) {\n\t\t\t\t\tthis.on(name, handler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tget parent(): DTableData<NODE> {\n\t\treturn this._parent;\n\t}\n\n\tonNodeChange(nodes?: NODE[]): void {\n\t\tif (nodes != null) {\n\t\t\tconst accessor = this._parent.accessor;\n\t\t\tconst toChildren = accessor.toChildren;\n\t\t\tconst hasChildren = accessor.hasChildren;\n\t\t\tconst oldRows = this._rows;\n\t\t\tconst newRows = this.newRows(nodes, toChildren, hasChildren, oldRows, new Set<NODE>());\n\t\t\tif (oldRows.size !== newRows.size) {\n\t\t\t\tthis._rows = newRows;\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t} else {\n\t\t\tconst rows = this._rows;\n\t\t\tif (0 < rows.size) {\n\t\t\t\trows.clear();\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected newRows(\n\t\tnodes: NODE[],\n\t\ttoChildren: DTableDataTreeItemAccessorToChildren<NODE>,\n\t\thasChildren: DTableDataTreeItemAccessorHasChildren<NODE>,\n\t\trows: Set<NODE>,\n\t\tresult: Set<NODE>\n\t): Set<NODE> {\n\t\tfor (let i = 0, imax = nodes.length; i < imax; ++i) {\n\t\t\tconst node = nodes[i];\n\t\t\tif (rows.has(node)) {\n\t\t\t\tresult.add(node);\n\t\t\t}\n\t\t\tconst children = toChildren(node);\n\t\t\tif (hasChildren(node, children)) {\n\t\t\t\tthis.newRows(children, toChildren, hasChildren, rows, result);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tget indices(): number[] {\n\t\tconst rows = this._rows;\n\t\tconst result: number[] = [];\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult.push(index);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tget rows(): NODE[] {\n\t\tconst result: NODE[] = [];\n\t\tthis._rows.forEach((row: NODE): void => {\n\t\t\tresult.push(row);\n\t\t});\n\t\treturn result;\n\t}\n\n\tget type(): DTableDataSelectionType {\n\t\treturn this._type;\n\t}\n\n\tprotected getFirst(): NODE | null {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size) {\n\t\t\tlet result: NODE | null = null;\n\t\t\trows.forEach((row: NODE): void => {\n\t\t\t\tif (result == null) {\n\t\t\t\t\tresult = row;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected getLast(): NODE | null {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size) {\n\t\t\tlet result: NODE | null = null;\n\t\t\trows.forEach((row: NODE): void => {\n\t\t\t\tresult = row;\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected toIndex(target: NODE): number | null {\n\t\tlet result: number | null = null;\n\t\tthis._parent.each((row: NODE, index: number): boolean => {\n\t\t\tif (target === row) {\n\t\t\t\tresult = index;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\treturn result;\n\t}\n\n\tget first(): number | null {\n\t\tconst row = this.getFirst();\n\t\tif (row) {\n\t\t\treturn this.toIndex(row);\n\t\t}\n\t\treturn null;\n\t}\n\n\tget last(): number | null {\n\t\tconst row = this.getLast();\n\t\tif (row) {\n\t\t\treturn this.toIndex(row);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onChange(): void {\n\t\tthis._parent.update();\n\t\tthis.emit(\"change\", this);\n\t}\n\n\ttoggle(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (rows.has(row)) {\n\t\t\t\trows.delete(row);\n\t\t\t} else {\n\t\t\t\trows.add(row);\n\t\t\t}\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tadd(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (!rows.has(row)) {\n\t\t\t\trows.add(row);\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\taddTo(rowIndex: number): void {\n\t\tconst lastRowIndex = this.last;\n\t\tif (lastRowIndex != null) {\n\t\t\tthis.addRange(lastRowIndex, false, rowIndex, true);\n\t\t}\n\t}\n\n\taddRange(from: number, includeFrom: boolean, to: number, includeTo: boolean): void {\n\t\tconst rows = this._rows;\n\t\tconst oldSize = rows.size;\n\t\tconst parent = this._parent;\n\t\tif (from < to) {\n\t\t\tparent.each(\n\t\t\t\t(row: NODE): void => {\n\t\t\t\t\trows.add(row);\n\t\t\t\t},\n\t\t\t\tfrom + (includeFrom ? 0 : 1),\n\t\t\t\tto + (includeTo ? 1 : 0)\n\t\t\t);\n\t\t} else {\n\t\t\tparent.each(\n\t\t\t\t(row: NODE): void => {\n\t\t\t\t\trows.add(row);\n\t\t\t\t},\n\t\t\t\tto + (includeTo ? 0 : 1),\n\t\t\t\tfrom + (includeFrom ? 1 : 0)\n\t\t\t);\n\t\t}\n\t\tconst newSize = rows.size;\n\t\tif (oldSize !== newSize) {\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\taddAll(rowIndices: number[]): void {\n\t\tif (0 < rowIndices.length) {\n\t\t\tconst rows = this._rows;\n\t\t\tconst parent = this._parent;\n\t\t\tfor (let i = 0, imax = rowIndices.length; i < imax; ++i) {\n\t\t\t\tconst row = parent.get(rowIndices[i]);\n\t\t\t\tif (row) {\n\t\t\t\t\trows.add(row);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tcontains(rowIndex: number): boolean {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\treturn this._rows.has(row);\n\t\t}\n\t\treturn false;\n\t}\n\n\tremove(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (rows.has(row)) {\n\t\t\t\trows.delete(row);\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tclear(): void {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size) {\n\t\t\trows.clear();\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tclearAndAdd(rowIndex: number): void {\n\t\tconst row = this._parent.get(rowIndex);\n\t\tif (row) {\n\t\t\tconst rows = this._rows;\n\t\t\tif (rows.has(row)) {\n\t\t\t\tif (1 < rows.size) {\n\t\t\t\t\trows.clear();\n\t\t\t\t\trows.add(row);\n\t\t\t\t\tthis.onChange();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trows.clear();\n\t\t\t\trows.add(row);\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tclearAndAddAll(rowIndices: number[]): void {\n\t\tconst rows = this._rows;\n\t\tif (0 < rows.size || 0 < rowIndices.length) {\n\t\t\trows.clear();\n\t\t\tconst parent = this._parent;\n\t\t\tfor (let i = 0, imax = rowIndices.length; i < imax; ++i) {\n\t\t\t\tconst row = parent.get(rowIndices[i]);\n\t\t\t\tif (row) {\n\t\t\t\t\trows.add(row);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onChange();\n\t\t}\n\t}\n\n\tshift(rowIndex: number, amount: number): void {\n\t\t// DO NOTHING\n\t}\n\n\tsize(): number {\n\t\treturn this._rows.size;\n\t}\n\n\tisEmpty(): boolean {\n\t\treturn this._rows.size <= 0;\n\t}\n\n\teach(iteratee: DTableDataSelectionEachIteratee): void {\n\t\tconst rows = this._rows;\n\t\tthis._parent.each((row: NODE, index: number): boolean => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tif (iteratee(index) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t}\n\n\ttoArray(): Array<[number, NODE]> {\n\t\tconst rows = this._rows;\n\t\tconst result: Array<[number, NODE]> = [];\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult.push([index, row]);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\ttoSortedArray(): Array<[number, NODE]> {\n\t\treturn this.toArray().sort(COMPARATOR);\n\t}\n\n\ttoObject(): Record<number, NODE> {\n\t\tconst rows = this._rows;\n\t\tconst result: Record<number, NODE> = {};\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult[index] = row;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\ttoMap(): Map<number, NODE> {\n\t\tconst rows = this._rows;\n\t\tconst result = new Map<number, NODE>();\n\t\tthis._parent.each((row: NODE, index: number): void => {\n\t\t\tif (rows.has(row)) {\n\t\t\t\tresult.set(index, row);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n}\n"]}
@@ -111,7 +111,8 @@ var DTableDataTree = /** @class */ (function (_super) {
111
111
  var supplimentals = this._supplimentals;
112
112
  var flags = this._flags;
113
113
  if (nodes != null) {
114
- var irows = this.newRows(nodes, 0, 0, rows, supplimentals, flags, this._reverse, this._accessor.toChildren);
114
+ var accessor = this._accessor;
115
+ var irows = this.newRows(nodes, 0, 0, rows, supplimentals, flags, this._reverse, accessor.toChildren, accessor.hasChildren);
115
116
  if (irows !== rows.length) {
116
117
  rows.length = irows;
117
118
  supplimentals.length = irows;
@@ -125,7 +126,7 @@ var DTableDataTree = /** @class */ (function (_super) {
125
126
  DTableDataTree.prototype.toSupplimental = function (ilevel, hasChildren, isOpened) {
126
127
  return (ilevel << 2) | (hasChildren ? 2 : 0) | (isOpened ? 1 : 0);
127
128
  };
128
- DTableDataTree.prototype.newRows = function (nodes, irows, ilevel, rows, supplimentals, flags, reverse, toChildren) {
129
+ DTableDataTree.prototype.newRows = function (nodes, irows, ilevel, rows, supplimentals, flags, reverse, toChildren, hasChildren) {
129
130
  var nodesLength = nodes.length;
130
131
  var istart = reverse ? nodesLength - 1 : 0;
131
132
  var idelta = reverse ? -1 : +1;
@@ -133,7 +134,7 @@ var DTableDataTree = /** @class */ (function (_super) {
133
134
  var node = nodes[i];
134
135
  var children = toChildren(node);
135
136
  var isOpened = flags.has(node);
136
- var supplimental = this.toSupplimental(ilevel, !!(children && 0 < children.length), isOpened);
137
+ var supplimental = this.toSupplimental(ilevel, hasChildren(node, children), isOpened);
137
138
  if (irows < rows.length) {
138
139
  rows[irows] = node;
139
140
  supplimentals[irows] = supplimental;
@@ -144,7 +145,7 @@ var DTableDataTree = /** @class */ (function (_super) {
144
145
  }
145
146
  irows += 1;
146
147
  if (isOpened && children) {
147
- irows = this.newRows(children, irows, ilevel + 1, rows, supplimentals, flags, reverse, toChildren);
148
+ irows = this.newRows(children, irows, ilevel + 1, rows, supplimentals, flags, reverse, toChildren, hasChildren);
148
149
  }
149
150
  }
150
151
  return irows;
@@ -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\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"]}
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\tDTableDataTreeItemAccessorHasChildren,\n\tDTableDataTreeItemAccessorOptions,\n\tDTableDataTreeItemAccessorToChildren\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 accessor = this._accessor;\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\taccessor.toChildren,\n\t\t\t\taccessor.hasChildren\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: DTableDataTreeItemAccessorToChildren<NODE>,\n\t\thasChildren: DTableDataTreeItemAccessorHasChildren<NODE>\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(ilevel, hasChildren(node, children), isOpened);\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\thasChildren\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"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.294.0
2
+ Winter Cardinal UI v0.296.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.294.0
2
+ Winter Cardinal UI v0.296.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.294.0
2
+ Winter Cardinal UI v0.296.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.294.0
2
+ Winter Cardinal UI v0.296.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5