@wcardinal/wcardinal-ui 0.162.0 → 0.163.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.
- package/dist/wcardinal/ui/d-table.js +3 -0
- package/dist/wcardinal/ui/d-table.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +4 -1
- package/dist/wcardinal-ui.js +4 -1
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -102,6 +102,9 @@ var toColumnAlign = function (options, type) {
|
|
|
102
102
|
case DTableColumnType.SELECT:
|
|
103
103
|
case DTableColumnType.ACTION:
|
|
104
104
|
case DTableColumnType.LINK:
|
|
105
|
+
case DTableColumnType.CHECK:
|
|
106
|
+
case DTableColumnType.CHECK_SINGLE:
|
|
107
|
+
case DTableColumnType.COLOR:
|
|
105
108
|
return DAlignHorizontal.CENTER;
|
|
106
109
|
default:
|
|
107
110
|
return DAlignHorizontal.LEFT;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-table.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Rectangle } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport InteractionManager = interaction.InteractionManager;\nimport { DDialogSelectOptions } from \"../ui/d-dialog-select\";\nimport { DAlignHorizontal } from \"./d-align-horizontal\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions } from \"./d-base\";\nimport { DContentOptions } from \"./d-content\";\nimport { DFocusable, DFocusableContainer } from \"./d-controller-focus\";\nimport { DCoordinateSize } from \"./d-coordinate\";\nimport { DDialogSelect } from \"./d-dialog-select\";\nimport { DMenu, DMenuOptions } from \"./d-menu\";\nimport { DPane, DPaneOptions, DThemePane } from \"./d-pane\";\nimport { DTableBody, DTableBodyOptions } from \"./d-table-body\";\nimport { DTableCategory, DTableCategoryColumn, DTableCategoryOptions } from \"./d-table-category\";\nimport {\n\tDTableColumn,\n\tDTableColumnEditing,\n\tDTableColumnOptions,\n\tDTableColumnSelecting,\n\tDTableColumnSelectingDialog,\n\tDTableColumnSelectingOptions,\n\tDTableColumnSorting,\n\tDTableColumnType,\n\tDTableEditable,\n\tDTableGetter,\n\tDTableRenderable,\n\tDTableSetter\n} from \"./d-table-column\";\nimport { DTableData, DTableDataOptions } from \"./d-table-data\";\nimport { DTableDataList, DTableDataListOptions } from \"./d-table-data-list\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableDataComparatorFunction } from \"./d-table-data-sorter\";\nimport { DTableHeader, DTableHeaderOptions } from \"./d-table-header\";\nimport { DTableRow } from \"./d-table-row\";\nimport { isArray } from \"./util/is-array\";\nimport { isString } from \"./util/is-string\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { DTableScrollBar } from \"./d-table-scrollbar\";\nimport { DPaneScrollBarOptions } from \"./d-pane-scrollbar\";\n\nexport interface DTableOptions<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions\n> extends DPaneOptions<THEME, CONTENT_OPTIONS> {\n\tcolumns: Array<DTableColumnOptions<ROW>>;\n\tcategory?: DTableCategoryOptions;\n\theader?: DTableHeaderOptions<ROW>;\n\tbody?: DTableBodyOptions<ROW, DATA>;\n\tdata?: ROW[] | DTableDataListOptions<ROW> | DATA;\n}\n\nexport interface DThemeTable extends DThemePane {}\n\nconst defaultGetter = <ROW, CELL>(row: ROW, columnIndex: number): CELL => {\n\treturn (row as any)[columnIndex];\n};\n\nconst defaultSetter = <ROW, CELL>(row: ROW, columnIndex: number, cell: CELL): void => {\n\t(row as any)[columnIndex] = cell;\n};\n\nconst defaultGetterEmpty = <CELL>(): CELL => \"\" as any;\n\nconst defaultSetterEmpty = (): void => {\n\t// DO NOTHING\n};\n\nconst toPathGetter = <ROW, CELL>(path: string[], def?: CELL): DTableGetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn (row as any)[key];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn key in row ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t} else {\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\treturn (row as any)[path[path.length - 1]];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\tconst key = path[path.length - 1];\n\t\t\t\treturn key in row ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst toPathSetter = <ROW, CELL>(path: string[]): DTableSetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\t(row as any)[key] = cell;\n\t\t};\n\t} else {\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\trow = (row as any)[path[i]] || {};\n\t\t\t}\n\t\t\t(row as any)[path[path.length - 1]] = cell;\n\t\t};\n\t}\n};\n\nconst toColumnAlign = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType\n): DAlignHorizontal => {\n\tconst align = options.align;\n\tif (align != null) {\n\t\tif (isString(align)) {\n\t\t\treturn DAlignHorizontal[align];\n\t\t} else {\n\t\t\treturn align;\n\t\t}\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.TEXT:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t\tcase DTableColumnType.REAL:\n\t\tcase DTableColumnType.INTEGER:\n\t\t\treturn DAlignHorizontal.RIGHT;\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.INDEX:\n\t\tcase DTableColumnType.SELECT:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn DAlignHorizontal.CENTER;\n\t\tdefault:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t}\n};\n\nconst toColumnDataChecker = <ROW>(path: string[] | null): DTableEditable<ROW> => {\n\tif (path != null) {\n\t\tconst pathLength = path.length;\n\t\tif (pathLength <= 1) {\n\t\t\tconst key = path[0];\n\t\t\treturn (row: ROW): boolean => {\n\t\t\t\treturn key in row;\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: any): boolean => {\n\t\t\t\tfor (let i = 0; i < pathLength; ++i) {\n\t\t\t\t\tconst part: string = path[i];\n\t\t\t\t\tif (part in row) {\n\t\t\t\t\t\trow = row[part];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t}\n\t}\n\treturn (row: any, columnIndex: number): boolean => {\n\t\treturn columnIndex < row.length;\n\t};\n};\n\nconst toColumnEditingEnable = <ROW>(\n\tenable: boolean | DTableEditable<ROW> | \"auto\" | \"AUTO\" | undefined,\n\tpath: string[] | null\n): boolean | DTableEditable<ROW> => {\n\tif (isString(enable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (enable != null) {\n\t\treturn enable;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nconst toColumnEditing = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): DTableColumnEditing<ROW, CELL> => {\n\tconst editing = options.editing;\n\tconst editable = options.editable;\n\tif (editing) {\n\t\treturn {\n\t\t\tenable: toColumnEditingEnable(editing.enable ?? editable, path),\n\t\t\tformatter: editing.formatter,\n\t\t\tunformatter: editing.unformatter,\n\t\t\tvalidator: editing.validator\n\t\t};\n\t}\n\treturn {\n\t\tenable: toColumnEditingEnable(editable, path)\n\t};\n};\n\nconst toComparator = <ROW, CELL>(\n\tgetter: DTableGetter<ROW, CELL>,\n\tindex: number\n): DTableDataComparatorFunction<ROW> => {\n\treturn (rowA: ROW, rowB: ROW): number => {\n\t\tconst valueA = getter(rowA, index) as any;\n\t\tconst valueB = getter(rowB, index) as any;\n\t\treturn valueA < valueB ? -1 : valueB < valueA ? +1 : 0;\n\t};\n};\n\nconst toColumnSorting = <ROW, CELL>(\n\tgetter: DTableGetter<ROW, CELL>,\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumnSorting<ROW> => {\n\tconst sorting = options.sorting;\n\tconst sortable = options.sortable;\n\tif (sorting) {\n\t\tif (sorting.enable || sortable) {\n\t\t\treturn {\n\t\t\t\tenable: true,\n\t\t\t\tcomparator: sorting.comparator || toComparator(getter, index)\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tenable: false\n\t\t};\n\t}\n\tif (sortable) {\n\t\treturn {\n\t\t\tenable: true,\n\t\t\tcomparator: toComparator(getter, index)\n\t\t};\n\t}\n\treturn {\n\t\tenable: false\n\t};\n};\n\nconst toColumnMenu = (\n\toptions?: DMenuOptions<unknown> | DMenu<unknown>\n): DMenu<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (options instanceof DMenu) {\n\t\treturn options;\n\t} else {\n\t\treturn new DMenu(options);\n\t}\n};\n\nconst toColumnDialog = (\n\toptions?: DDialogSelectOptions<unknown> | DTableColumnSelectingDialog<unknown>\n): DTableColumnSelectingDialog<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (\"open\" in options) {\n\t\treturn options;\n\t} else {\n\t\treturn new DDialogSelect(options);\n\t}\n};\n\nconst defaultSelectingGetter = (dialog: DTableColumnSelectingDialog<unknown>): unknown => {\n\treturn dialog.value;\n};\n\nconst defaultSelectingSetter = (): void => {\n\t// DO NOTHING\n};\n\nconst toColumnSelecting = (\n\toptions: DTableColumnSelectingOptions<any, any, any> | undefined\n): DTableColumnSelecting<any, any, any> => {\n\tif (options) {\n\t\treturn {\n\t\t\tgetter: options.getter || defaultSelectingGetter,\n\t\t\tsetter: options.setter || defaultSelectingSetter,\n\t\t\tmenu: toColumnMenu(options.menu),\n\t\t\tmultiple: toColumnMenu(options.multiple),\n\t\t\tdialog: toColumnDialog(options.dialog),\n\t\t\tpromise: options.promise\n\t\t};\n\t}\n\treturn {\n\t\tgetter: defaultSelectingGetter,\n\t\tsetter: defaultSelectingSetter\n\t};\n};\n\nconst toColumnGetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tparts: string[] | null\n): DTableGetter<ROW, CELL> => {\n\tconst getter = options.getter;\n\tif (getter) {\n\t\treturn getter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultGetterEmpty;\n\t\tdefault:\n\t\t\tif (parts == null) {\n\t\t\t\treturn defaultGetter;\n\t\t\t} else {\n\t\t\t\treturn toPathGetter(parts, options.default);\n\t\t\t}\n\t}\n};\n\nconst toColumnSetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tpath: string[] | null\n): DTableSetter<ROW, CELL> => {\n\tconst setter = options.setter;\n\tif (setter) {\n\t\treturn setter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultSetterEmpty;\n\t\tdefault:\n\t\t\tif (path == null) {\n\t\t\t\treturn defaultSetter;\n\t\t\t} else {\n\t\t\t\treturn toPathSetter(path);\n\t\t\t}\n\t}\n};\n\nconst toColumnPath = <ROW, CELL>(options: DTableColumnOptions<ROW, CELL>): string[] | null => {\n\treturn options.path != null ? options.path.split(\".\") : null;\n};\n\nconst toColumnRenderable = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): boolean | DTableRenderable<ROW> => {\n\tconst renderable = options.renderable;\n\tif (isString(renderable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (renderable != null) {\n\t\treturn renderable;\n\t}\n\treturn true;\n};\n\nconst toColumn = <ROW, CELL>(\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumn<ROW, CELL> => {\n\tlet weight = options.weight;\n\tlet width = options.width;\n\tif (weight != null) {\n\t\tif (width != null) {\n\t\t\twidth = undefined;\n\t\t}\n\t} else if (width == null) {\n\t\tweight = 1;\n\t}\n\tconst type = toEnum(options.type ?? DTableColumnType.TEXT, DTableColumnType);\n\tconst align = toColumnAlign(options, type);\n\tconst label = options.label || \"\";\n\tconst path = toColumnPath(options);\n\tconst getter = toColumnGetter(options, type, path);\n\tconst setter = toColumnSetter(options, type, path);\n\treturn {\n\t\tweight,\n\t\twidth,\n\t\ttype,\n\t\tlabel,\n\t\tgetter,\n\t\tsetter,\n\t\tformatter: options.formatter,\n\t\trenderable: toColumnRenderable(options, path),\n\t\talign,\n\n\t\tediting: toColumnEditing(options, path),\n\t\tsorting: toColumnSorting(getter, index, options),\n\n\t\theader: options.header,\n\t\tbody: options.body,\n\n\t\tselecting: toColumnSelecting(options.selecting),\n\n\t\tcategory: options.category,\n\t\tfrozen: options.frozen,\n\t\toffset: 0.0,\n\n\t\tlink: options.link\n\t};\n};\n\nconst toColumns = <ROW, CELL>(\n\toptions: Array<DTableColumnOptions<ROW, CELL>>\n): Array<DTableColumn<ROW, CELL>> => {\n\tconst result = [];\n\tfor (let i = 0, imax = options.length; i < imax; ++i) {\n\t\tresult.push(toColumn(i, options[i]));\n\t}\n\treturn result;\n};\n\nconst toFrozen = <ROW, CELL>(columns: Array<DTableColumn<ROW, CELL>>): number => {\n\tfor (let i = columns.length - 1; 0 <= i; --i) {\n\t\tif (columns[i].frozen === true) {\n\t\t\treturn i + 1;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport class DTable<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions,\n\tOPTIONS extends DTableOptions<ROW, DATA, THEME, CONTENT_OPTIONS> = DTableOptions<\n\t\tROW,\n\t\tDATA,\n\t\tTHEME,\n\t\tCONTENT_OPTIONS\n\t>\n> extends DPane<THEME, CONTENT_OPTIONS, OPTIONS> {\n\tprotected _columns?: Array<DTableColumn<ROW, unknown>>;\n\tprotected _frozen?: number;\n\tprotected _categories?: DTableCategory[];\n\tprotected _headerOffset?: number;\n\tprotected _header?: DTableHeader<ROW> | null;\n\tprotected _bodyOffset?: number;\n\tprotected _body?: DTableBody<ROW, DATA>;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tconst content = this.content;\n\t\tcontent.setWidth(this.toContentWidth(options));\n\n\t\tconst body = this.body;\n\t\tcontent.addChild(body);\n\t\tif (body.data.selection.type !== DTableDataSelectionType.NONE) {\n\t\t\tUtilPointerEvent.onClick(this, (e: InteractionEvent): void => {\n\t\t\t\tbody.onRowClick(e);\n\t\t\t});\n\t\t}\n\n\t\tconst header = this.header;\n\t\tif (header) {\n\t\t\tcontent.addChild(header);\n\t\t}\n\n\t\tconst categories = this.categories;\n\t\tfor (let i = categories.length - 1; 0 <= i; --i) {\n\t\t\tcontent.addChild(categories[i]);\n\t\t}\n\n\t\tbody.update();\n\t}\n\n\tget columns(): Array<DTableColumn<ROW, unknown>> {\n\t\tlet result = this._columns;\n\t\tif (result == null) {\n\t\t\tconst options = this._options;\n\t\t\tresult = options ? toColumns(options.columns) : [];\n\t\t\tthis._columns = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget frozen(): number {\n\t\tlet result = this._frozen;\n\t\tif (result == null) {\n\t\t\tresult = toFrozen(this.columns);\n\t\t\tthis._frozen = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget categories(): DTableCategory[] {\n\t\tlet result = this._categories;\n\t\tif (result == null) {\n\t\t\tresult = this.newCategories(this._options, this.columns, this.frozen);\n\t\t\tthis._categories = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected initContent(content: DBase): void {\n\t\tsuper.initContent(content);\n\t\tcontent.state.isFocusReverse = true;\n\t}\n\n\tprotected onContentChange(): void {\n\t\tsuper.onContentChange();\n\t\tthis.body.update();\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tconst scrollbar = this.scrollbar;\n\t\tscrollbar.lock();\n\n\t\tconst body = this.body;\n\t\tbody.lock();\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tbody.update();\n\t\tbody.unlock(true);\n\n\t\tscrollbar.unlock(true);\n\t}\n\n\tprotected getCategoryCount(columns: Array<DTableColumn<ROW, unknown>>): number {\n\t\tlet result = 0;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst category = columns[i].category;\n\t\t\tif (category != null) {\n\t\t\t\tconst count = isString(category) ? 1 : category.length;\n\t\t\t\tresult = Math.max(result, count);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryLabel(\n\t\tindex: number,\n\t\tcategory: string | string[] | undefined\n\t): string | undefined {\n\t\tif (category) {\n\t\t\tif (isString(category)) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn category;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (index < category.length) {\n\t\t\t\t\treturn category[index];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected isSameCategory(\n\t\tindex: number,\n\t\ta: string | string[] | undefined,\n\t\tb: string | string[] | undefined\n\t): boolean {\n\t\tif (a != null) {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn b.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn b.length === 1 && a === b[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn a.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a.length === 1 && a[0] === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (a.length <= index && b.length <= index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else if (b.length === a.length) {\n\t\t\t\t\t\t\tfor (let i = index, imax = a.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\tif (a[i] !== b[i]) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (a.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(b)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (b.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toCategoryColumns(\n\t\tindex: number,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategoryColumn[] {\n\t\tconst result: DTableCategoryColumn[] = [];\n\t\tlet tcolumn: DTableColumn<ROW, unknown> | null = null;\n\t\tlet ccolumn: DTableCategoryColumn | null = null;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst column = columns[i];\n\t\t\tif (\n\t\t\t\ti !== frozen &&\n\t\t\t\tccolumn &&\n\t\t\t\ttcolumn &&\n\t\t\t\tthis.isSameCategory(index, tcolumn.category, column.category)\n\t\t\t) {\n\t\t\t\tif (ccolumn.weight != null && column.weight != null) {\n\t\t\t\t\tccolumn.weight += column.weight;\n\t\t\t\t} else if (ccolumn.width != null && column.width != null) {\n\t\t\t\t\tccolumn.width += column.width;\n\t\t\t\t} else {\n\t\t\t\t\ttcolumn = column;\n\t\t\t\t\tccolumn = {\n\t\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\t\tweight: column.weight,\n\t\t\t\t\t\twidth: column.width,\n\t\t\t\t\t\toffset: 0.0\n\t\t\t\t\t};\n\t\t\t\t\tresult.push(ccolumn);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttcolumn = column;\n\t\t\t\tccolumn = {\n\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\tweight: column.weight,\n\t\t\t\t\twidth: column.width,\n\t\t\t\t\toffset: 0.0\n\t\t\t\t};\n\t\t\t\tresult.push(ccolumn);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryOptions(\n\t\tindex: number,\n\t\toptions: DTableCategoryOptions | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableCategoryOptions {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = this.toCategoryColumns(index, columns, frozen);\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset == null) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns: this.toCategoryColumns(index, columns, frozen),\n\t\t\tfrozen,\n\t\t\toffset\n\t\t};\n\t}\n\n\tprotected newCategories(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategory[] {\n\t\tconst count = this.getCategoryCount(columns);\n\t\tconst result: DTableCategory[] = [];\n\t\tlet offset: number = 0;\n\t\tfor (let i = count - 1; 0 <= i; --i) {\n\t\t\tconst category = new DTableCategory(\n\t\t\t\tthis.toCategoryOptions(i, options?.category, columns, frozen, offset)\n\t\t\t);\n\t\t\tresult.push(category);\n\t\t\toffset += category.height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tonDblClick(e: MouseEvent | TouchEvent, interactionManager: InteractionManager): boolean {\n\t\tconst result = this.body.onDblClick(e, interactionManager);\n\t\treturn super.onDblClick(e, interactionManager) || result;\n\t}\n\n\tprotected newScrollBar(options?: DPaneScrollBarOptions): DTableScrollBar {\n\t\treturn new DTableScrollBar(this, options, (isRegionVisible: boolean): void => {\n\t\t\tthis.onScrollBarUpdate(isRegionVisible);\n\t\t});\n\t}\n\n\tprotected toContentWidth(options?: OPTIONS): DCoordinateSize {\n\t\tlet columnWidthTotal = 0;\n\t\tconst columns = options?.columns;\n\t\tif (columns) {\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tconst columnWidth = column.width;\n\t\t\t\tif (columnWidth != null) {\n\t\t\t\t\tcolumnWidthTotal += columnWidth;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (0 < columnWidthTotal) {\n\t\t\treturn (p: number): number => {\n\t\t\t\treturn Math.max(p, columnWidthTotal);\n\t\t\t};\n\t\t}\n\t\treturn \"100%\";\n\t}\n\n\tget headerOffset(): number {\n\t\tlet result = this._headerOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newHeaderOffset();\n\t\t\tthis._headerOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newHeaderOffset(): number {\n\t\tlet result = 0;\n\t\tconst categories = this.categories;\n\t\tfor (let i = 0, imax = categories.length; i < imax; ++i) {\n\t\t\tresult += categories[i].height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget header(): DTableHeader<ROW> | null {\n\t\tlet result = this._header;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newHeader(this._options, this.columns, this.frozen, this.headerOffset);\n\t\t\tthis._header = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected hasHeader(options?: OPTIONS): boolean {\n\t\tif (options) {\n\t\t\tconst columns = options.columns;\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tif (columns[i].label != null) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected newHeader(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeader<ROW> | null {\n\t\tif (this.hasHeader(options)) {\n\t\t\treturn new DTableHeader<ROW>(\n\t\t\t\tthis.toHeaderOptions(options?.header, columns, frozen, offset)\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected toHeaderOptions(\n\t\toptions: DTableHeaderOptions<ROW> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeaderOptions<ROW> {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.table === undefined) {\n\t\t\t\toptions.table = this;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns,\n\t\t\tfrozen,\n\t\t\toffset,\n\t\t\ttable: this\n\t\t};\n\t}\n\n\tget bodyOffset(): number {\n\t\tlet result = this._bodyOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newBodyOffset();\n\t\t\tthis._bodyOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBodyOffset(): number {\n\t\treturn this.headerOffset + (this.header?.height ?? 0);\n\t}\n\n\tget body(): DTableBody<ROW, DATA> {\n\t\tlet result = this._body;\n\t\tif (result == null) {\n\t\t\tresult = this.newBody(this._options, this.columns, this.frozen, this.bodyOffset);\n\t\t\tthis._body = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBody(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableBody<ROW, DATA> {\n\t\treturn new DTableBody<ROW, DATA>(\n\t\t\tthis.toBodyOptions(options?.body, columns, frozen, offset, options?.data)\n\t\t);\n\t}\n\n\tprotected toBodyOptions(\n\t\toptions: DTableBodyOptions<ROW, DATA> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number,\n\t\tdata: ROW[] | DTableDataOptions<ROW> | DATA | undefined\n\t): DTableBodyOptions<ROW, DATA> {\n\t\tif (options != null) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.data === undefined && data !== undefined) {\n\t\t\t\tif (isArray(data)) {\n\t\t\t\t\toptions.data = {\n\t\t\t\t\t\trows: data\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\toptions.data = data;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.height === undefined && options.weight === undefined) {\n\t\t\t\toptions.weight = 1;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\tif (isArray(data)) {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata: {\n\t\t\t\t\trows: data\n\t\t\t\t},\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata,\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t}\n\t}\n\n\tget data(): DATA {\n\t\treturn this.body.data;\n\t}\n\n\tprotected getFocusedChildClippingRect(\n\t\tfocused: DBase,\n\t\tcontentX: number,\n\t\tcontentY: number,\n\t\tcontentWidth: number,\n\t\tcontentHeight: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tresult: Rectangle\n\t): Rectangle {\n\t\tsuper.getFocusedChildClippingRect(\n\t\t\tfocused,\n\t\t\tcontentX,\n\t\t\tcontentY,\n\t\t\tcontentWidth,\n\t\t\tcontentHeight,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tresult\n\t\t);\n\n\t\tconst cell = this.toCell(focused);\n\t\tif (cell) {\n\t\t\t// X\n\t\t\tconst dx = contentX + this.toFrozenCellX(cell) - result.x;\n\t\t\tif (0 < dx) {\n\t\t\t\tresult.x += dx;\n\t\t\t\tresult.width -= dx;\n\t\t\t}\n\n\t\t\t// Y\n\t\t\tif (cell.parent.parent === this.body) {\n\t\t\t\tconst dy = this.bodyOffset;\n\t\t\t\tresult.y += dy;\n\t\t\t\tresult.height -= dy;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn result;\n\t}\n\n\tprotected toFrozenCellX(cell: DBase): number {\n\t\tconst frozen = this.frozen;\n\t\tif (0 < frozen) {\n\t\t\tconst cells = cell.parent.children as DBase[];\n\t\t\tconst cellIndex = cells.indexOf(cell);\n\t\t\tif (0 <= cellIndex) {\n\t\t\t\tconst cellsLength = cells.length;\n\t\t\t\tconst columnIndex = cellsLength - 1 - cellIndex;\n\t\t\t\tif (frozen <= columnIndex) {\n\t\t\t\t\tconst cellFrozen = cells[cellsLength - frozen];\n\t\t\t\t\treturn cellFrozen.position.x + cellFrozen.width;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\tonKeyDown(e: KeyboardEvent): boolean {\n\t\tUtilKeyboardEvent.moveFocusHorizontally(e, this);\n\t\tconst isArrowUpKey = UtilKeyboardEvent.isArrowUpKey(e);\n\t\tconst isArrowDownKey = UtilKeyboardEvent.isArrowDownKey(e);\n\t\tif (isArrowUpKey || isArrowDownKey) {\n\t\t\tthis.onKeyDownArrowUpOrDown(e, isArrowDownKey);\n\t\t}\n\t\treturn super.onKeyDown(e);\n\t}\n\n\tprotected onKeyDownArrowUpOrDown(e: KeyboardEvent, isDown: boolean): boolean {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst focusController = layer.getFocusController();\n\t\tconst oldFocusable = focusController.get();\n\t\tif (oldFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCell = this.toCell(oldFocusable);\n\t\tif (oldCell == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldRow = oldCell.parent;\n\t\tif (oldRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRowChild = focusController.find(oldRow, false, false, isDown, this);\n\t\tif (newRowChild == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCellSibling = this.toCell(newRowChild);\n\t\tif (newCellSibling == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRow = newCellSibling.parent;\n\t\tif (newRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCellIndex = oldRow.children.indexOf(oldCell);\n\t\tif (oldCellIndex < 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCell = newRow.children[oldCellIndex];\n\t\tif (newCell == null || newCell === oldCell || !(\"state\" in newCell)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newFocusable = focusController.find(newCell, true, true, isDown, this);\n\t\tif (newFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfocusController.focus(newFocusable);\n\t\treturn true;\n\t}\n\n\tprotected toCell(focused: DFocusable): DBase | null {\n\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\twhile (current != null) {\n\t\t\tconst parent: DFocusableContainer | null = current.parent;\n\t\t\tif (parent instanceof DTableRow) {\n\t\t\t\tif (current instanceof DBase) {\n\t\t\t\t\treturn current;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tcurrent = parent;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTable\";\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-table.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-table.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, Rectangle } from \"pixi.js\";\nimport InteractionEvent = interaction.InteractionEvent;\nimport InteractionManager = interaction.InteractionManager;\nimport { DDialogSelectOptions } from \"../ui/d-dialog-select\";\nimport { DAlignHorizontal } from \"./d-align-horizontal\";\nimport { DApplications } from \"./d-applications\";\nimport { DBase, DBaseOptions } from \"./d-base\";\nimport { DContentOptions } from \"./d-content\";\nimport { DFocusable, DFocusableContainer } from \"./d-controller-focus\";\nimport { DCoordinateSize } from \"./d-coordinate\";\nimport { DDialogSelect } from \"./d-dialog-select\";\nimport { DMenu, DMenuOptions } from \"./d-menu\";\nimport { DPane, DPaneOptions, DThemePane } from \"./d-pane\";\nimport { DTableBody, DTableBodyOptions } from \"./d-table-body\";\nimport { DTableCategory, DTableCategoryColumn, DTableCategoryOptions } from \"./d-table-category\";\nimport {\n\tDTableColumn,\n\tDTableColumnEditing,\n\tDTableColumnOptions,\n\tDTableColumnSelecting,\n\tDTableColumnSelectingDialog,\n\tDTableColumnSelectingOptions,\n\tDTableColumnSorting,\n\tDTableColumnType,\n\tDTableEditable,\n\tDTableGetter,\n\tDTableRenderable,\n\tDTableSetter\n} from \"./d-table-column\";\nimport { DTableData, DTableDataOptions } from \"./d-table-data\";\nimport { DTableDataList, DTableDataListOptions } from \"./d-table-data-list\";\nimport { DTableDataSelectionType } from \"./d-table-data-selection\";\nimport { DTableDataComparatorFunction } from \"./d-table-data-sorter\";\nimport { DTableHeader, DTableHeaderOptions } from \"./d-table-header\";\nimport { DTableRow } from \"./d-table-row\";\nimport { isArray } from \"./util/is-array\";\nimport { isString } from \"./util/is-string\";\nimport { toEnum } from \"./util/to-enum\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { DTableScrollBar } from \"./d-table-scrollbar\";\nimport { DPaneScrollBarOptions } from \"./d-pane-scrollbar\";\n\nexport interface DTableOptions<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions\n> extends DPaneOptions<THEME, CONTENT_OPTIONS> {\n\tcolumns: Array<DTableColumnOptions<ROW>>;\n\tcategory?: DTableCategoryOptions;\n\theader?: DTableHeaderOptions<ROW>;\n\tbody?: DTableBodyOptions<ROW, DATA>;\n\tdata?: ROW[] | DTableDataListOptions<ROW> | DATA;\n}\n\nexport interface DThemeTable extends DThemePane {}\n\nconst defaultGetter = <ROW, CELL>(row: ROW, columnIndex: number): CELL => {\n\treturn (row as any)[columnIndex];\n};\n\nconst defaultSetter = <ROW, CELL>(row: ROW, columnIndex: number, cell: CELL): void => {\n\t(row as any)[columnIndex] = cell;\n};\n\nconst defaultGetterEmpty = <CELL>(): CELL => \"\" as any;\n\nconst defaultSetterEmpty = (): void => {\n\t// DO NOTHING\n};\n\nconst toPathGetter = <ROW, CELL>(path: string[], def?: CELL): DTableGetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn (row as any)[key];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\treturn key in row ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t} else {\n\t\tif (def === undefined) {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\treturn (row as any)[path[path.length - 1]];\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: ROW): CELL => {\n\t\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\t\trow = (row as any)[path[i]];\n\t\t\t\t}\n\t\t\t\tconst key = path[path.length - 1];\n\t\t\t\treturn key in row ? (row as any)[key] : def;\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst toPathSetter = <ROW, CELL>(path: string[]): DTableSetter<ROW, CELL> => {\n\tif (path.length <= 1) {\n\t\tconst key = path[0];\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\t(row as any)[key] = cell;\n\t\t};\n\t} else {\n\t\treturn (row: ROW, columnIndex: number, cell: CELL): void => {\n\t\t\tfor (let i = 0, imax = path.length - 1; i < imax; ++i) {\n\t\t\t\trow = (row as any)[path[i]] || {};\n\t\t\t}\n\t\t\t(row as any)[path[path.length - 1]] = cell;\n\t\t};\n\t}\n};\n\nconst toColumnAlign = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType\n): DAlignHorizontal => {\n\tconst align = options.align;\n\tif (align != null) {\n\t\tif (isString(align)) {\n\t\t\treturn DAlignHorizontal[align];\n\t\t} else {\n\t\t\treturn align;\n\t\t}\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.TEXT:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t\tcase DTableColumnType.REAL:\n\t\tcase DTableColumnType.INTEGER:\n\t\t\treturn DAlignHorizontal.RIGHT;\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.INDEX:\n\t\tcase DTableColumnType.SELECT:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\tcase DTableColumnType.CHECK:\n\t\tcase DTableColumnType.CHECK_SINGLE:\n\t\tcase DTableColumnType.COLOR:\n\t\t\treturn DAlignHorizontal.CENTER;\n\t\tdefault:\n\t\t\treturn DAlignHorizontal.LEFT;\n\t}\n};\n\nconst toColumnDataChecker = <ROW>(path: string[] | null): DTableEditable<ROW> => {\n\tif (path != null) {\n\t\tconst pathLength = path.length;\n\t\tif (pathLength <= 1) {\n\t\t\tconst key = path[0];\n\t\t\treturn (row: ROW): boolean => {\n\t\t\t\treturn key in row;\n\t\t\t};\n\t\t} else {\n\t\t\treturn (row: any): boolean => {\n\t\t\t\tfor (let i = 0; i < pathLength; ++i) {\n\t\t\t\t\tconst part: string = path[i];\n\t\t\t\t\tif (part in row) {\n\t\t\t\t\t\trow = row[part];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t}\n\t}\n\treturn (row: any, columnIndex: number): boolean => {\n\t\treturn columnIndex < row.length;\n\t};\n};\n\nconst toColumnEditingEnable = <ROW>(\n\tenable: boolean | DTableEditable<ROW> | \"auto\" | \"AUTO\" | undefined,\n\tpath: string[] | null\n): boolean | DTableEditable<ROW> => {\n\tif (isString(enable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (enable != null) {\n\t\treturn enable;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nconst toColumnEditing = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): DTableColumnEditing<ROW, CELL> => {\n\tconst editing = options.editing;\n\tconst editable = options.editable;\n\tif (editing) {\n\t\treturn {\n\t\t\tenable: toColumnEditingEnable(editing.enable ?? editable, path),\n\t\t\tformatter: editing.formatter,\n\t\t\tunformatter: editing.unformatter,\n\t\t\tvalidator: editing.validator\n\t\t};\n\t}\n\treturn {\n\t\tenable: toColumnEditingEnable(editable, path)\n\t};\n};\n\nconst toComparator = <ROW, CELL>(\n\tgetter: DTableGetter<ROW, CELL>,\n\tindex: number\n): DTableDataComparatorFunction<ROW> => {\n\treturn (rowA: ROW, rowB: ROW): number => {\n\t\tconst valueA = getter(rowA, index) as any;\n\t\tconst valueB = getter(rowB, index) as any;\n\t\treturn valueA < valueB ? -1 : valueB < valueA ? +1 : 0;\n\t};\n};\n\nconst toColumnSorting = <ROW, CELL>(\n\tgetter: DTableGetter<ROW, CELL>,\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumnSorting<ROW> => {\n\tconst sorting = options.sorting;\n\tconst sortable = options.sortable;\n\tif (sorting) {\n\t\tif (sorting.enable || sortable) {\n\t\t\treturn {\n\t\t\t\tenable: true,\n\t\t\t\tcomparator: sorting.comparator || toComparator(getter, index)\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tenable: false\n\t\t};\n\t}\n\tif (sortable) {\n\t\treturn {\n\t\t\tenable: true,\n\t\t\tcomparator: toComparator(getter, index)\n\t\t};\n\t}\n\treturn {\n\t\tenable: false\n\t};\n};\n\nconst toColumnMenu = (\n\toptions?: DMenuOptions<unknown> | DMenu<unknown>\n): DMenu<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (options instanceof DMenu) {\n\t\treturn options;\n\t} else {\n\t\treturn new DMenu(options);\n\t}\n};\n\nconst toColumnDialog = (\n\toptions?: DDialogSelectOptions<unknown> | DTableColumnSelectingDialog<unknown>\n): DTableColumnSelectingDialog<unknown> | undefined => {\n\tif (options == null) {\n\t\treturn undefined;\n\t} else if (\"open\" in options) {\n\t\treturn options;\n\t} else {\n\t\treturn new DDialogSelect(options);\n\t}\n};\n\nconst defaultSelectingGetter = (dialog: DTableColumnSelectingDialog<unknown>): unknown => {\n\treturn dialog.value;\n};\n\nconst defaultSelectingSetter = (): void => {\n\t// DO NOTHING\n};\n\nconst toColumnSelecting = (\n\toptions: DTableColumnSelectingOptions<any, any, any> | undefined\n): DTableColumnSelecting<any, any, any> => {\n\tif (options) {\n\t\treturn {\n\t\t\tgetter: options.getter || defaultSelectingGetter,\n\t\t\tsetter: options.setter || defaultSelectingSetter,\n\t\t\tmenu: toColumnMenu(options.menu),\n\t\t\tmultiple: toColumnMenu(options.multiple),\n\t\t\tdialog: toColumnDialog(options.dialog),\n\t\t\tpromise: options.promise\n\t\t};\n\t}\n\treturn {\n\t\tgetter: defaultSelectingGetter,\n\t\tsetter: defaultSelectingSetter\n\t};\n};\n\nconst toColumnGetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tparts: string[] | null\n): DTableGetter<ROW, CELL> => {\n\tconst getter = options.getter;\n\tif (getter) {\n\t\treturn getter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultGetterEmpty;\n\t\tdefault:\n\t\t\tif (parts == null) {\n\t\t\t\treturn defaultGetter;\n\t\t\t} else {\n\t\t\t\treturn toPathGetter(parts, options.default);\n\t\t\t}\n\t}\n};\n\nconst toColumnSetter = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\ttype: DTableColumnType,\n\tpath: string[] | null\n): DTableSetter<ROW, CELL> => {\n\tconst setter = options.setter;\n\tif (setter) {\n\t\treturn setter;\n\t}\n\tswitch (type) {\n\t\tcase DTableColumnType.BUTTON:\n\t\tcase DTableColumnType.ACTION:\n\t\tcase DTableColumnType.LINK:\n\t\t\treturn defaultSetterEmpty;\n\t\tdefault:\n\t\t\tif (path == null) {\n\t\t\t\treturn defaultSetter;\n\t\t\t} else {\n\t\t\t\treturn toPathSetter(path);\n\t\t\t}\n\t}\n};\n\nconst toColumnPath = <ROW, CELL>(options: DTableColumnOptions<ROW, CELL>): string[] | null => {\n\treturn options.path != null ? options.path.split(\".\") : null;\n};\n\nconst toColumnRenderable = <ROW, CELL>(\n\toptions: DTableColumnOptions<ROW, CELL>,\n\tpath: string[] | null\n): boolean | DTableRenderable<ROW> => {\n\tconst renderable = options.renderable;\n\tif (isString(renderable)) {\n\t\treturn toColumnDataChecker(path);\n\t} else if (renderable != null) {\n\t\treturn renderable;\n\t}\n\treturn true;\n};\n\nconst toColumn = <ROW, CELL>(\n\tindex: number,\n\toptions: DTableColumnOptions<ROW, CELL>\n): DTableColumn<ROW, CELL> => {\n\tlet weight = options.weight;\n\tlet width = options.width;\n\tif (weight != null) {\n\t\tif (width != null) {\n\t\t\twidth = undefined;\n\t\t}\n\t} else if (width == null) {\n\t\tweight = 1;\n\t}\n\tconst type = toEnum(options.type ?? DTableColumnType.TEXT, DTableColumnType);\n\tconst align = toColumnAlign(options, type);\n\tconst label = options.label || \"\";\n\tconst path = toColumnPath(options);\n\tconst getter = toColumnGetter(options, type, path);\n\tconst setter = toColumnSetter(options, type, path);\n\treturn {\n\t\tweight,\n\t\twidth,\n\t\ttype,\n\t\tlabel,\n\t\tgetter,\n\t\tsetter,\n\t\tformatter: options.formatter,\n\t\trenderable: toColumnRenderable(options, path),\n\t\talign,\n\n\t\tediting: toColumnEditing(options, path),\n\t\tsorting: toColumnSorting(getter, index, options),\n\n\t\theader: options.header,\n\t\tbody: options.body,\n\n\t\tselecting: toColumnSelecting(options.selecting),\n\n\t\tcategory: options.category,\n\t\tfrozen: options.frozen,\n\t\toffset: 0.0,\n\n\t\tlink: options.link\n\t};\n};\n\nconst toColumns = <ROW, CELL>(\n\toptions: Array<DTableColumnOptions<ROW, CELL>>\n): Array<DTableColumn<ROW, CELL>> => {\n\tconst result = [];\n\tfor (let i = 0, imax = options.length; i < imax; ++i) {\n\t\tresult.push(toColumn(i, options[i]));\n\t}\n\treturn result;\n};\n\nconst toFrozen = <ROW, CELL>(columns: Array<DTableColumn<ROW, CELL>>): number => {\n\tfor (let i = columns.length - 1; 0 <= i; --i) {\n\t\tif (columns[i].frozen === true) {\n\t\t\treturn i + 1;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport class DTable<\n\tROW,\n\tDATA extends DTableData<ROW> = DTableDataList<ROW>,\n\tTHEME extends DThemeTable = DThemeTable,\n\tCONTENT_OPTIONS extends DBaseOptions = DContentOptions,\n\tOPTIONS extends DTableOptions<ROW, DATA, THEME, CONTENT_OPTIONS> = DTableOptions<\n\t\tROW,\n\t\tDATA,\n\t\tTHEME,\n\t\tCONTENT_OPTIONS\n\t>\n> extends DPane<THEME, CONTENT_OPTIONS, OPTIONS> {\n\tprotected _columns?: Array<DTableColumn<ROW, unknown>>;\n\tprotected _frozen?: number;\n\tprotected _categories?: DTableCategory[];\n\tprotected _headerOffset?: number;\n\tprotected _header?: DTableHeader<ROW> | null;\n\tprotected _bodyOffset?: number;\n\tprotected _body?: DTableBody<ROW, DATA>;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tconst content = this.content;\n\t\tcontent.setWidth(this.toContentWidth(options));\n\n\t\tconst body = this.body;\n\t\tcontent.addChild(body);\n\t\tif (body.data.selection.type !== DTableDataSelectionType.NONE) {\n\t\t\tUtilPointerEvent.onClick(this, (e: InteractionEvent): void => {\n\t\t\t\tbody.onRowClick(e);\n\t\t\t});\n\t\t}\n\n\t\tconst header = this.header;\n\t\tif (header) {\n\t\t\tcontent.addChild(header);\n\t\t}\n\n\t\tconst categories = this.categories;\n\t\tfor (let i = categories.length - 1; 0 <= i; --i) {\n\t\t\tcontent.addChild(categories[i]);\n\t\t}\n\n\t\tbody.update();\n\t}\n\n\tget columns(): Array<DTableColumn<ROW, unknown>> {\n\t\tlet result = this._columns;\n\t\tif (result == null) {\n\t\t\tconst options = this._options;\n\t\t\tresult = options ? toColumns(options.columns) : [];\n\t\t\tthis._columns = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget frozen(): number {\n\t\tlet result = this._frozen;\n\t\tif (result == null) {\n\t\t\tresult = toFrozen(this.columns);\n\t\t\tthis._frozen = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget categories(): DTableCategory[] {\n\t\tlet result = this._categories;\n\t\tif (result == null) {\n\t\t\tresult = this.newCategories(this._options, this.columns, this.frozen);\n\t\t\tthis._categories = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected initContent(content: DBase): void {\n\t\tsuper.initContent(content);\n\t\tcontent.state.isFocusReverse = true;\n\t}\n\n\tprotected onContentChange(): void {\n\t\tsuper.onContentChange();\n\t\tthis.body.update();\n\t}\n\n\tonResize(newWidth: number, newHeight: number, oldWidth: number, oldHeight: number): void {\n\t\tconst scrollbar = this.scrollbar;\n\t\tscrollbar.lock();\n\n\t\tconst body = this.body;\n\t\tbody.lock();\n\t\tsuper.onResize(newWidth, newHeight, oldWidth, oldHeight);\n\t\tbody.update();\n\t\tbody.unlock(true);\n\n\t\tscrollbar.unlock(true);\n\t}\n\n\tprotected getCategoryCount(columns: Array<DTableColumn<ROW, unknown>>): number {\n\t\tlet result = 0;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst category = columns[i].category;\n\t\t\tif (category != null) {\n\t\t\t\tconst count = isString(category) ? 1 : category.length;\n\t\t\t\tresult = Math.max(result, count);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryLabel(\n\t\tindex: number,\n\t\tcategory: string | string[] | undefined\n\t): string | undefined {\n\t\tif (category) {\n\t\t\tif (isString(category)) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn category;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (index < category.length) {\n\t\t\t\t\treturn category[index];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprotected isSameCategory(\n\t\tindex: number,\n\t\ta: string | string[] | undefined,\n\t\tb: string | string[] | undefined\n\t): boolean {\n\t\tif (a != null) {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn b.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn b.length === 1 && a === b[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (isString(b)) {\n\t\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\t\treturn a.length <= index;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn a.length === 1 && a[0] === b;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (a.length <= index && b.length <= index) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} else if (b.length === a.length) {\n\t\t\t\t\t\t\tfor (let i = index, imax = a.length; i < imax; ++i) {\n\t\t\t\t\t\t\t\tif (a[i] !== b[i]) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (isString(a)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (a.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (b != null) {\n\t\t\t\tif (isString(b)) {\n\t\t\t\t\tif (0 < index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (b.length <= index) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected toCategoryColumns(\n\t\tindex: number,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategoryColumn[] {\n\t\tconst result: DTableCategoryColumn[] = [];\n\t\tlet tcolumn: DTableColumn<ROW, unknown> | null = null;\n\t\tlet ccolumn: DTableCategoryColumn | null = null;\n\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\tconst column = columns[i];\n\t\t\tif (\n\t\t\t\ti !== frozen &&\n\t\t\t\tccolumn &&\n\t\t\t\ttcolumn &&\n\t\t\t\tthis.isSameCategory(index, tcolumn.category, column.category)\n\t\t\t) {\n\t\t\t\tif (ccolumn.weight != null && column.weight != null) {\n\t\t\t\t\tccolumn.weight += column.weight;\n\t\t\t\t} else if (ccolumn.width != null && column.width != null) {\n\t\t\t\t\tccolumn.width += column.width;\n\t\t\t\t} else {\n\t\t\t\t\ttcolumn = column;\n\t\t\t\t\tccolumn = {\n\t\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\t\tweight: column.weight,\n\t\t\t\t\t\twidth: column.width,\n\t\t\t\t\t\toffset: 0.0\n\t\t\t\t\t};\n\t\t\t\t\tresult.push(ccolumn);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttcolumn = column;\n\t\t\t\tccolumn = {\n\t\t\t\t\tlabel: this.toCategoryLabel(index, column.category),\n\t\t\t\t\tweight: column.weight,\n\t\t\t\t\twidth: column.width,\n\t\t\t\t\toffset: 0.0\n\t\t\t\t};\n\t\t\t\tresult.push(ccolumn);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected toCategoryOptions(\n\t\tindex: number,\n\t\toptions: DTableCategoryOptions | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableCategoryOptions {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = this.toCategoryColumns(index, columns, frozen);\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset == null) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns: this.toCategoryColumns(index, columns, frozen),\n\t\t\tfrozen,\n\t\t\toffset\n\t\t};\n\t}\n\n\tprotected newCategories(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number\n\t): DTableCategory[] {\n\t\tconst count = this.getCategoryCount(columns);\n\t\tconst result: DTableCategory[] = [];\n\t\tlet offset: number = 0;\n\t\tfor (let i = count - 1; 0 <= i; --i) {\n\t\t\tconst category = new DTableCategory(\n\t\t\t\tthis.toCategoryOptions(i, options?.category, columns, frozen, offset)\n\t\t\t);\n\t\t\tresult.push(category);\n\t\t\toffset += category.height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tonDblClick(e: MouseEvent | TouchEvent, interactionManager: InteractionManager): boolean {\n\t\tconst result = this.body.onDblClick(e, interactionManager);\n\t\treturn super.onDblClick(e, interactionManager) || result;\n\t}\n\n\tprotected newScrollBar(options?: DPaneScrollBarOptions): DTableScrollBar {\n\t\treturn new DTableScrollBar(this, options, (isRegionVisible: boolean): void => {\n\t\t\tthis.onScrollBarUpdate(isRegionVisible);\n\t\t});\n\t}\n\n\tprotected toContentWidth(options?: OPTIONS): DCoordinateSize {\n\t\tlet columnWidthTotal = 0;\n\t\tconst columns = options?.columns;\n\t\tif (columns) {\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tconst column = columns[i];\n\t\t\t\tconst columnWidth = column.width;\n\t\t\t\tif (columnWidth != null) {\n\t\t\t\t\tcolumnWidthTotal += columnWidth;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (0 < columnWidthTotal) {\n\t\t\treturn (p: number): number => {\n\t\t\t\treturn Math.max(p, columnWidthTotal);\n\t\t\t};\n\t\t}\n\t\treturn \"100%\";\n\t}\n\n\tget headerOffset(): number {\n\t\tlet result = this._headerOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newHeaderOffset();\n\t\t\tthis._headerOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newHeaderOffset(): number {\n\t\tlet result = 0;\n\t\tconst categories = this.categories;\n\t\tfor (let i = 0, imax = categories.length; i < imax; ++i) {\n\t\t\tresult += categories[i].height;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget header(): DTableHeader<ROW> | null {\n\t\tlet result = this._header;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newHeader(this._options, this.columns, this.frozen, this.headerOffset);\n\t\t\tthis._header = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected hasHeader(options?: OPTIONS): boolean {\n\t\tif (options) {\n\t\t\tconst columns = options.columns;\n\t\t\tfor (let i = 0, imax = columns.length; i < imax; ++i) {\n\t\t\t\tif (columns[i].label != null) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected newHeader(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeader<ROW> | null {\n\t\tif (this.hasHeader(options)) {\n\t\t\treturn new DTableHeader<ROW>(\n\t\t\t\tthis.toHeaderOptions(options?.header, columns, frozen, offset)\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected toHeaderOptions(\n\t\toptions: DTableHeaderOptions<ROW> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableHeaderOptions<ROW> {\n\t\tif (options) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.table === undefined) {\n\t\t\t\toptions.table = this;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\treturn {\n\t\t\tcolumns,\n\t\t\tfrozen,\n\t\t\toffset,\n\t\t\ttable: this\n\t\t};\n\t}\n\n\tget bodyOffset(): number {\n\t\tlet result = this._bodyOffset;\n\t\tif (result == null) {\n\t\t\tresult = this.newBodyOffset();\n\t\t\tthis._bodyOffset = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBodyOffset(): number {\n\t\treturn this.headerOffset + (this.header?.height ?? 0);\n\t}\n\n\tget body(): DTableBody<ROW, DATA> {\n\t\tlet result = this._body;\n\t\tif (result == null) {\n\t\t\tresult = this.newBody(this._options, this.columns, this.frozen, this.bodyOffset);\n\t\t\tthis._body = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newBody(\n\t\toptions: OPTIONS | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number\n\t): DTableBody<ROW, DATA> {\n\t\treturn new DTableBody<ROW, DATA>(\n\t\t\tthis.toBodyOptions(options?.body, columns, frozen, offset, options?.data)\n\t\t);\n\t}\n\n\tprotected toBodyOptions(\n\t\toptions: DTableBodyOptions<ROW, DATA> | undefined,\n\t\tcolumns: Array<DTableColumn<ROW, unknown>>,\n\t\tfrozen: number,\n\t\toffset: number,\n\t\tdata: ROW[] | DTableDataOptions<ROW> | DATA | undefined\n\t): DTableBodyOptions<ROW, DATA> {\n\t\tif (options != null) {\n\t\t\tif (options.columns === undefined) {\n\t\t\t\toptions.columns = columns;\n\t\t\t}\n\t\t\tif (options.frozen == null) {\n\t\t\t\toptions.frozen = frozen;\n\t\t\t}\n\t\t\tif (options.offset === undefined) {\n\t\t\t\toptions.offset = offset;\n\t\t\t}\n\t\t\tif (options.data === undefined && data !== undefined) {\n\t\t\t\tif (isArray(data)) {\n\t\t\t\t\toptions.data = {\n\t\t\t\t\t\trows: data\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\toptions.data = data;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options.height === undefined && options.weight === undefined) {\n\t\t\t\toptions.weight = 1;\n\t\t\t}\n\t\t\treturn options;\n\t\t}\n\t\tif (isArray(data)) {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata: {\n\t\t\t\t\trows: data\n\t\t\t\t},\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tcolumns,\n\t\t\t\tfrozen,\n\t\t\t\toffset,\n\t\t\t\tdata,\n\t\t\t\tweight: 1\n\t\t\t};\n\t\t}\n\t}\n\n\tget data(): DATA {\n\t\treturn this.body.data;\n\t}\n\n\tprotected getFocusedChildClippingRect(\n\t\tfocused: DBase,\n\t\tcontentX: number,\n\t\tcontentY: number,\n\t\tcontentWidth: number,\n\t\tcontentHeight: number,\n\t\twidth: number,\n\t\theight: number,\n\t\tresult: Rectangle\n\t): Rectangle {\n\t\tsuper.getFocusedChildClippingRect(\n\t\t\tfocused,\n\t\t\tcontentX,\n\t\t\tcontentY,\n\t\t\tcontentWidth,\n\t\t\tcontentHeight,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tresult\n\t\t);\n\n\t\tconst cell = this.toCell(focused);\n\t\tif (cell) {\n\t\t\t// X\n\t\t\tconst dx = contentX + this.toFrozenCellX(cell) - result.x;\n\t\t\tif (0 < dx) {\n\t\t\t\tresult.x += dx;\n\t\t\t\tresult.width -= dx;\n\t\t\t}\n\n\t\t\t// Y\n\t\t\tif (cell.parent.parent === this.body) {\n\t\t\t\tconst dy = this.bodyOffset;\n\t\t\t\tresult.y += dy;\n\t\t\t\tresult.height -= dy;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn result;\n\t}\n\n\tprotected toFrozenCellX(cell: DBase): number {\n\t\tconst frozen = this.frozen;\n\t\tif (0 < frozen) {\n\t\t\tconst cells = cell.parent.children as DBase[];\n\t\t\tconst cellIndex = cells.indexOf(cell);\n\t\t\tif (0 <= cellIndex) {\n\t\t\t\tconst cellsLength = cells.length;\n\t\t\t\tconst columnIndex = cellsLength - 1 - cellIndex;\n\t\t\t\tif (frozen <= columnIndex) {\n\t\t\t\t\tconst cellFrozen = cells[cellsLength - frozen];\n\t\t\t\t\treturn cellFrozen.position.x + cellFrozen.width;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\tonKeyDown(e: KeyboardEvent): boolean {\n\t\tUtilKeyboardEvent.moveFocusHorizontally(e, this);\n\t\tconst isArrowUpKey = UtilKeyboardEvent.isArrowUpKey(e);\n\t\tconst isArrowDownKey = UtilKeyboardEvent.isArrowDownKey(e);\n\t\tif (isArrowUpKey || isArrowDownKey) {\n\t\t\tthis.onKeyDownArrowUpOrDown(e, isArrowDownKey);\n\t\t}\n\t\treturn super.onKeyDown(e);\n\t}\n\n\tprotected onKeyDownArrowUpOrDown(e: KeyboardEvent, isDown: boolean): boolean {\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst focusController = layer.getFocusController();\n\t\tconst oldFocusable = focusController.get();\n\t\tif (oldFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCell = this.toCell(oldFocusable);\n\t\tif (oldCell == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldRow = oldCell.parent;\n\t\tif (oldRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRowChild = focusController.find(oldRow, false, false, isDown, this);\n\t\tif (newRowChild == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCellSibling = this.toCell(newRowChild);\n\t\tif (newCellSibling == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newRow = newCellSibling.parent;\n\t\tif (newRow == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst oldCellIndex = oldRow.children.indexOf(oldCell);\n\t\tif (oldCellIndex < 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newCell = newRow.children[oldCellIndex];\n\t\tif (newCell == null || newCell === oldCell || !(\"state\" in newCell)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst newFocusable = focusController.find(newCell, true, true, isDown, this);\n\t\tif (newFocusable == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfocusController.focus(newFocusable);\n\t\treturn true;\n\t}\n\n\tprotected toCell(focused: DFocusable): DBase | null {\n\t\tlet current: DFocusable | DFocusableContainer | null = focused;\n\t\twhile (current != null) {\n\t\t\tconst parent: DFocusableContainer | null = current.parent;\n\t\t\tif (parent instanceof DTableRow) {\n\t\t\t\tif (current instanceof DBase) {\n\t\t\t\t\treturn current;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tcurrent = parent;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DTable\";\n\t}\n}\n"]}
|
package/dist/wcardinal-ui.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.163.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -82924,6 +82924,9 @@ var toColumnAlign = function (options, type) {
|
|
|
82924
82924
|
case DTableColumnType.SELECT:
|
|
82925
82925
|
case DTableColumnType.ACTION:
|
|
82926
82926
|
case DTableColumnType.LINK:
|
|
82927
|
+
case DTableColumnType.CHECK:
|
|
82928
|
+
case DTableColumnType.CHECK_SINGLE:
|
|
82929
|
+
case DTableColumnType.COLOR:
|
|
82927
82930
|
return DAlignHorizontal.CENTER;
|
|
82928
82931
|
default:
|
|
82929
82932
|
return DAlignHorizontal.LEFT;
|
package/dist/wcardinal-ui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.163.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -65789,6 +65789,9 @@
|
|
|
65789
65789
|
case DTableColumnType.SELECT:
|
|
65790
65790
|
case DTableColumnType.ACTION:
|
|
65791
65791
|
case DTableColumnType.LINK:
|
|
65792
|
+
case DTableColumnType.CHECK:
|
|
65793
|
+
case DTableColumnType.CHECK_SINGLE:
|
|
65794
|
+
case DTableColumnType.COLOR:
|
|
65792
65795
|
return DAlignHorizontal.CENTER;
|
|
65793
65796
|
default:
|
|
65794
65797
|
return DAlignHorizontal.LEFT;
|