@wcardinal/wcardinal-ui 0.410.0 → 0.412.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 (97) hide show
  1. package/dist/types/wcardinal/ui/d-base.d.ts +1 -0
  2. package/dist/types/wcardinal/ui/d-dialog-gesture-impl.d.ts +2 -2
  3. package/dist/types/wcardinal/ui/d-table-body-cell.d.ts +2 -2
  4. package/dist/types/wcardinal/ui/d-table-body-row.d.ts +9 -9
  5. package/dist/types/wcardinal/ui/d-table-body.d.ts +5 -7
  6. package/dist/types/wcardinal/ui/d-table-category-cell.d.ts +37 -0
  7. package/dist/types/wcardinal/ui/d-table-category-column-impl.d.ts +24 -0
  8. package/dist/types/wcardinal/ui/d-table-category-column.d.ts +10 -0
  9. package/dist/types/wcardinal/ui/d-table-category-container-impl.d.ts +12 -0
  10. package/dist/types/wcardinal/ui/d-table-category-container.d.ts +4 -0
  11. package/dist/types/wcardinal/ui/d-table-category.d.ts +13 -12
  12. package/dist/types/wcardinal/ui/d-table-column-container-impl.d.ts +25 -0
  13. package/dist/types/wcardinal/ui/d-table-column-container.d.ts +12 -0
  14. package/dist/types/wcardinal/ui/d-table-column-impl.d.ts +44 -0
  15. package/dist/types/wcardinal/ui/d-table-column.d.ts +22 -19
  16. package/dist/types/wcardinal/ui/d-table-header-cell-check.d.ts +1 -1
  17. package/dist/types/wcardinal/ui/d-table-header-cell.d.ts +34 -12
  18. package/dist/types/wcardinal/ui/d-table-header.d.ts +8 -9
  19. package/dist/types/wcardinal/ui/d-table-row.d.ts +8 -9
  20. package/dist/types/wcardinal/ui/d-table-state.d.ts +8 -0
  21. package/dist/types/wcardinal/ui/d-table.d.ts +15 -18
  22. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.d.ts +1 -0
  23. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header.d.ts +1 -0
  24. package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header-cell.d.ts +1 -0
  25. package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header.d.ts +1 -0
  26. package/dist/types/wcardinal/ui/util/util-gesture-easing.d.ts +1 -0
  27. package/dist/wcardinal/ui/d-base.js +9 -2
  28. package/dist/wcardinal/ui/d-base.js.map +1 -1
  29. package/dist/wcardinal/ui/d-dialog-gesture-impl.js.map +1 -1
  30. package/dist/wcardinal/ui/d-table-body-cell.js.map +1 -1
  31. package/dist/wcardinal/ui/d-table-body-row.js +4 -4
  32. package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
  33. package/dist/wcardinal/ui/d-table-body.js +6 -15
  34. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  35. package/dist/wcardinal/ui/d-table-category-cell.js +244 -2
  36. package/dist/wcardinal/ui/d-table-category-cell.js.map +1 -1
  37. package/dist/wcardinal/ui/d-table-category-column-impl.js +222 -0
  38. package/dist/wcardinal/ui/d-table-category-column-impl.js.map +1 -0
  39. package/dist/wcardinal/ui/d-table-category-column.js +6 -0
  40. package/dist/wcardinal/ui/d-table-category-column.js.map +1 -0
  41. package/dist/wcardinal/ui/d-table-category-container-impl.js +149 -0
  42. package/dist/wcardinal/ui/d-table-category-container-impl.js.map +1 -0
  43. package/dist/wcardinal/ui/d-table-category-container.js +2 -0
  44. package/dist/wcardinal/ui/d-table-category-container.js.map +1 -0
  45. package/dist/wcardinal/ui/d-table-category.js +49 -7
  46. package/dist/wcardinal/ui/d-table-category.js.map +1 -1
  47. package/dist/wcardinal/ui/d-table-column-container-impl.js +126 -0
  48. package/dist/wcardinal/ui/d-table-column-container-impl.js.map +1 -0
  49. package/dist/wcardinal/ui/d-table-column-container.js +2 -0
  50. package/dist/wcardinal/ui/d-table-column-container.js.map +1 -0
  51. package/dist/wcardinal/ui/d-table-column-impl.js +375 -0
  52. package/dist/wcardinal/ui/d-table-column-impl.js.map +1 -0
  53. package/dist/wcardinal/ui/d-table-column.js.map +1 -1
  54. package/dist/wcardinal/ui/d-table-header-cell-check.js.map +1 -1
  55. package/dist/wcardinal/ui/d-table-header-cell.js +245 -48
  56. package/dist/wcardinal/ui/d-table-header-cell.js.map +1 -1
  57. package/dist/wcardinal/ui/d-table-header.js +8 -22
  58. package/dist/wcardinal/ui/d-table-header.js.map +1 -1
  59. package/dist/wcardinal/ui/d-table-row.js +7 -5
  60. package/dist/wcardinal/ui/d-table-row.js.map +1 -1
  61. package/dist/wcardinal/ui/d-table-state.js +9 -1
  62. package/dist/wcardinal/ui/d-table-state.js.map +1 -1
  63. package/dist/wcardinal/ui/d-table.js +69 -631
  64. package/dist/wcardinal/ui/d-table.js.map +1 -1
  65. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js +7 -1
  66. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js.map +1 -1
  67. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js +7 -0
  68. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header.js.map +1 -1
  69. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js +7 -1
  70. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js.map +1 -1
  71. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js +7 -0
  72. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header.js.map +1 -1
  73. package/dist/wcardinal/ui/util/util-gesture-easing.js +16 -5
  74. package/dist/wcardinal/ui/util/util-gesture-easing.js.map +1 -1
  75. package/dist/wcardinal/ui/util/util-gesture.js +2 -1
  76. package/dist/wcardinal/ui/util/util-gesture.js.map +1 -1
  77. package/dist/wcardinal-ui-theme-dark-en-us.js +14 -2
  78. package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
  79. package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
  80. package/dist/wcardinal-ui-theme-dark-ja-jp.js +14 -2
  81. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
  82. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
  83. package/dist/wcardinal-ui-theme-dark.js +14 -2
  84. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  85. package/dist/wcardinal-ui-theme-white-en-us.js +14 -2
  86. package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
  87. package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
  88. package/dist/wcardinal-ui-theme-white-ja-jp.js +14 -2
  89. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
  90. package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
  91. package/dist/wcardinal-ui-theme-white.js +14 -2
  92. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  93. package/dist/wcardinal-ui.cjs.js +1178 -377
  94. package/dist/wcardinal-ui.js +1152 -375
  95. package/dist/wcardinal-ui.min.js +2 -2
  96. package/dist/wcardinal-ui.min.js.map +1 -1
  97. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"d-dialog-gesture-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dialog-gesture-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Point, Rectangle } from \"pixi.js\";\nimport { DApplicationLayerLike } from \"./d-application-layer-like\";\nimport { DBase } from \"./d-base\";\nimport {\n\tDDialogGesture,\n\tDDialogGestureConstraint,\n\tDDialogGestureOptions,\n\tDDialogGestureParent\n} from \"./d-dialog-gesture\";\nimport { DDialogGestureMode } from \"./d-dialog-gesture-mode\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilGesture } from \"./util/util-gesture\";\n\nexport class DDialogGestureImpl<PARENT extends DDialogGestureParent>\n\timplements DDialogGesture<PARENT>\n{\n\tprotected static WORK_BOUNDS?: Rectangle;\n\n\tprotected _parent: PARENT;\n\tprotected _mode: DDialogGestureMode;\n\tprotected _options?: DDialogGestureOptions;\n\n\tprotected _isEnabled: boolean;\n\n\tprotected _isDirty: boolean;\n\tprotected _constraint?: DDialogGestureConstraint;\n\tprotected _util?: UtilGesture<any>;\n\n\tconstructor(parent: PARENT, options: DDialogGestureOptions) {\n\t\tthis._parent = parent;\n\t\tthis._options = options;\n\t\tif (options.enable) {\n\t\t\tthis._util = this.newUtil();\n\t\t}\n\t\tthis._mode = toEnum(options.mode ?? DDialogGestureMode.DIRTY, DDialogGestureMode);\n\t\tthis._isEnabled = true;\n\t\tthis._isDirty = false;\n\t}\n\n\tget parent(): PARENT {\n\t\treturn this._parent;\n\t}\n\n\tget mode(): DDialogGestureMode {\n\t\treturn this._mode;\n\t}\n\n\tset mode(mode: DDialogGestureMode) {\n\t\tthis._mode = mode;\n\t}\n\n\tget constraint(): DDialogGestureConstraint {\n\t\tlet result = this._constraint;\n\t\tif (result == null) {\n\t\t\tresult = this._options?.constraint ?? this.newConstraint();\n\t\t\tthis._constraint = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tset constraint(constraint: DDialogGestureConstraint) {\n\t\tthis._constraint = constraint;\n\t}\n\n\tprotected newConstraint(): DDialogGestureConstraint {\n\t\treturn (target, layer, x, y): void => {\n\t\t\tthis.toConstrained(target, layer, x, y);\n\t\t};\n\t}\n\n\tisDirty(): boolean {\n\t\treturn this._isDirty;\n\t}\n\n\tisClean(): boolean {\n\t\treturn !this._isDirty;\n\t}\n\n\ttoClean(): void {\n\t\tif (this._isDirty) {\n\t\t\tthis._isDirty = false;\n\t\t}\n\t}\n\n\tprotected newUtil(): UtilGesture<any> {\n\t\tconst p = new Point();\n\t\tconst parent = this._parent;\n\t\tconst position = parent.position;\n\t\treturn new UtilGesture<any>({\n\t\t\tbind: parent,\n\t\t\tchecker: {\n\t\t\t\tstart: (e): boolean => {\n\t\t\t\t\t// Are children clicked?\n\t\t\t\t\tif (e.target !== parent) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Is clicked outside?\n\t\t\t\t\tp.copyFrom(e.data.global);\n\t\t\t\t\tparent.toLocal(p, undefined, p, true);\n\t\t\t\t\tconst x = p.x;\n\t\t\t\t\tconst y = p.y;\n\t\t\t\t\tif (x < 0 || y < 0 || parent.width < x || parent.height < y) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ok\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\ton: {\n\t\t\t\tstart: (): void => {\n\t\t\t\t\tp.copyFrom(position);\n\t\t\t\t},\n\t\t\t\tmove: (target: unknown, dx: number, dy: number): void => {\n\t\t\t\t\tp.set(p.x + dx, p.y + dy);\n\t\t\t\t\tif (!this._isDirty) {\n\t\t\t\t\t\tthis._isDirty = true;\n\t\t\t\t\t\tparent.setX(position.x);\n\t\t\t\t\t\tparent.setY(position.y);\n\t\t\t\t\t}\n\t\t\t\t\tconst layer = parent.layer;\n\t\t\t\t\tif (layer != null) {\n\t\t\t\t\t\tthis.constraint(parent, layer, p.x, p.y);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected toConstrained(\n\t\ttarget: DBase,\n\t\tlayer: DApplicationLayerLike,\n\t\tx: number,\n\t\ty: number\n\t): void {\n\t\tconst position = target.position;\n\t\tif (layer) {\n\t\t\tconst bounds = target.getBounds(\n\t\t\t\tfalse,\n\t\t\t\t(DDialogGestureImpl.WORK_BOUNDS ??= new Rectangle())\n\t\t\t);\n\t\t\tconst obx = bounds.x + x - position.x;\n\t\t\tconst oby = bounds.y + y - position.y;\n\t\t\tconst nbx = Math.min(Math.max(0, obx), layer.width - bounds.width);\n\t\t\tconst nby = Math.min(Math.max(0, oby), layer.height - bounds.height);\n\t\t\tposition.set(x + nbx - obx, y + nby - oby);\n\t\t} else {\n\t\t\tposition.set(x, y);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-dialog-gesture-impl.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-dialog-gesture-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Point, Rectangle } from \"pixi.js\";\nimport { DApplicationLayerLike } from \"./d-application-layer-like\";\nimport { DBase } from \"./d-base\";\nimport {\n\tDDialogGesture,\n\tDDialogGestureConstraint,\n\tDDialogGestureOptions,\n\tDDialogGestureParent\n} from \"./d-dialog-gesture\";\nimport { DDialogGestureMode } from \"./d-dialog-gesture-mode\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilGesture } from \"./util/util-gesture\";\n\nexport class DDialogGestureImpl<PARENT extends DDialogGestureParent>\n\timplements DDialogGesture<PARENT>\n{\n\tprotected static WORK_BOUNDS?: Rectangle;\n\n\tprotected _parent: PARENT;\n\tprotected _mode: DDialogGestureMode;\n\tprotected _options?: DDialogGestureOptions;\n\n\tprotected _isEnabled: boolean;\n\n\tprotected _isDirty: boolean;\n\tprotected _constraint?: DDialogGestureConstraint;\n\tprotected _util?: UtilGesture<PARENT>;\n\n\tconstructor(parent: PARENT, options: DDialogGestureOptions) {\n\t\tthis._parent = parent;\n\t\tthis._options = options;\n\t\tif (options.enable) {\n\t\t\tthis._util = this.newUtil();\n\t\t}\n\t\tthis._mode = toEnum(options.mode ?? DDialogGestureMode.DIRTY, DDialogGestureMode);\n\t\tthis._isEnabled = true;\n\t\tthis._isDirty = false;\n\t}\n\n\tget parent(): PARENT {\n\t\treturn this._parent;\n\t}\n\n\tget mode(): DDialogGestureMode {\n\t\treturn this._mode;\n\t}\n\n\tset mode(mode: DDialogGestureMode) {\n\t\tthis._mode = mode;\n\t}\n\n\tget constraint(): DDialogGestureConstraint {\n\t\tlet result = this._constraint;\n\t\tif (result == null) {\n\t\t\tresult = this._options?.constraint ?? this.newConstraint();\n\t\t\tthis._constraint = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tset constraint(constraint: DDialogGestureConstraint) {\n\t\tthis._constraint = constraint;\n\t}\n\n\tprotected newConstraint(): DDialogGestureConstraint {\n\t\treturn (target, layer, x, y): void => {\n\t\t\tthis.toConstrained(target, layer, x, y);\n\t\t};\n\t}\n\n\tisDirty(): boolean {\n\t\treturn this._isDirty;\n\t}\n\n\tisClean(): boolean {\n\t\treturn !this._isDirty;\n\t}\n\n\ttoClean(): void {\n\t\tif (this._isDirty) {\n\t\t\tthis._isDirty = false;\n\t\t}\n\t}\n\n\tprotected newUtil(): UtilGesture<PARENT> {\n\t\tconst p = new Point();\n\t\tconst parent = this._parent;\n\t\tconst position = parent.position;\n\t\treturn new UtilGesture<PARENT>({\n\t\t\tbind: parent,\n\t\t\tchecker: {\n\t\t\t\tstart: (e): boolean => {\n\t\t\t\t\t// Are children clicked?\n\t\t\t\t\tif (e.target !== parent) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Is clicked outside?\n\t\t\t\t\tp.copyFrom(e.data.global);\n\t\t\t\t\tparent.toLocal(p, undefined, p, true);\n\t\t\t\t\tconst x = p.x;\n\t\t\t\t\tconst y = p.y;\n\t\t\t\t\tif (x < 0 || y < 0 || parent.width < x || parent.height < y) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ok\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\ton: {\n\t\t\t\tstart: (): void => {\n\t\t\t\t\tp.copyFrom(position);\n\t\t\t\t},\n\t\t\t\tmove: (target: unknown, dx: number, dy: number): void => {\n\t\t\t\t\tp.set(p.x + dx, p.y + dy);\n\t\t\t\t\tif (!this._isDirty) {\n\t\t\t\t\t\tthis._isDirty = true;\n\t\t\t\t\t\tparent.setX(position.x);\n\t\t\t\t\t\tparent.setY(position.y);\n\t\t\t\t\t}\n\t\t\t\t\tconst layer = parent.layer;\n\t\t\t\t\tif (layer != null) {\n\t\t\t\t\t\tthis.constraint(parent, layer, p.x, p.y);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected toConstrained(\n\t\ttarget: DBase,\n\t\tlayer: DApplicationLayerLike,\n\t\tx: number,\n\t\ty: number\n\t): void {\n\t\tconst position = target.position;\n\t\tif (layer) {\n\t\t\tconst bounds = target.getBounds(\n\t\t\t\tfalse,\n\t\t\t\t(DDialogGestureImpl.WORK_BOUNDS ??= new Rectangle())\n\t\t\t);\n\t\t\tconst obx = bounds.x + x - position.x;\n\t\t\tconst oby = bounds.y + y - position.y;\n\t\t\tconst nbx = Math.min(Math.max(0, obx), layer.width - bounds.width);\n\t\t\tconst nby = Math.min(Math.max(0, oby), layer.height - bounds.height);\n\t\t\tposition.set(x + nbx - obx, y + nby - oby);\n\t\t} else {\n\t\t\tposition.set(x, y);\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-body-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point } from \"pixi.js\";\nimport { DBase } from \"./d-base\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\n\nexport type DTableBodyCellOnChange<ROW, VALUE, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport interface DTableBodyCell<ROW, VALUE> extends DBase {\n\t/**\n\t * A row data if exists.\n\t * Otherwise, Undefined.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\treadonly row?: ROW;\n\n\t/**\n\t * A row index if a row data exists.\n\t * Otherise, -1.\n\t *\n\t * @returns a row index or -1.\n\t */\n\treadonly rowIndex: number;\n\n\t/**\n\t * A column index.\n\t */\n\treadonly columnIndex: number;\n\n\t/**\n\t * A column.\n\t */\n\treadonly column: DTableColumn<ROW, VALUE>;\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void;\n\tunset(): void;\n\n\t/**\n\t * Called when the selection type is not {@link DTableDataSelectionType}'s NONE\n\t * and a cell is clicked. Returning true will prevent the row selection.\n\t * Otherwise, a clicked row will be selected.\n\t *\n\t * @param e\n\t * @param local\n\t * @return true to prevent the row selection\n\t */\n\tonRowSelect?(e: InteractionEvent, local: Point): boolean;\n}\n"]}
1
+ {"version":3,"file":"d-table-body-cell.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, Point } from \"pixi.js\";\nimport { DBase } from \"./d-base\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\n\nexport type DTableBodyCellOnChange<ROW, VALUE = unknown, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport interface DTableBodyCell<ROW, VALUE = unknown> extends DBase {\n\t/**\n\t * A row data if exists.\n\t * Otherwise, Undefined.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\treadonly row?: ROW;\n\n\t/**\n\t * A row index if a row data exists.\n\t * Otherise, -1.\n\t *\n\t * @returns a row index or -1.\n\t */\n\treadonly rowIndex: number;\n\n\t/**\n\t * A column index.\n\t */\n\treadonly columnIndex: number;\n\n\t/**\n\t * A column.\n\t */\n\treadonly column: DTableColumn<ROW, VALUE>;\n\n\tset(\n\t\tvalue: unknown,\n\t\trow: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tforcibly?: boolean\n\t): void;\n\tunset(): void;\n\n\t/**\n\t * Called when the selection type is not {@link DTableDataSelectionType}'s NONE\n\t * and a cell is clicked. Returning true will prevent the row selection.\n\t * Otherwise, a clicked row will be selected.\n\t *\n\t * @param e\n\t * @param local\n\t * @return true to prevent the row selection\n\t */\n\tonRowSelect?(e: InteractionEvent, local: Point): boolean;\n}\n"]}
@@ -34,8 +34,8 @@ import { DTableState } from "./d-table-state";
34
34
  import { toMerged } from "./util/to-merged";
35
35
  var DTableBodyRow = /** @class */ (function (_super) {
36
36
  __extends(DTableBodyRow, _super);
37
- function DTableBodyRow(onChange, isEven, columnIndexToCellOptions, options) {
38
- var _this = _super.call(this, options) || this;
37
+ function DTableBodyRow(onChange, isEven, columnIndexToCellOptions, columns, frozen, options) {
38
+ var _this = _super.call(this, columns, frozen, options) || this;
39
39
  _this._index = -1;
40
40
  _this._onChange = onChange;
41
41
  _this._onCellChangeBound = function (newValue, oldValue, row, rowIndex, columnIndex, column) {
@@ -43,7 +43,7 @@ var DTableBodyRow = /** @class */ (function (_super) {
43
43
  };
44
44
  _this._columnIndexToCellOptions = columnIndexToCellOptions;
45
45
  _this.state.isAlternated = !isEven;
46
- _this.initCells(options, _this._columns, _this._frozen);
46
+ _this.initCells();
47
47
  return _this;
48
48
  }
49
49
  DTableBodyRow.prototype.onCellChange = function (newValue, oldValue, row, rowIndex, columnIndex, column) {
@@ -187,7 +187,7 @@ var DTableBodyRow = /** @class */ (function (_super) {
187
187
  DTableBodyRow.prototype.toCellOptions = function (columnIndex, column, options) {
188
188
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
189
189
  var _p;
190
- var result = toMerged(column.body, options.cell);
190
+ var result = toMerged(column.body, options === null || options === void 0 ? void 0 : options.cell);
191
191
  // Weight
192
192
  result.weight = column.weight;
193
193
  // Width
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-body-row.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-row.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBase } from \"./d-base\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DTableBodyCell, DTableBodyCellOnChange } from \"./d-table-body-cell\";\nimport { DTableBodyCellActionDialog } from \"./d-table-body-cell-action-dialog\";\nimport { DTableBodyCellActionMenu } from \"./d-table-body-cell-action-menu\";\nimport { DTableBodyCellActionPromise } from \"./d-table-body-cell-action-promise\";\nimport { DTableBodyCellButton } from \"./d-table-body-cell-button\";\nimport { DTableBodyCellCheck } from \"./d-table-body-cell-check\";\nimport { DTableBodyCellColor } from \"./d-table-body-cell-color\";\nimport { DTableBodyCellDate } from \"./d-table-body-cell-date\";\nimport { DTableBodyCellDatetime } from \"./d-table-body-cell-datetime\";\nimport { DTableBodyCellIndex } from \"./d-table-body-cell-index\";\nimport { DTableBodyCellInputInteger } from \"./d-table-body-cell-input-integer\";\nimport { DTableBodyCellInputReal } from \"./d-table-body-cell-input-real\";\nimport { DTableBodyCellInputText } from \"./d-table-body-cell-input-text\";\nimport { DTableBodyCellInputTextArea } from \"./d-table-body-cell-input-text-area\";\nimport { DTableBodyCellInputTree } from \"./d-table-body-cell-input-tree\";\nimport { DTableBodyCellLink } from \"./d-table-body-cell-link\";\nimport { DTableBodyCellOptions } from \"./d-table-body-cell-options\";\nimport { DTableBodyCellSelectDialog } from \"./d-table-body-cell-select-dialog\";\nimport { DTableBodyCellSelectMenu } from \"./d-table-body-cell-select-menu\";\nimport { DTableBodyCellSelectMultiple } from \"./d-table-body-cell-select-multiple\";\nimport { DTableBodyCellSelectPromise } from \"./d-table-body-cell-select-promise\";\nimport { DTableBodyCellText } from \"./d-table-body-cell-text\";\nimport { DTableBodyCellTextArea } from \"./d-table-body-cell-text-area\";\nimport { DTableBodyCellTime } from \"./d-table-body-cell-time\";\nimport { DTableBodyCellTree } from \"./d-table-body-cell-tree\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableColumnType } from \"./d-table-column-type\";\nimport { DTableColumnUpdate } from \"./d-table-column-update\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableRow, DTableRowOptions, DThemeTableRow } from \"./d-table-row\";\nimport { DTableState } from \"./d-table-state\";\nimport { toMerged } from \"./util/to-merged\";\n\nexport interface DTableBodyRowSelectionOptions {\n\ttype?: DTableDataSelectionType;\n}\n\nexport interface DTableBodyRowOptions<ROW, THEME extends DThemeTableBodyRow = DThemeTableBodyRow>\n\textends DTableRowOptions<ROW, DTableColumn<ROW, unknown>, THEME> {\n\theight?: number;\n\tcell?: DTableBodyCellOptions<ROW>;\n\tselection?: DTableBodyRowSelectionOptions;\n}\n\nexport interface DThemeTableBodyRow extends DThemeTableRow {}\n\nexport type DTableBodyRowOnChange<ROW, VALUE, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport class DTableBodyRow<\n\tROW,\n\tTHEME extends DThemeTableBodyRow = DThemeTableBodyRow,\n\tOPTIONS extends DTableBodyRowOptions<ROW, THEME> = DTableBodyRowOptions<ROW, THEME>\n> extends DTableRow<ROW, DTableColumn<ROW, unknown>, THEME, OPTIONS> {\n\tprotected _value?: ROW;\n\tprotected _supplimental?: DTableDataSupplimental | null;\n\tprotected _index: number;\n\tprotected _onChange: DTableBodyRowOnChange<ROW, unknown>;\n\tprotected _onCellChangeBound: DTableBodyCellOnChange<ROW, any>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\n\tconstructor(\n\t\tonChange: DTableBodyRowOnChange<ROW, unknown>,\n\t\tisEven: boolean,\n\t\tcolumnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>,\n\t\toptions: OPTIONS\n\t) {\n\t\tsuper(options);\n\n\t\tthis._index = -1;\n\t\tthis._onChange = onChange;\n\t\tthis._onCellChangeBound = (\n\t\t\tnewValue,\n\t\t\toldValue,\n\t\t\trow,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcolumn\n\t\t): void => {\n\t\t\tthis.onCellChange(newValue, oldValue, row, rowIndex, columnIndex, column);\n\t\t};\n\t\tthis._columnIndexToCellOptions = columnIndexToCellOptions;\n\t\tthis.state.isAlternated = !isEven;\n\t\tthis.initCells(options, this._columns, this._frozen);\n\t}\n\n\tprotected onCellChange(\n\t\tnewValue: unknown,\n\t\toldValue: unknown,\n\t\trow: ROW,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>\n\t): void {\n\t\tthis.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, this);\n\t\tif (column.update === DTableColumnUpdate.ROW) {\n\t\t\tconst value = this._value;\n\t\t\tconst supplimental = this._supplimental;\n\t\t\tconst index = this._index;\n\t\t\tif (value !== undefined && supplimental !== undefined) {\n\t\t\t\tthis.set(value, supplimental, index, true);\n\t\t\t}\n\t\t}\n\t\tthis._onChange(newValue, oldValue, row, rowIndex, columnIndex, column, this);\n\t}\n\n\tprotected newCell(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\toptions: OPTIONS\n\t): DBase {\n\t\tconst onChange = this._onCellChangeBound;\n\t\tconst columnIndexToCellOptions = this._columnIndexToCellOptions;\n\t\tlet cellOptions = columnIndexToCellOptions.get(columnIndex);\n\t\tif (cellOptions == null) {\n\t\t\tcellOptions = this.toCellOptions(columnIndex, column, options);\n\t\t\tcolumnIndexToCellOptions.set(columnIndex, cellOptions);\n\t\t}\n\t\tif (column.editing.enable !== false) {\n\t\t\treturn this.newCellEditable(columnIndex, column, onChange, cellOptions);\n\t\t} else {\n\t\t\tconst cell = this.newCellUnediable(columnIndex, column, onChange, cellOptions);\n\t\t\tif (column.type !== DTableColumnType.TREE) {\n\t\t\t\tcell.state.isReadOnly = true;\n\t\t\t}\n\t\t\treturn cell;\n\t\t}\n\t}\n\n\tprotected newCellEditable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellInputText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellInputTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellInputTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellInputInteger(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellInputReal(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellUnediable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellSelect(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellSelectMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.multiple != null) {\n\t\t\treturn new DTableBodyCellSelectMultiple(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellSelectDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellSelectPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellAction(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellActionMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellActionDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellActionPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected toCellOptions(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>,\n\t\toptions: OPTIONS\n\t): DTableBodyCellOptions<ROW> {\n\t\tconst result = toMerged(column.body, options.cell);\n\n\t\t// Weight\n\t\tresult.weight = column.weight;\n\n\t\t// Width\n\t\tresult.width = column.width;\n\n\t\t// State\n\t\tresult.state ??= column.state.initial;\n\n\t\t// Text formatter\n\t\tconst columnFormatter = column.formatter;\n\t\tif (columnFormatter != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\ttext.formatter ??= columnFormatter;\n\t\t}\n\n\t\t// Text align horizontal\n\t\tconst columnAlign = column.align;\n\t\tif (columnAlign != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\tconst textAlign = (text.align ??= {});\n\t\t\ttextAlign.horizontal ??= columnAlign;\n\t\t}\n\n\t\t// Editing\n\t\tconst columnEditing = column.editing;\n\t\tif (columnEditing.enable !== false) {\n\t\t\tconst editing = ((result as any).editing ??= {});\n\t\t\tediting.formatter ??= columnEditing.formatter;\n\t\t\tediting.unformatter ??= columnEditing.unformatter;\n\t\t\tediting.validator ??= columnEditing.validator;\n\t\t}\n\n\t\t// Link\n\t\tconst columnLink = column.link;\n\t\tif (columnLink !== undefined) {\n\t\t\t(result as any).link = columnLink;\n\t\t}\n\n\t\t// Selecting\n\t\tconst columnSelecting = column.selecting;\n\t\tconst columnSelectingMenu = columnSelecting.menu ?? columnSelecting.multiple;\n\t\tif (columnSelectingMenu !== undefined) {\n\t\t\t(result as any).menu = columnSelectingMenu;\n\t\t}\n\n\t\tconst selectionType = options?.selection?.type ?? DTableDataSelectionType.NONE;\n\t\tif (selectionType !== DTableDataSelectionType.NONE) {\n\t\t\t(result as any).when = \"DOUBLE_CLICKED\";\n\t\t\tresult.cursor = (state: DBaseStateSet): string | undefined => {\n\t\t\t\tif (state.in(DTableState.SELECTABLE)) {\n\t\t\t\t\treturn \"pointer\";\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyRow\";\n\t}\n\n\t/**\n\t * Returns a row data if exists.\n\t * Returns undefined if a row data does not exit.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\tget value(): ROW | undefined {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Returns a row index if a row data exists.\n\t * Returns -1 if a row data does not exit.\n\t *\n\t * @returns a row index or -1.\n\t */\n\tget index(): number {\n\t\treturn this._index;\n\t}\n\n\tprotected isCell(target: any): target is DTableBodyCell<unknown, unknown> {\n\t\treturn target != null && \"set\" in target;\n\t}\n\n\tset(\n\t\tvalue: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tif (\n\t\t\tforcibly ||\n\t\t\tthis._value !== value ||\n\t\t\tthis._supplimental !== supplimental ||\n\t\t\tthis._index !== rowIndex\n\t\t) {\n\t\t\tthis._value = value;\n\t\t\tthis._supplimental = supplimental;\n\t\t\tthis._index = rowIndex;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tconst columns = this._columns;\n\t\t\tconst columnsLength = columns.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tconst columnIndex = columnsLength - 1 - i;\n\t\t\t\tconst column = columns[columnIndex];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.set(\n\t\t\t\t\t\tcolumn.getter(value, columnIndex),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tsupplimental,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\tforcibly\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onSet(value, rowIndex);\n\t\t}\n\t}\n\n\tprotected onSet(value: ROW, rowIndex: number): void {\n\t\tthis.emit(\"set\", value, rowIndex, this);\n\t}\n\n\tunset(): void {\n\t\tif (this._value !== undefined) {\n\t\t\tthis._value = undefined;\n\t\t\tthis._index = -1;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.unset();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onUnset();\n\t\t}\n\t}\n\n\tprotected onUnset(): void {\n\t\tthis.emit(\"unset\", this);\n\t}\n\n\tprotected getContentPositionX(): number {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tconst content = parent.parent;\n\t\t\tif (content) {\n\t\t\t\treturn content.position.x;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-table-body-row.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body-row.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DBase } from \"./d-base\";\nimport { DBaseStateSet } from \"./d-base-state-set\";\nimport { DTableBodyCell, DTableBodyCellOnChange } from \"./d-table-body-cell\";\nimport { DTableBodyCellActionDialog } from \"./d-table-body-cell-action-dialog\";\nimport { DTableBodyCellActionMenu } from \"./d-table-body-cell-action-menu\";\nimport { DTableBodyCellActionPromise } from \"./d-table-body-cell-action-promise\";\nimport { DTableBodyCellButton } from \"./d-table-body-cell-button\";\nimport { DTableBodyCellCheck } from \"./d-table-body-cell-check\";\nimport { DTableBodyCellColor } from \"./d-table-body-cell-color\";\nimport { DTableBodyCellDate } from \"./d-table-body-cell-date\";\nimport { DTableBodyCellDatetime } from \"./d-table-body-cell-datetime\";\nimport { DTableBodyCellIndex } from \"./d-table-body-cell-index\";\nimport { DTableBodyCellInputInteger } from \"./d-table-body-cell-input-integer\";\nimport { DTableBodyCellInputReal } from \"./d-table-body-cell-input-real\";\nimport { DTableBodyCellInputText } from \"./d-table-body-cell-input-text\";\nimport { DTableBodyCellInputTextArea } from \"./d-table-body-cell-input-text-area\";\nimport { DTableBodyCellInputTree } from \"./d-table-body-cell-input-tree\";\nimport { DTableBodyCellLink } from \"./d-table-body-cell-link\";\nimport { DTableBodyCellOptions } from \"./d-table-body-cell-options\";\nimport { DTableBodyCellSelectDialog } from \"./d-table-body-cell-select-dialog\";\nimport { DTableBodyCellSelectMenu } from \"./d-table-body-cell-select-menu\";\nimport { DTableBodyCellSelectMultiple } from \"./d-table-body-cell-select-multiple\";\nimport { DTableBodyCellSelectPromise } from \"./d-table-body-cell-select-promise\";\nimport { DTableBodyCellText } from \"./d-table-body-cell-text\";\nimport { DTableBodyCellTextArea } from \"./d-table-body-cell-text-area\";\nimport { DTableBodyCellTime } from \"./d-table-body-cell-time\";\nimport { DTableBodyCellTree } from \"./d-table-body-cell-tree\";\nimport { DTableColumn } from \"./d-table-column\";\nimport { DTableColumnType } from \"./d-table-column-type\";\nimport { DTableColumnUpdate } from \"./d-table-column-update\";\nimport { DTableDataSupplimental } from \"./d-table-data\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableRow, DTableRowOptions, DThemeTableRow } from \"./d-table-row\";\nimport { DTableState } from \"./d-table-state\";\nimport { toMerged } from \"./util/to-merged\";\n\nexport interface DTableBodyRowSelectionOptions {\n\ttype?: DTableDataSelectionType;\n}\n\nexport interface DTableBodyRowOptions<ROW, THEME extends DThemeTableBodyRow = DThemeTableBodyRow>\n\textends DTableRowOptions<THEME> {\n\theight?: number;\n\tcell?: DTableBodyCellOptions<ROW>;\n\tselection?: DTableBodyRowSelectionOptions;\n}\n\nexport interface DThemeTableBodyRow extends DThemeTableRow {}\n\nexport type DTableBodyRowOnChange<ROW, VALUE = unknown, EMITTER = any> = (\n\tnewValue: VALUE,\n\toldValue: VALUE,\n\trow: ROW,\n\trowIndex: number,\n\tcolumnIndex: number,\n\tcolumn: DTableColumn<ROW, VALUE>,\n\temitter: EMITTER\n) => void;\n\nexport class DTableBodyRow<\n\tROW,\n\tTHEME extends DThemeTableBodyRow = DThemeTableBodyRow,\n\tOPTIONS extends DTableBodyRowOptions<ROW, THEME> = DTableBodyRowOptions<ROW, THEME>\n> extends DTableRow<ROW, DTableColumn<ROW>, THEME, OPTIONS> {\n\tprotected _value?: ROW;\n\tprotected _supplimental?: DTableDataSupplimental | null;\n\tprotected _index: number;\n\tprotected _onChange: DTableBodyRowOnChange<ROW>;\n\tprotected _onCellChangeBound: DTableBodyCellOnChange<ROW, any>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\n\tconstructor(\n\t\tonChange: DTableBodyRowOnChange<ROW>,\n\t\tisEven: boolean,\n\t\tcolumnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>,\n\t\tcolumns: DTableColumn<ROW>[],\n\t\tfrozen: number,\n\t\toptions: OPTIONS\n\t) {\n\t\tsuper(columns, frozen, options);\n\n\t\tthis._index = -1;\n\t\tthis._onChange = onChange;\n\t\tthis._onCellChangeBound = (\n\t\t\tnewValue,\n\t\t\toldValue,\n\t\t\trow,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcolumn\n\t\t): void => {\n\t\t\tthis.onCellChange(newValue, oldValue, row, rowIndex, columnIndex, column);\n\t\t};\n\t\tthis._columnIndexToCellOptions = columnIndexToCellOptions;\n\t\tthis.state.isAlternated = !isEven;\n\t\tthis.initCells();\n\t}\n\n\tprotected onCellChange(\n\t\tnewValue: unknown,\n\t\toldValue: unknown,\n\t\trow: ROW,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>\n\t): void {\n\t\tthis.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, this);\n\t\tif (column.update === DTableColumnUpdate.ROW) {\n\t\t\tconst value = this._value;\n\t\t\tconst supplimental = this._supplimental;\n\t\t\tconst index = this._index;\n\t\t\tif (value !== undefined && supplimental !== undefined) {\n\t\t\t\tthis.set(value, supplimental, index, true);\n\t\t\t}\n\t\t}\n\t\tthis._onChange(newValue, oldValue, row, rowIndex, columnIndex, column, this);\n\t}\n\n\tprotected newCell(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>,\n\t\tcolumns: DTableColumn<ROW>[],\n\t\toptions?: OPTIONS\n\t): DBase {\n\t\tconst onChange = this._onCellChangeBound;\n\t\tconst columnIndexToCellOptions = this._columnIndexToCellOptions;\n\t\tlet cellOptions = columnIndexToCellOptions.get(columnIndex);\n\t\tif (cellOptions == null) {\n\t\t\tcellOptions = this.toCellOptions(columnIndex, column, options);\n\t\t\tcolumnIndexToCellOptions.set(columnIndex, cellOptions);\n\t\t}\n\t\tif (column.editing.enable !== false) {\n\t\t\treturn this.newCellEditable(columnIndex, column, onChange, cellOptions);\n\t\t} else {\n\t\t\tconst cell = this.newCellUnediable(columnIndex, column, onChange, cellOptions);\n\t\t\tif (column.type !== DTableColumnType.TREE) {\n\t\t\t\tcell.state.isReadOnly = true;\n\t\t\t}\n\t\t\treturn cell;\n\t\t}\n\t}\n\n\tprotected newCellEditable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellInputText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellInputTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellInputTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellInputInteger(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellInputReal(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellUnediable(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tswitch (column.type) {\n\t\t\tcase DTableColumnType.INDEX:\n\t\t\t\treturn new DTableBodyCellIndex(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TEXT_AREA:\n\t\t\t\treturn new DTableBodyCellTextArea(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TREE:\n\t\t\t\treturn new DTableBodyCellTree(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.INTEGER:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.REAL:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.CHECK:\n\t\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\t\t\treturn new DTableBodyCellCheck(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.COLOR:\n\t\t\t\treturn new DTableBodyCellColor(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.BUTTON:\n\t\t\t\treturn new DTableBodyCellButton(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.LINK:\n\t\t\t\treturn new DTableBodyCellLink(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.SELECT:\n\t\t\t\treturn this.newCellSelect(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.ACTION:\n\t\t\t\treturn this.newCellAction(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATE:\n\t\t\t\treturn new DTableBodyCellDate(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.DATETIME:\n\t\t\t\treturn new DTableBodyCellDatetime(columnIndex, column, onChange, options);\n\t\t\tcase DTableColumnType.TIME:\n\t\t\t\treturn new DTableBodyCellTime(columnIndex, column, onChange, options);\n\t\t\tdefault:\n\t\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellSelect(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, any>,\n\t\tonChange: DTableBodyCellOnChange<ROW, any>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellSelectMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.multiple != null) {\n\t\t\treturn new DTableBodyCellSelectMultiple(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellSelectDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellSelectPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected newCellAction(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>,\n\t\tonChange: DTableBodyCellOnChange<ROW>,\n\t\toptions: any\n\t): DBase {\n\t\tconst selecting = column.selecting;\n\t\tif (selecting.menu != null) {\n\t\t\treturn new DTableBodyCellActionMenu(columnIndex, column, onChange, options);\n\t\t} else if (selecting.dialog != null) {\n\t\t\treturn new DTableBodyCellActionDialog(columnIndex, column, onChange, options);\n\t\t} else if (selecting.promise != null) {\n\t\t\treturn new DTableBodyCellActionPromise(columnIndex, column, onChange, options);\n\t\t} else {\n\t\t\treturn new DTableBodyCellText(columnIndex, column, onChange, options);\n\t\t}\n\t}\n\n\tprotected toCellOptions(\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>,\n\t\toptions?: OPTIONS\n\t): DTableBodyCellOptions<ROW> {\n\t\tconst result = toMerged(column.body, options?.cell);\n\n\t\t// Weight\n\t\tresult.weight = column.weight;\n\n\t\t// Width\n\t\tresult.width = column.width;\n\n\t\t// State\n\t\tresult.state ??= column.state.initial;\n\n\t\t// Text formatter\n\t\tconst columnFormatter = column.formatter;\n\t\tif (columnFormatter != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\ttext.formatter ??= columnFormatter;\n\t\t}\n\n\t\t// Text align horizontal\n\t\tconst columnAlign = column.align;\n\t\tif (columnAlign != null) {\n\t\t\tconst text = (result.text ??= {});\n\t\t\tconst textAlign = (text.align ??= {});\n\t\t\ttextAlign.horizontal ??= columnAlign;\n\t\t}\n\n\t\t// Editing\n\t\tconst columnEditing = column.editing;\n\t\tif (columnEditing.enable !== false) {\n\t\t\tconst editing = ((result as any).editing ??= {});\n\t\t\tediting.formatter ??= columnEditing.formatter;\n\t\t\tediting.unformatter ??= columnEditing.unformatter;\n\t\t\tediting.validator ??= columnEditing.validator;\n\t\t}\n\n\t\t// Link\n\t\tconst columnLink = column.link;\n\t\tif (columnLink !== undefined) {\n\t\t\t(result as any).link = columnLink;\n\t\t}\n\n\t\t// Selecting\n\t\tconst columnSelecting = column.selecting;\n\t\tconst columnSelectingMenu = columnSelecting.menu ?? columnSelecting.multiple;\n\t\tif (columnSelectingMenu !== undefined) {\n\t\t\t(result as any).menu = columnSelectingMenu;\n\t\t}\n\n\t\tconst selectionType = options?.selection?.type ?? DTableDataSelectionType.NONE;\n\t\tif (selectionType !== DTableDataSelectionType.NONE) {\n\t\t\t(result as any).when = \"DOUBLE_CLICKED\";\n\t\t\tresult.cursor = (state: DBaseStateSet): string | undefined => {\n\t\t\t\tif (state.in(DTableState.SELECTABLE)) {\n\t\t\t\t\treturn \"pointer\";\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTableBodyRow\";\n\t}\n\n\t/**\n\t * Returns a row data if exists.\n\t * Returns undefined if a row data does not exit.\n\t *\n\t * @returns a row data or undefined.\n\t */\n\tget value(): ROW | undefined {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Returns a row index if a row data exists.\n\t * Returns -1 if a row data does not exit.\n\t *\n\t * @returns a row index or -1.\n\t */\n\tget index(): number {\n\t\treturn this._index;\n\t}\n\n\tprotected isCell(target: any): target is DTableBodyCell<unknown, unknown> {\n\t\treturn target != null && \"set\" in target;\n\t}\n\n\tset(\n\t\tvalue: ROW,\n\t\tsupplimental: DTableDataSupplimental | null,\n\t\trowIndex: number,\n\t\tforcibly?: boolean\n\t): void {\n\t\tif (\n\t\t\tforcibly ||\n\t\t\tthis._value !== value ||\n\t\t\tthis._supplimental !== supplimental ||\n\t\t\tthis._index !== rowIndex\n\t\t) {\n\t\t\tthis._value = value;\n\t\t\tthis._supplimental = supplimental;\n\t\t\tthis._index = rowIndex;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tconst columns = this._columns;\n\t\t\tconst columnsLength = columns.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tconst columnIndex = columnsLength - 1 - i;\n\t\t\t\tconst column = columns[columnIndex];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.set(\n\t\t\t\t\t\tcolumn.getter(value, columnIndex),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tsupplimental,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\tforcibly\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onSet(value, rowIndex);\n\t\t}\n\t}\n\n\tprotected onSet(value: ROW, rowIndex: number): void {\n\t\tthis.emit(\"set\", value, rowIndex, this);\n\t}\n\n\tunset(): void {\n\t\tif (this._value !== undefined) {\n\t\t\tthis._value = undefined;\n\t\t\tthis._index = -1;\n\n\t\t\tconst cells = this.children;\n\t\t\tconst cellsLength = cells.length;\n\t\t\tfor (let i = 0; i < cellsLength; ++i) {\n\t\t\t\tconst cell = cells[i];\n\t\t\t\tif (this.isCell(cell)) {\n\t\t\t\t\tcell.unset();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onUnset();\n\t\t}\n\t}\n\n\tprotected onUnset(): void {\n\t\tthis.emit(\"unset\", this);\n\t}\n\n\tprotected getContentPositionX(): number {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tconst content = parent.parent;\n\t\t\tif (content) {\n\t\t\t\treturn content.position.x;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
@@ -14,18 +14,11 @@ import { DApplications } from "./d-applications";
14
14
  import { isNumber } from "./util/is-number";
15
15
  import { DTableColumnUpdate } from "./d-table-column-update";
16
16
  var toRowOptions = function (theme, options, selectionType) {
17
- var columns = options.columns || [];
18
17
  var result = options.row;
19
18
  if (result != null) {
20
19
  if (result.height == null) {
21
20
  result.height = theme.getRowHeight();
22
21
  }
23
- if (result.columns === undefined) {
24
- result.columns = columns;
25
- }
26
- if (result.frozen == null) {
27
- result.frozen = options.frozen;
28
- }
29
22
  if (result.selection === undefined) {
30
23
  result.selection = {
31
24
  type: selectionType
@@ -37,9 +30,7 @@ var toRowOptions = function (theme, options, selectionType) {
37
30
  }
38
31
  else {
39
32
  result = {
40
- columns: columns,
41
33
  height: theme.getRowHeight(),
42
- frozen: options.frozen,
43
34
  selection: {
44
35
  type: selectionType
45
36
  }
@@ -49,18 +40,18 @@ var toRowOptions = function (theme, options, selectionType) {
49
40
  };
50
41
  var DTableBody = /** @class */ (function (_super) {
51
42
  __extends(DTableBody, _super);
52
- function DTableBody(options) {
53
- var _a;
43
+ function DTableBody(columns, frozen, offset, options) {
54
44
  var _this = _super.call(this, options) || this;
55
- _this.transform.position.y = (_a = options.offset) !== null && _a !== void 0 ? _a : 0;
45
+ _this.transform.position.y = offset;
56
46
  var data = _this.toData(options.data);
57
47
  _this._data = data;
58
48
  data.bind(_this);
59
49
  var theme = _this.theme;
50
+ _this._columns = columns;
51
+ _this._frozen = frozen;
60
52
  var rowOptions = toRowOptions(theme, options, data.selection.type);
61
53
  _this._rowOptions = rowOptions;
62
54
  _this._rowHeight = rowOptions.height != null ? rowOptions.height : theme.getRowHeight();
63
- _this._columns = rowOptions.columns || [];
64
55
  _this._rowIndexMappedStart = 0;
65
56
  _this._rowIndexMappedEnd = 0;
66
57
  _this._updateRowsCount = 0;
@@ -271,14 +262,14 @@ var DTableBody = /** @class */ (function (_super) {
271
262
  return row;
272
263
  };
273
264
  DTableBody.prototype.newRow = function (isEven) {
274
- return new DTableBodyRow(this._onRowChangeBound, isEven, this._columnIndexToCellOptions, this._rowOptions);
265
+ return new DTableBodyRow(this._onRowChangeBound, isEven, this._columnIndexToCellOptions, this._columns, this._frozen, this._rowOptions);
275
266
  };
276
267
  DTableBody.prototype.onParentMove = function (newX, newY, oldX, oldY) {
277
268
  _super.prototype.onParentMove.call(this, newX, newY, oldX, oldY);
278
269
  this.updateFrozenCellPosition(newX);
279
270
  };
280
271
  DTableBody.prototype.updateFrozenCellPosition = function (x) {
281
- var frozen = this._rowOptions.frozen;
272
+ var frozen = this._frozen;
282
273
  if (frozen != null && 0 < frozen) {
283
274
  var rows = this.children;
284
275
  for (var i = 0, imax = rows.length; i < imax; ++i) {
@@ -1 +1 @@
1
- {"version":3,"file":"d-table-body.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table-body.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAwC,KAAK,EAAa,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,KAAK,EAAyC,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAA+C,MAAM,oBAAoB,CAAC;AAGhG,OAAO,EAAE,cAAc,EAAyB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAuB,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAgD7D,IAAM,YAAY,GAAG,UACpB,KAAsB,EACtB,OAAqC,EACrC,aAAsC;IAEtC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IACzB,IAAI,MAAM,IAAI,IAAI,EAAE;QACnB,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;SACrC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;SACzB;QACD,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC/B;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YACnC,MAAM,CAAC,SAAS,GAAG;gBAClB,IAAI,EAAE,aAAa;aACnB,CAAC;SACF;aAAM,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;YAC/C,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC;SACtC;KACD;SAAM;QACN,MAAM,GAAG;YACR,OAAO,SAAA;YACP,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE;gBACV,IAAI,EAAE,aAAa;aACnB;SACD,CAAC;KACF;IACD,OAAO,MAAmC,CAAC;AAC5C,CAAC,CAAC;AAEF;IAKU,8BAAqB;IAgB9B,oBAAY,OAAgB;;QAA5B,YACC,kBAAM,OAAO,CAAC,SAsBd;QApBA,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC;QAChD,IAAM,IAAI,GAAG,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAChB,IAAM,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;QACzB,IAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,KAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACvF,KAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,KAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,KAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,KAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,KAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,KAAI,CAAC,iBAAiB,GAAG,UAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM;YAC/E,KAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC,CAAC;QACF,KAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAsC,CAAC;QAC/E,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;;IACrC,CAAC;IAES,gCAAW,GAArB,UACC,QAAiB,EACjB,QAAiB,EACjB,GAAQ,EACR,QAAgB,EAChB,WAAmB,EACnB,MAAkC;QAElC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAClB;IACF,CAAC;IAES,2BAAM,GAAhB,UAAiB,OAA2C;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACzB,OAAO,OAAO,CAAC;SACf;QACD,OAAO,IAAI,cAAc,CAAM,OAAO,CAAQ,CAAC;IAChD,CAAC;IAES,2BAAM,GAAhB,UACC,MAAyD;QAEzD,OAAO,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC;IAC7C,CAAC;IAED,6BAAQ,GAAR,UAAS,QAAgB,EAAE,SAAiB,EAAE,QAAgB,EAAE,SAAiB;QAChF,iBAAM,QAAQ,YAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,sBAAI,iCAAS;aAAb;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7B,CAAC;;;OAAA;IAED,yBAAI,GAAJ;QACC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;SACzC;IACF,CAAC;IAED,2BAAM,GAAN,UAAO,YAAqB;QAC3B,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAChC,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YACD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;SACzC;IACF,CAAC;IAED;;;;;OAKG;IACH,2BAAM,GAAN,UAAO,QAAkB;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;aACxC;YACD,OAAO;SACP;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,OAAO;SACP;QACD,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,IAAI,aAAa,IAAI,IAAI,EAAE;YAC1B,OAAO;SACP;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,QAAqC,CAAC;QACxD,IAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACpC,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE1C,IAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzD,IAAI,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,WAAW,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;QAEhE,IAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,IAAM,SAAS,GAAG,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC;QACjD,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAM,2BAA2B,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7D,IAAM,2BAA2B,GAAG,CAAC,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC7E,IAAI,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrE,sBAAsB,IAAI,sBAAsB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnE,oBAAoB,IAAI,CAAC,oBAAoB,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,WAAW,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;QAChE,IAAI,WAAW,GAAG,WAAW,EAAE;YAC9B,WAAW,GAAG,WAAW,CAAC;YAC1B,oBAAoB,GAAG,sBAAsB,GAAG,WAAW,CAAC;SAC5D;QAED,IAAI,WAAW,GAAG,WAAW,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;gBAC/C,IAAM,iBAAiB,GAAG,sBAAsB,GAAG,CAAC,CAAC;gBACrD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACtB;YACD,WAAW,GAAG,WAAW,CAAC;YAC1B,oBAAoB,GAAG,sBAAsB,GAAG,WAAW,CAAC;SAC5D;aAAM,IAAI,WAAW,GAAG,WAAW,EAAE;YACrC,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;gBACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD,WAAW,GAAG,WAAW,CAAC;YAC1B,oBAAoB,GAAG,sBAAsB,GAAG,WAAW,CAAC;SAC5D;QAED,IAAI,CAAC,oBAAoB,GAAG,sBAAsB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;QAE/C,IAAM,wBAAwB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;QACjF,IAAM,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,GAAG,2BAA2B,IAAI,2BAA2B,GAAG,UAAU,EAAE;YAChF,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,IAAI,CAAC,GAAG,wBAAwB,EAAE;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,EAAE,EAAE,CAAC,EAAE;oBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClC;gBACD,KAAK,IAAI,CAAC,GAAG,2BAA2B,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;oBAC9D,IAAI,CAAC,CAAC,GAAG,2BAA2B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChD;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,EAAE,EAAE,CAAC,EAAE;oBACrD,IAAI,CAAC,UAAU,GAAG,2BAA2B,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC7D;aACD;iBAAM;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,EAAE,EAAE,CAAC,EAAE;oBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,2BAA2B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7E;gBACD,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,2BAA2B,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;oBACvE,IAAI,CAAC,CAAC,GAAG,2BAA2B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChD;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,EAAE,EAAE,CAAC,EAAE;oBACrD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClB;aACD;YACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SAChB;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,eAAe,GAAG,SAAS,CAAC,IAAI,KAAK,uBAAuB,CAAC,IAAI,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,UACC,KAAU,EACV,YAA2C,EAC3C,KAAa,EACb,aAAqB;YAErB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,CAAC;YAEjD,WAAW;YACX,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;YAEnC,QAAQ;YACR,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;YAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACtD,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;YACnE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAElB,OAAO;YACP,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC,EACD,sBAAsB,EACtB,sBAAsB,GAAG,UAAU,CACnC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,sBAAsB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;YACtE,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,WAAW;YACX,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YAE1D,QAAQ;YACR,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;YAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9D,QAAQ,CAAC,MAAM,EAAE,CAAC;YAElB,OAAO;YACP,GAAG,CAAC,KAAK,EAAE,CAAC;SACZ;QAED,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,cAAc,IAAI,sBAAsB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YACzF,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,WAAW;YACX,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YAE1D,QAAQ;YACR,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;YAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9D,QAAQ,CAAC,MAAM,EAAE,CAAC;YAElB,OAAO;YACP,GAAG,CAAC,KAAK,EAAE,CAAC;SACZ;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC;QACjC,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;IAES,6BAAQ,GAAlB,UAAmB,GAAuB;QACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACnD,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,YAAY,KAAK,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;aAC7B;SACD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAES,2BAAM,GAAhB,UAAiB,MAAe;QAC/B,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,iBAAiB,EACtB,MAAM,EACN,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,WAAW,CAChB,CAAC;IACH,CAAC;IAES,iCAAY,GAAtB,UAAuB,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY;QAC5E,iBAAM,YAAY,YAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAES,6CAAwB,GAAlC,UAAmC,CAAS;QAC3C,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,MAAM,EAAE;YACjC,IAAM,IAAI,GAAG,IAAI,CAAC,QAAqC,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;aACpC;SACD;IACF,CAAC;IAED,oCAAe,GAAf,UAAgB,MAAe,EAAE,MAAiB;QACjD,iBAAM,eAAe,YAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,IAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;SACpB;IACF,CAAC;IAED;;;;;OAKG;IACH,6BAAQ,GAAR,UAAS,MAAoB;QAC5B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC;SACb;QACD,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,IAAI,IAAI,EAAE;YACzB,OAAO,KAAK,CAAC;SACb;QACD,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;gBACpD,cAAc,GAAG,MAAM,CAAC;aACxB;SACD;aAAM;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,GAAQ,EAAE,CAAU,EAAE,KAAa;gBACzD,IAAI,GAAG,KAAK,MAAM,EAAE;oBACnB,cAAc,GAAG,KAAK,CAAC;oBACvB,OAAO,KAAK,CAAC;iBACb;gBACD,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,CAAC;SACH;QACD,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC;SACb;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAChD,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CACjC,CAAC;QACF,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,qCAAgB,GAAhB,UAAiB,MAAc;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,EAAE;YACzC,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;gBACrD,OAAO,MAAM,CAAC;aACd;SACD;QACD,OAAO,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;;;;OAKG;IACH,0BAAK,GAAL,UAAM,cAAsB;QAC3B,IAAM,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzD,IAAM,IAAI,GAAG,IAAI,CAAC,QAAqC,CAAC;QACxD,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;OAOG;IACH,2BAAM,GAAN,UAAO,GAAuB,EAAE,MAAc;QAC7C,IAAM,KAAK,GAAG,GAAG,CAAC,QAA+C,CAAC;QAClE,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC3E,IAAM,IAAI,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC9B,OAAO,IAAI,CAAC;aACZ;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+BAAU,GAAV,UAAW,CAAmB;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAC5B,IAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC;YACvC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,cAAc,EAAE;gBACxB,gCAAgC;gBAChC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBACvC,IAAI,GAAG,EAAE;oBACR,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;wBAC3D,OAAO;qBACP;iBACD;gBAED,0BAA0B;gBAC1B,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;aACpC;SACD;IACF,CAAC;IAES,gCAAW,GAArB,UAAsB,CAAmB,EAAE,cAAsB;QAChE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,uBAAuB,CAAC,MAAM,CAAC;QACnE,IAAM,WAAW,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,IAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAC3C,IAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACtC,IAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QACxC,IAAI,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE;YAC/E,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAChC;aAAM,IAAI,OAAO,EAAE;YACnB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC3B;aAAM,IAAI,QAAQ,EAAE;YACpB,IAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC;YACpC,IAAI,YAAY,IAAI,IAAI,EAAE;gBACzB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,cAAc,IAAI,IAAI,IAAI,kBAAkB,IAAI,IAAI,EAAE;oBACzD,IAAI,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC;oBACpC,IAAI,IAAI,GAAG,cAAc,GAAG,CAAC,CAAC;oBAC9B,IAAI,cAAc,GAAG,kBAAkB,EAAE;wBACxC,MAAM,GAAG,cAAc,CAAC;wBACxB,IAAI,GAAG,kBAAkB,CAAC;qBAC1B;oBACD,IAAI,MAAM,GAAG,IAAI,EAAE;wBAClB,IAAM,UAAU,GAAa,EAAE,CAAC;wBAChC,IAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;wBACvC,IAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;wBACrC,IAAI,eAAe,EAAE;4BACpB,IAAI,aAAa,EAAE;gCAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oCAC7D,IAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oCACzC,IAAI,MAAM,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,EAAE;wCACpD,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;qCAC9C;iCACD;6BACD;iCAAM;gCACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oCAC7D,IAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oCACzC,IAAI,MAAM,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,EAAE;wCACpD,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qCAC/B;iCACD;6BACD;yBACD;6BAAM;4BACN,IAAI,aAAa,EAAE;gCAClB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oCACnC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;iCAClC;6BACD;iCAAM;gCACN,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oCACnC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCACnB;6BACD;yBACD;wBACD,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;qBAC7B;iBACD;aACD;SACD;IACF,CAAC;IAED,+BAAU,GAAV,UAAW,CAA0B,EAAE,kBAAsC;QAC5E,OAAO,iBAAM,UAAU,YAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAChD,CAAC;IAES,4BAAO,GAAjB;QACC,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,sBAAI,4BAAI;aAAR;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAzfgB,wBAAa,GAAG,IAAI,KAAK,EAAE,CAAC;IA0f9C,iBAAC;CAAA,AAhgBD,CAKU,KAAK,GA2fd;SAhgBY,UAAU","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InteractionEvent, InteractionManager, Point, Rectangle } from \"pixi.js\";\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, DTableDataSupplimental } 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\";\nimport { DTableColumnUpdate } from \"./d-table-column-update\";\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, column): void => {\n\t\t\tthis.onRowChange(newValue, oldValue, row, rowIndex, columnIndex, column);\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 onRowChange(\n\t\tnewValue: unknown,\n\t\toldValue: unknown,\n\t\trow: ROW,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW, unknown>\n\t): void {\n\t\tconst data = this._data;\n\t\tdata.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, data);\n\t\tif (column.update === DTableColumnUpdate.ALL) {\n\t\t\tthis.update(true);\n\t\t}\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) {\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: DTableDataSupplimental | null,\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\t/**\n\t * Returns a mapped row index at the given local Y position or -1.\n\t *\n\t * @param localY a local Y position\n\t * @returns a mapped row index at the given local Y position or -1.\n\t */\n\ttoRowIndexMapped(localY: number): number {\n\t\tif (0 <= this.parent.position.y + localY) {\n\t\t\tconst result = Math.floor(localY / this._rowHeight);\n\t\t\tif (0 <= result && result < this._data.mapped.size()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Returns a row at the given mapped row index or null if not exits.\n\t *\n\t * @param rowIndexMapped a mapped row index\n\t * @returns a row at the given mapped row index or null if not exists.\n\t */\n\ttoRow(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\t/**\n\t * Returns a cell at the given local X position or null if not exits.\n\t * This method assumes the given local X position is on the given row.\n\t *\n\t * @param row a row\n\t * @param localX a local X position\n\t * @returns a cell at the given local X position or null if not exits\n\t */\n\ttoCell(row: DTableBodyRow<ROW>, localX: number): 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 = localX - 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.y);\n\t\t\tif (0 <= rowIndexMapped) {\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.x);\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(e: MouseEvent | TouchEvent, interactionManager: InteractionManager): 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 { InteractionEvent, InteractionManager, Point, Rectangle } from \"pixi.js\";\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, DTableDataSupplimental } 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\";\nimport { DTableColumnUpdate } from \"./d-table-column-update\";\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\trow?: DTableBodyRowOptions<ROW>;\n\tdata?: DTableDataListOptions<ROW> | DATA;\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\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.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\theight: theme.getRowHeight(),\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: DTableColumn<ROW>[];\n\tprotected _frozen: number;\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>;\n\tprotected _columnIndexToCellOptions: Map<number, DTableBodyCellOptions<ROW>>;\n\tprotected _data: DATA;\n\n\tconstructor(columns: DTableColumn<ROW>[], frozen: number, offset: number, options: OPTIONS) {\n\t\tsuper(options);\n\n\t\tthis.transform.position.y = offset;\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\tthis._columns = columns;\n\t\tthis._frozen = frozen;\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._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, column): void => {\n\t\t\tthis.onRowChange(newValue, oldValue, row, rowIndex, columnIndex, column);\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 onRowChange(\n\t\tnewValue: unknown,\n\t\toldValue: unknown,\n\t\trow: ROW,\n\t\trowIndex: number,\n\t\tcolumnIndex: number,\n\t\tcolumn: DTableColumn<ROW>\n\t): void {\n\t\tconst data = this._data;\n\t\tdata.emit(\"change\", newValue, oldValue, row, rowIndex, columnIndex, data);\n\t\tif (column.update === DTableColumnUpdate.ALL) {\n\t\t\tthis.update(true);\n\t\t}\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) {\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: DTableDataSupplimental | null,\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._columns,\n\t\t\tthis._frozen,\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._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\t/**\n\t * Returns a mapped row index at the given local Y position or -1.\n\t *\n\t * @param localY a local Y position\n\t * @returns a mapped row index at the given local Y position or -1.\n\t */\n\ttoRowIndexMapped(localY: number): number {\n\t\tif (0 <= this.parent.position.y + localY) {\n\t\t\tconst result = Math.floor(localY / this._rowHeight);\n\t\t\tif (0 <= result && result < this._data.mapped.size()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Returns a row at the given mapped row index or null if not exits.\n\t *\n\t * @param rowIndexMapped a mapped row index\n\t * @returns a row at the given mapped row index or null if not exists.\n\t */\n\ttoRow(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\t/**\n\t * Returns a cell at the given local X position or null if not exits.\n\t * This method assumes the given local X position is on the given row.\n\t *\n\t * @param row a row\n\t * @param localX a local X position\n\t * @returns a cell at the given local X position or null if not exits\n\t */\n\ttoCell(row: DTableBodyRow<ROW>, localX: number): 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 = localX - 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.y);\n\t\t\tif (0 <= rowIndexMapped) {\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.x);\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(e: MouseEvent | TouchEvent, interactionManager: InteractionManager): 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"]}