@wcardinal/wcardinal-ui 0.290.0 → 0.292.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 (69) hide show
  1. package/dist/types/wcardinal/ui/d-chart-axis-bar.d.ts +5 -0
  2. package/dist/types/wcardinal/ui/d-chart-axis-base-options-parser.d.ts +69 -37
  3. package/dist/types/wcardinal/ui/d-chart-axis-base-options.d.ts +54 -20
  4. package/dist/types/wcardinal/ui/d-chart-axis-base-tick-container.d.ts +17 -6
  5. package/dist/types/wcardinal/ui/d-chart-axis-base.d.ts +10 -8
  6. package/dist/types/wcardinal/ui/d-chart-axis-tick-container.d.ts +5 -0
  7. package/dist/types/wcardinal/ui/d-chart-axis-tick-major.d.ts +4 -0
  8. package/dist/types/wcardinal/ui/d-chart-axis-tick-minor.d.ts +4 -0
  9. package/dist/types/wcardinal/ui/d-chart-axis-x-datetime.d.ts +3 -2
  10. package/dist/types/wcardinal/ui/d-chart-axis-x.d.ts +3 -3
  11. package/dist/types/wcardinal/ui/d-chart-axis-y.d.ts +3 -3
  12. package/dist/types/wcardinal/ui/d-chart-coordinate-base.d.ts +52 -0
  13. package/dist/types/wcardinal/ui/d-chart-coordinate-linear.d.ts +4 -46
  14. package/dist/types/wcardinal/ui/d-chart-coordinate-log.d.ts +4 -42
  15. package/dist/types/wcardinal/ui/d-table-body.d.ts +7 -0
  16. package/dist/types/wcardinal/ui/index.d.ts +11 -0
  17. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-chart-axis-base.d.ts +7 -0
  18. package/dist/types/wcardinal/ui/theme/white/d-theme-white-chart-axis-base.d.ts +7 -0
  19. package/dist/wcardinal/ui/d-chart-axis-bar.js.map +1 -1
  20. package/dist/wcardinal/ui/d-chart-axis-base-options-parser.js +152 -34
  21. package/dist/wcardinal/ui/d-chart-axis-base-options-parser.js.map +1 -1
  22. package/dist/wcardinal/ui/d-chart-axis-base-options.js.map +1 -1
  23. package/dist/wcardinal/ui/d-chart-axis-base-tick-container.js +64 -43
  24. package/dist/wcardinal/ui/d-chart-axis-base-tick-container.js.map +1 -1
  25. package/dist/wcardinal/ui/d-chart-axis-base-tick-minor.js +1 -0
  26. package/dist/wcardinal/ui/d-chart-axis-base-tick-minor.js.map +1 -1
  27. package/dist/wcardinal/ui/d-chart-axis-base.js +21 -4
  28. package/dist/wcardinal/ui/d-chart-axis-base.js.map +1 -1
  29. package/dist/wcardinal/ui/d-chart-axis-tick-container.js.map +1 -1
  30. package/dist/wcardinal/ui/d-chart-axis-tick-major.js.map +1 -1
  31. package/dist/wcardinal/ui/d-chart-axis-tick-minor.js.map +1 -1
  32. package/dist/wcardinal/ui/d-chart-axis-x-datetime.js.map +1 -1
  33. package/dist/wcardinal/ui/d-chart-axis-x.js.map +1 -1
  34. package/dist/wcardinal/ui/d-chart-axis-y.js.map +1 -1
  35. package/dist/wcardinal/ui/d-chart-coordinate-base.js +186 -0
  36. package/dist/wcardinal/ui/d-chart-coordinate-base.js.map +1 -0
  37. package/dist/wcardinal/ui/d-chart-coordinate-linear-tick.js +2 -1
  38. package/dist/wcardinal/ui/d-chart-coordinate-linear-tick.js.map +1 -1
  39. package/dist/wcardinal/ui/d-chart-coordinate-linear.js +9 -165
  40. package/dist/wcardinal/ui/d-chart-coordinate-linear.js.map +1 -1
  41. package/dist/wcardinal/ui/d-chart-coordinate-log-tick.js +2 -1
  42. package/dist/wcardinal/ui/d-chart-coordinate-log-tick.js.map +1 -1
  43. package/dist/wcardinal/ui/d-chart-coordinate-log.js +9 -153
  44. package/dist/wcardinal/ui/d-chart-coordinate-log.js.map +1 -1
  45. package/dist/wcardinal/ui/d-chart-series-line-of-any.js +4 -2
  46. package/dist/wcardinal/ui/d-chart-series-line-of-any.js.map +1 -1
  47. package/dist/wcardinal/ui/d-scroll-bar-vertical.js +1 -0
  48. package/dist/wcardinal/ui/d-scroll-bar-vertical.js.map +1 -1
  49. package/dist/wcardinal/ui/d-table-body.js +39 -0
  50. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  51. package/dist/wcardinal/ui/d-table.js +3 -3
  52. package/dist/wcardinal/ui/d-table.js.map +1 -1
  53. package/dist/wcardinal/ui/index.js +11 -0
  54. package/dist/wcardinal/ui/index.js.map +1 -1
  55. package/dist/wcardinal/ui/theme/dark/d-theme-dark-chart-axis-base.js +21 -0
  56. package/dist/wcardinal/ui/theme/dark/d-theme-dark-chart-axis-base.js.map +1 -1
  57. package/dist/wcardinal/ui/theme/white/d-theme-white-chart-axis-base.js +21 -0
  58. package/dist/wcardinal/ui/theme/white/d-theme-white-chart-axis-base.js.map +1 -1
  59. package/dist/wcardinal-ui-theme-dark.js +22 -1
  60. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  61. package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
  62. package/dist/wcardinal-ui-theme-white.js +22 -1
  63. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  64. package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
  65. package/dist/wcardinal-ui.cjs.js +781 -652
  66. package/dist/wcardinal-ui.js +739 -652
  67. package/dist/wcardinal-ui.min.js +2 -2
  68. package/dist/wcardinal-ui.min.js.map +1 -1
  69. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-body.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body.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, Rectangle } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport { DBase, DBaseEvents, DBaseOptions, DThemeBase } from \"./d-base\";\nimport { DBaseState } from \"./d-base-state\";\nimport { DTableBodyRow, DTableBodyRowOnChange, DTableBodyRowOptions } from \"./d-table-body-row\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableData, DTableDataOptions } from \"./d-table-data\";\nimport { DTableDataList, DTableDataListOptions } from \"./d-table-data-list\";\nimport { DTableDataSelection, DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableBodyCell } from \"./d-table-body-cell\";\nimport { DTableState } from \"./d-table-state\";\nimport { DTableBodyCellOptions } from \"./d-table-body-cell-options\";\nimport { DOnOptions } from \"./d-on-options\";\n\n/**\n * {@link DTableBody} events.\n */\nexport interface DTableBodyEvents<EMITTER> extends DBaseEvents<EMITTER> {\n\t/**\n\t * Triggered when rows are updated.\n\t * The first and second parameters are an mapped index range of visible data.\n\t * Please note that these parameters are real numbers.\n\t * For instance, An index range of [0.5, 2.5] means:\n\t *\n\t * * The row at index 0 is partially visible.\n\t * * The row at index 1 is fully visible.\n\t * * The row at index 2 is partially visible.\n\t *\n\t * @param from a lowest mapped index of visible data\n\t * @param to a highest mapped index of vislble data\n\t * @param emitter an emitter\n\t */\n\tupdate(from: number, to: number, emitter: EMITTER): void;\n}\n\n/**\n * {@link DTableBody} \"on\" options.\n */\nexport interface DTableBodyOnOptions<EMITTER>\n\textends Partial<DTableBodyEvents<EMITTER>>,\n\t\tDOnOptions {}\n\nexport interface DTableBodyOptions<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTableBody = DThemeTableBody,\n\tEMITTER = any\n> extends DBaseOptions<THEME, EMITTER> {\n\tcolumns?: Array<DTableColumn<ROW, unknown>>;\n\trow?: DTableBodyRowOptions<ROW>;\n\tdata?: DTableDataListOptions<ROW> | DATA;\n\toffset?: number;\n\tfrozen?: number;\n\ton?: DTableBodyOnOptions<EMITTER>;\n}\n\nexport interface DThemeTableBody extends DThemeBase {\n\tgetRowHeight(): number;\n}\n\nconst toRowOptions = <ROW, DATA extends DTableData<ROW>>(\n\ttheme: DThemeTableBody,\n\toptions: DTableBodyOptions<ROW, DATA>,\n\tselectionType: DTableDataSelectionType\n): DTableBodyRowOptions<ROW> => {\n\tconst columns = options.columns || [];\n\tlet result = options.row;\n\tif (result != null) {\n\t\tif (result.height == null) {\n\t\t\tresult.height = theme.getRowHeight();\n\t\t}\n\t\tif (result.columns === undefined) {\n\t\t\tresult.columns = columns;\n\t\t}\n\t\tif (result.frozen == null) {\n\t\t\tresult.frozen = options.frozen;\n\t\t}\n\t\tif (result.selection === undefined) {\n\t\t\tresult.selection = {\n\t\t\t\ttype: selectionType\n\t\t\t};\n\t\t} else if (result.selection.type === undefined) {\n\t\t\tresult.selection.type = selectionType;\n\t\t}\n\t} else {\n\t\tresult = {\n\t\t\tcolumns,\n\t\t\theight: theme.getRowHeight(),\n\t\t\tfrozen: options.frozen,\n\t\t\tselection: {\n\t\t\t\ttype: selectionType\n\t\t\t}\n\t\t};\n\t}\n\treturn result as DTableBodyRowOptions<ROW>;\n};\n\nexport class DTableBody<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTableBody = DThemeTableBody,\n\tOPTIONS extends DTableBodyOptions<ROW, DATA, THEME> = DTableBodyOptions<ROW, DATA, THEME>\n> extends DBase<THEME, OPTIONS> {\n\tprotected static WORK_ON_CLICK = new Point();\n\n\tprotected _columns: Array<DTableColumn<ROW, unknown>>;\n\tprotected _rowHeight: number;\n\tprotected _rowIndexMappedStart: number;\n\tprotected _rowIndexMappedEnd: number;\n\tprotected _rowOptions: DTableBodyRowOptions<ROW>;\n\tprotected _updateRowsCount: number;\n\tprotected _isUpdateRowsCalled: boolean;\n\tprotected _isUpdateRowsCalledForcibly: boolean;\n\tprotected _workRows: Array<DTableBodyRow<ROW>>;\n\tprotected _onRowChangeBound: DTableBodyRowOnChange<ROW, unknown>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\tprotected _data: DATA;\n\n\tconstructor(options: OPTIONS) {\n\t\tsuper(options);\n\n\t\tthis.transform.position.y = options.offset ?? 0;\n\t\tconst data = this.toData(options.data);\n\t\tthis._data = data;\n\t\tdata.bind(this);\n\t\tconst theme = this.theme;\n\t\tconst rowOptions = toRowOptions(theme, options, data.selection.type);\n\t\tthis._rowOptions = rowOptions;\n\t\tthis._rowHeight = rowOptions.height != null ? rowOptions.height : theme.getRowHeight();\n\t\tthis._columns = rowOptions.columns || [];\n\t\tthis._rowIndexMappedStart = 0;\n\t\tthis._rowIndexMappedEnd = 0;\n\t\tthis._updateRowsCount = 0;\n\t\tthis._isUpdateRowsCalled = false;\n\t\tthis._isUpdateRowsCalledForcibly = false;\n\t\tthis._workRows = [];\n\t\tthis._onRowChangeBound = (newValue, oldValue, row, rowIndex, columnIndex): void => {\n\t\t\tdata.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, data);\n\t\t};\n\t\tthis._columnIndexToCellOptions = new Map<number, DTableBodyCellOptions<ROW>>();\n\t\tthis._data.emit(\"init\", this._data);\n\t}\n\n\tprotected toData(options?: DATA | DTableDataListOptions<ROW>): DATA {\n\t\tif (this.isData(options)) {\n\t\t\treturn options;\n\t\t}\n\t\treturn new DTableDataList<ROW>(options) as any;\n\t}\n\n\tprotected isData(\n\t\ttarget?: ROW[] | DTableDataOptions<ROW> | DTableData<ROW>\n\t): target is DTableData<ROW> {\n\t\treturn target != null && \"mapped\" in target;\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tthis.update();\n\t}\n\n\tget selection(): DTableDataSelection<ROW> {\n\t\treturn this._data.selection;\n\t}\n\n\tlock(): void {\n\t\tthis._updateRowsCount += 1;\n\t\tif (this._updateRowsCount === 1) {\n\t\t\tthis._isUpdateRowsCalled = false;\n\t\t\tthis._isUpdateRowsCalledForcibly = false;\n\t\t}\n\t}\n\n\tunlock(callIfNeeded: boolean): void {\n\t\tthis._updateRowsCount -= 1;\n\t\tif (this._updateRowsCount === 0) {\n\t\t\tif (callIfNeeded && this._isUpdateRowsCalled) {\n\t\t\t\tthis.update(this._isUpdateRowsCalledForcibly);\n\t\t\t}\n\t\t\tthis._isUpdateRowsCalled = false;\n\t\t\tthis._isUpdateRowsCalledForcibly = false;\n\t\t}\n\t}\n\n\t/**\n\t * Updates rows. If the `forcibly` is true, some dirty checkings for\n\t * avoiding unnecessary state changes are skipped.\n\t *\n\t * @param forcibly true to update forcibly\n\t */\n\tupdate(forcibly?: boolean): void {\n\t\tif (0 < this._updateRowsCount) {\n\t\t\tthis._isUpdateRowsCalled = true;\n\t\t\tif (forcibly) {\n\t\t\t\tthis._isUpdateRowsCalledForcibly = true;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = this.parent;\n\t\tif (content == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst contentParent = content.parent;\n\t\tif (contentParent == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst rows = this.children as Array<DTableBodyRow<ROW>>;\n\t\tconst height = contentParent.height;\n\t\tconst rowHeight = this._rowHeight;\n\n\t\tconst data = this._data;\n\t\tconst dataMappedSize = data.mapped.size();\n\n\t\tconst oldRowIndexMappedStart = this._rowIndexMappedStart;\n\t\tlet oldRowIndexMappedEnd = this._rowIndexMappedEnd;\n\t\tlet oldRowCount = oldRowIndexMappedEnd - oldRowIndexMappedStart;\n\n\t\tconst y = this.transform.position.y;\n\t\tconst newHeight = y + dataMappedSize * rowHeight;\n\t\tconst newContentHeight = Math.max(height, newHeight);\n\t\tconst newContentY = Math.max(height - newContentHeight, content.position.y);\n\n\t\tconst newRowIndexMappedLowerBound = -newContentY / rowHeight;\n\t\tconst newRowIndexMappedUpperBound = (height - (newContentY + y)) / rowHeight;\n\t\tlet newRowIndexMappedStart = Math.floor(newRowIndexMappedLowerBound);\n\t\tnewRowIndexMappedStart -= newRowIndexMappedStart % 2 === 0 ? 2 : 1;\n\t\tlet newRowIndexMappedEnd = Math.floor(newRowIndexMappedUpperBound);\n\t\tnewRowIndexMappedEnd += (newRowIndexMappedEnd - newRowIndexMappedStart) % 2 === 1 ? 3 : 2;\n\t\tlet newRowCount = newRowIndexMappedEnd - newRowIndexMappedStart;\n\t\tif (newRowCount < oldRowCount && oldRowCount - 2 <= newRowCount) {\n\t\t\tnewRowCount = oldRowCount;\n\t\t\tnewRowIndexMappedEnd = newRowIndexMappedStart + newRowCount;\n\t\t}\n\n\t\tif (oldRowCount < newRowCount) {\n\t\t\tfor (let i = oldRowCount; i < newRowCount; ++i) {\n\t\t\t\tconst oldRowIndexMapped = oldRowIndexMappedStart + i;\n\t\t\t\tconst newRow = this.newRow(oldRowIndexMapped % 2 === 0);\n\t\t\t\tthis.addChild(newRow);\n\t\t\t}\n\t\t\toldRowCount = newRowCount;\n\t\t\toldRowIndexMappedEnd = oldRowIndexMappedStart + oldRowCount;\n\t\t} else if (newRowCount < oldRowCount) {\n\t\t\tfor (let i = oldRowCount - 1; newRowCount <= i; --i) {\n\t\t\t\tthis.removeChild(rows[i]);\n\t\t\t}\n\t\t\toldRowCount = newRowCount;\n\t\t\toldRowIndexMappedEnd = oldRowIndexMappedStart + oldRowCount;\n\t\t}\n\n\t\tthis._rowIndexMappedStart = newRowIndexMappedStart;\n\t\tthis._rowIndexMappedEnd = newRowIndexMappedEnd;\n\n\t\tconst rowIndexMappedStartDelta = newRowIndexMappedStart - oldRowIndexMappedStart;\n\t\tconst rowIndexMappedStartDeltaAbs = Math.abs(rowIndexMappedStartDelta);\n\t\tconst rowsLength = rows.length;\n\t\tif (0 < rowIndexMappedStartDeltaAbs && rowIndexMappedStartDeltaAbs < rowsLength) {\n\t\t\tconst work = this._workRows;\n\t\t\tif (0 < rowIndexMappedStartDelta) {\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\twork.push(this.resetRow(rows[i]));\n\t\t\t\t}\n\t\t\t\tfor (let i = rowIndexMappedStartDeltaAbs; i < rowsLength; ++i) {\n\t\t\t\t\trows[i - rowIndexMappedStartDeltaAbs] = rows[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\trows[rowsLength - rowIndexMappedStartDeltaAbs + i] = work[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\twork.push(this.resetRow(rows[rowsLength - rowIndexMappedStartDeltaAbs + i]));\n\t\t\t\t}\n\t\t\t\tfor (let i = rowsLength - rowIndexMappedStartDeltaAbs - 1; 0 <= i; --i) {\n\t\t\t\t\trows[i + rowIndexMappedStartDeltaAbs] = rows[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\trows[i] = work[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\twork.length = 0;\n\t\t}\n\n\t\tconst selection = data.selection;\n\t\tconst isRowSelectable = selection.type !== DTableDataSelectionType.NONE;\n\t\tdata.mapped.each(\n\t\t\t(\n\t\t\t\tdatum: ROW,\n\t\t\t\tsupplimental: unknown,\n\t\t\t\tindex: number,\n\t\t\t\tunmappedIndex: number\n\t\t\t): void | boolean => {\n\t\t\t\tconst row = rows[index - newRowIndexMappedStart];\n\n\t\t\t\t// Position\n\t\t\t\trow.position.y = index * rowHeight;\n\n\t\t\t\t// State\n\t\t\t\tconst rowState = row.state;\n\t\t\t\trowState.lock();\n\t\t\t\trowState.set(DTableState.SELECTABLE, isRowSelectable);\n\t\t\t\trowState.set(DBaseState.ACTIVE, selection.contains(unmappedIndex));\n\t\t\t\trowState.remove(DBaseState.DISABLED);\n\t\t\t\trowState.unlock();\n\n\t\t\t\t// Data\n\t\t\t\trow.set(datum, supplimental, unmappedIndex, forcibly);\n\t\t\t},\n\t\t\tnewRowIndexMappedStart,\n\t\t\tnewRowIndexMappedStart + rowsLength\n\t\t);\n\n\t\tfor (let i = 0; newRowIndexMappedStart + i < 0 && i < rowsLength; ++i) {\n\t\t\tconst row = rows[i];\n\n\t\t\t// Position\n\t\t\trow.position.y = (newRowIndexMappedStart + i) * rowHeight;\n\n\t\t\t// State\n\t\t\tconst rowState = row.state;\n\t\t\trowState.lock();\n\t\t\trowState.add(DBaseState.DISABLED);\n\t\t\trowState.removeAll(DTableState.SELECTABLE, DBaseState.ACTIVE);\n\t\t\trowState.unlock();\n\n\t\t\t// Data\n\t\t\trow.unset();\n\t\t}\n\n\t\tfor (let i = rowsLength - 1; dataMappedSize <= newRowIndexMappedStart + i && 0 <= i; --i) {\n\t\t\tconst row = rows[i];\n\n\t\t\t// Position\n\t\t\trow.position.y = (newRowIndexMappedStart + i) * rowHeight;\n\n\t\t\t// State\n\t\t\tconst rowState = row.state;\n\t\t\trowState.lock();\n\t\t\trowState.add(DBaseState.DISABLED);\n\t\t\trowState.removeAll(DTableState.SELECTABLE, DBaseState.ACTIVE);\n\t\t\trowState.unlock();\n\n\t\t\t// Data\n\t\t\trow.unset();\n\t\t}\n\n\t\tthis.lock();\n\t\tcontent.position.y = newContentY;\n\t\tcontent.height = newContentHeight;\n\t\tthis.height = newHeight;\n\t\tthis.unlock(false);\n\t\tthis.emit(\"update\", newRowIndexMappedLowerBound, newRowIndexMappedUpperBound, this);\n\t}\n\n\tprotected resetRow(row: DTableBodyRow<ROW>): DTableBodyRow<ROW> {\n\t\trow.blur(true);\n\t\tconst cells = row.children;\n\t\tfor (let i = 0, imax = cells.length; i < imax; ++i) {\n\t\t\tconst cell = cells[i];\n\t\t\tif (cell instanceof DBase) {\n\t\t\t\tcell.state.isPressed = false;\n\t\t\t}\n\t\t}\n\t\treturn row;\n\t}\n\n\tprotected newRow(isEven: boolean): DTableBodyRow<ROW> {\n\t\treturn new DTableBodyRow<ROW>(\n\t\t\tthis._onRowChangeBound,\n\t\t\tisEven,\n\t\t\tthis._columnIndexToCellOptions,\n\t\t\tthis._rowOptions\n\t\t);\n\t}\n\n\tprotected onParentMove(newX: number, newY: number, oldX: number, oldY: number): void {\n\t\tsuper.onParentMove(newX, newY, oldX, oldY);\n\t\tthis.updateFrozenCellPosition(newX);\n\t}\n\n\tprotected updateFrozenCellPosition(x: number): void {\n\t\tconst frozen = this._rowOptions.frozen;\n\t\tif (frozen != null && 0 < frozen) {\n\t\t\tconst rows = this.children as Array<DTableBodyRow<ROW>>;\n\t\t\tfor (let i = 0, imax = rows.length; i < imax; ++i) {\n\t\t\t\trows[i].updateFrozenCellPosition(x);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetClippingRect(target: unknown, result: Rectangle): void {\n\t\tsuper.getClippingRect(target, result);\n\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tconst dy = -parent.transform.position.y;\n\t\t\tresult.y += dy;\n\t\t\tresult.height -= dy;\n\t\t}\n\t}\n\n\tprotected toRowIndexMapped(local: Point): number {\n\t\tif (0 <= this.parent.position.y + local.y) {\n\t\t\treturn Math.floor(local.y / this._rowHeight);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tprotected toRow(rowIndexMapped: number): DTableBodyRow<ROW> | null {\n\t\tconst index = rowIndexMapped - this._rowIndexMappedStart;\n\t\tconst rows = this.children as Array<DTableBodyRow<ROW>>;\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\tprotected toCell(row: DTableBodyRow<ROW>, local: Point): DTableBodyCell<ROW, unknown> | null {\n\t\tconst cells = row.children as Array<DTableBodyCell<ROW, unknown>>;\n\t\tconst cellsLength = cells.length;\n\t\tconst columns = this._columns;\n\t\tconst columnsLength = columns.length;\n\t\tfor (let i = 0, imax = Math.min(cellsLength, columnsLength); i < imax; ++i) {\n\t\t\tconst cell = cells[cellsLength - i - 1];\n\t\t\tconst x = local.x - cell.position.x;\n\t\t\tif (0 <= x && x <= cell.width) {\n\t\t\t\treturn cell;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tonRowClick(e: InteractionEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tconst local = DTableBody.WORK_ON_CLICK;\n\t\t\tlocal.copyFrom(e.data.global);\n\t\t\tthis.toLocal(local, undefined, local, false);\n\t\t\tconst rowIndexMapped = this.toRowIndexMapped(local);\n\t\t\tif (0 <= rowIndexMapped && rowIndexMapped < this._data.mapped.size()) {\n\t\t\t\t// Delegate to the cell at first\n\t\t\t\tconst row = this.toRow(rowIndexMapped);\n\t\t\t\tif (row) {\n\t\t\t\t\tconst cell = this.toCell(row, local);\n\t\t\t\t\tif (cell && cell.onRowSelect && cell.onRowSelect(e, local)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fallback to the default\n\t\t\t\tthis.onRowSelect(e, rowIndexMapped);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onRowSelect(e: InteractionEvent, rowIndexMapped: number): void {\n\t\tconst data = this._data;\n\t\tconst selection = data.selection;\n\t\tconst isSingle = selection.type === DTableDataSelectionType.SINGLE;\n\t\tconst isNotSingle = !isSingle;\n\t\tconst rowIndex = data.mapped.unmap(rowIndexMapped);\n\t\tconst originalEvent = e.data.originalEvent;\n\t\tconst ctrlKey = originalEvent.ctrlKey;\n\t\tconst shiftKey = originalEvent.shiftKey;\n\t\tif (isSingle || selection.isEmpty() || !(isNotSingle && (ctrlKey || shiftKey))) {\n\t\t\tselection.clearAndAdd(rowIndex);\n\t\t} else if (ctrlKey) {\n\t\t\tselection.toggle(rowIndex);\n\t\t} else if (shiftKey) {\n\t\t\tconst lastRowIndex = selection.last;\n\t\t\tif (lastRowIndex != null) {\n\t\t\t\tconst sorter = data.sorter;\n\t\t\t\tconst filter = data.filter;\n\t\t\t\tconst rowIndexSorted = sorter.map(rowIndex);\n\t\t\t\tconst lastRowIndexSorted = sorter.map(lastRowIndex);\n\t\t\t\tif (rowIndexSorted != null && lastRowIndexSorted != null) {\n\t\t\t\t\tlet istart = lastRowIndexSorted + 1;\n\t\t\t\t\tlet iend = rowIndexSorted + 1;\n\t\t\t\t\tif (rowIndexSorted < lastRowIndexSorted) {\n\t\t\t\t\t\tistart = rowIndexSorted;\n\t\t\t\t\t\tiend = lastRowIndexSorted;\n\t\t\t\t\t}\n\t\t\t\t\tif (istart < iend) {\n\t\t\t\t\t\tconst rowIndices: number[] = [];\n\t\t\t\t\t\tconst indicesFiltered = filter.indices;\n\t\t\t\t\t\tconst indicesSorted = sorter.indices;\n\t\t\t\t\t\tif (indicesFiltered) {\n\t\t\t\t\t\t\tif (indicesSorted) {\n\t\t\t\t\t\t\t\tfor (let i = 0, imax = indicesFiltered.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\t\tconst indexFiltered = indicesFiltered[i];\n\t\t\t\t\t\t\t\t\tif (istart <= indexFiltered && indexFiltered < iend) {\n\t\t\t\t\t\t\t\t\t\trowIndices.push(indicesSorted[indexFiltered]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor (let i = 0, imax = indicesFiltered.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\t\tconst indexFiltered = indicesFiltered[i];\n\t\t\t\t\t\t\t\t\tif (istart <= indexFiltered && indexFiltered < iend) {\n\t\t\t\t\t\t\t\t\t\trowIndices.push(indexFiltered);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (indicesSorted) {\n\t\t\t\t\t\t\t\tfor (let i = istart; i < iend; ++i) {\n\t\t\t\t\t\t\t\t\trowIndices.push(indicesSorted[i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor (let i = istart; i < iend; ++i) {\n\t\t\t\t\t\t\t\t\trowIndices.push(i);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselection.addAll(rowIndices);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): boolean {\n\t\treturn super.onDblClick(e, interactionManager);\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBody\";\n\t}\n\n\tget data(): DATA {\n\t\treturn this._data;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-body.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body.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, Rectangle } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport { DBase, DBaseEvents, DBaseOptions, DThemeBase } from \"./d-base\";\nimport { DBaseState } from \"./d-base-state\";\nimport { DTableBodyRow, DTableBodyRowOnChange, DTableBodyRowOptions } from \"./d-table-body-row\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableData, DTableDataOptions } from \"./d-table-data\";\nimport { DTableDataList, DTableDataListOptions } from \"./d-table-data-list\";\nimport { DTableDataSelection, DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableBodyCell } from \"./d-table-body-cell\";\nimport { DTableState } from \"./d-table-state\";\nimport { DTableBodyCellOptions } from \"./d-table-body-cell-options\";\nimport { DOnOptions } from \"./d-on-options\";\nimport { DApplications } from \"./d-applications\";\nimport { isNumber } from \"./util/is-number\";\n\n/**\n * {@link DTableBody} events.\n */\nexport interface DTableBodyEvents<EMITTER> extends DBaseEvents<EMITTER> {\n\t/**\n\t * Triggered when rows are updated.\n\t * The first and second parameters are an mapped index range of visible data.\n\t * Please note that these parameters are real numbers.\n\t * For instance, An index range of [0.5, 2.5] means:\n\t *\n\t * * The row at index 0 is partially visible.\n\t * * The row at index 1 is fully visible.\n\t * * The row at index 2 is partially visible.\n\t *\n\t * @param from a lowest mapped index of visible data\n\t * @param to a highest mapped index of vislble data\n\t * @param emitter an emitter\n\t */\n\tupdate(from: number, to: number, emitter: EMITTER): void;\n}\n\n/**\n * {@link DTableBody} \"on\" options.\n */\nexport interface DTableBodyOnOptions<EMITTER>\n\textends Partial<DTableBodyEvents<EMITTER>>,\n\t\tDOnOptions {}\n\nexport interface DTableBodyOptions<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTableBody = DThemeTableBody,\n\tEMITTER = any\n> extends DBaseOptions<THEME, EMITTER> {\n\tcolumns?: Array<DTableColumn<ROW, unknown>>;\n\trow?: DTableBodyRowOptions<ROW>;\n\tdata?: DTableDataListOptions<ROW> | DATA;\n\toffset?: number;\n\tfrozen?: number;\n\ton?: DTableBodyOnOptions<EMITTER>;\n}\n\nexport interface DThemeTableBody extends DThemeBase {\n\tgetRowHeight(): number;\n}\n\nconst toRowOptions = <ROW, DATA extends DTableData<ROW>>(\n\ttheme: DThemeTableBody,\n\toptions: DTableBodyOptions<ROW, DATA>,\n\tselectionType: DTableDataSelectionType\n): DTableBodyRowOptions<ROW> => {\n\tconst columns = options.columns || [];\n\tlet result = options.row;\n\tif (result != null) {\n\t\tif (result.height == null) {\n\t\t\tresult.height = theme.getRowHeight();\n\t\t}\n\t\tif (result.columns === undefined) {\n\t\t\tresult.columns = columns;\n\t\t}\n\t\tif (result.frozen == null) {\n\t\t\tresult.frozen = options.frozen;\n\t\t}\n\t\tif (result.selection === undefined) {\n\t\t\tresult.selection = {\n\t\t\t\ttype: selectionType\n\t\t\t};\n\t\t} else if (result.selection.type === undefined) {\n\t\t\tresult.selection.type = selectionType;\n\t\t}\n\t} else {\n\t\tresult = {\n\t\t\tcolumns,\n\t\t\theight: theme.getRowHeight(),\n\t\t\tfrozen: options.frozen,\n\t\t\tselection: {\n\t\t\t\ttype: selectionType\n\t\t\t}\n\t\t};\n\t}\n\treturn result as DTableBodyRowOptions<ROW>;\n};\n\nexport class DTableBody<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTableBody = DThemeTableBody,\n\tOPTIONS extends DTableBodyOptions<ROW, DATA, THEME> = DTableBodyOptions<ROW, DATA, THEME>\n> extends DBase<THEME, OPTIONS> {\n\tprotected static WORK_ON_CLICK = new Point();\n\n\tprotected _columns: Array<DTableColumn<ROW, unknown>>;\n\tprotected _rowHeight: number;\n\tprotected _rowIndexMappedStart: number;\n\tprotected _rowIndexMappedEnd: number;\n\tprotected _rowOptions: DTableBodyRowOptions<ROW>;\n\tprotected _updateRowsCount: number;\n\tprotected _isUpdateRowsCalled: boolean;\n\tprotected _isUpdateRowsCalledForcibly: boolean;\n\tprotected _workRows: Array<DTableBodyRow<ROW>>;\n\tprotected _onRowChangeBound: DTableBodyRowOnChange<ROW, unknown>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\tprotected _data: DATA;\n\n\tconstructor(options: OPTIONS) {\n\t\tsuper(options);\n\n\t\tthis.transform.position.y = options.offset ?? 0;\n\t\tconst data = this.toData(options.data);\n\t\tthis._data = data;\n\t\tdata.bind(this);\n\t\tconst theme = this.theme;\n\t\tconst rowOptions = toRowOptions(theme, options, data.selection.type);\n\t\tthis._rowOptions = rowOptions;\n\t\tthis._rowHeight = rowOptions.height != null ? rowOptions.height : theme.getRowHeight();\n\t\tthis._columns = rowOptions.columns || [];\n\t\tthis._rowIndexMappedStart = 0;\n\t\tthis._rowIndexMappedEnd = 0;\n\t\tthis._updateRowsCount = 0;\n\t\tthis._isUpdateRowsCalled = false;\n\t\tthis._isUpdateRowsCalledForcibly = false;\n\t\tthis._workRows = [];\n\t\tthis._onRowChangeBound = (newValue, oldValue, row, rowIndex, columnIndex): void => {\n\t\t\tdata.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, data);\n\t\t};\n\t\tthis._columnIndexToCellOptions = new Map<number, DTableBodyCellOptions<ROW>>();\n\t\tthis._data.emit(\"init\", this._data);\n\t}\n\n\tprotected toData(options?: DATA | DTableDataListOptions<ROW>): DATA {\n\t\tif (this.isData(options)) {\n\t\t\treturn options;\n\t\t}\n\t\treturn new DTableDataList<ROW>(options) as any;\n\t}\n\n\tprotected isData(\n\t\ttarget?: ROW[] | DTableDataOptions<ROW> | DTableData<ROW>\n\t): target is DTableData<ROW> {\n\t\treturn target != null && \"mapped\" in target;\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tthis.update();\n\t}\n\n\tget selection(): DTableDataSelection<ROW> {\n\t\treturn this._data.selection;\n\t}\n\n\tlock(): void {\n\t\tthis._updateRowsCount += 1;\n\t\tif (this._updateRowsCount === 1) {\n\t\t\tthis._isUpdateRowsCalled = false;\n\t\t\tthis._isUpdateRowsCalledForcibly = false;\n\t\t}\n\t}\n\n\tunlock(callIfNeeded: boolean): void {\n\t\tthis._updateRowsCount -= 1;\n\t\tif (this._updateRowsCount === 0) {\n\t\t\tif (callIfNeeded && this._isUpdateRowsCalled) {\n\t\t\t\tthis.update(this._isUpdateRowsCalledForcibly);\n\t\t\t}\n\t\t\tthis._isUpdateRowsCalled = false;\n\t\t\tthis._isUpdateRowsCalledForcibly = false;\n\t\t}\n\t}\n\n\t/**\n\t * Updates rows. If the `forcibly` is true, some dirty checkings for\n\t * avoiding unnecessary state changes are skipped.\n\t *\n\t * @param forcibly true to update forcibly\n\t */\n\tupdate(forcibly?: boolean): void {\n\t\tif (0 < this._updateRowsCount) {\n\t\t\tthis._isUpdateRowsCalled = true;\n\t\t\tif (forcibly) {\n\t\t\t\tthis._isUpdateRowsCalledForcibly = true;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = this.parent;\n\t\tif (content == null) {\n\t\t\treturn;\n\t\t}\n\t\tconst contentParent = content.parent;\n\t\tif (contentParent == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst rows = this.children as Array<DTableBodyRow<ROW>>;\n\t\tconst height = contentParent.height;\n\t\tconst rowHeight = this._rowHeight;\n\n\t\tconst data = this._data;\n\t\tconst dataMappedSize = data.mapped.size();\n\n\t\tconst oldRowIndexMappedStart = this._rowIndexMappedStart;\n\t\tlet oldRowIndexMappedEnd = this._rowIndexMappedEnd;\n\t\tlet oldRowCount = oldRowIndexMappedEnd - oldRowIndexMappedStart;\n\n\t\tconst y = this.transform.position.y;\n\t\tconst newHeight = y + dataMappedSize * rowHeight;\n\t\tconst newContentHeight = Math.max(height, newHeight);\n\t\tconst newContentY = Math.max(height - newContentHeight, content.position.y);\n\n\t\tconst newRowIndexMappedLowerBound = -newContentY / rowHeight;\n\t\tconst newRowIndexMappedUpperBound = (height - (newContentY + y)) / rowHeight;\n\t\tlet newRowIndexMappedStart = Math.floor(newRowIndexMappedLowerBound);\n\t\tnewRowIndexMappedStart -= newRowIndexMappedStart % 2 === 0 ? 2 : 1;\n\t\tlet newRowIndexMappedEnd = Math.floor(newRowIndexMappedUpperBound);\n\t\tnewRowIndexMappedEnd += (newRowIndexMappedEnd - newRowIndexMappedStart) % 2 === 1 ? 3 : 2;\n\t\tlet newRowCount = newRowIndexMappedEnd - newRowIndexMappedStart;\n\t\tif (newRowCount < oldRowCount && oldRowCount - 2 <= newRowCount) {\n\t\t\tnewRowCount = oldRowCount;\n\t\t\tnewRowIndexMappedEnd = newRowIndexMappedStart + newRowCount;\n\t\t}\n\n\t\tif (oldRowCount < newRowCount) {\n\t\t\tfor (let i = oldRowCount; i < newRowCount; ++i) {\n\t\t\t\tconst oldRowIndexMapped = oldRowIndexMappedStart + i;\n\t\t\t\tconst newRow = this.newRow(oldRowIndexMapped % 2 === 0);\n\t\t\t\tthis.addChild(newRow);\n\t\t\t}\n\t\t\toldRowCount = newRowCount;\n\t\t\toldRowIndexMappedEnd = oldRowIndexMappedStart + oldRowCount;\n\t\t} else if (newRowCount < oldRowCount) {\n\t\t\tfor (let i = oldRowCount - 1; newRowCount <= i; --i) {\n\t\t\t\tthis.removeChild(rows[i]);\n\t\t\t}\n\t\t\toldRowCount = newRowCount;\n\t\t\toldRowIndexMappedEnd = oldRowIndexMappedStart + oldRowCount;\n\t\t}\n\n\t\tthis._rowIndexMappedStart = newRowIndexMappedStart;\n\t\tthis._rowIndexMappedEnd = newRowIndexMappedEnd;\n\n\t\tconst rowIndexMappedStartDelta = newRowIndexMappedStart - oldRowIndexMappedStart;\n\t\tconst rowIndexMappedStartDeltaAbs = Math.abs(rowIndexMappedStartDelta);\n\t\tconst rowsLength = rows.length;\n\t\tif (0 < rowIndexMappedStartDeltaAbs && rowIndexMappedStartDeltaAbs < rowsLength) {\n\t\t\tconst work = this._workRows;\n\t\t\tif (0 < rowIndexMappedStartDelta) {\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\twork.push(this.resetRow(rows[i]));\n\t\t\t\t}\n\t\t\t\tfor (let i = rowIndexMappedStartDeltaAbs; i < rowsLength; ++i) {\n\t\t\t\t\trows[i - rowIndexMappedStartDeltaAbs] = rows[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\trows[rowsLength - rowIndexMappedStartDeltaAbs + i] = work[i];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\twork.push(this.resetRow(rows[rowsLength - rowIndexMappedStartDeltaAbs + i]));\n\t\t\t\t}\n\t\t\t\tfor (let i = rowsLength - rowIndexMappedStartDeltaAbs - 1; 0 <= i; --i) {\n\t\t\t\t\trows[i + rowIndexMappedStartDeltaAbs] = rows[i];\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < rowIndexMappedStartDeltaAbs; ++i) {\n\t\t\t\t\trows[i] = work[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\twork.length = 0;\n\t\t}\n\n\t\tconst selection = data.selection;\n\t\tconst isRowSelectable = selection.type !== DTableDataSelectionType.NONE;\n\t\tdata.mapped.each(\n\t\t\t(\n\t\t\t\tdatum: ROW,\n\t\t\t\tsupplimental: unknown,\n\t\t\t\tindex: number,\n\t\t\t\tunmappedIndex: number\n\t\t\t): void | boolean => {\n\t\t\t\tconst row = rows[index - newRowIndexMappedStart];\n\n\t\t\t\t// Position\n\t\t\t\trow.position.y = index * rowHeight;\n\n\t\t\t\t// State\n\t\t\t\tconst rowState = row.state;\n\t\t\t\trowState.lock();\n\t\t\t\trowState.set(DTableState.SELECTABLE, isRowSelectable);\n\t\t\t\trowState.set(DBaseState.ACTIVE, selection.contains(unmappedIndex));\n\t\t\t\trowState.remove(DBaseState.DISABLED);\n\t\t\t\trowState.unlock();\n\n\t\t\t\t// Data\n\t\t\t\trow.set(datum, supplimental, unmappedIndex, forcibly);\n\t\t\t},\n\t\t\tnewRowIndexMappedStart,\n\t\t\tnewRowIndexMappedStart + rowsLength\n\t\t);\n\n\t\tfor (let i = 0; newRowIndexMappedStart + i < 0 && i < rowsLength; ++i) {\n\t\t\tconst row = rows[i];\n\n\t\t\t// Position\n\t\t\trow.position.y = (newRowIndexMappedStart + i) * rowHeight;\n\n\t\t\t// State\n\t\t\tconst rowState = row.state;\n\t\t\trowState.lock();\n\t\t\trowState.add(DBaseState.DISABLED);\n\t\t\trowState.removeAll(DTableState.SELECTABLE, DBaseState.ACTIVE);\n\t\t\trowState.unlock();\n\n\t\t\t// Data\n\t\t\trow.unset();\n\t\t}\n\n\t\tfor (let i = rowsLength - 1; dataMappedSize <= newRowIndexMappedStart + i && 0 <= i; --i) {\n\t\t\tconst row = rows[i];\n\n\t\t\t// Position\n\t\t\trow.position.y = (newRowIndexMappedStart + i) * rowHeight;\n\n\t\t\t// State\n\t\t\tconst rowState = row.state;\n\t\t\trowState.lock();\n\t\t\trowState.add(DBaseState.DISABLED);\n\t\t\trowState.removeAll(DTableState.SELECTABLE, DBaseState.ACTIVE);\n\t\t\trowState.unlock();\n\n\t\t\t// Data\n\t\t\trow.unset();\n\t\t}\n\n\t\tthis.lock();\n\t\tcontent.position.y = newContentY;\n\t\tcontent.height = newContentHeight;\n\t\tthis.height = newHeight;\n\t\tthis.unlock(false);\n\t\tthis.emit(\"update\", newRowIndexMappedLowerBound, newRowIndexMappedUpperBound, this);\n\t}\n\n\tprotected resetRow(row: DTableBodyRow<ROW>): DTableBodyRow<ROW> {\n\t\trow.blur(true);\n\t\tconst cells = row.children;\n\t\tfor (let i = 0, imax = cells.length; i < imax; ++i) {\n\t\t\tconst cell = cells[i];\n\t\t\tif (cell instanceof DBase) {\n\t\t\t\tcell.state.isPressed = false;\n\t\t\t}\n\t\t}\n\t\treturn row;\n\t}\n\n\tprotected newRow(isEven: boolean): DTableBodyRow<ROW> {\n\t\treturn new DTableBodyRow<ROW>(\n\t\t\tthis._onRowChangeBound,\n\t\t\tisEven,\n\t\t\tthis._columnIndexToCellOptions,\n\t\t\tthis._rowOptions\n\t\t);\n\t}\n\n\tprotected onParentMove(newX: number, newY: number, oldX: number, oldY: number): void {\n\t\tsuper.onParentMove(newX, newY, oldX, oldY);\n\t\tthis.updateFrozenCellPosition(newX);\n\t}\n\n\tprotected updateFrozenCellPosition(x: number): void {\n\t\tconst frozen = this._rowOptions.frozen;\n\t\tif (frozen != null && 0 < frozen) {\n\t\t\tconst rows = this.children as Array<DTableBodyRow<ROW>>;\n\t\t\tfor (let i = 0, imax = rows.length; i < imax; ++i) {\n\t\t\t\trows[i].updateFrozenCellPosition(x);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetClippingRect(target: unknown, result: Rectangle): void {\n\t\tsuper.getClippingRect(target, result);\n\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tconst dy = -parent.transform.position.y;\n\t\t\tresult.y += dy;\n\t\t\tresult.height -= dy;\n\t\t}\n\t}\n\n\t/**\n\t * Scroll to the given row or row index.\n\t *\n\t * @param target a row or an row index to which the body scrolls to.\n\t * @returns true if succeeded\n\t */\n\tscrollTo(target: ROW | number): boolean {\n\t\tconst parent = this.parent;\n\t\tif (parent == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst parentParent = parent.parent;\n\t\tif (parentParent == null) {\n\t\t\treturn false;\n\t\t}\n\t\tlet rowIndexMapped = -1;\n\t\tif (isNumber(target)) {\n\t\t\tif (0 <= target && target < this.data.mapped.size()) {\n\t\t\t\trowIndexMapped = target;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.data.mapped.each((row: ROW, _: unknown, index: number): boolean => {\n\t\t\t\tif (row === target) {\n\t\t\t\t\trowIndexMapped = index;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\t\t}\n\t\tif (rowIndexMapped < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tparent.position.y = Math.max(\n\t\t\tMath.min(0, parentParent.height - parent.height),\n\t\t\t-rowIndexMapped * this._rowHeight\n\t\t);\n\t\tDApplications.update(this);\n\t\treturn true;\n\t}\n\n\tprotected toRowIndexMapped(local: Point): number {\n\t\tif (0 <= this.parent.position.y + local.y) {\n\t\t\treturn Math.floor(local.y / this._rowHeight);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tprotected toRow(rowIndexMapped: number): DTableBodyRow<ROW> | null {\n\t\tconst index = rowIndexMapped - this._rowIndexMappedStart;\n\t\tconst rows = this.children as Array<DTableBodyRow<ROW>>;\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\tprotected toCell(row: DTableBodyRow<ROW>, local: Point): DTableBodyCell<ROW, unknown> | null {\n\t\tconst cells = row.children as Array<DTableBodyCell<ROW, unknown>>;\n\t\tconst cellsLength = cells.length;\n\t\tconst columns = this._columns;\n\t\tconst columnsLength = columns.length;\n\t\tfor (let i = 0, imax = Math.min(cellsLength, columnsLength); i < imax; ++i) {\n\t\t\tconst cell = cells[cellsLength - i - 1];\n\t\t\tconst x = local.x - cell.position.x;\n\t\t\tif (0 <= x && x <= cell.width) {\n\t\t\t\treturn cell;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tonRowClick(e: InteractionEvent): void {\n\t\tif (this.state.isActionable) {\n\t\t\tconst local = DTableBody.WORK_ON_CLICK;\n\t\t\tlocal.copyFrom(e.data.global);\n\t\t\tthis.toLocal(local, undefined, local, false);\n\t\t\tconst rowIndexMapped = this.toRowIndexMapped(local);\n\t\t\tif (0 <= rowIndexMapped && rowIndexMapped < this._data.mapped.size()) {\n\t\t\t\t// Delegate to the cell at first\n\t\t\t\tconst row = this.toRow(rowIndexMapped);\n\t\t\t\tif (row) {\n\t\t\t\t\tconst cell = this.toCell(row, local);\n\t\t\t\t\tif (cell && cell.onRowSelect && cell.onRowSelect(e, local)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fallback to the default\n\t\t\t\tthis.onRowSelect(e, rowIndexMapped);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onRowSelect(e: InteractionEvent, rowIndexMapped: number): void {\n\t\tconst data = this._data;\n\t\tconst selection = data.selection;\n\t\tconst isSingle = selection.type === DTableDataSelectionType.SINGLE;\n\t\tconst isNotSingle = !isSingle;\n\t\tconst rowIndex = data.mapped.unmap(rowIndexMapped);\n\t\tconst originalEvent = e.data.originalEvent;\n\t\tconst ctrlKey = originalEvent.ctrlKey;\n\t\tconst shiftKey = originalEvent.shiftKey;\n\t\tif (isSingle || selection.isEmpty() || !(isNotSingle && (ctrlKey || shiftKey))) {\n\t\t\tselection.clearAndAdd(rowIndex);\n\t\t} else if (ctrlKey) {\n\t\t\tselection.toggle(rowIndex);\n\t\t} else if (shiftKey) {\n\t\t\tconst lastRowIndex = selection.last;\n\t\t\tif (lastRowIndex != null) {\n\t\t\t\tconst sorter = data.sorter;\n\t\t\t\tconst filter = data.filter;\n\t\t\t\tconst rowIndexSorted = sorter.map(rowIndex);\n\t\t\t\tconst lastRowIndexSorted = sorter.map(lastRowIndex);\n\t\t\t\tif (rowIndexSorted != null && lastRowIndexSorted != null) {\n\t\t\t\t\tlet istart = lastRowIndexSorted + 1;\n\t\t\t\t\tlet iend = rowIndexSorted + 1;\n\t\t\t\t\tif (rowIndexSorted < lastRowIndexSorted) {\n\t\t\t\t\t\tistart = rowIndexSorted;\n\t\t\t\t\t\tiend = lastRowIndexSorted;\n\t\t\t\t\t}\n\t\t\t\t\tif (istart < iend) {\n\t\t\t\t\t\tconst rowIndices: number[] = [];\n\t\t\t\t\t\tconst indicesFiltered = filter.indices;\n\t\t\t\t\t\tconst indicesSorted = sorter.indices;\n\t\t\t\t\t\tif (indicesFiltered) {\n\t\t\t\t\t\t\tif (indicesSorted) {\n\t\t\t\t\t\t\t\tfor (let i = 0, imax = indicesFiltered.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\t\tconst indexFiltered = indicesFiltered[i];\n\t\t\t\t\t\t\t\t\tif (istart <= indexFiltered && indexFiltered < iend) {\n\t\t\t\t\t\t\t\t\t\trowIndices.push(indicesSorted[indexFiltered]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor (let i = 0, imax = indicesFiltered.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\t\tconst indexFiltered = indicesFiltered[i];\n\t\t\t\t\t\t\t\t\tif (istart <= indexFiltered && indexFiltered < iend) {\n\t\t\t\t\t\t\t\t\t\trowIndices.push(indexFiltered);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (indicesSorted) {\n\t\t\t\t\t\t\t\tfor (let i = istart; i < iend; ++i) {\n\t\t\t\t\t\t\t\t\trowIndices.push(indicesSorted[i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor (let i = istart; i < iend; ++i) {\n\t\t\t\t\t\t\t\t\trowIndices.push(i);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselection.addAll(rowIndices);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): boolean {\n\t\treturn super.onDblClick(e, interactionManager);\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBody\";\n\t}\n\n\tget data(): DATA {\n\t\treturn this._data;\n\t}\n}\n"]}
@@ -41,7 +41,7 @@ var toPathGetter = function (path, def) {
41
41
  }
42
42
  else {
43
43
  return function (row) {
44
- return key_1 in row ? row[key_1] : def;
44
+ return Object.prototype.hasOwnProperty.call(row, key_1) ? row[key_1] : def;
45
45
  };
46
46
  }
47
47
  }
@@ -60,7 +60,7 @@ var toPathGetter = function (path, def) {
60
60
  row = row[path[i]];
61
61
  }
62
62
  var key = path[path.length - 1];
63
- return key in row ? row[key] : def;
63
+ return Object.prototype.hasOwnProperty.call(row, key) ? row[key] : def;
64
64
  };
65
65
  }
66
66
  }
@@ -116,7 +116,7 @@ var toColumnDataChecker = function (path) {
116
116
  if (pathLength_1 <= 1) {
117
117
  var key_3 = path[0];
118
118
  return function (row) {
119
- return key_3 in row;
119
+ return Object.prototype.hasOwnProperty.call(row, key_3);
120
120
  };
121
121
  }
122
122
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"d-table.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table.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, Rectangle } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport InteractionManager = interaction.InteractionManager;\nimport { DDialogSelectOptions } from \"../ui/d-dialog-select\";\nimport { DAlignHorizontal } from \"./d-align-horizontal\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions } from \"./d-base\";\nimport { DContentOptions } from \"./d-content\";\nimport { DFocusable, DFocusableContainer } from \"./d-controller-focus\";\nimport { DCoordinateSize } from \"./d-coordinate\";\nimport { DDialogSelect } from \"./d-dialog-select\";\nimport { DMenu, DMenuOptions } from \"./d-menu\";\nimport { DPane, DPaneOptions, DThemePane } from \"./d-pane\";\nimport { DTableBody, DTableBodyOptions } from \"./d-table-body\";\nimport { DTableCategory, DTableCategoryColumn, DTableCategoryOptions } from \"./d-table-category\";\nimport { DTableColumn, DTableColumnOptions } from \"./d-table-column\";\nimport { DTableData, DTableDataOptions } from \"./d-table-data\";\nimport { DTableDataList, DTableDataListOptions } from \"./d-table-data-list\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableDataComparatorFunction } from \"./d-table-data-sorter\";\nimport { DTableHeader, DTableHeaderOptions } from \"./d-table-header\";\nimport { DTableRow } from \"./d-table-row\";\nimport { isArray } from \"./util/is-array\";\nimport { isString } from \"./util/is-string\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { DTableScrollBar } from \"./d-table-scrollbar\";\nimport { DPaneScrollBarOptions } from \"./d-pane-scrollbar\";\nimport { DTableColumnType } from \"./d-table-column-type\";\nimport { DTableColumnEditing, DTableColumnEditable } from \"./d-table-column-editing\";\nimport { DTableColumnSorting } from \"./d-table-column-sorting\";\nimport {\n\tDTableColumnSelecting,\n\tDTableColumnSelectingDialog,\n\tDTableColumnSelectingOptions\n} from \"./d-table-column-selecting\";\nimport { DTableColumnGetter } from \"./d-table-column-getter\";\nimport { DTableColumnSetter } from \"./d-table-column-setter\";\nimport { DTableColumnRenderable } from \"./d-table-column-renderable\";\nimport { DTableColumnState } from \"./d-table-column-state\";\n\nexport interface DTableOptions<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions\n> extends DPaneOptions<THEME, CONTENT_OPTIONS> {\n\tcolumns: Array<DTableColumnOptions<ROW>>;\n\tcategory?: DTableCategoryOptions;\n\theader?: DTableHeaderOptions<ROW>;\n\tbody?: DTableBodyOptions<ROW, DATA>;\n\tdata?: ROW[] | DTableDataListOptions<ROW> | DATA;\n}\n\nexport interface DThemeTable extends DThemePane {}\n\nconst defaultGetter = <ROW, CELL>(row: ROW, columnIndex: number): CELL => {\n\treturn (row as any)[columnIndex];\n};\n\nconst defaultSetter = <ROW, CELL>(row: ROW, columnIndex: number, cell: CELL): void => {\n\t(row as any)[columnIndex] = cell;\n};\n\nconst defaultGetterEmpty = <CELL>(): CELL => \"\" as any;\n\nconst defaultSetterEmpty = (): void => {\n\t// DO NOTHING\n};\n\nconst toPathGetter = <ROW, CELL>(path: string[], def?: CELL): DTableColumnGetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn (row as any)[key];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn key in row ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t} else {\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\treturn (row as any)[path[path.length - 1]];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\tconst key = path[path.length - 1];\n\t\t\t\treturn key in row ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst toPathSetter = <ROW, CELL>(path: string[]): DTableColumnSetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\t(row as any)[key] = cell;\n\t\t};\n\t} else {\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\trow = (row as any)[path[i]] || {};\n\t\t\t}\n\t\t\t(row as any)[path[path.length - 1]] = cell;\n\t\t};\n\t}\n};\n\nconst toColumnAlign = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType\n): DAlignHorizontal => {\n\tconst align = options.align;\n\tif (align != null) {\n\t\tif (isString(align)) {\n\t\t\treturn DAlignHorizontal[align];\n\t\t} else {\n\t\t\treturn align;\n\t\t}\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.TEXT:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t\tcase DTableColumnType.REAL:\n\t\tcase DTableColumnType.INTEGER:\n\t\t\treturn DAlignHorizontal.RIGHT;\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.INDEX:\n\t\tcase DTableColumnType.SELECT:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\tcase DTableColumnType.CHECK:\n\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\tcase DTableColumnType.COLOR:\n\t\t\treturn DAlignHorizontal.CENTER;\n\t\tdefault:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t}\n};\n\nconst toColumnDataChecker = <ROW>(path: string[] | null): DTableColumnEditable<ROW> => {\n\tif (path != null) {\n\t\tconst pathLength = path.length;\n\t\tif (pathLength <= 1) {\n\t\t\tconst key = path[0];\n\t\t\treturn (row: ROW): boolean => {\n\t\t\t\treturn key in row;\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: any): boolean => {\n\t\t\t\tfor (let i = 0; i < pathLength; ++i) {\n\t\t\t\t\tconst part: string = path[i];\n\t\t\t\t\tif (part in row) {\n\t\t\t\t\t\trow = row[part];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t}\n\t}\n\treturn (row: any, columnIndex: number): boolean => {\n\t\treturn columnIndex < row.length;\n\t};\n};\n\nconst toColumnEditingEnable = <ROW>(\n\tenable: boolean | DTableColumnEditable<ROW> | \"auto\" | \"AUTO\" | undefined,\n\tpath: string[] | null\n): boolean | DTableColumnEditable<ROW> => {\n\tif (isString(enable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (enable != null) {\n\t\treturn enable;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nconst toColumnEditing = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): DTableColumnEditing<ROW, CELL> => {\n\tconst editing = options.editing;\n\tconst editable = options.editable;\n\tif (editing) {\n\t\treturn {\n\t\t\tenable: toColumnEditingEnable(editing.enable ?? editable, path),\n\t\t\tformatter: editing.formatter,\n\t\t\tunformatter: editing.unformatter,\n\t\t\tvalidator: editing.validator\n\t\t};\n\t}\n\treturn {\n\t\tenable: toColumnEditingEnable(editable, path)\n\t};\n};\n\nconst toComparator = <ROW, CELL>(\n\tgetter: DTableColumnGetter<ROW, CELL>,\n\tindex: number\n): DTableDataComparatorFunction<ROW> => {\n\treturn (rowA: ROW, rowB: ROW): number => {\n\t\tconst valueA = getter(rowA, index) as any;\n\t\tconst valueB = getter(rowB, index) as any;\n\t\treturn valueA < valueB ? -1 : valueB < valueA ? +1 : 0;\n\t};\n};\n\nconst toColumnSorting = <ROW, CELL>(\n\tgetter: DTableColumnGetter<ROW, CELL>,\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumnSorting<ROW> => {\n\tconst sorting = options.sorting;\n\tconst sortable = options.sortable;\n\tif (sorting) {\n\t\tif (sorting.enable || sortable) {\n\t\t\treturn {\n\t\t\t\tenable: true,\n\t\t\t\tcomparator: sorting.comparator || toComparator(getter, index)\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tenable: false\n\t\t};\n\t}\n\tif (sortable) {\n\t\treturn {\n\t\t\tenable: true,\n\t\t\tcomparator: toComparator(getter, index)\n\t\t};\n\t}\n\treturn {\n\t\tenable: false\n\t};\n};\n\nconst toColumnMenu = (\n\toptions?: DMenuOptions<unknown> | DMenu<unknown>\n): DMenu<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (options instanceof DMenu) {\n\t\treturn options;\n\t} else {\n\t\treturn new DMenu(options);\n\t}\n};\n\nconst toColumnDialog = (\n\toptions?: DDialogSelectOptions<unknown> | DTableColumnSelectingDialog<unknown>\n): DTableColumnSelectingDialog<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (\"open\" in options) {\n\t\treturn options;\n\t} else {\n\t\treturn new DDialogSelect(options);\n\t}\n};\n\nconst defaultSelectingGetter = (dialog: DTableColumnSelectingDialog<unknown>): unknown => {\n\treturn dialog.value;\n};\n\nconst defaultSelectingSetter = (): void => {\n\t// DO NOTHING\n};\n\nconst toColumnSelecting = (\n\toptions: DTableColumnSelectingOptions<any, any, any> | undefined\n): DTableColumnSelecting<any, any, any> => {\n\tif (options) {\n\t\treturn {\n\t\t\tgetter: options.getter || defaultSelectingGetter,\n\t\t\tsetter: options.setter || defaultSelectingSetter,\n\t\t\tmenu: toColumnMenu(options.menu),\n\t\t\tmultiple: toColumnMenu(options.multiple),\n\t\t\tdialog: toColumnDialog(options.dialog),\n\t\t\tpromise: options.promise\n\t\t};\n\t}\n\treturn {\n\t\tgetter: defaultSelectingGetter,\n\t\tsetter: defaultSelectingSetter\n\t};\n};\n\nconst toColumnGetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tparts: string[] | null\n): DTableColumnGetter<ROW, CELL> => {\n\tconst getter = options.getter;\n\tif (getter) {\n\t\treturn getter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultGetterEmpty;\n\t\tdefault:\n\t\t\tif (parts == null) {\n\t\t\t\treturn defaultGetter;\n\t\t\t} else {\n\t\t\t\treturn toPathGetter(parts, options.default);\n\t\t\t}\n\t}\n};\n\nconst toColumnSetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tpath: string[] | null\n): DTableColumnSetter<ROW, CELL> => {\n\tconst setter = options.setter;\n\tif (setter) {\n\t\treturn setter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultSetterEmpty;\n\t\tdefault:\n\t\t\tif (path == null) {\n\t\t\t\treturn defaultSetter;\n\t\t\t} else {\n\t\t\t\treturn toPathSetter(path);\n\t\t\t}\n\t}\n};\n\nconst toColumnState = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumnState<ROW> => {\n\tconst state = options.state;\n\tif (state != null) {\n\t\tif (isString(state) || isArray(state)) {\n\t\t\treturn {\n\t\t\t\tinitial: state,\n\t\t\t\tmodifier: undefined\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tinitial: undefined,\n\t\t\t\tmodifier: state\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tinitial: undefined,\n\t\tmodifier: undefined\n\t};\n};\n\nconst toColumnPath = <ROW, CELL>(options: DTableColumnOptions<ROW, CELL>): string[] | null => {\n\treturn options.path != null ? options.path.split(\".\") : null;\n};\n\nconst toColumnRenderable = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): boolean | DTableColumnRenderable<ROW> => {\n\tconst renderable = options.renderable;\n\tif (isString(renderable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (renderable != null) {\n\t\treturn renderable;\n\t}\n\treturn true;\n};\n\nconst toColumn = <ROW, CELL>(\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumn<ROW, CELL> => {\n\tlet weight = options.weight;\n\tlet width = options.width;\n\tif (weight != null) {\n\t\tif (width != null) {\n\t\t\twidth = undefined;\n\t\t}\n\t} else if (width == null) {\n\t\tweight = 1;\n\t}\n\tconst type = toEnum(options.type ?? DTableColumnType.TEXT, DTableColumnType);\n\tconst align = toColumnAlign(options, type);\n\tconst label = options.label || \"\";\n\tconst path = toColumnPath(options);\n\tconst getter = toColumnGetter(options, type, path);\n\tconst setter = toColumnSetter(options, type, path);\n\treturn {\n\t\tweight,\n\t\twidth,\n\t\ttype,\n\t\tlabel,\n\t\tgetter,\n\t\tsetter,\n\t\tformatter: options.formatter,\n\t\trenderable: toColumnRenderable(options, path),\n\t\talign,\n\t\tstate: toColumnState(options),\n\n\t\tediting: toColumnEditing(options, path),\n\t\tsorting: toColumnSorting(getter, index, options),\n\n\t\theader: options.header,\n\t\tbody: options.body,\n\n\t\tselecting: toColumnSelecting(options.selecting),\n\n\t\tcategory: options.category,\n\t\tfrozen: options.frozen,\n\t\toffset: 0.0,\n\n\t\tlink: options.link\n\t};\n};\n\nconst toColumns = <ROW, CELL>(\n\toptions: Array<DTableColumnOptions<ROW, CELL>>\n): Array<DTableColumn<ROW, CELL>> => {\n\tconst result = [];\n\tfor (let i = 0, imax = options.length; i < imax; ++i) {\n\t\tresult.push(toColumn(i, options[i]));\n\t}\n\treturn result;\n};\n\nconst toFrozen = <ROW, CELL>(columns: Array<DTableColumn<ROW, CELL>>): number => {\n\tfor (let i = columns.length - 1; 0 <= i; --i) {\n\t\tif (columns[i].frozen === true) {\n\t\t\treturn i + 1;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport class DTable<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions,\n\tOPTIONS extends DTableOptions<ROW, DATA, THEME, CONTENT_OPTIONS> = DTableOptions<\n\t\tROW,\n\t\tDATA,\n\t\tTHEME,\n\t\tCONTENT_OPTIONS\n\t>\n> extends DPane<THEME, CONTENT_OPTIONS, OPTIONS> {\n\tprotected _columns?: Array<DTableColumn<ROW, unknown>>;\n\tprotected _frozen?: number;\n\tprotected _categories?: DTableCategory[];\n\tprotected _headerOffset?: number;\n\tprotected _header?: DTableHeader<ROW> | null;\n\tprotected _bodyOffset?: number;\n\tprotected _body?: DTableBody<ROW, DATA>;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tconst content = this.content;\n\t\tcontent.setWidth(this.toContentWidth(options));\n\n\t\tconst body = this.body;\n\t\tcontent.addChild(body);\n\t\tif (body.data.selection.type !== DTableDataSelectionType.NONE) {\n\t\t\tthis.on(UtilPointerEvent.tap, (e: InteractionEvent): void => {\n\t\t\t\tbody.onRowClick(e);\n\t\t\t});\n\t\t}\n\n\t\tconst header = this.header;\n\t\tif (header) {\n\t\t\tcontent.addChild(header);\n\t\t}\n\n\t\tconst categories = this.categories;\n\t\tfor (let i = categories.length - 1; 0 <= i; --i) {\n\t\t\tcontent.addChild(categories[i]);\n\t\t}\n\n\t\tbody.update();\n\t}\n\n\tget columns(): Array<DTableColumn<ROW, unknown>> {\n\t\tlet result = this._columns;\n\t\tif (result == null) {\n\t\t\tconst options = this._options;\n\t\t\tresult = options ? toColumns(options.columns) : [];\n\t\t\tthis._columns = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget frozen(): number {\n\t\tlet result = this._frozen;\n\t\tif (result == null) {\n\t\t\tresult = toFrozen(this.columns);\n\t\t\tthis._frozen = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget categories(): DTableCategory[] {\n\t\tlet result = this._categories;\n\t\tif (result == null) {\n\t\t\tresult = this.newCategories(this._options, this.columns, this.frozen);\n\t\t\tthis._categories = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected initContent(content: DBase): void {\n\t\tsuper.initContent(content);\n\t\tcontent.state.isFocusReverse = true;\n\t}\n\n\tprotected onContentChange(): void {\n\t\tsuper.onContentChange();\n\t\tthis.body.update();\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tconst scrollbar = this.scrollbar;\n\t\tscrollbar.lock();\n\n\t\tconst body = this.body;\n\t\tbody.lock();\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tbody.update();\n\t\tbody.unlock(true);\n\n\t\tscrollbar.unlock(true);\n\t}\n\n\tprotected getCategoryCount(columns: Array<DTableColumn<ROW, unknown>>): number {\n\t\tlet result = 0;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst category = columns[i].category;\n\t\t\tif (category != null) {\n\t\t\t\tconst count = isString(category) ? 1 : category.length;\n\t\t\t\tresult = Math.max(result, count);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryLabel(\n\t\tindex: number,\n\t\tcategory: string | string[] | undefined\n\t): string | undefined {\n\t\tif (category) {\n\t\t\tif (isString(category)) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn category;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (index < category.length) {\n\t\t\t\t\treturn category[index];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected isSameCategory(\n\t\tindex: number,\n\t\ta: string | string[] | undefined,\n\t\tb: string | string[] | undefined\n\t): boolean {\n\t\tif (a != null) {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn b.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn b.length === 1 && a === b[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn a.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a.length === 1 && a[0] === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (a.length <= index && b.length <= index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else if (b.length === a.length) {\n\t\t\t\t\t\t\tfor (let i = index, imax = a.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\tif (a[i] !== b[i]) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (a.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(b)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (b.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toCategoryColumns(\n\t\tindex: number,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategoryColumn[] {\n\t\tconst result: DTableCategoryColumn[] = [];\n\t\tlet tcolumn: DTableColumn<ROW, unknown> | null = null;\n\t\tlet ccolumn: DTableCategoryColumn | null = null;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst column = columns[i];\n\t\t\tif (\n\t\t\t\ti !== frozen &&\n\t\t\t\tccolumn &&\n\t\t\t\ttcolumn &&\n\t\t\t\tthis.isSameCategory(index, tcolumn.category, column.category)\n\t\t\t) {\n\t\t\t\tif (ccolumn.weight != null && column.weight != null) {\n\t\t\t\t\tccolumn.weight += column.weight;\n\t\t\t\t} else if (ccolumn.width != null && column.width != null) {\n\t\t\t\t\tccolumn.width += column.width;\n\t\t\t\t} else {\n\t\t\t\t\ttcolumn = column;\n\t\t\t\t\tccolumn = {\n\t\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\t\tweight: column.weight,\n\t\t\t\t\t\twidth: column.width,\n\t\t\t\t\t\toffset: 0.0\n\t\t\t\t\t};\n\t\t\t\t\tresult.push(ccolumn);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttcolumn = column;\n\t\t\t\tccolumn = {\n\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\tweight: column.weight,\n\t\t\t\t\twidth: column.width,\n\t\t\t\t\toffset: 0.0\n\t\t\t\t};\n\t\t\t\tresult.push(ccolumn);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryOptions(\n\t\tindex: number,\n\t\toptions: DTableCategoryOptions | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableCategoryOptions {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = this.toCategoryColumns(index, columns, frozen);\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset == null) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns: this.toCategoryColumns(index, columns, frozen),\n\t\t\tfrozen,\n\t\t\toffset\n\t\t};\n\t}\n\n\tprotected newCategories(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategory[] {\n\t\tconst count = this.getCategoryCount(columns);\n\t\tconst result: DTableCategory[] = [];\n\t\tlet offset: number = 0;\n\t\tfor (let i = count - 1; 0 <= i; --i) {\n\t\t\tconst category = new DTableCategory(\n\t\t\t\tthis.toCategoryOptions(i, options?.category, columns, frozen, offset)\n\t\t\t);\n\t\t\tresult.push(category);\n\t\t\toffset += category.height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected onDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: InteractionManager\n\t): boolean {\n\t\tconst result = this.body.onDblClick(e, interactionManager);\n\t\treturn super.onDblClick(e, interactionManager) || result;\n\t}\n\n\tprotected newScrollBar(options?: DPaneScrollBarOptions): DTableScrollBar {\n\t\treturn new DTableScrollBar(this, options, (isRegionVisible: boolean): void => {\n\t\t\tthis.onScrollBarUpdate(isRegionVisible);\n\t\t});\n\t}\n\n\tprotected toContentWidth(options?: OPTIONS): DCoordinateSize {\n\t\tlet columnWidthTotal = 0;\n\t\tconst columns = options?.columns;\n\t\tif (columns) {\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tconst columnWidth = column.width;\n\t\t\t\tif (columnWidth != null) {\n\t\t\t\t\tcolumnWidthTotal += columnWidth;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (0 < columnWidthTotal) {\n\t\t\treturn (p: number): number => {\n\t\t\t\treturn Math.max(p, columnWidthTotal);\n\t\t\t};\n\t\t}\n\t\treturn \"100%\";\n\t}\n\n\tprotected getHeaderOffset(): number {\n\t\tlet result = this._headerOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newHeaderOffset();\n\t\t\tthis._headerOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newHeaderOffset(): number {\n\t\tlet result = 0;\n\t\tconst categories = this.categories;\n\t\tfor (let i = 0, imax = categories.length; i < imax; ++i) {\n\t\t\tresult += categories[i].height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget header(): DTableHeader<ROW> | null {\n\t\tlet result = this._header;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newHeader(\n\t\t\t\tthis._options,\n\t\t\t\tthis.columns,\n\t\t\t\tthis.frozen,\n\t\t\t\tthis.getHeaderOffset()\n\t\t\t);\n\t\t\tthis._header = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected hasHeader(options?: OPTIONS): boolean {\n\t\tif (options) {\n\t\t\tconst columns = options.columns;\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tif (columns[i].label != null) {\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\tprotected newHeader(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeader<ROW> | null {\n\t\tif (this.hasHeader(options)) {\n\t\t\treturn new DTableHeader<ROW>(\n\t\t\t\tthis.toHeaderOptions(options?.header, columns, frozen, offset)\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected toHeaderOptions(\n\t\toptions: DTableHeaderOptions<ROW> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeaderOptions<ROW> {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.table === undefined) {\n\t\t\t\toptions.table = this;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns,\n\t\t\tfrozen,\n\t\t\toffset,\n\t\t\ttable: this\n\t\t};\n\t}\n\n\tprotected getBodyOffset(): number {\n\t\tlet result = this._bodyOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newBodyOffset();\n\t\t\tthis._bodyOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBodyOffset(): number {\n\t\treturn this.getHeaderOffset() + (this.header?.height ?? 0);\n\t}\n\n\tget body(): DTableBody<ROW, DATA> {\n\t\tlet result = this._body;\n\t\tif (result == null) {\n\t\t\tresult = this.newBody(this._options, this.columns, this.frozen, this.getBodyOffset());\n\t\t\tthis._body = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBody(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableBody<ROW, DATA> {\n\t\treturn new DTableBody<ROW, DATA>(\n\t\t\tthis.toBodyOptions(options?.body, columns, frozen, offset, options?.data)\n\t\t);\n\t}\n\n\tprotected toBodyOptions(\n\t\toptions: DTableBodyOptions<ROW, DATA> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number,\n\t\tdata: ROW[] | DTableDataOptions<ROW> | DATA | undefined\n\t): DTableBodyOptions<ROW, DATA> {\n\t\tif (options != null) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.data === undefined && data !== undefined) {\n\t\t\t\tif (isArray(data)) {\n\t\t\t\t\toptions.data = {\n\t\t\t\t\t\trows: data\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\toptions.data = data;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.height === undefined && options.weight === undefined) {\n\t\t\t\toptions.weight = 1;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\tif (isArray(data)) {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata: {\n\t\t\t\t\trows: data\n\t\t\t\t},\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata,\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t}\n\t}\n\n\tget data(): DATA {\n\t\treturn this.body.data;\n\t}\n\n\tprotected getFocusedChildClippingRect(\n\t\tfocused: DBase,\n\t\tcontentX: number,\n\t\tcontentY: number,\n\t\tcontentWidth: number,\n\t\tcontentHeight: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tresult: Rectangle\n\t): Rectangle {\n\t\tsuper.getFocusedChildClippingRect(\n\t\t\tfocused,\n\t\t\tcontentX,\n\t\t\tcontentY,\n\t\t\tcontentWidth,\n\t\t\tcontentHeight,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tresult\n\t\t);\n\n\t\tconst cell = this.toCell(focused);\n\t\tif (cell) {\n\t\t\t// X\n\t\t\tconst dx = contentX + this.toFrozenCellX(cell) - result.x;\n\t\t\tif (0 < dx) {\n\t\t\t\tresult.x += dx;\n\t\t\t\tresult.width -= dx;\n\t\t\t}\n\n\t\t\t// Y\n\t\t\tif (cell.parent.parent === this.body) {\n\t\t\t\tconst dy = this.getBodyOffset();\n\t\t\t\tresult.y += dy;\n\t\t\t\tresult.height -= dy;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn result;\n\t}\n\n\tprotected toFrozenCellX(cell: DBase): number {\n\t\tconst frozen = this.frozen;\n\t\tif (0 < frozen) {\n\t\t\tconst cells = cell.parent.children as DBase[];\n\t\t\tconst cellIndex = cells.indexOf(cell);\n\t\t\tif (0 <= cellIndex) {\n\t\t\t\tconst cellsLength = cells.length;\n\t\t\t\tconst columnIndex = cellsLength - 1 - cellIndex;\n\t\t\t\tif (frozen <= columnIndex) {\n\t\t\t\t\tconst cellFrozen = cells[cellsLength - frozen];\n\t\t\t\t\treturn cellFrozen.position.x + cellFrozen.width;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\tprotected onKeyDown(e: KeyboardEvent): boolean {\n\t\tUtilKeyboardEvent.moveFocusHorizontally(e, this);\n\t\tconst isArrowUpKey = UtilKeyboardEvent.isArrowUpKey(e);\n\t\tconst isArrowDownKey = UtilKeyboardEvent.isArrowDownKey(e);\n\t\tif (isArrowUpKey || isArrowDownKey) {\n\t\t\tthis.onKeyDownArrowUpOrDown(e, isArrowDownKey);\n\t\t}\n\t\treturn super.onKeyDown(e);\n\t}\n\n\tprotected onKeyDownArrowUpOrDown(e: KeyboardEvent, isDown: boolean): boolean {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst focusController = layer.getFocusController();\n\t\tconst oldFocusable = focusController.get();\n\t\tif (oldFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCell = this.toCell(oldFocusable);\n\t\tif (oldCell == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldRow = oldCell.parent;\n\t\tif (oldRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRowChild = focusController.find(oldRow, false, false, isDown, this);\n\t\tif (newRowChild == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCellSibling = this.toCell(newRowChild);\n\t\tif (newCellSibling == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRow = newCellSibling.parent;\n\t\tif (newRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCellIndex = oldRow.children.indexOf(oldCell);\n\t\tif (oldCellIndex < 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCell = newRow.children[oldCellIndex];\n\t\tif (newCell == null || newCell === oldCell || !(\"state\" in newCell)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newFocusable = focusController.find(newCell, true, true, isDown, this);\n\t\tif (newFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfocusController.focus(newFocusable);\n\t\treturn true;\n\t}\n\n\tprotected toCell(focused: DFocusable): DBase | null {\n\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\twhile (current != null) {\n\t\t\tconst parent: DFocusableContainer | null = current.parent;\n\t\t\tif (parent instanceof DTableRow) {\n\t\t\t\tif (current instanceof DBase) {\n\t\t\t\t\treturn current;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tcurrent = parent;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTable\";\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table.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, Rectangle } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport InteractionManager = interaction.InteractionManager;\nimport { DDialogSelectOptions } from \"../ui/d-dialog-select\";\nimport { DAlignHorizontal } from \"./d-align-horizontal\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions } from \"./d-base\";\nimport { DContentOptions } from \"./d-content\";\nimport { DFocusable, DFocusableContainer } from \"./d-controller-focus\";\nimport { DCoordinateSize } from \"./d-coordinate\";\nimport { DDialogSelect } from \"./d-dialog-select\";\nimport { DMenu, DMenuOptions } from \"./d-menu\";\nimport { DPane, DPaneOptions, DThemePane } from \"./d-pane\";\nimport { DTableBody, DTableBodyOptions } from \"./d-table-body\";\nimport { DTableCategory, DTableCategoryColumn, DTableCategoryOptions } from \"./d-table-category\";\nimport { DTableColumn, DTableColumnOptions } from \"./d-table-column\";\nimport { DTableData, DTableDataOptions } from \"./d-table-data\";\nimport { DTableDataList, DTableDataListOptions } from \"./d-table-data-list\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableDataComparatorFunction } from \"./d-table-data-sorter\";\nimport { DTableHeader, DTableHeaderOptions } from \"./d-table-header\";\nimport { DTableRow } from \"./d-table-row\";\nimport { isArray } from \"./util/is-array\";\nimport { isString } from \"./util/is-string\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { DTableScrollBar } from \"./d-table-scrollbar\";\nimport { DPaneScrollBarOptions } from \"./d-pane-scrollbar\";\nimport { DTableColumnType } from \"./d-table-column-type\";\nimport { DTableColumnEditing, DTableColumnEditable } from \"./d-table-column-editing\";\nimport { DTableColumnSorting } from \"./d-table-column-sorting\";\nimport {\n\tDTableColumnSelecting,\n\tDTableColumnSelectingDialog,\n\tDTableColumnSelectingOptions\n} from \"./d-table-column-selecting\";\nimport { DTableColumnGetter } from \"./d-table-column-getter\";\nimport { DTableColumnSetter } from \"./d-table-column-setter\";\nimport { DTableColumnRenderable } from \"./d-table-column-renderable\";\nimport { DTableColumnState } from \"./d-table-column-state\";\n\nexport interface DTableOptions<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions\n> extends DPaneOptions<THEME, CONTENT_OPTIONS> {\n\tcolumns: Array<DTableColumnOptions<ROW>>;\n\tcategory?: DTableCategoryOptions;\n\theader?: DTableHeaderOptions<ROW>;\n\tbody?: DTableBodyOptions<ROW, DATA>;\n\tdata?: ROW[] | DTableDataListOptions<ROW> | DATA;\n}\n\nexport interface DThemeTable extends DThemePane {}\n\nconst defaultGetter = <ROW, CELL>(row: ROW, columnIndex: number): CELL => {\n\treturn (row as any)[columnIndex];\n};\n\nconst defaultSetter = <ROW, CELL>(row: ROW, columnIndex: number, cell: CELL): void => {\n\t(row as any)[columnIndex] = cell;\n};\n\nconst defaultGetterEmpty = <CELL>(): CELL => \"\" as any;\n\nconst defaultSetterEmpty = (): void => {\n\t// DO NOTHING\n};\n\nconst toPathGetter = <ROW, CELL>(path: string[], def?: CELL): DTableColumnGetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn (row as any)[key];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn Object.prototype.hasOwnProperty.call(row, key) ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t} else {\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\treturn (row as any)[path[path.length - 1]];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\tconst key = path[path.length - 1];\n\t\t\t\treturn Object.prototype.hasOwnProperty.call(row, key) ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst toPathSetter = <ROW, CELL>(path: string[]): DTableColumnSetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\t(row as any)[key] = cell;\n\t\t};\n\t} else {\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\trow = (row as any)[path[i]] || {};\n\t\t\t}\n\t\t\t(row as any)[path[path.length - 1]] = cell;\n\t\t};\n\t}\n};\n\nconst toColumnAlign = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType\n): DAlignHorizontal => {\n\tconst align = options.align;\n\tif (align != null) {\n\t\tif (isString(align)) {\n\t\t\treturn DAlignHorizontal[align];\n\t\t} else {\n\t\t\treturn align;\n\t\t}\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.TEXT:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t\tcase DTableColumnType.REAL:\n\t\tcase DTableColumnType.INTEGER:\n\t\t\treturn DAlignHorizontal.RIGHT;\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.INDEX:\n\t\tcase DTableColumnType.SELECT:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\tcase DTableColumnType.CHECK:\n\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\tcase DTableColumnType.COLOR:\n\t\t\treturn DAlignHorizontal.CENTER;\n\t\tdefault:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t}\n};\n\nconst toColumnDataChecker = <ROW>(path: string[] | null): DTableColumnEditable<ROW> => {\n\tif (path != null) {\n\t\tconst pathLength = path.length;\n\t\tif (pathLength <= 1) {\n\t\t\tconst key = path[0];\n\t\t\treturn (row: ROW): boolean => {\n\t\t\t\treturn Object.prototype.hasOwnProperty.call(row, key);\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: any): boolean => {\n\t\t\t\tfor (let i = 0; i < pathLength; ++i) {\n\t\t\t\t\tconst part: string = path[i];\n\t\t\t\t\tif (part in row) {\n\t\t\t\t\t\trow = row[part];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t}\n\t}\n\treturn (row: any, columnIndex: number): boolean => {\n\t\treturn columnIndex < row.length;\n\t};\n};\n\nconst toColumnEditingEnable = <ROW>(\n\tenable: boolean | DTableColumnEditable<ROW> | \"auto\" | \"AUTO\" | undefined,\n\tpath: string[] | null\n): boolean | DTableColumnEditable<ROW> => {\n\tif (isString(enable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (enable != null) {\n\t\treturn enable;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nconst toColumnEditing = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): DTableColumnEditing<ROW, CELL> => {\n\tconst editing = options.editing;\n\tconst editable = options.editable;\n\tif (editing) {\n\t\treturn {\n\t\t\tenable: toColumnEditingEnable(editing.enable ?? editable, path),\n\t\t\tformatter: editing.formatter,\n\t\t\tunformatter: editing.unformatter,\n\t\t\tvalidator: editing.validator\n\t\t};\n\t}\n\treturn {\n\t\tenable: toColumnEditingEnable(editable, path)\n\t};\n};\n\nconst toComparator = <ROW, CELL>(\n\tgetter: DTableColumnGetter<ROW, CELL>,\n\tindex: number\n): DTableDataComparatorFunction<ROW> => {\n\treturn (rowA: ROW, rowB: ROW): number => {\n\t\tconst valueA = getter(rowA, index) as any;\n\t\tconst valueB = getter(rowB, index) as any;\n\t\treturn valueA < valueB ? -1 : valueB < valueA ? +1 : 0;\n\t};\n};\n\nconst toColumnSorting = <ROW, CELL>(\n\tgetter: DTableColumnGetter<ROW, CELL>,\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumnSorting<ROW> => {\n\tconst sorting = options.sorting;\n\tconst sortable = options.sortable;\n\tif (sorting) {\n\t\tif (sorting.enable || sortable) {\n\t\t\treturn {\n\t\t\t\tenable: true,\n\t\t\t\tcomparator: sorting.comparator || toComparator(getter, index)\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tenable: false\n\t\t};\n\t}\n\tif (sortable) {\n\t\treturn {\n\t\t\tenable: true,\n\t\t\tcomparator: toComparator(getter, index)\n\t\t};\n\t}\n\treturn {\n\t\tenable: false\n\t};\n};\n\nconst toColumnMenu = (\n\toptions?: DMenuOptions<unknown> | DMenu<unknown>\n): DMenu<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (options instanceof DMenu) {\n\t\treturn options;\n\t} else {\n\t\treturn new DMenu(options);\n\t}\n};\n\nconst toColumnDialog = (\n\toptions?: DDialogSelectOptions<unknown> | DTableColumnSelectingDialog<unknown>\n): DTableColumnSelectingDialog<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (\"open\" in options) {\n\t\treturn options;\n\t} else {\n\t\treturn new DDialogSelect(options);\n\t}\n};\n\nconst defaultSelectingGetter = (dialog: DTableColumnSelectingDialog<unknown>): unknown => {\n\treturn dialog.value;\n};\n\nconst defaultSelectingSetter = (): void => {\n\t// DO NOTHING\n};\n\nconst toColumnSelecting = (\n\toptions: DTableColumnSelectingOptions<any, any, any> | undefined\n): DTableColumnSelecting<any, any, any> => {\n\tif (options) {\n\t\treturn {\n\t\t\tgetter: options.getter || defaultSelectingGetter,\n\t\t\tsetter: options.setter || defaultSelectingSetter,\n\t\t\tmenu: toColumnMenu(options.menu),\n\t\t\tmultiple: toColumnMenu(options.multiple),\n\t\t\tdialog: toColumnDialog(options.dialog),\n\t\t\tpromise: options.promise\n\t\t};\n\t}\n\treturn {\n\t\tgetter: defaultSelectingGetter,\n\t\tsetter: defaultSelectingSetter\n\t};\n};\n\nconst toColumnGetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tparts: string[] | null\n): DTableColumnGetter<ROW, CELL> => {\n\tconst getter = options.getter;\n\tif (getter) {\n\t\treturn getter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultGetterEmpty;\n\t\tdefault:\n\t\t\tif (parts == null) {\n\t\t\t\treturn defaultGetter;\n\t\t\t} else {\n\t\t\t\treturn toPathGetter(parts, options.default);\n\t\t\t}\n\t}\n};\n\nconst toColumnSetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tpath: string[] | null\n): DTableColumnSetter<ROW, CELL> => {\n\tconst setter = options.setter;\n\tif (setter) {\n\t\treturn setter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultSetterEmpty;\n\t\tdefault:\n\t\t\tif (path == null) {\n\t\t\t\treturn defaultSetter;\n\t\t\t} else {\n\t\t\t\treturn toPathSetter(path);\n\t\t\t}\n\t}\n};\n\nconst toColumnState = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumnState<ROW> => {\n\tconst state = options.state;\n\tif (state != null) {\n\t\tif (isString(state) || isArray(state)) {\n\t\t\treturn {\n\t\t\t\tinitial: state,\n\t\t\t\tmodifier: undefined\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tinitial: undefined,\n\t\t\t\tmodifier: state\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tinitial: undefined,\n\t\tmodifier: undefined\n\t};\n};\n\nconst toColumnPath = <ROW, CELL>(options: DTableColumnOptions<ROW, CELL>): string[] | null => {\n\treturn options.path != null ? options.path.split(\".\") : null;\n};\n\nconst toColumnRenderable = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): boolean | DTableColumnRenderable<ROW> => {\n\tconst renderable = options.renderable;\n\tif (isString(renderable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (renderable != null) {\n\t\treturn renderable;\n\t}\n\treturn true;\n};\n\nconst toColumn = <ROW, CELL>(\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumn<ROW, CELL> => {\n\tlet weight = options.weight;\n\tlet width = options.width;\n\tif (weight != null) {\n\t\tif (width != null) {\n\t\t\twidth = undefined;\n\t\t}\n\t} else if (width == null) {\n\t\tweight = 1;\n\t}\n\tconst type = toEnum(options.type ?? DTableColumnType.TEXT, DTableColumnType);\n\tconst align = toColumnAlign(options, type);\n\tconst label = options.label || \"\";\n\tconst path = toColumnPath(options);\n\tconst getter = toColumnGetter(options, type, path);\n\tconst setter = toColumnSetter(options, type, path);\n\treturn {\n\t\tweight,\n\t\twidth,\n\t\ttype,\n\t\tlabel,\n\t\tgetter,\n\t\tsetter,\n\t\tformatter: options.formatter,\n\t\trenderable: toColumnRenderable(options, path),\n\t\talign,\n\t\tstate: toColumnState(options),\n\n\t\tediting: toColumnEditing(options, path),\n\t\tsorting: toColumnSorting(getter, index, options),\n\n\t\theader: options.header,\n\t\tbody: options.body,\n\n\t\tselecting: toColumnSelecting(options.selecting),\n\n\t\tcategory: options.category,\n\t\tfrozen: options.frozen,\n\t\toffset: 0.0,\n\n\t\tlink: options.link\n\t};\n};\n\nconst toColumns = <ROW, CELL>(\n\toptions: Array<DTableColumnOptions<ROW, CELL>>\n): Array<DTableColumn<ROW, CELL>> => {\n\tconst result = [];\n\tfor (let i = 0, imax = options.length; i < imax; ++i) {\n\t\tresult.push(toColumn(i, options[i]));\n\t}\n\treturn result;\n};\n\nconst toFrozen = <ROW, CELL>(columns: Array<DTableColumn<ROW, CELL>>): number => {\n\tfor (let i = columns.length - 1; 0 <= i; --i) {\n\t\tif (columns[i].frozen === true) {\n\t\t\treturn i + 1;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport class DTable<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions,\n\tOPTIONS extends DTableOptions<ROW, DATA, THEME, CONTENT_OPTIONS> = DTableOptions<\n\t\tROW,\n\t\tDATA,\n\t\tTHEME,\n\t\tCONTENT_OPTIONS\n\t>\n> extends DPane<THEME, CONTENT_OPTIONS, OPTIONS> {\n\tprotected _columns?: Array<DTableColumn<ROW, unknown>>;\n\tprotected _frozen?: number;\n\tprotected _categories?: DTableCategory[];\n\tprotected _headerOffset?: number;\n\tprotected _header?: DTableHeader<ROW> | null;\n\tprotected _bodyOffset?: number;\n\tprotected _body?: DTableBody<ROW, DATA>;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tconst content = this.content;\n\t\tcontent.setWidth(this.toContentWidth(options));\n\n\t\tconst body = this.body;\n\t\tcontent.addChild(body);\n\t\tif (body.data.selection.type !== DTableDataSelectionType.NONE) {\n\t\t\tthis.on(UtilPointerEvent.tap, (e: InteractionEvent): void => {\n\t\t\t\tbody.onRowClick(e);\n\t\t\t});\n\t\t}\n\n\t\tconst header = this.header;\n\t\tif (header) {\n\t\t\tcontent.addChild(header);\n\t\t}\n\n\t\tconst categories = this.categories;\n\t\tfor (let i = categories.length - 1; 0 <= i; --i) {\n\t\t\tcontent.addChild(categories[i]);\n\t\t}\n\n\t\tbody.update();\n\t}\n\n\tget columns(): Array<DTableColumn<ROW, unknown>> {\n\t\tlet result = this._columns;\n\t\tif (result == null) {\n\t\t\tconst options = this._options;\n\t\t\tresult = options ? toColumns(options.columns) : [];\n\t\t\tthis._columns = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget frozen(): number {\n\t\tlet result = this._frozen;\n\t\tif (result == null) {\n\t\t\tresult = toFrozen(this.columns);\n\t\t\tthis._frozen = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget categories(): DTableCategory[] {\n\t\tlet result = this._categories;\n\t\tif (result == null) {\n\t\t\tresult = this.newCategories(this._options, this.columns, this.frozen);\n\t\t\tthis._categories = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected initContent(content: DBase): void {\n\t\tsuper.initContent(content);\n\t\tcontent.state.isFocusReverse = true;\n\t}\n\n\tprotected onContentChange(): void {\n\t\tsuper.onContentChange();\n\t\tthis.body.update();\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tconst scrollbar = this.scrollbar;\n\t\tscrollbar.lock();\n\n\t\tconst body = this.body;\n\t\tbody.lock();\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tbody.update();\n\t\tbody.unlock(true);\n\n\t\tscrollbar.unlock(true);\n\t}\n\n\tprotected getCategoryCount(columns: Array<DTableColumn<ROW, unknown>>): number {\n\t\tlet result = 0;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst category = columns[i].category;\n\t\t\tif (category != null) {\n\t\t\t\tconst count = isString(category) ? 1 : category.length;\n\t\t\t\tresult = Math.max(result, count);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryLabel(\n\t\tindex: number,\n\t\tcategory: string | string[] | undefined\n\t): string | undefined {\n\t\tif (category) {\n\t\t\tif (isString(category)) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn category;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (index < category.length) {\n\t\t\t\t\treturn category[index];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected isSameCategory(\n\t\tindex: number,\n\t\ta: string | string[] | undefined,\n\t\tb: string | string[] | undefined\n\t): boolean {\n\t\tif (a != null) {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn b.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn b.length === 1 && a === b[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn a.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a.length === 1 && a[0] === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (a.length <= index && b.length <= index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else if (b.length === a.length) {\n\t\t\t\t\t\t\tfor (let i = index, imax = a.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\tif (a[i] !== b[i]) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (a.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(b)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (b.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toCategoryColumns(\n\t\tindex: number,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategoryColumn[] {\n\t\tconst result: DTableCategoryColumn[] = [];\n\t\tlet tcolumn: DTableColumn<ROW, unknown> | null = null;\n\t\tlet ccolumn: DTableCategoryColumn | null = null;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst column = columns[i];\n\t\t\tif (\n\t\t\t\ti !== frozen &&\n\t\t\t\tccolumn &&\n\t\t\t\ttcolumn &&\n\t\t\t\tthis.isSameCategory(index, tcolumn.category, column.category)\n\t\t\t) {\n\t\t\t\tif (ccolumn.weight != null && column.weight != null) {\n\t\t\t\t\tccolumn.weight += column.weight;\n\t\t\t\t} else if (ccolumn.width != null && column.width != null) {\n\t\t\t\t\tccolumn.width += column.width;\n\t\t\t\t} else {\n\t\t\t\t\ttcolumn = column;\n\t\t\t\t\tccolumn = {\n\t\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\t\tweight: column.weight,\n\t\t\t\t\t\twidth: column.width,\n\t\t\t\t\t\toffset: 0.0\n\t\t\t\t\t};\n\t\t\t\t\tresult.push(ccolumn);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttcolumn = column;\n\t\t\t\tccolumn = {\n\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\tweight: column.weight,\n\t\t\t\t\twidth: column.width,\n\t\t\t\t\toffset: 0.0\n\t\t\t\t};\n\t\t\t\tresult.push(ccolumn);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryOptions(\n\t\tindex: number,\n\t\toptions: DTableCategoryOptions | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableCategoryOptions {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = this.toCategoryColumns(index, columns, frozen);\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset == null) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns: this.toCategoryColumns(index, columns, frozen),\n\t\t\tfrozen,\n\t\t\toffset\n\t\t};\n\t}\n\n\tprotected newCategories(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategory[] {\n\t\tconst count = this.getCategoryCount(columns);\n\t\tconst result: DTableCategory[] = [];\n\t\tlet offset: number = 0;\n\t\tfor (let i = count - 1; 0 <= i; --i) {\n\t\t\tconst category = new DTableCategory(\n\t\t\t\tthis.toCategoryOptions(i, options?.category, columns, frozen, offset)\n\t\t\t);\n\t\t\tresult.push(category);\n\t\t\toffset += category.height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected onDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: InteractionManager\n\t): boolean {\n\t\tconst result = this.body.onDblClick(e, interactionManager);\n\t\treturn super.onDblClick(e, interactionManager) || result;\n\t}\n\n\tprotected newScrollBar(options?: DPaneScrollBarOptions): DTableScrollBar {\n\t\treturn new DTableScrollBar(this, options, (isRegionVisible: boolean): void => {\n\t\t\tthis.onScrollBarUpdate(isRegionVisible);\n\t\t});\n\t}\n\n\tprotected toContentWidth(options?: OPTIONS): DCoordinateSize {\n\t\tlet columnWidthTotal = 0;\n\t\tconst columns = options?.columns;\n\t\tif (columns) {\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tconst columnWidth = column.width;\n\t\t\t\tif (columnWidth != null) {\n\t\t\t\t\tcolumnWidthTotal += columnWidth;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (0 < columnWidthTotal) {\n\t\t\treturn (p: number): number => {\n\t\t\t\treturn Math.max(p, columnWidthTotal);\n\t\t\t};\n\t\t}\n\t\treturn \"100%\";\n\t}\n\n\tprotected getHeaderOffset(): number {\n\t\tlet result = this._headerOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newHeaderOffset();\n\t\t\tthis._headerOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newHeaderOffset(): number {\n\t\tlet result = 0;\n\t\tconst categories = this.categories;\n\t\tfor (let i = 0, imax = categories.length; i < imax; ++i) {\n\t\t\tresult += categories[i].height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget header(): DTableHeader<ROW> | null {\n\t\tlet result = this._header;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newHeader(\n\t\t\t\tthis._options,\n\t\t\t\tthis.columns,\n\t\t\t\tthis.frozen,\n\t\t\t\tthis.getHeaderOffset()\n\t\t\t);\n\t\t\tthis._header = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected hasHeader(options?: OPTIONS): boolean {\n\t\tif (options) {\n\t\t\tconst columns = options.columns;\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tif (columns[i].label != null) {\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\tprotected newHeader(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeader<ROW> | null {\n\t\tif (this.hasHeader(options)) {\n\t\t\treturn new DTableHeader<ROW>(\n\t\t\t\tthis.toHeaderOptions(options?.header, columns, frozen, offset)\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected toHeaderOptions(\n\t\toptions: DTableHeaderOptions<ROW> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeaderOptions<ROW> {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.table === undefined) {\n\t\t\t\toptions.table = this;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns,\n\t\t\tfrozen,\n\t\t\toffset,\n\t\t\ttable: this\n\t\t};\n\t}\n\n\tprotected getBodyOffset(): number {\n\t\tlet result = this._bodyOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newBodyOffset();\n\t\t\tthis._bodyOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBodyOffset(): number {\n\t\treturn this.getHeaderOffset() + (this.header?.height ?? 0);\n\t}\n\n\tget body(): DTableBody<ROW, DATA> {\n\t\tlet result = this._body;\n\t\tif (result == null) {\n\t\t\tresult = this.newBody(this._options, this.columns, this.frozen, this.getBodyOffset());\n\t\t\tthis._body = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBody(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableBody<ROW, DATA> {\n\t\treturn new DTableBody<ROW, DATA>(\n\t\t\tthis.toBodyOptions(options?.body, columns, frozen, offset, options?.data)\n\t\t);\n\t}\n\n\tprotected toBodyOptions(\n\t\toptions: DTableBodyOptions<ROW, DATA> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number,\n\t\tdata: ROW[] | DTableDataOptions<ROW> | DATA | undefined\n\t): DTableBodyOptions<ROW, DATA> {\n\t\tif (options != null) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.data === undefined && data !== undefined) {\n\t\t\t\tif (isArray(data)) {\n\t\t\t\t\toptions.data = {\n\t\t\t\t\t\trows: data\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\toptions.data = data;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.height === undefined && options.weight === undefined) {\n\t\t\t\toptions.weight = 1;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\tif (isArray(data)) {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata: {\n\t\t\t\t\trows: data\n\t\t\t\t},\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata,\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t}\n\t}\n\n\tget data(): DATA {\n\t\treturn this.body.data;\n\t}\n\n\tprotected getFocusedChildClippingRect(\n\t\tfocused: DBase,\n\t\tcontentX: number,\n\t\tcontentY: number,\n\t\tcontentWidth: number,\n\t\tcontentHeight: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tresult: Rectangle\n\t): Rectangle {\n\t\tsuper.getFocusedChildClippingRect(\n\t\t\tfocused,\n\t\t\tcontentX,\n\t\t\tcontentY,\n\t\t\tcontentWidth,\n\t\t\tcontentHeight,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tresult\n\t\t);\n\n\t\tconst cell = this.toCell(focused);\n\t\tif (cell) {\n\t\t\t// X\n\t\t\tconst dx = contentX + this.toFrozenCellX(cell) - result.x;\n\t\t\tif (0 < dx) {\n\t\t\t\tresult.x += dx;\n\t\t\t\tresult.width -= dx;\n\t\t\t}\n\n\t\t\t// Y\n\t\t\tif (cell.parent.parent === this.body) {\n\t\t\t\tconst dy = this.getBodyOffset();\n\t\t\t\tresult.y += dy;\n\t\t\t\tresult.height -= dy;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn result;\n\t}\n\n\tprotected toFrozenCellX(cell: DBase): number {\n\t\tconst frozen = this.frozen;\n\t\tif (0 < frozen) {\n\t\t\tconst cells = cell.parent.children as DBase[];\n\t\t\tconst cellIndex = cells.indexOf(cell);\n\t\t\tif (0 <= cellIndex) {\n\t\t\t\tconst cellsLength = cells.length;\n\t\t\t\tconst columnIndex = cellsLength - 1 - cellIndex;\n\t\t\t\tif (frozen <= columnIndex) {\n\t\t\t\t\tconst cellFrozen = cells[cellsLength - frozen];\n\t\t\t\t\treturn cellFrozen.position.x + cellFrozen.width;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\tprotected onKeyDown(e: KeyboardEvent): boolean {\n\t\tUtilKeyboardEvent.moveFocusHorizontally(e, this);\n\t\tconst isArrowUpKey = UtilKeyboardEvent.isArrowUpKey(e);\n\t\tconst isArrowDownKey = UtilKeyboardEvent.isArrowDownKey(e);\n\t\tif (isArrowUpKey || isArrowDownKey) {\n\t\t\tthis.onKeyDownArrowUpOrDown(e, isArrowDownKey);\n\t\t}\n\t\treturn super.onKeyDown(e);\n\t}\n\n\tprotected onKeyDownArrowUpOrDown(e: KeyboardEvent, isDown: boolean): boolean {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst focusController = layer.getFocusController();\n\t\tconst oldFocusable = focusController.get();\n\t\tif (oldFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCell = this.toCell(oldFocusable);\n\t\tif (oldCell == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldRow = oldCell.parent;\n\t\tif (oldRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRowChild = focusController.find(oldRow, false, false, isDown, this);\n\t\tif (newRowChild == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCellSibling = this.toCell(newRowChild);\n\t\tif (newCellSibling == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRow = newCellSibling.parent;\n\t\tif (newRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCellIndex = oldRow.children.indexOf(oldCell);\n\t\tif (oldCellIndex < 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCell = newRow.children[oldCellIndex];\n\t\tif (newCell == null || newCell === oldCell || !(\"state\" in newCell)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newFocusable = focusController.find(newCell, true, true, isDown, this);\n\t\tif (newFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfocusController.focus(newFocusable);\n\t\treturn true;\n\t}\n\n\tprotected toCell(focused: DFocusable): DBase | null {\n\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\twhile (current != null) {\n\t\t\tconst parent: DFocusableContainer | null = current.parent;\n\t\t\tif (parent instanceof DTableRow) {\n\t\t\t\tif (current instanceof DBase) {\n\t\t\t\t\treturn current;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tcurrent = parent;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTable\";\n\t}\n}\n"]}
@@ -82,18 +82,29 @@ export * from "./d-button-undo";
82
82
  export * from "./d-button";
83
83
  export * from "./d-canvas-container";
84
84
  export * from "./d-canvas";
85
+ export * from "./d-chart-axis-bar";
86
+ export * from "./d-chart-axis-base-bar";
85
87
  export * from "./d-chart-axis-base-options-parser";
86
88
  export * from "./d-chart-axis-base-options";
89
+ export * from "./d-chart-axis-base-tick-container";
90
+ export * from "./d-chart-axis-base-tick-major-gridline";
91
+ export * from "./d-chart-axis-base-tick-major";
92
+ export * from "./d-chart-axis-base-tick-minor";
87
93
  export * from "./d-chart-axis-base";
88
94
  export * from "./d-chart-axis-container-impl";
89
95
  export * from "./d-chart-axis-container";
90
96
  export * from "./d-chart-axis-position";
97
+ export * from "./d-chart-axis-tick-container";
98
+ export * from "./d-chart-axis-tick-major-gridline";
99
+ export * from "./d-chart-axis-tick-major";
100
+ export * from "./d-chart-axis-tick-minor";
91
101
  export * from "./d-chart-axis-tick-position";
92
102
  export * from "./d-chart-axis-x-datetime";
93
103
  export * from "./d-chart-axis-x";
94
104
  export * from "./d-chart-axis-y";
95
105
  export * from "./d-chart-axis";
96
106
  export * from "./d-chart-color-set";
107
+ export * from "./d-chart-coordinate-base";
97
108
  export * from "./d-chart-coordinate-container-impl";
98
109
  export * from "./d-chart-coordinate-container-sub-impl";
99
110
  export * from "./d-chart-coordinate-container-sub";