@sme.up/ketchup 11.0.0-SNAPSHOT-20241010160405 → 11.0.0-SNAPSHOT-20241010160438
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/cjs/kup-activity-timeline.cjs.entry.js +1 -1
- package/dist/cjs/kup-autocomplete_27.cjs.entry.js +1 -1
- package/dist/cjs/kup-box.cjs.entry.js +1 -1
- package/dist/cjs/{kup-data-table-helper-c8253b11.js → kup-data-table-helper-acfd0cd5.js} +1 -2
- package/dist/cjs/kup-data-table-helper-acfd0cd5.js.map +1 -0
- package/dist/collection/components/kup-data-table/kup-data-table-helper.js +1 -2
- package/dist/collection/components/kup-data-table/kup-data-table-helper.js.map +1 -1
- package/dist/components/kup-autocomplete2.js +1 -2
- package/dist/components/kup-autocomplete2.js.map +1 -1
- package/dist/components/kup-box2.js +1 -1
- package/dist/components/kup-card-list.js +1 -1
- package/dist/components/kup-cell.js +1 -1
- package/dist/components/kup-dashboard.js +1 -1
- package/dist/components/kup-family-tree.js +1 -1
- package/dist/components/kup-image-list.js +1 -1
- package/dist/components/kup-input-panel.js +1 -1
- package/dist/components/kup-magic-box.js +1 -1
- package/dist/components/kup-manager.js +1 -1
- package/dist/components/kup-numeric-picker.js +1 -1
- package/dist/components/kup-planner.js +1 -1
- package/dist/components/kup-typography.js +1 -1
- package/dist/esm/{f-cell-f7553ea4.js → f-cell-bb10c8ff.js} +4 -4
- package/dist/esm/{f-cell-f7553ea4.js.map → f-cell-bb10c8ff.js.map} +1 -1
- package/dist/esm/{f-chip-c32b6f69.js → f-chip-284f27e4.js} +2 -2
- package/dist/esm/{f-chip-c32b6f69.js.map → f-chip-284f27e4.js.map} +1 -1
- package/dist/esm/{f-paginator-utils-d1d04c2f.js → f-paginator-utils-a014ab03.js} +2 -2
- package/dist/esm/{f-paginator-utils-d1d04c2f.js.map → f-paginator-utils-a014ab03.js.map} +1 -1
- package/dist/esm/{f-text-field-35c57df3.js → f-text-field-6920059d.js} +2 -2
- package/dist/esm/{f-text-field-35c57df3.js.map → f-text-field-6920059d.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/kup-accordion.entry.js +1 -1
- package/dist/esm/kup-activity-timeline.entry.js +2 -2
- package/dist/esm/kup-autocomplete_27.entry.js +6 -6
- package/dist/esm/kup-box.entry.js +6 -6
- package/dist/esm/kup-calendar.entry.js +2 -2
- package/dist/esm/kup-card-list.entry.js +1 -1
- package/dist/esm/kup-cell.entry.js +4 -4
- package/dist/esm/kup-dashboard.entry.js +2 -2
- package/dist/esm/{kup-data-table-helper-c76064a4.js → kup-data-table-helper-27f5fa75.js} +2 -3
- package/dist/esm/kup-data-table-helper-27f5fa75.js.map +1 -0
- package/dist/esm/kup-drawer.entry.js +1 -1
- package/dist/esm/kup-echart.entry.js +1 -1
- package/dist/esm/kup-editor.entry.js +1 -1
- package/dist/esm/kup-family-tree.entry.js +1 -1
- package/dist/esm/kup-grid.entry.js +1 -1
- package/dist/esm/kup-iframe.entry.js +1 -1
- package/dist/esm/kup-image-list.entry.js +4 -4
- package/dist/esm/kup-input-panel.entry.js +4 -4
- package/dist/esm/kup-lazy.entry.js +1 -1
- package/dist/esm/kup-magic-box.entry.js +1 -1
- package/dist/esm/{kup-manager-86d68a97.js → kup-manager-cb026184.js} +2 -2
- package/dist/esm/{kup-manager-86d68a97.js.map → kup-manager-cb026184.js.map} +1 -1
- package/dist/esm/kup-nav-bar.entry.js +1 -1
- package/dist/esm/kup-numeric-picker.entry.js +2 -2
- package/dist/esm/kup-pdf.entry.js +1 -1
- package/dist/esm/kup-photo-frame.entry.js +1 -1
- package/dist/esm/kup-planner.entry.js +2 -2
- package/dist/esm/kup-probe.entry.js +1 -1
- package/dist/esm/kup-qlik.entry.js +1 -1
- package/dist/esm/kup-snackbar.entry.js +1 -1
- package/dist/esm/kup-typography-list.entry.js +1 -1
- package/dist/esm/kup-typography.entry.js +1 -1
- package/dist/ketchup/index.esm.js +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/{p-fcfc3a40.entry.js → p-00113824.entry.js} +2 -2
- package/dist/ketchup/{p-86f1cc33.entry.js → p-0ce9ed44.entry.js} +2 -2
- package/dist/ketchup/p-1fb5db03.entry.js +2 -0
- package/dist/ketchup/{p-0e4c881b.entry.js.map → p-1fb5db03.entry.js.map} +1 -1
- package/dist/ketchup/{p-26e50f21.entry.js → p-206002b6.entry.js} +2 -2
- package/dist/ketchup/{p-88d1d651.entry.js → p-21982408.entry.js} +2 -2
- package/dist/ketchup/{p-91cab066.entry.js → p-2a910415.entry.js} +2 -2
- package/dist/ketchup/{p-fb352db8.entry.js → p-3bc5a178.entry.js} +2 -2
- package/dist/ketchup/{p-820d1ce5.entry.js → p-41f7543a.entry.js} +2 -2
- package/dist/ketchup/{p-b373183c.entry.js → p-519ee87e.entry.js} +2 -2
- package/dist/ketchup/{p-7df94c07.js → p-555e004e.js} +2 -2
- package/dist/ketchup/{p-3ca9202f.entry.js → p-5767c4aa.entry.js} +2 -2
- package/dist/ketchup/{p-9ff1f2bb.entry.js → p-60f786c4.entry.js} +2 -2
- package/dist/ketchup/{p-78a0e8e3.entry.js → p-62987aa5.entry.js} +2 -2
- package/dist/ketchup/{p-5ce02cb0.entry.js → p-6bc5a1d5.entry.js} +2 -2
- package/dist/ketchup/{p-8ea251c1.entry.js → p-6d80b3ed.entry.js} +2 -2
- package/dist/ketchup/{p-3f79b0e3.entry.js → p-74461bca.entry.js} +2 -2
- package/dist/ketchup/{p-60c6be17.js → p-7b7a91e1.js} +2 -2
- package/dist/ketchup/{p-144ac67e.js → p-8ba70b94.js} +2 -2
- package/dist/ketchup/{p-fce9b0f2.entry.js → p-8fa25aa9.entry.js} +2 -2
- package/dist/ketchup/{p-25de1507.entry.js → p-8fd0f625.entry.js} +2 -2
- package/dist/ketchup/{p-ad281267.entry.js → p-9a0a1c0a.entry.js} +2 -2
- package/dist/ketchup/{p-22a6641c.entry.js → p-9a9e8b00.entry.js} +2 -2
- package/dist/ketchup/{p-db6a527a.entry.js → p-a1e1361a.entry.js} +2 -2
- package/dist/ketchup/{p-f43a820e.entry.js → p-a51b6c48.entry.js} +2 -2
- package/dist/ketchup/{p-0b706c2a.entry.js → p-b3fbf321.entry.js} +2 -2
- package/dist/ketchup/p-b6afb372.js +2 -0
- package/dist/ketchup/p-b6afb372.js.map +1 -0
- package/dist/ketchup/{p-2a79ac70.entry.js → p-b8537818.entry.js} +2 -2
- package/dist/ketchup/{p-ee386eb4.entry.js → p-b9e95f29.entry.js} +2 -2
- package/dist/ketchup/{p-c4a701a4.entry.js → p-c6d15707.entry.js} +2 -2
- package/dist/ketchup/{p-2ed2c55e.entry.js → p-d6b311e2.entry.js} +2 -2
- package/dist/ketchup/{p-81348418.js → p-d823d538.js} +2 -2
- package/dist/ketchup/p-ddf793af.js +2 -0
- package/dist/ketchup/{p-eb7c02b9.entry.js → p-ede6bac7.entry.js} +2 -2
- package/dist/ketchup/{p-095646ca.entry.js → p-f085d15f.entry.js} +2 -2
- package/package.json +1 -1
- package/dist/cjs/kup-data-table-helper-c8253b11.js.map +0 -1
- package/dist/esm/kup-data-table-helper-c76064a4.js.map +0 -1
- package/dist/ketchup/p-0e4c881b.entry.js +0 -2
- package/dist/ketchup/p-610ac281.js +0 -2
- package/dist/ketchup/p-610ac281.js.map +0 -1
- package/dist/ketchup/p-9a17abc3.js +0 -2
- /package/dist/ketchup/{p-fcfc3a40.entry.js.map → p-00113824.entry.js.map} +0 -0
- /package/dist/ketchup/{p-86f1cc33.entry.js.map → p-0ce9ed44.entry.js.map} +0 -0
- /package/dist/ketchup/{p-26e50f21.entry.js.map → p-206002b6.entry.js.map} +0 -0
- /package/dist/ketchup/{p-88d1d651.entry.js.map → p-21982408.entry.js.map} +0 -0
- /package/dist/ketchup/{p-91cab066.entry.js.map → p-2a910415.entry.js.map} +0 -0
- /package/dist/ketchup/{p-fb352db8.entry.js.map → p-3bc5a178.entry.js.map} +0 -0
- /package/dist/ketchup/{p-820d1ce5.entry.js.map → p-41f7543a.entry.js.map} +0 -0
- /package/dist/ketchup/{p-b373183c.entry.js.map → p-519ee87e.entry.js.map} +0 -0
- /package/dist/ketchup/{p-7df94c07.js.map → p-555e004e.js.map} +0 -0
- /package/dist/ketchup/{p-3ca9202f.entry.js.map → p-5767c4aa.entry.js.map} +0 -0
- /package/dist/ketchup/{p-9ff1f2bb.entry.js.map → p-60f786c4.entry.js.map} +0 -0
- /package/dist/ketchup/{p-78a0e8e3.entry.js.map → p-62987aa5.entry.js.map} +0 -0
- /package/dist/ketchup/{p-5ce02cb0.entry.js.map → p-6bc5a1d5.entry.js.map} +0 -0
- /package/dist/ketchup/{p-8ea251c1.entry.js.map → p-6d80b3ed.entry.js.map} +0 -0
- /package/dist/ketchup/{p-3f79b0e3.entry.js.map → p-74461bca.entry.js.map} +0 -0
- /package/dist/ketchup/{p-60c6be17.js.map → p-7b7a91e1.js.map} +0 -0
- /package/dist/ketchup/{p-144ac67e.js.map → p-8ba70b94.js.map} +0 -0
- /package/dist/ketchup/{p-fce9b0f2.entry.js.map → p-8fa25aa9.entry.js.map} +0 -0
- /package/dist/ketchup/{p-25de1507.entry.js.map → p-8fd0f625.entry.js.map} +0 -0
- /package/dist/ketchup/{p-ad281267.entry.js.map → p-9a0a1c0a.entry.js.map} +0 -0
- /package/dist/ketchup/{p-22a6641c.entry.js.map → p-9a9e8b00.entry.js.map} +0 -0
- /package/dist/ketchup/{p-db6a527a.entry.js.map → p-a1e1361a.entry.js.map} +0 -0
- /package/dist/ketchup/{p-f43a820e.entry.js.map → p-a51b6c48.entry.js.map} +0 -0
- /package/dist/ketchup/{p-0b706c2a.entry.js.map → p-b3fbf321.entry.js.map} +0 -0
- /package/dist/ketchup/{p-2a79ac70.entry.js.map → p-b8537818.entry.js.map} +0 -0
- /package/dist/ketchup/{p-ee386eb4.entry.js.map → p-b9e95f29.entry.js.map} +0 -0
- /package/dist/ketchup/{p-c4a701a4.entry.js.map → p-c6d15707.entry.js.map} +0 -0
- /package/dist/ketchup/{p-2ed2c55e.entry.js.map → p-d6b311e2.entry.js.map} +0 -0
- /package/dist/ketchup/{p-81348418.js.map → p-d823d538.js.map} +0 -0
- /package/dist/ketchup/{p-9a17abc3.js.map → p-ddf793af.js.map} +0 -0
- /package/dist/ketchup/{p-eb7c02b9.entry.js.map → p-ede6bac7.entry.js.map} +0 -0
- /package/dist/ketchup/{p-095646ca.entry.js.map → p-f085d15f.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kup-data-table-helper.js","sourceRoot":"","sources":["../../../src/components/kup-data-table/kup-data-table-helper.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SortObject,\n SortMode,\n GroupObject,\n TotalMode,\n TotalsMap,\n KupDataTableRow,\n KupDataTableRowGroup,\n KupDataTableCell,\n KupDataTableDataset,\n} from './kup-data-table-declarations';\nimport { GenericFilter } from '../../utils/filters/filters-declarations';\nimport { FiltersColumnMenu } from '../../utils/filters/filters-column-menu';\nimport {\n getCellValueForDisplay,\n getColumnByName,\n compareCell,\n CMBandACPAdapter,\n RADAdapter,\n CHKAdapter,\n CHIAdapter,\n SWTAdapter,\n} from '../../utils/cell-utils';\nimport { FiltersRows } from '../../utils/filters/filters-rows';\nimport { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport {\n KupDataColumn,\n KupDataDataset,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { KupDatesFormats } from '../../managers/kup-dates/kup-dates-declarations';\nimport { FCellShapes } from '../../f-components/f-cell/f-cell-declarations';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\n\nconst dom: KupDom = document.documentElement as KupDom;\n\nexport function sortRows(\n rows: Array<KupDataTableRow> = [],\n sort: Array<SortObject> = []\n): Array<KupDataTableRow> {\n if (!rows || rows.length === 0) {\n return [];\n }\n\n // check if row is group\n if (rows[0].group) {\n return sortGroupRows(rows, sort);\n }\n\n // sorting rows\n if (!sort || sort.length === 0) {\n // no sort -> return rows as they are\n return rows;\n }\n\n // check multiple sort\n const isMultiSort = sort.length > 1;\n\n // sorting rows\n return rows.slice(0).sort((r1: KupDataTableRow, r2: KupDataTableRow) => {\n if (isMultiSort) {\n for (let i = 0; i < sort.length; i++) {\n const compare = compareRows(r1, r2, sort[i]);\n\n if (compare !== 0) {\n // not same row\n return compare;\n }\n }\n\n // same row\n return 0;\n } else {\n return compareRows(r1, r2, sort[0]);\n }\n });\n}\n\nfunction sortGroupRows(\n rows: Array<KupDataTableRow> = [],\n sort: Array<SortObject> = []\n): Array<KupDataTableRow> {\n if (!rows || rows.length === 0) {\n return [];\n }\n\n // getting columm group\n const groupColumn = rows[0].group.column;\n\n // check if column is in sort\n let sortObject = getSortOnColumn(groupColumn, sort);\n\n if (!sortObject) {\n sortObject = {\n column: groupColumn,\n sortMode: SortMode.A,\n };\n }\n\n // sorting rows\n rows.sort((r1, r2) => {\n // creating fake cells\n const cell1: KupDataTableCell = {\n obj: r1.group.obj,\n value: r1.group.id,\n };\n\n const cell2: KupDataTableCell = {\n obj: r2.group.obj,\n value: r2.group.id,\n };\n\n return compareCell(cell1, cell2, sortObject.sortMode);\n });\n\n // sorting children\n rows.forEach((row) => {\n row.group.children = sortRows(row.group.children, sort);\n });\n\n return rows;\n}\n\nfunction getSortOnColumn(\n column: string = '',\n sort: Array<SortObject> = []\n): SortObject {\n if (!column || !sort || sort.length === 0) {\n return null;\n }\n\n for (let sortObject of sort) {\n if (sortObject.column === column) {\n return sortObject;\n }\n }\n\n return null;\n}\n\nfunction compareRows(\n r1: KupDataTableRow,\n r2: KupDataTableRow,\n sortObj: SortObject\n): number {\n const cell1: KupDataTableCell = r1.cells[sortObj.column];\n const cell2: KupDataTableCell = r2.cells[sortObj.column];\n\n if (!cell1 && !cell2) {\n return 0;\n }\n\n if (!cell1) {\n return 1;\n }\n\n if (!cell2) {\n return -1;\n }\n\n return compareCell(cell1, cell2, sortObj.sortMode);\n}\n\n//-------- FILTER FUNCTIONS --------\n/**\n * Filters the rows data of a data-table component according to the parameters\n *\n * @param rows - The data of the rows to filter.\n * @param filters - The the filters for each column.\n * @param globalFilter - A global filter applied to all columns.\n * @param columns - The colmns on which the filter will take effect.\n * @todo This function can be improved in its speed by a refactor in which from two different cycles of execution for\n * single filters and global filter, all controls on a single column are done in a single cycle.\n */\n\nexport function filterRows(\n rows: Array<KupDataTableRow> = [],\n filters: GenericFilter = {},\n globalFilter: string = '',\n columns: KupDataColumn[] = [],\n columnFilters?: FiltersColumnMenu,\n filtersRows?: FiltersRows\n): Array<KupDataTableRow> {\n if (filtersRows == null) {\n filtersRows = new FiltersRows();\n }\n\n return filtersRows.filterRows(\n rows,\n filters,\n globalFilter,\n columns,\n columnFilters\n );\n}\n\nexport function groupRows(\n columns: KupDataColumn[] = [],\n rows: KupDataTableRow[] = [],\n groups: GroupObject[] = [],\n totals: TotalsMap = {}\n): Array<KupDataTableRow> {\n if (!rows) {\n return [];\n }\n\n if (!groups || groups.length === 0 || !columns || columns.length === 0) {\n return rows;\n }\n\n // Keeps label of the valid columns\n const columnLabels: { [index: string]: string } = {};\n\n // remove invalid groups and store column labels\n const validGroups = groups.filter(({ column }) => {\n for (let { name, title } of columns) {\n if (name === column) {\n // Store label of the columns\n columnLabels[name] = title;\n return true;\n }\n }\n return false;\n });\n\n if (validGroups.length === 0) {\n // no valid groups\n return rows;\n }\n\n // creating root\n const groupRows: Array<KupDataTableRow> = [];\n\n // obj used to calculate the group distinct value\n let distinctObj = {};\n\n rows.forEach((row: KupDataTableRow) => {\n // getting column name from first group\n const columnName = validGroups[0].column;\n // getting row value\n const cell = row.cells[columnName];\n\n if (cell) {\n const column = getColumnByName(columns, columnName);\n const cellValueForDisplay = getCellValueForDisplay(column, cell);\n const cellValue = cell.value;\n let groupRow: KupDataTableRow = null;\n // check in already in groupedRow\n for (let currentGroupRow of groupRows) {\n if (currentGroupRow.group.label === cellValueForDisplay) {\n groupRow = currentGroupRow;\n break;\n }\n }\n if (groupRow === null) {\n // create group row\n groupRow = {\n group: {\n id: cellValue,\n parent: null,\n column: columnName,\n columnLabel: columnLabels[columnName],\n expanded: false,\n label: cellValueForDisplay,\n children: [],\n obj: cell.obj,\n totals: {},\n },\n cells: {},\n };\n // add group to list\n groupRows.push(groupRow);\n }\n for (let i = 1; i < validGroups.length; i++) {\n const group = validGroups[i];\n // getting cell value\n const tempCell = row.cells[group.column];\n if (tempCell) {\n const column = getColumnByName(columns, group.column);\n const tempCellValueForDisplay = getCellValueForDisplay(\n column,\n tempCell\n );\n const tempCellValue = tempCell.value;\n // check if group already exists\n let tempGroupingRow: KupDataTableRow = null;\n for (let j = 0; j < groupRow.group.children.length; j++) {\n const childGroup = groupRow.group.children[j];\n const groupLabel = childGroup.group.label;\n\n if (groupLabel === tempCellValueForDisplay) {\n tempGroupingRow = childGroup;\n break;\n }\n }\n if (!tempGroupingRow) {\n tempGroupingRow = {\n cells: {},\n group: {\n id: tempCellValue,\n parent: groupRow,\n column: group.column,\n columnLabel: columnLabels[group.column],\n children: [],\n expanded: false,\n label: tempCellValueForDisplay,\n totals: {},\n obj: tempCell.obj,\n },\n };\n adjustGroupId(tempGroupingRow);\n groupRow.group.children.push(tempGroupingRow);\n }\n groupRow = tempGroupingRow;\n }\n }\n // adding row\n groupRow.group.children.push(row);\n\n updateGroupTotal(groupRow, totals, row, distinctObj);\n }\n });\n\n adjustGroupsDistinct(groupRows, totals, distinctObj);\n adjustGroupsAverageOrFormula(groupRows, TotalMode.AVERAGE, totals);\n adjustGroupsAverageOrFormula(groupRows, TotalMode.MATH, totals);\n\n return groupRows;\n}\n\nfunction updateGroupTotal(\n groupRow: KupDataTableRow,\n totals: TotalsMap,\n addedRow: KupDataTableRow,\n distinctObj: Object\n): void {\n if (!groupRow || !totals) {\n return;\n }\n\n const keys = Object.keys(totals);\n\n if (keys.length === 0) {\n return;\n }\n\n keys.forEach((key) => {\n const cell = addedRow.cells[key];\n\n if (cell) {\n const _isNumber = dom.ketchup.objects.isNumber(cell.obj);\n const totalMode = totals[key];\n\n switch (totalMode) {\n case TotalMode.COUNT:\n let currentTotalValue: number =\n groupRow.group.totals[key] || 0;\n groupRow.group.totals[key] = ++currentTotalValue;\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n let currentParentCount: number =\n parent.group.totals[key] || 0;\n parent.group.totals[key] = ++currentParentCount;\n parent = parent.group.parent;\n }\n break;\n case TotalMode.DISTINCT:\n let cellValue;\n if (_isNumber) {\n cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n } else {\n cellValue = cell.value;\n }\n let distinctGroup = distinctObj[groupRow.group.id];\n if (!distinctGroup) {\n distinctObj[groupRow.group.id] = {};\n distinctObj[groupRow.group.id][key] = [];\n distinctObj[groupRow.group.id][key].push(cellValue);\n } else {\n let distinctList = distinctObj[groupRow.group.id][key];\n if (!distinctList) {\n // first round\n distinctObj[groupRow.group.id][key] = [];\n distinctObj[groupRow.group.id][key].push(cellValue);\n } else {\n // update the list\n distinctList.push(cellValue);\n }\n }\n // updating parents\n let distinctParent = groupRow.group.parent;\n while (distinctParent != null) {\n // get parent value\n let distinctGroupParent =\n distinctObj[distinctParent.group.id];\n if (!distinctGroupParent) {\n distinctObj[distinctParent.group.id] = {};\n distinctObj[distinctParent.group.id][key] = [];\n distinctObj[distinctParent.group.id][key].push(\n cellValue\n );\n } else {\n let distinctParentList =\n distinctObj[distinctParent.group.id][key];\n if (!distinctParentList) {\n // first round\n distinctObj[distinctParent.group.id][key] = [];\n distinctObj[distinctParent.group.id][key].push(\n cellValue\n );\n } else {\n // update the list\n distinctParentList.push(cellValue);\n }\n }\n // continue\n distinctParent = distinctParent.group.parent;\n }\n break;\n case TotalMode.SUM:\n case TotalMode.AVERAGE:\n if (_isNumber && cell.value) {\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n\n const currentTotalValue: number =\n groupRow.group.totals[key] || 0;\n groupRow.group.totals[key] =\n cellValue + currentTotalValue;\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentSum = dom.ketchup.math.numberify(\n parent.group.totals[key] || 0\n );\n parent.group.totals[key] =\n cellValue + currentParentSum;\n\n parent = parent.group.parent;\n }\n }\n break;\n // TODO DRY the MIN and MAX functions\n case TotalMode.MIN:\n if (_isNumber && cell.value) {\n const currentMinValue = groupRow.group.totals[key];\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n if (currentMinValue) {\n groupRow.group.totals[key] = Math.min(\n currentMinValue,\n cellValue\n );\n } else {\n // first round\n groupRow.group.totals[key] = cellValue;\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMin = parent.group.totals[key];\n if (currentParentMin) {\n parent.group.totals[key] = Math.min(\n currentParentMin,\n cellValue\n );\n } else {\n // first round\n parent.group.totals[key] = cellValue;\n }\n parent = parent.group.parent;\n }\n } else if (\n cell.value &&\n dom.ketchup.objects.isDate(cell.obj)\n ) {\n if (\n dom.ketchup.dates.isValidFormattedStringDate(\n cell.value\n )\n ) {\n const currentMinValue = groupRow.group.totals[key];\n if (currentMinValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(currentMinValue)\n );\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.min(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMin =\n parent.group.totals[key];\n if (currentParentMin) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(\n currentParentMin\n )\n );\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.min(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n // first round\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n parent = parent.group.parent;\n }\n }\n }\n break;\n // TODO DRY the MIN and MAX functions\n case TotalMode.MAX:\n if (_isNumber && cell.value) {\n const currentMaxValue = groupRow.group.totals[key];\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n if (currentMaxValue) {\n groupRow.group.totals[key] = Math.max(\n currentMaxValue,\n cellValue\n );\n } else {\n // first round\n groupRow.group.totals[key] = cellValue;\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMax = parent.group.totals[key];\n if (currentParentMax) {\n parent.group.totals[key] = Math.max(\n currentParentMax,\n cellValue\n );\n } else {\n // first round\n parent.group.totals[key] = cellValue;\n }\n parent = parent.group.parent;\n }\n } else if (\n cell.value &&\n dom.ketchup.objects.isDate(cell.obj)\n ) {\n if (\n dom.ketchup.dates.isValidFormattedStringDate(\n cell.value\n )\n ) {\n const currentMaxValue = groupRow.group.totals[key];\n if (currentMaxValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(currentMaxValue)\n );\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.max(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMax =\n parent.group.totals[key];\n if (currentParentMax) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(\n currentParentMax\n )\n );\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.max(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n // first round\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n parent = parent.group.parent;\n }\n }\n }\n break;\n default: {\n if (totalMode.indexOf(TotalMode.MATH) != 0) {\n console.warn(`invalid total mode: ${totalMode}`);\n }\n break;\n }\n }\n }\n });\n}\n\nfunction adjustGroupsDistinct(\n groupRows: Array<KupDataTableRow>,\n totals: TotalsMap,\n distinctObj: Object\n) {\n if (!groupRows || !totals) {\n return;\n }\n\n const keys = Object.keys(totals);\n\n if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {\n return;\n }\n\n let toAdjustKeys = keys.filter((key) => TotalMode.DISTINCT === totals[key]);\n\n if (toAdjustKeys.length > 0) {\n groupRows\n .filter((groupRow) => groupRow.group.children.length > 0)\n .forEach((groupRow) =>\n adjustGroupDistinct(groupRow, toAdjustKeys, distinctObj)\n );\n }\n}\n\nfunction adjustGroupsAverageOrFormula(\n groupRows: Array<KupDataTableRow>,\n type: TotalMode,\n totals: TotalsMap\n): void {\n if (!groupRows || !totals) {\n return;\n }\n\n const keys = Object.keys(totals);\n\n if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {\n return;\n }\n\n let toAdjustKeys;\n\n if (type == TotalMode.AVERAGE) {\n toAdjustKeys = keys.filter((key) => TotalMode.AVERAGE === totals[key]);\n }\n if (type == TotalMode.MATH) {\n toAdjustKeys = keys.filter(\n (key) => totals[key].indexOf(TotalMode.MATH) == 0\n );\n }\n\n if (toAdjustKeys.length > 0) {\n groupRows\n .filter((groupRow) => groupRow.group.children.length > 0)\n .forEach((groupRow) =>\n adjustGroupAverageOrFormula(\n groupRow,\n type,\n toAdjustKeys,\n totals\n )\n );\n }\n}\n\nfunction adjustGroupDistinct(\n groupRow: KupDataTableRow,\n toAdjustKeys: Array<string>,\n distinctObj: Object\n) {\n const children = groupRow.group.children;\n\n if (children.length === 0) {\n return;\n }\n\n if (children[0].group) {\n children.forEach((child) => {\n adjustGroupDistinct(child, toAdjustKeys, distinctObj);\n });\n }\n\n toAdjustKeys.forEach((key) => {\n const distinctList = distinctObj[groupRow.group.id][key];\n groupRow.group.totals[key] = new Set(distinctList).size;\n });\n}\n\n/**\n * @returns number of 'leaf' of group\n */\nfunction adjustGroupAverageOrFormula(\n row: KupDataTableRow,\n type: TotalMode,\n toAdjustKeys: Array<string>,\n totals: TotalsMap\n): number {\n const children = row.group.children;\n\n if (children.length === 0) {\n return 0;\n }\n\n let numberOfLeaf = 0;\n\n // check if child is a grouping row\n if (children[0].group) {\n children.forEach((child) => {\n numberOfLeaf += adjustGroupAverageOrFormula(\n child,\n type,\n toAdjustKeys,\n totals\n );\n });\n } else {\n numberOfLeaf = children.length;\n }\n // adjust average/formulas\n toAdjustKeys.forEach((key) => {\n if (type == TotalMode.AVERAGE) {\n row.group.totals[key] = row.group.totals[key] / numberOfLeaf;\n }\n if (type == TotalMode.MATH) {\n let formula = totals[key].substring(TotalMode.MATH.length);\n row.group.totals[key] = dom.ketchup.math.formulas.custom(\n formula,\n row.group.totals\n );\n }\n });\n\n return numberOfLeaf;\n}\n\nexport function normalizeRows(\n columns: Array<KupDataColumn>,\n rows: Array<KupDataTableRow>\n): Array<KupDataTableRow> {\n if (rows) {\n const normalizedrows = Object.assign(rows);\n rows.forEach((row: KupDataTableRow) => {\n columns.forEach((column) => {\n if (row.cells) {\n const cell = row.cells[column.name];\n if (cell && column.obj && !cell.obj) {\n // cell.obj = Object.assign(column.obj);\n cell.obj = {\n t: column.obj.t,\n p: column.obj.p,\n k: cell.value,\n };\n }\n }\n });\n });\n return normalizedrows;\n } else {\n return undefined;\n }\n}\n\nexport function calcTotals(\n rows: Array<KupDataTableRow> = [],\n totals: TotalsMap = {}\n): { [index: string]: number } {\n if (\n dom.ketchup.objects.isEmptyJsObject(rows) ||\n dom.ketchup.objects.isEmptyJsObject(totals)\n ) {\n return {};\n }\n const keys = Object.keys(totals);\n const footerRow: { [index: string]: any } = {};\n const dateColumns: string[] = new Array();\n\n // if there are only COUNT, no need to loop on rows\n let onlyCount =\n keys.length === 0 ||\n keys.every((key) => totals[key] === TotalMode.COUNT);\n if (onlyCount) {\n keys.forEach((columnName) => (footerRow[columnName] = rows.length));\n } else {\n let distinctObj = {};\n rows.forEach((r, index, array) => {\n keys.filter(\n (key) =>\n TotalMode.COUNT !== totals[key] &&\n totals[key].indexOf(TotalMode.MATH) != 0\n ).forEach((key) => {\n // getting cell\n const cell = r.cells[key];\n if (cell) {\n if (totals[key] === TotalMode.DISTINCT) {\n let cellValue;\n if (dom.ketchup.objects.isNumber(cell.obj)) {\n cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n } else {\n cellValue = cell.value;\n }\n let distinctList = distinctObj[key];\n if (!distinctList) {\n // first round\n distinctObj[key] = [];\n distinctObj[key].push(cellValue);\n } else {\n // update the list\n distinctList.push(cellValue);\n }\n } else if (dom.ketchup.objects.isNumber(cell.obj)) {\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n let currentFooterValue = footerRow[key];\n switch (true) {\n // TODO DRY the MIN and MAX functions\n case totals[key] === TotalMode.MIN:\n if (currentFooterValue) {\n footerRow[key] = Math.min(\n currentFooterValue,\n cellValue\n );\n } else {\n footerRow[key] = cellValue;\n }\n break;\n case totals[key] === TotalMode.MAX:\n if (currentFooterValue) {\n footerRow[key] = Math.max(\n currentFooterValue,\n cellValue\n );\n } else {\n footerRow[key] = cellValue;\n }\n break;\n default:\n // SUM\n currentFooterValue = footerRow[key] || 0;\n footerRow[key] =\n cellValue +\n dom.ketchup.math.numberify(\n currentFooterValue\n );\n }\n // TODO DRY the MIN and MAX functions\n } else if (dom.ketchup.objects.isDate(cell.obj)) {\n if (dateColumns.indexOf(key) == -1) {\n dateColumns.push(key);\n }\n if (\n dom.ketchup.dates.isValidFormattedStringDate(\n cell.value\n )\n ) {\n const cellValue = dom.ketchup.dates.toDate(\n dom.ketchup.dates.toDayjs(cell.value)\n );\n const currentFooterValue = footerRow[key]\n ? dom.ketchup.dates.toDate(\n dom.ketchup.dates.toDayjs(footerRow[key])\n )\n : null;\n switch (true) {\n case totals[key] === TotalMode.MIN:\n if (currentFooterValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(currentFooterValue);\n footerRow[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.min(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n footerRow[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n break;\n case totals[key] === TotalMode.MAX:\n if (currentFooterValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(currentFooterValue);\n footerRow[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.max(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n footerRow[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n break;\n default:\n break;\n }\n }\n }\n }\n if (\n index === array.length - 1 &&\n totals[key] === TotalMode.DISTINCT\n ) {\n // last round\n footerRow[key] = new Set(distinctObj[key]).size;\n distinctObj[key] = [];\n }\n });\n });\n }\n // fixing MATH, AVERAGE and COUNT\n for (let key of keys) {\n switch (true) {\n case totals[key] === TotalMode.AVERAGE:\n const sum: number = footerRow[key];\n if (sum && rows.length > 0) {\n footerRow[key] = sum / rows.length;\n }\n break;\n case totals[key] === TotalMode.COUNT:\n footerRow[key] = rows.length;\n break;\n case totals[key].indexOf(TotalMode.MATH) == 0:\n footerRow[key] = dom.ketchup.math.formulas.custom(\n totals[key].substring(TotalMode.MATH.length),\n footerRow\n );\n break;\n default:\n break;\n }\n if (footerRow[key]) {\n if (dateColumns.indexOf(key) != -1) {\n footerRow[key] = dom.ketchup.dates.format(footerRow[key]);\n } else if (dom.ketchup.math.isNumber(footerRow[key])) {\n footerRow[key] = +footerRow[key].toFixed(2);\n }\n }\n }\n return footerRow;\n}\n\nfunction adjustGroupId(row: KupDataTableRow): void {\n if (!row.group) {\n return;\n }\n\n let groupID = row.group.id;\n\n let parentRow = row.group.parent;\n\n while (parentRow !== null) {\n groupID = `${parentRow.group.id};${groupID}`;\n parentRow = parentRow.group.parent;\n }\n\n row.group.id = groupID;\n}\n\nexport function paginateRows(\n rows: KupDataTableRow[],\n currentPage: number,\n rowsPerPage: number,\n areGrouped: boolean\n) {\n const start: number = currentPage * rowsPerPage - rowsPerPage;\n const end: number = start + Number(rowsPerPage);\n if (areGrouped == false) {\n return rows.slice(start, end);\n }\n let pagRows: Array<KupDataTableRow> = [];\n\n _paginateRows(rows, pagRows, start, Number(rowsPerPage), 0);\n\n return pagRows;\n}\n\nfunction _paginateRows(\n rows: KupDataTableRow[],\n pagRows: KupDataTableRow[],\n start: number,\n rowsPerPage: number,\n ci: number\n): { ci: number; added: boolean } {\n let added: boolean = false;\n for (let i: number = 0; i < rows.length; i++) {\n let originalRow = rows[i];\n let row: KupDataTableRow = cloneRow(rows[i]);\n if (\n originalRow.group != null &&\n originalRow.group.children != null &&\n originalRow.group.children.length > 0\n ) {\n row.group.children = [];\n let retValue: { ci: number; added: boolean } = _paginateRows(\n originalRow.group.children,\n row.group.children,\n start,\n rowsPerPage,\n ci\n );\n ci = retValue.ci;\n added = retValue.added;\n if (added == true) {\n pagRows[pagRows.length] = row;\n }\n } else {\n if (ci >= start) {\n pagRows[pagRows.length] = row;\n added = true;\n }\n ci++;\n }\n\n if (ci >= start + rowsPerPage) {\n break;\n }\n }\n return { ci: ci, added: added };\n}\n\nfunction cloneRow(row: KupDataTableRow): KupDataTableRow {\n if (row == null) {\n return null;\n } else {\n return {\n id: row.id,\n cells: { ...row.cells },\n actions: row.actions ? [...row.actions] : null,\n group: cloneRowGroup(row.group),\n clonedFrom: row,\n readOnly: row.readOnly,\n cssClass: row.cssClass,\n };\n }\n}\n\nfunction cloneRows(rows: Array<KupDataTableRow>): Array<KupDataTableRow> {\n if (rows == null) {\n return null;\n }\n let cloned: Array<KupDataTableRow> = [];\n for (let i: number = 0; i < rows.length; i++) {\n cloned[cloned.length] = cloneRow(rows[i]);\n }\n return cloned;\n}\n\nfunction cloneRowGroup(group: KupDataTableRowGroup): KupDataTableRowGroup {\n if (group == null) {\n return null;\n }\n let cloned: KupDataTableRowGroup = {\n id: group.id,\n parent: { ...group.parent },\n column: group.column,\n columnLabel: group.columnLabel,\n expanded: group.expanded,\n label: group.label,\n children: cloneRows(group.children),\n obj: { ...group.obj },\n totals: { ...group.totals },\n };\n\n return cloned;\n}\n\n/**\n * Returns a KupDataDataset obtained as the difference between originalData and modifiedData\n * The checked data are cell.value and cell.obj.k with the same column and row\n * @param originalData\n * @param modifiedData\n * @param includesAlsoEmptyRows\n * @returns\n */\nexport function getDiffData(\n originalData: KupDataDataset,\n modifiedData: KupDataDataset,\n includesAlsoEmptyRows: boolean = false\n): KupDataDataset {\n const diffDataTable = {\n columns: modifiedData.columns,\n rows: [],\n };\n\n for (const modifiedRow of modifiedData.rows) {\n const newRow = { cells: {}, id: modifiedRow.id };\n\n for (const column of modifiedData.columns) {\n const cellKey = column.name;\n const modifiedCell = modifiedRow.cells[cellKey];\n\n const originalRow = originalData.rows.find(\n (row) => row.id === modifiedRow.id\n );\n const originalCell = originalRow\n ? originalRow.cells[cellKey]\n : null;\n\n if (!originalCell || modifiedCell.value !== originalCell.value) {\n newRow.cells[cellKey] = modifiedCell;\n }\n }\n\n if (Object.keys(newRow.cells).length > 0 || includesAlsoEmptyRows) {\n diffDataTable.rows.push(newRow);\n }\n }\n\n return diffDataTable;\n}\n\nexport function decorateDataTable(data: KupDataTableDataset) {\n data.rows?.forEach((row) => {\n Object.keys(row.cells).forEach((cellKey) => {\n let cell: KupDataTableCell = row.cells[cellKey];\n\n const value = cell.value;\n const options = cell['options'];\n cell.isEditable = cell.isEditable ?? cell['editable'];\n\n if (options) {\n const shapeAdapters = {\n [FCellShapes.AUTOCOMPLETE]: () =>\n CMBandACPAdapter(value, '', options),\n [FCellShapes.COMBOBOX]: () =>\n CMBandACPAdapter(value, '', options),\n [FCellShapes.RADIO]: () => RADAdapter(value, options),\n [FCellShapes.CHECKBOX]: () => CHKAdapter(value, options),\n [FCellShapes.CHIP]: () => CHIAdapter(value),\n [FCellShapes.SWITCH]: () => SWTAdapter(value, ''),\n };\n\n const adapterFunction = shapeAdapters[cell.shape];\n\n if (adapterFunction) {\n cell.data = adapterFunction();\n } else {\n if (cell.shape) {\n dom.ketchup.debug.logMessage(\n 'kup-data',\n `Shape specified ${\n cell.shape\n } in cell ${JSON.stringify(cell)} unsupported`,\n KupDebugCategory.WARNING\n );\n }\n }\n }\n });\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"kup-data-table-helper.js","sourceRoot":"","sources":["../../../src/components/kup-data-table/kup-data-table-helper.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SortObject,\n SortMode,\n GroupObject,\n TotalMode,\n TotalsMap,\n KupDataTableRow,\n KupDataTableRowGroup,\n KupDataTableCell,\n KupDataTableDataset,\n} from './kup-data-table-declarations';\nimport { GenericFilter } from '../../utils/filters/filters-declarations';\nimport { FiltersColumnMenu } from '../../utils/filters/filters-column-menu';\nimport {\n getCellValueForDisplay,\n getColumnByName,\n compareCell,\n CMBandACPAdapter,\n RADAdapter,\n CHKAdapter,\n CHIAdapter,\n} from '../../utils/cell-utils';\nimport { FiltersRows } from '../../utils/filters/filters-rows';\nimport { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport {\n KupDataColumn,\n KupDataDataset,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { KupDatesFormats } from '../../managers/kup-dates/kup-dates-declarations';\nimport { FCellShapes } from '../../f-components/f-cell/f-cell-declarations';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\n\nconst dom: KupDom = document.documentElement as KupDom;\n\nexport function sortRows(\n rows: Array<KupDataTableRow> = [],\n sort: Array<SortObject> = []\n): Array<KupDataTableRow> {\n if (!rows || rows.length === 0) {\n return [];\n }\n\n // check if row is group\n if (rows[0].group) {\n return sortGroupRows(rows, sort);\n }\n\n // sorting rows\n if (!sort || sort.length === 0) {\n // no sort -> return rows as they are\n return rows;\n }\n\n // check multiple sort\n const isMultiSort = sort.length > 1;\n\n // sorting rows\n return rows.slice(0).sort((r1: KupDataTableRow, r2: KupDataTableRow) => {\n if (isMultiSort) {\n for (let i = 0; i < sort.length; i++) {\n const compare = compareRows(r1, r2, sort[i]);\n\n if (compare !== 0) {\n // not same row\n return compare;\n }\n }\n\n // same row\n return 0;\n } else {\n return compareRows(r1, r2, sort[0]);\n }\n });\n}\n\nfunction sortGroupRows(\n rows: Array<KupDataTableRow> = [],\n sort: Array<SortObject> = []\n): Array<KupDataTableRow> {\n if (!rows || rows.length === 0) {\n return [];\n }\n\n // getting columm group\n const groupColumn = rows[0].group.column;\n\n // check if column is in sort\n let sortObject = getSortOnColumn(groupColumn, sort);\n\n if (!sortObject) {\n sortObject = {\n column: groupColumn,\n sortMode: SortMode.A,\n };\n }\n\n // sorting rows\n rows.sort((r1, r2) => {\n // creating fake cells\n const cell1: KupDataTableCell = {\n obj: r1.group.obj,\n value: r1.group.id,\n };\n\n const cell2: KupDataTableCell = {\n obj: r2.group.obj,\n value: r2.group.id,\n };\n\n return compareCell(cell1, cell2, sortObject.sortMode);\n });\n\n // sorting children\n rows.forEach((row) => {\n row.group.children = sortRows(row.group.children, sort);\n });\n\n return rows;\n}\n\nfunction getSortOnColumn(\n column: string = '',\n sort: Array<SortObject> = []\n): SortObject {\n if (!column || !sort || sort.length === 0) {\n return null;\n }\n\n for (let sortObject of sort) {\n if (sortObject.column === column) {\n return sortObject;\n }\n }\n\n return null;\n}\n\nfunction compareRows(\n r1: KupDataTableRow,\n r2: KupDataTableRow,\n sortObj: SortObject\n): number {\n const cell1: KupDataTableCell = r1.cells[sortObj.column];\n const cell2: KupDataTableCell = r2.cells[sortObj.column];\n\n if (!cell1 && !cell2) {\n return 0;\n }\n\n if (!cell1) {\n return 1;\n }\n\n if (!cell2) {\n return -1;\n }\n\n return compareCell(cell1, cell2, sortObj.sortMode);\n}\n\n//-------- FILTER FUNCTIONS --------\n/**\n * Filters the rows data of a data-table component according to the parameters\n *\n * @param rows - The data of the rows to filter.\n * @param filters - The the filters for each column.\n * @param globalFilter - A global filter applied to all columns.\n * @param columns - The colmns on which the filter will take effect.\n * @todo This function can be improved in its speed by a refactor in which from two different cycles of execution for\n * single filters and global filter, all controls on a single column are done in a single cycle.\n */\n\nexport function filterRows(\n rows: Array<KupDataTableRow> = [],\n filters: GenericFilter = {},\n globalFilter: string = '',\n columns: KupDataColumn[] = [],\n columnFilters?: FiltersColumnMenu,\n filtersRows?: FiltersRows\n): Array<KupDataTableRow> {\n if (filtersRows == null) {\n filtersRows = new FiltersRows();\n }\n\n return filtersRows.filterRows(\n rows,\n filters,\n globalFilter,\n columns,\n columnFilters\n );\n}\n\nexport function groupRows(\n columns: KupDataColumn[] = [],\n rows: KupDataTableRow[] = [],\n groups: GroupObject[] = [],\n totals: TotalsMap = {}\n): Array<KupDataTableRow> {\n if (!rows) {\n return [];\n }\n\n if (!groups || groups.length === 0 || !columns || columns.length === 0) {\n return rows;\n }\n\n // Keeps label of the valid columns\n const columnLabels: { [index: string]: string } = {};\n\n // remove invalid groups and store column labels\n const validGroups = groups.filter(({ column }) => {\n for (let { name, title } of columns) {\n if (name === column) {\n // Store label of the columns\n columnLabels[name] = title;\n return true;\n }\n }\n return false;\n });\n\n if (validGroups.length === 0) {\n // no valid groups\n return rows;\n }\n\n // creating root\n const groupRows: Array<KupDataTableRow> = [];\n\n // obj used to calculate the group distinct value\n let distinctObj = {};\n\n rows.forEach((row: KupDataTableRow) => {\n // getting column name from first group\n const columnName = validGroups[0].column;\n // getting row value\n const cell = row.cells[columnName];\n\n if (cell) {\n const column = getColumnByName(columns, columnName);\n const cellValueForDisplay = getCellValueForDisplay(column, cell);\n const cellValue = cell.value;\n let groupRow: KupDataTableRow = null;\n // check in already in groupedRow\n for (let currentGroupRow of groupRows) {\n if (currentGroupRow.group.label === cellValueForDisplay) {\n groupRow = currentGroupRow;\n break;\n }\n }\n if (groupRow === null) {\n // create group row\n groupRow = {\n group: {\n id: cellValue,\n parent: null,\n column: columnName,\n columnLabel: columnLabels[columnName],\n expanded: false,\n label: cellValueForDisplay,\n children: [],\n obj: cell.obj,\n totals: {},\n },\n cells: {},\n };\n // add group to list\n groupRows.push(groupRow);\n }\n for (let i = 1; i < validGroups.length; i++) {\n const group = validGroups[i];\n // getting cell value\n const tempCell = row.cells[group.column];\n if (tempCell) {\n const column = getColumnByName(columns, group.column);\n const tempCellValueForDisplay = getCellValueForDisplay(\n column,\n tempCell\n );\n const tempCellValue = tempCell.value;\n // check if group already exists\n let tempGroupingRow: KupDataTableRow = null;\n for (let j = 0; j < groupRow.group.children.length; j++) {\n const childGroup = groupRow.group.children[j];\n const groupLabel = childGroup.group.label;\n\n if (groupLabel === tempCellValueForDisplay) {\n tempGroupingRow = childGroup;\n break;\n }\n }\n if (!tempGroupingRow) {\n tempGroupingRow = {\n cells: {},\n group: {\n id: tempCellValue,\n parent: groupRow,\n column: group.column,\n columnLabel: columnLabels[group.column],\n children: [],\n expanded: false,\n label: tempCellValueForDisplay,\n totals: {},\n obj: tempCell.obj,\n },\n };\n adjustGroupId(tempGroupingRow);\n groupRow.group.children.push(tempGroupingRow);\n }\n groupRow = tempGroupingRow;\n }\n }\n // adding row\n groupRow.group.children.push(row);\n\n updateGroupTotal(groupRow, totals, row, distinctObj);\n }\n });\n\n adjustGroupsDistinct(groupRows, totals, distinctObj);\n adjustGroupsAverageOrFormula(groupRows, TotalMode.AVERAGE, totals);\n adjustGroupsAverageOrFormula(groupRows, TotalMode.MATH, totals);\n\n return groupRows;\n}\n\nfunction updateGroupTotal(\n groupRow: KupDataTableRow,\n totals: TotalsMap,\n addedRow: KupDataTableRow,\n distinctObj: Object\n): void {\n if (!groupRow || !totals) {\n return;\n }\n\n const keys = Object.keys(totals);\n\n if (keys.length === 0) {\n return;\n }\n\n keys.forEach((key) => {\n const cell = addedRow.cells[key];\n\n if (cell) {\n const _isNumber = dom.ketchup.objects.isNumber(cell.obj);\n const totalMode = totals[key];\n\n switch (totalMode) {\n case TotalMode.COUNT:\n let currentTotalValue: number =\n groupRow.group.totals[key] || 0;\n groupRow.group.totals[key] = ++currentTotalValue;\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n let currentParentCount: number =\n parent.group.totals[key] || 0;\n parent.group.totals[key] = ++currentParentCount;\n parent = parent.group.parent;\n }\n break;\n case TotalMode.DISTINCT:\n let cellValue;\n if (_isNumber) {\n cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n } else {\n cellValue = cell.value;\n }\n let distinctGroup = distinctObj[groupRow.group.id];\n if (!distinctGroup) {\n distinctObj[groupRow.group.id] = {};\n distinctObj[groupRow.group.id][key] = [];\n distinctObj[groupRow.group.id][key].push(cellValue);\n } else {\n let distinctList = distinctObj[groupRow.group.id][key];\n if (!distinctList) {\n // first round\n distinctObj[groupRow.group.id][key] = [];\n distinctObj[groupRow.group.id][key].push(cellValue);\n } else {\n // update the list\n distinctList.push(cellValue);\n }\n }\n // updating parents\n let distinctParent = groupRow.group.parent;\n while (distinctParent != null) {\n // get parent value\n let distinctGroupParent =\n distinctObj[distinctParent.group.id];\n if (!distinctGroupParent) {\n distinctObj[distinctParent.group.id] = {};\n distinctObj[distinctParent.group.id][key] = [];\n distinctObj[distinctParent.group.id][key].push(\n cellValue\n );\n } else {\n let distinctParentList =\n distinctObj[distinctParent.group.id][key];\n if (!distinctParentList) {\n // first round\n distinctObj[distinctParent.group.id][key] = [];\n distinctObj[distinctParent.group.id][key].push(\n cellValue\n );\n } else {\n // update the list\n distinctParentList.push(cellValue);\n }\n }\n // continue\n distinctParent = distinctParent.group.parent;\n }\n break;\n case TotalMode.SUM:\n case TotalMode.AVERAGE:\n if (_isNumber && cell.value) {\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n\n const currentTotalValue: number =\n groupRow.group.totals[key] || 0;\n groupRow.group.totals[key] =\n cellValue + currentTotalValue;\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentSum = dom.ketchup.math.numberify(\n parent.group.totals[key] || 0\n );\n parent.group.totals[key] =\n cellValue + currentParentSum;\n\n parent = parent.group.parent;\n }\n }\n break;\n // TODO DRY the MIN and MAX functions\n case TotalMode.MIN:\n if (_isNumber && cell.value) {\n const currentMinValue = groupRow.group.totals[key];\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n if (currentMinValue) {\n groupRow.group.totals[key] = Math.min(\n currentMinValue,\n cellValue\n );\n } else {\n // first round\n groupRow.group.totals[key] = cellValue;\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMin = parent.group.totals[key];\n if (currentParentMin) {\n parent.group.totals[key] = Math.min(\n currentParentMin,\n cellValue\n );\n } else {\n // first round\n parent.group.totals[key] = cellValue;\n }\n parent = parent.group.parent;\n }\n } else if (\n cell.value &&\n dom.ketchup.objects.isDate(cell.obj)\n ) {\n if (\n dom.ketchup.dates.isValidFormattedStringDate(\n cell.value\n )\n ) {\n const currentMinValue = groupRow.group.totals[key];\n if (currentMinValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(currentMinValue)\n );\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.min(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMin =\n parent.group.totals[key];\n if (currentParentMin) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(\n currentParentMin\n )\n );\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.min(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n // first round\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n parent = parent.group.parent;\n }\n }\n }\n break;\n // TODO DRY the MIN and MAX functions\n case TotalMode.MAX:\n if (_isNumber && cell.value) {\n const currentMaxValue = groupRow.group.totals[key];\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n if (currentMaxValue) {\n groupRow.group.totals[key] = Math.max(\n currentMaxValue,\n cellValue\n );\n } else {\n // first round\n groupRow.group.totals[key] = cellValue;\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMax = parent.group.totals[key];\n if (currentParentMax) {\n parent.group.totals[key] = Math.max(\n currentParentMax,\n cellValue\n );\n } else {\n // first round\n parent.group.totals[key] = cellValue;\n }\n parent = parent.group.parent;\n }\n } else if (\n cell.value &&\n dom.ketchup.objects.isDate(cell.obj)\n ) {\n if (\n dom.ketchup.dates.isValidFormattedStringDate(\n cell.value\n )\n ) {\n const currentMaxValue = groupRow.group.totals[key];\n if (currentMaxValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(currentMaxValue)\n );\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.max(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n groupRow.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n // updating parents\n let parent = groupRow.group.parent;\n while (parent != null) {\n const currentParentMax =\n parent.group.totals[key];\n if (currentParentMax) {\n let moments = [];\n moments.push(cellValue);\n moments.push(\n dom.ketchup.dates.toDayjs(\n currentParentMax\n )\n );\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.max(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n // first round\n parent.group.totals[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n parent = parent.group.parent;\n }\n }\n }\n break;\n default: {\n if (totalMode.indexOf(TotalMode.MATH) != 0) {\n console.warn(`invalid total mode: ${totalMode}`);\n }\n break;\n }\n }\n }\n });\n}\n\nfunction adjustGroupsDistinct(\n groupRows: Array<KupDataTableRow>,\n totals: TotalsMap,\n distinctObj: Object\n) {\n if (!groupRows || !totals) {\n return;\n }\n\n const keys = Object.keys(totals);\n\n if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {\n return;\n }\n\n let toAdjustKeys = keys.filter((key) => TotalMode.DISTINCT === totals[key]);\n\n if (toAdjustKeys.length > 0) {\n groupRows\n .filter((groupRow) => groupRow.group.children.length > 0)\n .forEach((groupRow) =>\n adjustGroupDistinct(groupRow, toAdjustKeys, distinctObj)\n );\n }\n}\n\nfunction adjustGroupsAverageOrFormula(\n groupRows: Array<KupDataTableRow>,\n type: TotalMode,\n totals: TotalsMap\n): void {\n if (!groupRows || !totals) {\n return;\n }\n\n const keys = Object.keys(totals);\n\n if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {\n return;\n }\n\n let toAdjustKeys;\n\n if (type == TotalMode.AVERAGE) {\n toAdjustKeys = keys.filter((key) => TotalMode.AVERAGE === totals[key]);\n }\n if (type == TotalMode.MATH) {\n toAdjustKeys = keys.filter(\n (key) => totals[key].indexOf(TotalMode.MATH) == 0\n );\n }\n\n if (toAdjustKeys.length > 0) {\n groupRows\n .filter((groupRow) => groupRow.group.children.length > 0)\n .forEach((groupRow) =>\n adjustGroupAverageOrFormula(\n groupRow,\n type,\n toAdjustKeys,\n totals\n )\n );\n }\n}\n\nfunction adjustGroupDistinct(\n groupRow: KupDataTableRow,\n toAdjustKeys: Array<string>,\n distinctObj: Object\n) {\n const children = groupRow.group.children;\n\n if (children.length === 0) {\n return;\n }\n\n if (children[0].group) {\n children.forEach((child) => {\n adjustGroupDistinct(child, toAdjustKeys, distinctObj);\n });\n }\n\n toAdjustKeys.forEach((key) => {\n const distinctList = distinctObj[groupRow.group.id][key];\n groupRow.group.totals[key] = new Set(distinctList).size;\n });\n}\n\n/**\n * @returns number of 'leaf' of group\n */\nfunction adjustGroupAverageOrFormula(\n row: KupDataTableRow,\n type: TotalMode,\n toAdjustKeys: Array<string>,\n totals: TotalsMap\n): number {\n const children = row.group.children;\n\n if (children.length === 0) {\n return 0;\n }\n\n let numberOfLeaf = 0;\n\n // check if child is a grouping row\n if (children[0].group) {\n children.forEach((child) => {\n numberOfLeaf += adjustGroupAverageOrFormula(\n child,\n type,\n toAdjustKeys,\n totals\n );\n });\n } else {\n numberOfLeaf = children.length;\n }\n // adjust average/formulas\n toAdjustKeys.forEach((key) => {\n if (type == TotalMode.AVERAGE) {\n row.group.totals[key] = row.group.totals[key] / numberOfLeaf;\n }\n if (type == TotalMode.MATH) {\n let formula = totals[key].substring(TotalMode.MATH.length);\n row.group.totals[key] = dom.ketchup.math.formulas.custom(\n formula,\n row.group.totals\n );\n }\n });\n\n return numberOfLeaf;\n}\n\nexport function normalizeRows(\n columns: Array<KupDataColumn>,\n rows: Array<KupDataTableRow>\n): Array<KupDataTableRow> {\n if (rows) {\n const normalizedrows = Object.assign(rows);\n rows.forEach((row: KupDataTableRow) => {\n columns.forEach((column) => {\n if (row.cells) {\n const cell = row.cells[column.name];\n if (cell && column.obj && !cell.obj) {\n // cell.obj = Object.assign(column.obj);\n cell.obj = {\n t: column.obj.t,\n p: column.obj.p,\n k: cell.value,\n };\n }\n }\n });\n });\n return normalizedrows;\n } else {\n return undefined;\n }\n}\n\nexport function calcTotals(\n rows: Array<KupDataTableRow> = [],\n totals: TotalsMap = {}\n): { [index: string]: number } {\n if (\n dom.ketchup.objects.isEmptyJsObject(rows) ||\n dom.ketchup.objects.isEmptyJsObject(totals)\n ) {\n return {};\n }\n const keys = Object.keys(totals);\n const footerRow: { [index: string]: any } = {};\n const dateColumns: string[] = new Array();\n\n // if there are only COUNT, no need to loop on rows\n let onlyCount =\n keys.length === 0 ||\n keys.every((key) => totals[key] === TotalMode.COUNT);\n if (onlyCount) {\n keys.forEach((columnName) => (footerRow[columnName] = rows.length));\n } else {\n let distinctObj = {};\n rows.forEach((r, index, array) => {\n keys.filter(\n (key) =>\n TotalMode.COUNT !== totals[key] &&\n totals[key].indexOf(TotalMode.MATH) != 0\n ).forEach((key) => {\n // getting cell\n const cell = r.cells[key];\n if (cell) {\n if (totals[key] === TotalMode.DISTINCT) {\n let cellValue;\n if (dom.ketchup.objects.isNumber(cell.obj)) {\n cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n } else {\n cellValue = cell.value;\n }\n let distinctList = distinctObj[key];\n if (!distinctList) {\n // first round\n distinctObj[key] = [];\n distinctObj[key].push(cellValue);\n } else {\n // update the list\n distinctList.push(cellValue);\n }\n } else if (dom.ketchup.objects.isNumber(cell.obj)) {\n const cellValue = dom.ketchup.math.numberify(\n dom.ketchup.math.numberifySafe(cell.value)\n );\n let currentFooterValue = footerRow[key];\n switch (true) {\n // TODO DRY the MIN and MAX functions\n case totals[key] === TotalMode.MIN:\n if (currentFooterValue) {\n footerRow[key] = Math.min(\n currentFooterValue,\n cellValue\n );\n } else {\n footerRow[key] = cellValue;\n }\n break;\n case totals[key] === TotalMode.MAX:\n if (currentFooterValue) {\n footerRow[key] = Math.max(\n currentFooterValue,\n cellValue\n );\n } else {\n footerRow[key] = cellValue;\n }\n break;\n default:\n // SUM\n currentFooterValue = footerRow[key] || 0;\n footerRow[key] =\n cellValue +\n dom.ketchup.math.numberify(\n currentFooterValue\n );\n }\n // TODO DRY the MIN and MAX functions\n } else if (dom.ketchup.objects.isDate(cell.obj)) {\n if (dateColumns.indexOf(key) == -1) {\n dateColumns.push(key);\n }\n if (\n dom.ketchup.dates.isValidFormattedStringDate(\n cell.value\n )\n ) {\n const cellValue = dom.ketchup.dates.toDate(\n dom.ketchup.dates.toDayjs(cell.value)\n );\n const currentFooterValue = footerRow[key]\n ? dom.ketchup.dates.toDate(\n dom.ketchup.dates.toDayjs(footerRow[key])\n )\n : null;\n switch (true) {\n case totals[key] === TotalMode.MIN:\n if (currentFooterValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(currentFooterValue);\n footerRow[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.min(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n footerRow[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n break;\n case totals[key] === TotalMode.MAX:\n if (currentFooterValue) {\n let moments = [];\n moments.push(cellValue);\n moments.push(currentFooterValue);\n footerRow[key] =\n dom.ketchup.dates.format(\n dom.ketchup.dates.max(moments),\n KupDatesFormats.ISO_DATE\n );\n } else {\n footerRow[key] =\n dom.ketchup.dates.format(\n cellValue,\n KupDatesFormats.ISO_DATE\n );\n }\n break;\n default:\n break;\n }\n }\n }\n }\n if (\n index === array.length - 1 &&\n totals[key] === TotalMode.DISTINCT\n ) {\n // last round\n footerRow[key] = new Set(distinctObj[key]).size;\n distinctObj[key] = [];\n }\n });\n });\n }\n // fixing MATH, AVERAGE and COUNT\n for (let key of keys) {\n switch (true) {\n case totals[key] === TotalMode.AVERAGE:\n const sum: number = footerRow[key];\n if (sum && rows.length > 0) {\n footerRow[key] = sum / rows.length;\n }\n break;\n case totals[key] === TotalMode.COUNT:\n footerRow[key] = rows.length;\n break;\n case totals[key].indexOf(TotalMode.MATH) == 0:\n footerRow[key] = dom.ketchup.math.formulas.custom(\n totals[key].substring(TotalMode.MATH.length),\n footerRow\n );\n break;\n default:\n break;\n }\n if (footerRow[key]) {\n if (dateColumns.indexOf(key) != -1) {\n footerRow[key] = dom.ketchup.dates.format(footerRow[key]);\n } else if (dom.ketchup.math.isNumber(footerRow[key])) {\n footerRow[key] = +footerRow[key].toFixed(2);\n }\n }\n }\n return footerRow;\n}\n\nfunction adjustGroupId(row: KupDataTableRow): void {\n if (!row.group) {\n return;\n }\n\n let groupID = row.group.id;\n\n let parentRow = row.group.parent;\n\n while (parentRow !== null) {\n groupID = `${parentRow.group.id};${groupID}`;\n parentRow = parentRow.group.parent;\n }\n\n row.group.id = groupID;\n}\n\nexport function paginateRows(\n rows: KupDataTableRow[],\n currentPage: number,\n rowsPerPage: number,\n areGrouped: boolean\n) {\n const start: number = currentPage * rowsPerPage - rowsPerPage;\n const end: number = start + Number(rowsPerPage);\n if (areGrouped == false) {\n return rows.slice(start, end);\n }\n let pagRows: Array<KupDataTableRow> = [];\n\n _paginateRows(rows, pagRows, start, Number(rowsPerPage), 0);\n\n return pagRows;\n}\n\nfunction _paginateRows(\n rows: KupDataTableRow[],\n pagRows: KupDataTableRow[],\n start: number,\n rowsPerPage: number,\n ci: number\n): { ci: number; added: boolean } {\n let added: boolean = false;\n for (let i: number = 0; i < rows.length; i++) {\n let originalRow = rows[i];\n let row: KupDataTableRow = cloneRow(rows[i]);\n if (\n originalRow.group != null &&\n originalRow.group.children != null &&\n originalRow.group.children.length > 0\n ) {\n row.group.children = [];\n let retValue: { ci: number; added: boolean } = _paginateRows(\n originalRow.group.children,\n row.group.children,\n start,\n rowsPerPage,\n ci\n );\n ci = retValue.ci;\n added = retValue.added;\n if (added == true) {\n pagRows[pagRows.length] = row;\n }\n } else {\n if (ci >= start) {\n pagRows[pagRows.length] = row;\n added = true;\n }\n ci++;\n }\n\n if (ci >= start + rowsPerPage) {\n break;\n }\n }\n return { ci: ci, added: added };\n}\n\nfunction cloneRow(row: KupDataTableRow): KupDataTableRow {\n if (row == null) {\n return null;\n } else {\n return {\n id: row.id,\n cells: { ...row.cells },\n actions: row.actions ? [...row.actions] : null,\n group: cloneRowGroup(row.group),\n clonedFrom: row,\n readOnly: row.readOnly,\n cssClass: row.cssClass,\n };\n }\n}\n\nfunction cloneRows(rows: Array<KupDataTableRow>): Array<KupDataTableRow> {\n if (rows == null) {\n return null;\n }\n let cloned: Array<KupDataTableRow> = [];\n for (let i: number = 0; i < rows.length; i++) {\n cloned[cloned.length] = cloneRow(rows[i]);\n }\n return cloned;\n}\n\nfunction cloneRowGroup(group: KupDataTableRowGroup): KupDataTableRowGroup {\n if (group == null) {\n return null;\n }\n let cloned: KupDataTableRowGroup = {\n id: group.id,\n parent: { ...group.parent },\n column: group.column,\n columnLabel: group.columnLabel,\n expanded: group.expanded,\n label: group.label,\n children: cloneRows(group.children),\n obj: { ...group.obj },\n totals: { ...group.totals },\n };\n\n return cloned;\n}\n\n/**\n * Returns a KupDataDataset obtained as the difference between originalData and modifiedData\n * The checked data are cell.value and cell.obj.k with the same column and row\n * @param originalData\n * @param modifiedData\n * @param includesAlsoEmptyRows\n * @returns\n */\nexport function getDiffData(\n originalData: KupDataDataset,\n modifiedData: KupDataDataset,\n includesAlsoEmptyRows: boolean = false\n): KupDataDataset {\n const diffDataTable = {\n columns: modifiedData.columns,\n rows: [],\n };\n\n for (const modifiedRow of modifiedData.rows) {\n const newRow = { cells: {}, id: modifiedRow.id };\n\n for (const column of modifiedData.columns) {\n const cellKey = column.name;\n const modifiedCell = modifiedRow.cells[cellKey];\n\n const originalRow = originalData.rows.find(\n (row) => row.id === modifiedRow.id\n );\n const originalCell = originalRow\n ? originalRow.cells[cellKey]\n : null;\n\n if (!originalCell || modifiedCell.value !== originalCell.value) {\n newRow.cells[cellKey] = modifiedCell;\n }\n }\n\n if (Object.keys(newRow.cells).length > 0 || includesAlsoEmptyRows) {\n diffDataTable.rows.push(newRow);\n }\n }\n\n return diffDataTable;\n}\n\nexport function decorateDataTable(data: KupDataTableDataset) {\n data.rows?.forEach((row) => {\n Object.keys(row.cells).forEach((cellKey) => {\n let cell: KupDataTableCell = row.cells[cellKey];\n\n const value = cell.value;\n const options = cell['options'];\n cell.isEditable = cell.isEditable ?? cell['editable'];\n\n if (options) {\n const shapeAdapters = {\n [FCellShapes.AUTOCOMPLETE]: () =>\n CMBandACPAdapter(value, '', options),\n [FCellShapes.COMBOBOX]: () =>\n CMBandACPAdapter(value, '', options),\n [FCellShapes.RADIO]: () => RADAdapter(value, options),\n [FCellShapes.CHECKBOX]: () => CHKAdapter(value, options),\n [FCellShapes.CHIP]: () => CHIAdapter(value),\n };\n\n const adapterFunction = shapeAdapters[cell.shape];\n\n if (adapterFunction) {\n cell.data = adapterFunction();\n } else {\n if (cell.shape) {\n dom.ketchup.debug.logMessage(\n 'kup-data',\n `Shape specified ${\n cell.shape\n } in cell ${JSON.stringify(cell)} unsupported`,\n KupDebugCategory.WARNING\n );\n }\n }\n }\n });\n });\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h, getAssetPath, proxyCustomElement, HTMLElement as HTMLElement$1, createEvent, forceUpdate, Host } from '@stencil/core/internal/client';
|
|
2
|
-
import { c as KupThemeIconValues, d as KupLanguageGeneric, e as editableTypes, f as kupTypes, b as KupThemeColorValues, F as FCellTypes, h as KupTagNames, i as FCellShapes, j as fullWidthFieldsComps, l as FCellClasses, m as autoCenterComps, n as getCellValueForDisplay, o as FCellEvents, p as KupDebugCategory, q as FCellPadding, k as kupManagerInstance, r as fillString, t as KupCardBuiltInClockElements, u as KupCardCSSClasses, v as KupLanguageTotals, w as KupLanguageColumn, x as KupDataNewColumnTypes, y as KupCardSubEvents, z as KupCardIds, A as KupLanguageRow, B as getColumnByName, C as KupObjects, D as formatToNumber, E as Filters, G as FilterInterval, H as getValueForDisplay, I as getValueForDisplay2, J as KupData, L as compareCell, T as TotalMode, M as CMBandACPAdapter, R as RADAdapter, N as CHKAdapter, O as CHIAdapter, S as
|
|
2
|
+
import { c as KupThemeIconValues, d as KupLanguageGeneric, e as editableTypes, f as kupTypes, b as KupThemeColorValues, F as FCellTypes, h as KupTagNames, i as FCellShapes, j as fullWidthFieldsComps, l as FCellClasses, m as autoCenterComps, n as getCellValueForDisplay, o as FCellEvents, p as KupDebugCategory, q as FCellPadding, k as kupManagerInstance, r as fillString, t as KupCardBuiltInClockElements, u as KupCardCSSClasses, v as KupLanguageTotals, w as KupLanguageColumn, x as KupDataNewColumnTypes, y as KupCardSubEvents, z as KupCardIds, A as KupLanguageRow, B as getColumnByName, C as KupObjects, D as formatToNumber, E as Filters, G as FilterInterval, H as getValueForDisplay, I as getValueForDisplay2, J as KupData, L as compareCell, T as TotalMode, M as CMBandACPAdapter, R as RADAdapter, N as CHKAdapter, O as CHIAdapter, S as SortMode, P as GroupLabelDisplayMode, Q as SelectionMode, U as KupDynamicPositionPlacement, V as KupLanguageGrouping, W as KupLanguageCheckbox, X as KupLanguageSearch, Y as KupLanguagePage, a as KupComponentSizing, Z as addColumnValueFromRow, _ as KupGlobalFilterMode, g as getProps, s as setProps, $ as TotalLabel, a0 as KupPointerEventTypes, a1 as kupDynamicPositionAttribute, a2 as KupCardFamily, a3 as identify, a4 as LoadMoreMode, a5 as PaginatorPos, a6 as ShowGrid, a7 as kupDraggableColumnAttr, a8 as kupDragActiveAttr, a9 as KupDragEffect, aa as kupDraggableCellAttr, ab as KupDropEventTypes, ac as FixedCellsClasses, ad as FixedCellsCSSVarsBase, ae as KupLanguageFontsize, af as KupLanguageDensity, ag as KupLanguageGrid, ah as KupDataTableProps, ai as DataTableAreasEnum, aj as iconColumn, ak as keyColumn, al as fieldColumn, am as KupCardProps } from './kup-manager.js';
|
|
3
3
|
import { c as KupDateTimeFormatOptionsMonth, K as KupDatesFormats, a as KupDates } from './kup-dates.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -11675,7 +11675,6 @@ function decorateDataTable(data) {
|
|
|
11675
11675
|
[FCellShapes.RADIO]: () => RADAdapter(value, options),
|
|
11676
11676
|
[FCellShapes.CHECKBOX]: () => CHKAdapter(value, options),
|
|
11677
11677
|
[FCellShapes.CHIP]: () => CHIAdapter(value),
|
|
11678
|
-
[FCellShapes.SWITCH]: () => SWTAdapter(value, ''),
|
|
11679
11678
|
};
|
|
11680
11679
|
const adapterFunction = shapeAdapters[cell.shape];
|
|
11681
11680
|
if (adapterFunction) {
|