@revolist/revogrid 4.9.25 → 4.9.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/{column.drag.plugin-d971a91a.js → column.drag.plugin-f3019314.js} +10 -10
  2. package/dist/cjs/column.drag.plugin-f3019314.js.map +1 -0
  3. package/dist/cjs/{column.service-6089b047.js → column.service-9d63ff18.js} +4 -2
  4. package/dist/cjs/column.service-9d63ff18.js.map +1 -0
  5. package/dist/cjs/{header-cell-renderer-2d56e8f5.js → header-cell-renderer-e4258dfd.js} +2 -2
  6. package/dist/cjs/{header-cell-renderer-2d56e8f5.js.map → header-cell-renderer-e4258dfd.js.map} +1 -1
  7. package/dist/cjs/index.cjs.js +3 -3
  8. package/dist/cjs/revo-grid.cjs.entry.js +3 -3
  9. package/dist/cjs/revogr-attribution_6.cjs.entry.js +1 -1
  10. package/dist/cjs/revogr-data_4.cjs.entry.js +2 -2
  11. package/dist/collection/plugins/filter/filter.plugin.js +7 -7
  12. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  13. package/dist/collection/utils/column.utils.js +3 -1
  14. package/dist/collection/utils/column.utils.js.map +1 -1
  15. package/dist/esm/{column.drag.plugin-170c12a3.js → column.drag.plugin-41640959.js} +10 -10
  16. package/dist/esm/column.drag.plugin-41640959.js.map +1 -0
  17. package/dist/esm/{column.service-407956dd.js → column.service-9e1f693c.js} +4 -2
  18. package/dist/esm/column.service-9e1f693c.js.map +1 -0
  19. package/dist/esm/{header-cell-renderer-da468bd2.js → header-cell-renderer-2ef5f8a1.js} +2 -2
  20. package/dist/esm/{header-cell-renderer-da468bd2.js.map → header-cell-renderer-2ef5f8a1.js.map} +1 -1
  21. package/dist/esm/index.js +3 -3
  22. package/dist/esm/revo-grid.entry.js +3 -3
  23. package/dist/esm/revogr-attribution_6.entry.js +1 -1
  24. package/dist/esm/revogr-data_4.entry.js +2 -2
  25. package/dist/revo-grid/{column.drag.plugin-170c12a3.js → column.drag.plugin-41640959.js} +2 -2
  26. package/dist/revo-grid/{column.drag.plugin-170c12a3.js.map → column.drag.plugin-41640959.js.map} +1 -1
  27. package/dist/revo-grid/column.service-9e1f693c.js +5 -0
  28. package/dist/revo-grid/column.service-9e1f693c.js.map +1 -0
  29. package/dist/revo-grid/{header-cell-renderer-da468bd2.js → header-cell-renderer-2ef5f8a1.js} +2 -2
  30. package/dist/revo-grid/index.esm.js +1 -1
  31. package/dist/revo-grid/revo-grid.entry.js +1 -1
  32. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  33. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  34. package/dist/types/plugins/filter/filter.plugin.d.ts +2 -2
  35. package/hydrate/index.js +10 -8
  36. package/hydrate/index.mjs +10 -8
  37. package/package.json +1 -1
  38. package/standalone/column.service.js +3 -1
  39. package/standalone/column.service.js.map +1 -1
  40. package/standalone/revo-grid.js +7 -7
  41. package/standalone/revo-grid.js.map +1 -1
  42. package/dist/cjs/column.drag.plugin-d971a91a.js.map +0 -1
  43. package/dist/cjs/column.service-6089b047.js.map +0 -1
  44. package/dist/esm/column.drag.plugin-170c12a3.js.map +0 -1
  45. package/dist/esm/column.service-407956dd.js.map +0 -1
  46. package/dist/revo-grid/column.service-407956dd.js +0 -5
  47. package/dist/revo-grid/column.service-407956dd.js.map +0 -1
  48. /package/dist/revo-grid/{header-cell-renderer-da468bd2.js.map → header-cell-renderer-2ef5f8a1.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["defaultState","range","tempRange","tempRangeType","focus","edit","lastCell","nextFocus","SelectionStore","constructor","this","unsubscribe","store","createStore","on","key","newVal","set","onChange","propName","cb","push","clearFocus","setStore","setFocus","end","getRange","setNextFocus","setTempArea","area","type","clearTemp","setRangeArea","setRange","start","setLastCell","setEdit","val","get","x","y","dispose","forEach","f","EMPTY_INDEX","SelectionStoreConnector","dirty","stores","columnStores","rowStores","storesByType","storesXToType","storesYToType","sections","focusedStore","focused","_a","entity","cell","position","parseInt","selectedRange","registerSection","e","length","indexOf","beforeUpdate","registerColumn","isHiddenStore","registerRow","register","c","_b","destroy","Object","keys","setEditByCell","storePos","editCell","focusByCell","beforeNextFocusCell","next","getNextStore","assign","item","currentStorePointer","getCurrentStorePointer","cropCellToMax","s","nextItem","nextCell","nextStore","entries","nextItemCoord","getXStores","getYStores","nextLastCell","clearAll","selectAll","i","pos","types","t","croppedCell","cellCoordinates","coordinate","Math","min","x1","max","y1","isRangeSingleCell","a","getCellData","getCellDataParsed","model","column","cellParser","prop","getColumnType","rgCol","pin","getColumnSizes","cols","res","size","isColGrouping","colData","children","getColumns","columns","level","collection","colPinStart","colPinEnd","columnByProp","columnGrouping","maxLevel","sort","reduce","gatherGroup","columnDefinitionFromType","columnType","regularColumn","order","beforeSetup","group","ids","k","resultItem","collectionItem","isArray","map","findColumn","found","undefined","getColumnByProp","GROUP_DEPTH","GRID_INTERNALS","PSEUDO_GROUP_ITEM","PSEUDO_GROUP_ITEM_ID","PSEUDO_GROUP_ITEM_VALUE","PSEUDO_GROUP_COLUMN","GROUP_EXPANDED","GROUP_ORIGINAL_INDEX","GROUP_EXPAND_BTN","GROUP_EXPAND_EVENT","GROUPING_ROW_TYPE","getGroupValueDefault","gatherGrouping","array","groupIds","prevExpanded","expandedAll","getGroupValue","groupedItems","Map","originalIndex","groupLevelValues","groupId","lastLevelValue","pop","currentGroupLevel","value","has","lastLevelItems","itemIndex","groupingDepth","trimmed","oldNewIndexMap","pseudoGroupTest","sourceWithGroups","flattenGroupMaps","groupedValues","parentIds","isExpanded","depth","innerGroupedValues","levelIds","mergedIds","join","isGroupExpanded","JSON","stringify","Array","pseudoGroupTestIds","_value","index","slice","pseudoGroupTestId","childrenByGroup","getGroupingName","rgRow","isGrouping","isGroupingColumn","measureEqualDepth","groupA","groupB","ln","getParsedGroup","id","parseGroup","parse","isSameGroup","currentGroup","currentModel","nextModel","nextGroup","baseSlice","result","isIterateeCall","toInteger","ColumnService","getVisibleSourceItem","source","dataStore","hasGrouping","checkGrouping","isReadOnly","r","readOnly","readonly","data","rowDataModel","mergeProperties","defaultProps","extraPropsFunc","props","class","CELL_CLASS","DISABLED_CLASS","extra","doPropMerge","getRowClass","getSourceItem","getSaveData","rowIndex","colIndex","colType","getCellEditor","_r","editors","editor","getRangeData","d","changed","copyColLength","oldRange","copyRowLength","mapping","newRange","oldRowIndex","copyRow","j","copyColIndex","copyColumnProp","colProp","getTransformedDataToApply","colLength","rowLength","maxCol","p","currentCol","getRangeStaticData","getRangeTransformedToProps","copyRangeArray","v","toCopy","isRowDragService","rowDrag","mergeClasses","class1","class2","existing","className","style"],"sources":["src/store/selection/selection.store.ts","src/services/selection.store.connector.ts","src/store/selection/selection.helpers.ts","src/utils/column.utils.ts","src/plugins/groupingRow/grouping.const.ts","src/plugins/groupingRow/grouping.service.ts","node_modules/lodash/_baseSlice.js","node_modules/lodash/slice.js","src/components/data/column.service.ts"],"sourcesContent":["/**\n * Selection store\n */\n\nimport { setStore, Observable } from '../../utils/store.utils';\nimport { getRange } from '@store';\nimport { SelectionStoreState, Cell, TempRange, RangeArea, Nullable } from '@type';\nimport { createStore } from '@stencil/store';\n\nfunction defaultState(): SelectionStoreState {\n return {\n range: null,\n tempRange: null,\n tempRangeType: null,\n focus: null,\n edit: null,\n lastCell: null,\n nextFocus: null,\n };\n}\n\nexport class SelectionStore {\n readonly store: Observable<SelectionStoreState>;\n private unsubscribe: { (): void }[] = [];\n constructor() {\n this.store = createStore(defaultState());\n this.store.on('set', (key, newVal) => {\n if (key === 'tempRange' && !newVal) {\n this.store.set('tempRangeType', null);\n }\n });\n }\n\n onChange<Key extends keyof SelectionStoreState>(propName: Key, cb: (newValue: SelectionStoreState[Key]) => void) {\n this.unsubscribe.push(this.store.onChange(propName, cb));\n }\n\n clearFocus() {\n setStore(this.store, { focus: null, range: null, edit: null, tempRange: null });\n }\n\n setFocus(focus: Cell, end?: Cell) {\n if (!end) {\n setStore(this.store, { focus });\n } else {\n setStore(this.store, {\n focus,\n range: getRange(focus, end),\n edit: null,\n tempRange: null,\n });\n }\n }\n\n setNextFocus(focus: Cell) {\n setStore(this.store, { nextFocus: focus });\n }\n\n setTempArea(range: Nullable<TempRange> | null) {\n setStore(this.store, { tempRange: range?.area, tempRangeType: range?.type, edit: null });\n }\n\n clearTemp() {\n setStore(this.store, { tempRange: null });\n }\n\n /** Can be applied from selection change or from simple keyboard change clicks */\n setRangeArea(range: RangeArea | null) {\n setStore(this.store, { range, edit: null, tempRange: null });\n }\n setRange(start: Cell, end: Cell) {\n const range = getRange(start, end);\n this.setRangeArea(range);\n }\n\n setLastCell(lastCell: Cell) {\n setStore(this.store, { lastCell });\n }\n\n setEdit(val?: string | boolean) {\n const focus = this.store.get('focus');\n if (focus && typeof val === 'string') {\n setStore(this.store, {\n edit: { x: focus.x, y: focus.y, val },\n });\n return;\n }\n setStore(this.store, { edit: null });\n }\n\n dispose() {\n this.unsubscribe.forEach(f => f());\n this.store.dispose();\n }\n}\n","import { cropCellToMax, isHiddenStore, nextCell, SelectionStore } from '@store';\nimport type {\n MultiDimensionType,\n DimensionCols,\n DimensionRows,\n Cell,\n} from '@type';\n\ntype StoreByDimension = Record<number, SelectionStore>;\ntype FocusedStore = {\n entity: SelectionStore;\n cell: Cell;\n position: Cell;\n};\n\ntype StoresMapping<T> = { [xOrY: number]: Partial<T> };\n\nexport const EMPTY_INDEX = -1;\n\nexport default class SelectionStoreConnector {\n // dirty flag required to cleanup whole store in case visibility of panels changed\n private dirty = false;\n readonly stores: { [y: number]: { [x: number]: SelectionStore } } = {};\n\n readonly columnStores: StoreByDimension = {};\n readonly rowStores: { [y: number]: SelectionStore } = {};\n\n /**\n * Helpers for data conversion\n */\n readonly storesByType: Partial<Record<MultiDimensionType, number>> = {};\n readonly storesXToType: StoresMapping<DimensionCols> = {};\n readonly storesYToType: StoresMapping<DimensionRows> = {};\n\n get focusedStore(): FocusedStore | null {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const focused = this.stores[y][x]?.store.get('focus');\n if (focused) {\n return {\n entity: this.stores[y][x],\n cell: focused,\n position: {\n x: parseInt(x, 10),\n y: parseInt(y, 10),\n },\n };\n }\n }\n }\n return null;\n }\n\n get edit() {\n return this.focusedStore?.entity.store.get('edit');\n }\n\n get focused() {\n return this.focusedStore?.entity.store.get('focus');\n }\n\n get selectedRange() {\n return this.focusedStore?.entity.store.get('range');\n }\n\n private readonly sections: Element[] = [];\n\n registerSection(e?: Element) {\n if (!e) {\n this.sections.length = 0;\n // some elements removed, rebuild stores\n this.dirty = true;\n return;\n }\n if (this.sections.indexOf(e) === -1) {\n this.sections.push(e);\n }\n }\n\n // check if require to cleanup all stores\n beforeUpdate() {\n if (this.dirty) {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n this.stores[y][x].dispose();\n }\n }\n this.dirty = false;\n }\n }\n\n registerColumn(x: number, type: DimensionCols): SelectionStore {\n // if hidden just create store but no operations needed\n if (isHiddenStore(x)) {\n return new SelectionStore();\n }\n if (this.columnStores[x]) {\n return this.columnStores[x];\n }\n this.columnStores[x] = new SelectionStore();\n // build cross-linking type to position\n this.storesByType[type] = x;\n this.storesXToType[x] = type;\n return this.columnStores[x];\n }\n\n registerRow(y: number, type: DimensionRows): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(y)) {\n return new SelectionStore();\n }\n if (this.rowStores[y]) {\n return this.rowStores[y];\n }\n this.rowStores[y] = new SelectionStore();\n // build cross linking type to position\n this.storesByType[type] = y;\n this.storesYToType[y] = type;\n return this.rowStores[y];\n }\n\n /**\n * Cross store proxy, based on multiple dimensions\n */\n register({ x, y }: Cell): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(x) || isHiddenStore(y)) {\n return new SelectionStore();\n }\n if (!this.stores[y]) {\n this.stores[y] = {};\n }\n if (this.stores[y][x]) {\n // Store already registered. Do not register twice\n return this.stores[y][x];\n }\n this.stores[y][x] = new SelectionStore();\n // proxy update, column store trigger only range area\n this.stores[y][x]?.onChange('range', c => {\n this.columnStores[x].setRangeArea(c);\n this.rowStores[y].setRangeArea(c);\n });\n // clean up on remove\n this.stores[y][x]?.store.on('dispose', () => this.destroy(x, y));\n return this.stores[y][x];\n }\n\n private destroy(x: number, y: number) {\n this.columnStores[x]?.dispose();\n this.rowStores[y]?.dispose();\n\n delete this.rowStores[y];\n delete this.columnStores[x];\n // clear x cross-link\n if (this.storesXToType[x]) {\n const type = this.storesXToType[x];\n delete this.storesXToType[x];\n delete this.storesByType[type];\n }\n // clear y cross-link\n if (this.storesYToType[y]) {\n const type = this.storesYToType[y];\n delete this.storesYToType[y];\n delete this.storesByType[type];\n }\n if (this.stores[y]) {\n delete this.stores[y][x];\n }\n // clear empty rows\n if (!Object.keys(this.stores[y] || {}).length) {\n delete this.stores[y];\n }\n }\n\n setEditByCell<T extends Cell>(storePos: T, editCell: T) {\n this.focusByCell(storePos, editCell, editCell);\n this.setEdit('');\n }\n\n /**\n * Sets the next focus cell before the current one.\n * \n * @param focus - The cell to set as the next focus.\n */\n beforeNextFocusCell(focus: Cell) {\n // If there is no focused store, return early.\n if (!this.focusedStore) {\n return;\n }\n\n // Get the next store based on the current focus and the last cell.\n const lastCell = this.focusedStore.entity.store.get('lastCell');\n const next = lastCell && this.getNextStore(focus, this.focusedStore.position, lastCell);\n\n // Set the next focus cell in the store.\n next?.store?.setNextFocus({ ...focus, ...next.item });\n }\n\n focusByCell<T extends Cell>(storePos: T, start: T, end: T) {\n const store = this.stores[storePos.y][storePos.x];\n this.focus(store, { focus: start, end });\n }\n\n focus(store: SelectionStore, { focus, end }: { focus: Cell; end: Cell }) {\n const currentStorePointer = this.getCurrentStorePointer(store);\n if (!currentStorePointer) {\n return null;\n }\n\n // check for the focus in nearby store/viewport\n const lastCell = store.store.get('lastCell');\n const next = lastCell && this.getNextStore(focus, currentStorePointer, lastCell);\n\n // if next store present - update\n if (next?.store) {\n const item = { ...focus, ...next.item };\n this.focus(next.store, { focus: item, end: item });\n return null;\n }\n\n if (lastCell) {\n focus = cropCellToMax(focus, lastCell);\n end = cropCellToMax(end, lastCell); \n }\n store.setFocus(focus, end);\n return focus;\n }\n\n /**\n * Retrieves the current store pointer based on the active store.\n * Clears focus from all stores except the active one.\n */\n getCurrentStorePointer(store: SelectionStore) {\n let currentStorePointer: Cell | undefined;\n\n // Iterate through all stores\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const s = this.stores[y][x];\n\n // Clear focus from stores other than the active one\n if (s !== store) {\n s.clearFocus();\n } else {\n // Update the current store pointer with the active store coordinates\n currentStorePointer = { \n x: parseInt(x, 10), \n y: parseInt(y, 10) \n };\n }\n }\n }\n\n return currentStorePointer;\n }\n\n /**\n * Retrieves the next store based on the focus cell and current store pointer.\n * If the next store exists, returns an object with the next store and the item in the new store.\n * If the next store does not exist, returns null.\n */\n getNextStore(\n focus: Cell,\n currentStorePointer: Cell,\n lastCell: Cell,\n ) {\n // item in new store\n const nextItem: Partial<Cell> | null = nextCell(focus, lastCell);\n\n let nextStore: SelectionStore | undefined;\n if (nextItem) {\n Object.entries(nextItem).forEach(([type, nextItemCoord]: [keyof Cell, number]) => {\n let stores;\n switch (type) {\n case 'x':\n // Get the X stores for the current Y coordinate of the current store pointer\n stores = this.getXStores(currentStorePointer.y);\n break;\n case 'y':\n // Get the Y stores for the current X coordinate of the current store pointer\n stores = this.getYStores(currentStorePointer.x);\n break;\n }\n\n // Get the next store based on the item in the new store\n if (nextItemCoord >= 0) {\n nextStore = stores[++currentStorePointer[type]];\n } else {\n nextStore = stores[--currentStorePointer[type]];\n const nextLastCell = nextStore?.store.get('lastCell');\n if (nextLastCell) {\n nextItem[type] = nextLastCell[type] + nextItemCoord;\n }\n }\n });\n }\n return {\n store: nextStore,\n item: nextItem,\n };\n }\n\n clearAll() {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n this.stores[y][x]?.clearFocus();\n }\n }\n }\n\n setEdit(val?: string | boolean) {\n if (!this.focusedStore) {\n return;\n }\n this.focusedStore.entity.setEdit(val);\n }\n\n /**\n * Select all cells across all stores\n */\n selectAll() {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const store = this.stores[y][x];\n if (!store) {\n continue;\n }\n const lastCell = store.store.get('lastCell');\n if (lastCell) {\n store.setRange(\n { x: 0, y: 0 },\n { x: lastCell.x - 1, y: lastCell.y - 1 },\n );\n }\n }\n }\n }\n\n private getXStores(y: number) {\n return this.stores[y];\n }\n\n private getYStores(x: number) {\n const stores: { [p: number]: SelectionStore } = {};\n for (let i in this.stores) {\n stores[i] = this.stores[i][x];\n }\n return stores;\n }\n}\n","import { EMPTY_INDEX } from '../../services/selection.store.connector';\nimport { Cell, RangeArea } from '@type';\n\nexport function isHiddenStore(pos: number) {\n return pos === EMPTY_INDEX;\n}\n\nexport function nextCell(cell: Cell, lastCell: Cell): Partial<Cell> | null {\n const nextItem: Partial<Cell> = {};\n let types: (keyof Cell)[] = ['x', 'y'];\n\n // previous item check\n for (let t of types) {\n if (cell[t] < 0) {\n nextItem[t] = cell[t];\n return nextItem;\n }\n }\n // next item check\n for (let t of types) {\n if (cell[t] >= lastCell[t]) {\n nextItem[t] = cell[t] - lastCell[t];\n return nextItem;\n }\n }\n return null;\n}\n\nexport function cropCellToMax(cell: Cell, lastCell: Cell): Cell {\n const croppedCell: Cell = { ...cell };\n const cellCoordinates: (keyof Cell)[] = ['x', 'y'];\n\n for (const coordinate of cellCoordinates) {\n if (cell[coordinate] < 0) {\n croppedCell[coordinate] = 0;\n } else if (cell[coordinate] >= lastCell[coordinate]) {\n croppedCell[coordinate] = lastCell[coordinate] - 1;\n }\n }\n\n return croppedCell;\n}\n\nexport function getRange(start?: Cell | null, end?: Cell | null): RangeArea | null {\n return start && end\n ? {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n x1: Math.max(start.x, end.x),\n y1: Math.max(start.y, end.y),\n }\n : null;\n}\n\nexport function isRangeSingleCell(a: RangeArea): boolean {\n return a.x === a.x1 && a.y === a.y1;\n}\n","import isArray from 'lodash/isArray';\nimport reduce from 'lodash/reduce';\n\nimport {\n ColumnData,\n ColumnGrouping,\n ColumnProp,\n ColumnRegular,\n ColumnTypes,\n DataType,\n DimensionCols,\n ViewSettingSizeProp,\n} from '@type';\nimport { Group as StoreGroup } from '@store';\n\nexport type ColumnItems = Record<DimensionCols, ColumnRegular[]>;\nexport interface ColumnGroup extends StoreGroup {\n level: number;\n}\nexport type ColumnGroupingCollection = Record<DimensionCols, ColumnGroup[]>;\n\nexport function getCellData(val?: any) {\n if (typeof val === 'undefined' || val === null) {\n return '';\n }\n return val;\n}\n\nexport function getCellDataParsed(model: DataType, column: ColumnRegular) {\n const val = column.cellParser ? column.cellParser(model, column) : model[column.prop];\n return getCellData(val);\n}\n\n/**\n * Column collection definition.\n * Used to access indexed data for columns.\n * Can be accessed via different events.\n */\nexport type ColumnCollection = {\n /**\n * Columns as they are in stores\n */\n columns: Record<DimensionCols, ColumnRegular[]>;\n /**\n * Columns indexed by prop for quick access, it's possible to have multiple columns with same prop but not recommended\n */\n columnByProp: Record<ColumnProp, ColumnRegular[]>;\n /**\n * Grouped columns\n */\n columnGrouping: ColumnGroupingCollection;\n /**\n * Max level of grouping\n */\n maxLevel: number;\n /**\n * Sorting\n */\n sort: Record<ColumnProp, ColumnRegular>;\n};\n\nexport function getColumnType(rgCol: ColumnRegular): DimensionCols {\n if (rgCol.pin) {\n return rgCol.pin;\n }\n return 'rgCol';\n}\n\nexport function getColumnSizes(cols: ColumnRegular[]): ViewSettingSizeProp {\n const res: ViewSettingSizeProp = {};\n for (const [i, c] of cols.entries()) {\n if (c.size) {\n res[i] = c.size;\n }\n }\n return res;\n}\n\n\n/**\n * Check if column is grouping column\n */\nexport function isColGrouping(\n colData: ColumnGrouping | ColumnRegular,\n): colData is ColumnGrouping {\n return !!(colData as ColumnGrouping).children;\n}\n\n/**\n * This function is used to create a collection of columns.\n */\nexport function getColumns(\n columns: ColumnData,\n level = 0,\n types?: ColumnTypes,\n): ColumnCollection {\n const collection: ColumnCollection = {\n // columns as they are in stores per type\n columns: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n // columns indexed by prop for quick access\n columnByProp: {},\n // column grouping\n columnGrouping: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n // max depth level for column grouping\n maxLevel: level,\n // sorting\n sort: {},\n };\n\n return reduce(\n columns,\n (res: ColumnCollection, colData: ColumnGrouping | ColumnRegular) => {\n // Grouped column\n if (isColGrouping(colData)) {\n return gatherGroup(\n res,\n colData,\n getColumns(colData.children, level + 1, types),\n level,\n );\n }\n // Column type\n const columnDefinitionFromType = colData.columnType && types?.[colData.columnType];\n // Regular column\n const regularColumn = {\n ...columnDefinitionFromType,\n ...colData,\n };\n // Regular column, no Pin\n if (!regularColumn.pin) {\n res.columns.rgCol.push(regularColumn);\n // Pin\n } else {\n res.columns[regularColumn.pin].push(regularColumn);\n }\n if (regularColumn.order) {\n res.sort[regularColumn.prop] = regularColumn;\n }\n // it's possible that some columns have same prop, but better to avoid it\n if (!res.columnByProp[regularColumn.prop]) {\n res.columnByProp[regularColumn.prop] = [];\n }\n res.columnByProp[regularColumn.prop].push(regularColumn);\n\n // trigger setup hook if present\n regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);\n return res;\n },\n collection,\n );\n}\n\nexport function gatherGroup<T extends ColumnCollection>(\n res: T,\n colData: ColumnGrouping,\n collection: T,\n level = 0,\n): T {\n // group template\n const group: ColumnGroup = {\n ...colData,\n level,\n ids: [],\n };\n\n // check columns for update\n for (let k in collection.columns) {\n const key = k as keyof ColumnCollection['columns'];\n const resultItem = res.columns[key];\n const collectionItem = collection.columns[key];\n\n // if column data\n if (isArray(resultItem) && isArray(collectionItem)) {\n // fill columns\n resultItem.push(...collectionItem);\n\n // fill grouping\n if (collectionItem.length) {\n res.columnGrouping[key].push({\n ...group,\n ids: collectionItem.map(item => item.prop),\n });\n }\n }\n }\n // merge column groupings\n for (let k in collection.columnGrouping) {\n const key = k as DimensionCols;\n const collectionItem = collection.columnGrouping[key];\n res.columnGrouping[key].push(...collectionItem);\n }\n res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);\n res.sort = { ...res.sort, ...collection.sort };\n return res;\n}\n\nfunction findColumn(\n columns: ColumnData,\n prop: ColumnProp,\n): ColumnRegular | undefined {\n for (const c of columns) {\n if (isColGrouping(c)) {\n const found = findColumn(c.children, prop);\n if (found) {\n return found;\n }\n } else if (c.prop === prop) {\n return c;\n }\n }\n return undefined;\n}\n\nexport function getColumnByProp(\n columns: ColumnData,\n prop: ColumnProp,\n): ColumnRegular | undefined {\n return findColumn(columns, prop);\n}\n","import { GRID_INTERNALS } from '../../utils/consts';\n\nexport const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;\nexport const PSEUDO_GROUP_ITEM = `${GRID_INTERNALS}-name`;\nexport const PSEUDO_GROUP_ITEM_ID = `${GRID_INTERNALS}-id`;\nexport const PSEUDO_GROUP_ITEM_VALUE = `${GRID_INTERNALS}-value`;\nexport const PSEUDO_GROUP_COLUMN = `${GRID_INTERNALS}-column`;\nexport const GROUP_EXPANDED = `${GRID_INTERNALS}-expanded`;\nexport const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;\nexport const GROUP_EXPAND_BTN = `group-expand`;\nexport const GROUP_EXPAND_EVENT = `groupexpandclick`;\nexport const GROUPING_ROW_TYPE = 'rgRow';\n","import { DataType, ColumnProp, ColumnRegular } from '@type';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n PSEUDO_GROUP_COLUMN,\n PSEUDO_GROUP_ITEM,\n PSEUDO_GROUP_ITEM_ID,\n PSEUDO_GROUP_ITEM_VALUE,\n GROUP_ORIGINAL_INDEX,\n} from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\nexport type ExpandedOptions = {\n prevExpanded?: Record<string, boolean>;\n expandedAll?: boolean; // skip trim\n\n getGroupValue?(item: DataType, prop: string | number): any;\n groupLabelTemplate?: GroupLabelTemplateFunc;\n};\n\ntype GroupedData = Map<string, GroupedData | DataType[]>;\n\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\n return item[prop] || null;\n}\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param groupIds - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(\n array: DataType[],\n groupIds: ColumnProp[],\n {\n prevExpanded,\n expandedAll,\n getGroupValue = getGroupValueDefault,\n }: ExpandedOptions,\n) {\n const groupedItems: GroupedData = new Map();\n array.forEach((item, originalIndex) => {\n const groupLevelValues = groupIds.map(groupId =>\n getGroupValue(item, groupId),\n );\n const lastLevelValue = groupLevelValues.pop();\n let currentGroupLevel = groupedItems;\n groupLevelValues.forEach(value => {\n if (!currentGroupLevel.has(value)) {\n currentGroupLevel.set(value, new Map());\n }\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\n });\n if (!currentGroupLevel.has(lastLevelValue)) {\n currentGroupLevel.set(lastLevelValue, []);\n }\n const lastLevelItems = currentGroupLevel.get(lastLevelValue) as DataType[];\n lastLevelItems.push({\n ...item,\n [GROUP_ORIGINAL_INDEX]: originalIndex,\n });\n });\n\n let itemIndex = -1;\n const groupingDepth = groupIds.length;\n // collapse all groups in the beginning\n const trimmed: Record<number, boolean> = {};\n // index mapping\n const oldNewIndexMap: Record<number, number> = {};\n // check if group header exists\n const pseudoGroupTest: Record<string, number[]> = {};\n const sourceWithGroups: DataType[] = [];\n function flattenGroupMaps(\n groupedValues: GroupedData,\n parentIds: string[],\n isExpanded: boolean,\n ) {\n const depth = parentIds.length;\n groupedValues.forEach((innerGroupedValues, groupId) => {\n const levelIds = [...parentIds, groupId];\n const mergedIds = levelIds.join(',');\n const isGroupExpanded =\n isExpanded && (!!expandedAll || !!prevExpanded?.[mergedIds]);\n sourceWithGroups.push({\n [PSEUDO_GROUP_ITEM]: groupId,\n [GROUP_DEPTH]: depth,\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\n [GROUP_EXPANDED]: isGroupExpanded,\n });\n itemIndex += 1;\n if (!isGroupExpanded && depth) {\n trimmed[itemIndex] = true;\n }\n if (Array.isArray(innerGroupedValues)) {\n innerGroupedValues.forEach(value => {\n itemIndex += 1;\n if (!isGroupExpanded) {\n trimmed[itemIndex] = true;\n }\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex;\n const pseudoGroupTestIds = levelIds.map((_value, index) =>\n levelIds.slice(0, index + 1).join(','),\n );\n pseudoGroupTestIds.forEach(pseudoGroupTestId => {\n if (!pseudoGroupTest[pseudoGroupTestId]) {\n pseudoGroupTest[pseudoGroupTestId] = [];\n }\n pseudoGroupTest[pseudoGroupTestId].push(itemIndex);\n });\n });\n sourceWithGroups.push(...innerGroupedValues);\n } else {\n flattenGroupMaps(innerGroupedValues, levelIds, isGroupExpanded);\n }\n });\n }\n flattenGroupMaps(groupedItems, [], true);\n\n return {\n sourceWithGroups, // updates source mirror\n depth: groupingDepth, // largest depth for grouping\n trimmed, // used for expand/collapse grouping values\n oldNewIndexMap, // used for mapping old values to new\n childrenByGroup: pseudoGroupTest, // used to get child items in group\n };\n}\n\nexport function getGroupingName(rgRow?: DataType) {\n return rgRow && rgRow[PSEUDO_GROUP_ITEM];\n}\n\ntype GroupingItem = {\n [PSEUDO_GROUP_ITEM]: string;\n [GROUP_EXPANDED]: boolean;\n [PSEUDO_GROUP_ITEM_VALUE]: string;\n [GROUP_DEPTH]: number;\n};\n\nexport function isGrouping(rgRow?: DataType): rgRow is GroupingItem {\n return typeof rgRow?.[PSEUDO_GROUP_ITEM] !== 'undefined';\n}\n\nexport function isGroupingColumn(column?: ColumnRegular) {\n return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';\n}\n\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\n const ln = groupA.length;\n let i = 0;\n for (; i < ln; i++) {\n if (groupA[i] !== groupB[i]) {\n return i;\n }\n }\n return i;\n}\n\nexport function getParsedGroup(id: string) {\n const parseGroup = JSON.parse(id);\n // extra precaution and type safeguard\n if (!Array.isArray(parseGroup)) {\n return null;\n }\n return parseGroup;\n}\n\n// check if items is child of current clicked group\nexport function isSameGroup(\n currentGroup: any[],\n currentModel: DataType,\n nextModel: DataType,\n) {\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\n if (!nextGroup) {\n return false;\n }\n\n const depth = measureEqualDepth(currentGroup, nextGroup);\n return currentModel[GROUP_DEPTH] < depth;\n}\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n","import { DSourceState, getSourceItem, getVisibleSourceItem } from '@store';\nimport {\n getCellData,\n Observable,\n CELL_CLASS,\n DISABLED_CLASS,\n} from '../../utils';\nimport { getRange } from '@store';\n\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\nimport slice from 'lodash/slice';\nimport {\n DimensionCols,\n DimensionRows,\n RowDrag,\n ColumnRegular,\n DataType,\n CellProps,\n ColumnDataSchemaModel,\n ColumnProp,\n DataLookup,\n DataFormat,\n ChangedRange,\n OldNewRangeMapping,\n Cell,\n RangeArea,\n BeforeSaveDataDetails,\n EditorCtr,\n Editors,\n} from '@type';\nimport { JSXBase } from '@stencil/core/internal';\n\nexport type ColumnStores = {\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n};\nexport type RowStores = {\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\n};\n\nexport default class ColumnService {\n private unsubscribe: { (): void }[] = [];\n get columns(): ColumnRegular[] {\n return getVisibleSourceItem(this.source);\n }\n\n hasGrouping = false;\n type: DimensionCols;\n\n constructor(\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\n ) {\n this.unsubscribe.push(\n source.onChange('source', s => this.checkGrouping(s)),\n );\n this.checkGrouping(source.get('source'));\n this.type = source.get('type');\n }\n\n private checkGrouping(cols: ColumnRegular[]) {\n for (let rgCol of cols) {\n if (isGroupingColumn(rgCol)) {\n this.hasGrouping = true;\n return;\n }\n this.hasGrouping = false;\n }\n }\n\n isReadOnly(r: number, c: number) {\n const readOnly = this.columns[c]?.readonly;\n if (typeof readOnly === 'function') {\n const data = this.rowDataModel(r, c);\n return readOnly(data);\n }\n return !!readOnly;\n }\n\n mergeProperties(\n r: number,\n c: number,\n defaultProps: CellProps,\n model: ColumnDataSchemaModel,\n extraPropsFunc: ColumnRegular['cellProperties'],\n ): CellProps {\n const props: CellProps = {\n ...defaultProps,\n };\n props.class = {\n ...(typeof props.class === 'string'\n ? { [props.class]: true }\n : props.class),\n [CELL_CLASS]: true,\n [DISABLED_CLASS]: this.isReadOnly(r, c),\n };\n\n const extra = extraPropsFunc?.(model);\n if (!extra) {\n return props;\n }\n return doPropMerge(props, extra);\n }\n\n getRowClass(r: number, prop: string): string {\n const model = getSourceItem(this.dataStore, r) || {};\n return model[prop] || '';\n }\n\n getCellData(r: number, c: number): string {\n const data = this.rowDataModel(r, c);\n return getCellData(data.model[data.prop as number]);\n }\n\n getSaveData(\n rowIndex: number,\n colIndex: number,\n val?: string,\n ): BeforeSaveDataDetails {\n const data = this.rowDataModel(rowIndex, colIndex);\n if (typeof val === 'undefined') {\n val = getCellData(data.model[data.prop as number]);\n }\n return {\n prop: data.prop,\n rowIndex,\n colIndex,\n val,\n model: data.model,\n colType: this.type,\n type: this.dataStore.get('type'),\n };\n }\n\n getCellEditor(\n _r: number,\n c: number,\n editors: Editors,\n ): EditorCtr | undefined {\n const editor = this.columns[c]?.editor;\n if (!editor) {\n return undefined;\n }\n // reference\n if (typeof editor === 'string') {\n return editors[editor];\n }\n return editor;\n }\n\n /**\n * Get cell data model for given rowIndex and colIndex\n * Used to pass data to editor/renderer\n */\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\n const column = this.columns[colIndex];\n const prop: ColumnProp | undefined = column?.prop;\n const model = getSourceItem(this.dataStore, rowIndex) || {};\n const value = model[prop];\n const type = this.dataStore.get('type');\n return {\n prop,\n model,\n data: this.dataStore.get('source'),\n column,\n rowIndex,\n colIndex,\n colType: this.type,\n type,\n value,\n };\n }\n\n getRangeData(\n d: ChangedRange,\n columns: ColumnRegular[],\n ): {\n changed: DataLookup;\n mapping: OldNewRangeMapping;\n } {\n const changed: DataLookup = {};\n\n // get original length sizes\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\n const mapping: OldNewRangeMapping = {};\n\n // rows\n for (\n let rowIndex = d.newRange.y, i = 0;\n rowIndex < d.newRange.y1 + 1;\n rowIndex++, i++\n ) {\n // copy original data link\n const oldRowIndex = d.oldRange.y + (i % copyRowLength);\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\n\n // columns\n for (\n let colIndex = d.newRange.x, j = 0;\n colIndex < d.newRange.x1 + 1;\n colIndex++, j++\n ) {\n // check if old range area\n if (\n rowIndex >= d.oldRange.y &&\n rowIndex <= d.oldRange.y1 &&\n colIndex >= d.oldRange.x &&\n colIndex <= d.oldRange.x1\n ) {\n continue;\n }\n\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const prop = this.columns[colIndex]?.prop;\n const copyColIndex = d.oldRange.x + (j % copyColLength);\n const copyColumnProp = columns[copyColIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][prop] = copyRow[copyColumnProp];\n /** Generate mapping object */\n if (!mapping[rowIndex]) {\n mapping[rowIndex] = {};\n }\n mapping[rowIndex][prop] = {\n colIndex: copyColIndex,\n colProp: copyColumnProp,\n rowIndex: oldRowIndex,\n };\n }\n }\n }\n return {\n changed,\n mapping,\n };\n }\n\n getTransformedDataToApply(\n start: Cell,\n data: DataFormat[][],\n ): {\n changed: DataLookup;\n range: RangeArea | null;\n } {\n const changed: DataLookup = {};\n const copyRowLength = data.length;\n const colLength = this.columns.length;\n const rowLength = this.dataStore.get('items').length;\n // rows\n let rowIndex = start.y;\n let maxCol = 0;\n for (\n let i = 0;\n rowIndex < rowLength && i < copyRowLength;\n rowIndex++, i++\n ) {\n // copy original data link\n const copyRow = data[i % copyRowLength];\n const copyColLength = copyRow?.length || 0;\n // columns\n let colIndex = start.x;\n for (\n let j = 0;\n colIndex < colLength && j < copyColLength;\n colIndex++, j++\n ) {\n const p = this.columns[colIndex].prop;\n const currentCol = j % colLength;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = copyRow[currentCol];\n }\n }\n maxCol = Math.max(maxCol, colIndex - 1);\n }\n const range = getRange(start, {\n y: rowIndex - 1,\n x: maxCol,\n });\n return {\n changed,\n range,\n };\n }\n\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\n const changed: DataLookup = {};\n\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const p = this.columns[colIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = value;\n }\n }\n }\n return changed;\n }\n\n getRangeTransformedToProps(\n d: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const area: {\n prop: ColumnProp;\n rowIndex: number;\n colIndex: number;\n model?: DataType;\n colType: DimensionCols;\n type: DimensionRows;\n }[] = [];\n\n const type = this.dataStore.get('type');\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n const prop = this.columns[colIndex]?.prop;\n area.push({\n prop,\n rowIndex,\n colIndex,\n model: getSourceItem(store, rowIndex),\n type,\n colType: this.type,\n });\n }\n }\n return area;\n }\n\n copyRangeArray(\n range: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const cols = [...this.columns];\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\n const toCopy: DataFormat[][] = [];\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\n\n // rows indexes\n for (let i = range.y; i <= range.y1; i++) {\n const rgRow: DataFormat[] = [];\n mapping[i] = {};\n\n // columns indexes\n for (let prop of props) {\n const item = getSourceItem(store, i);\n\n // if no item - skip\n if (!item) {\n continue;\n }\n const val = item[prop];\n rgRow.push(val);\n mapping[i][prop] = val;\n }\n\n toCopy.push(rgRow);\n }\n return {\n data: toCopy,\n mapping,\n };\n }\n\n destroy() {\n this.unsubscribe.forEach(f => f());\n }\n}\n\n/**\n * Checks if the given rowDrag is a service for dragging rows.\n */\nexport function isRowDragService(\n rowDrag: RowDrag,\n model: ColumnDataSchemaModel,\n): boolean {\n if (typeof rowDrag === 'function') {\n return rowDrag(model);\n }\n return !!rowDrag;\n}\n\nfunction mergeClasses(\n class1: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\n class2: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\n) {\n if (typeof class1 === 'string') {\n class1 = { [class1]: true };\n }\n if (typeof class2 === 'string') {\n class2 = { [class2]: true };\n }\n return { ...class1, ...class2 };\n}\n\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\n // if className is provided - remove it from props it messing with stencil\n if (extra.className) {\n extra.class = mergeClasses(extra.class, extra.className);\n delete extra.className;\n }\n let props: CellProps = { ...extra, ...existing };\n // extend existing props\n if (extra.class) {\n props.class = mergeClasses(props.class, extra.class);\n }\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as t}from"./index-a61f225b.js";import{p as i}from"./column.service-407956dd.js";function s(t,i,s){const e=new CustomEvent(i,{detail:s,cancelable:true,bubbles:true});t===null||t===void 0?void 0:t.dispatchEvent(e);return e}function e(t,i,e){t.preventDefault();return s(t.target,i,e)}var h;(function(t){t["start"]="resize:start";t["move"]="resize:move";t["end"]="resize:end"})(h||(h={}));const o={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};const n={l:1,t:2,w:4,h:8};const l=t=>Object.assign(Object.assign({},t),{fitParent:t.fitParent||false,active:t.active||[],disableAttributes:t.disableAttributes||[],minWidth:t.minWidth||0,minHeight:t.minHeight||0});class r{constructor(t,i){var s,e;this.initialProps=t;this.$event=i;this.mouseX=0;this.mouseY=0;this.width=0;this.height=0;this.changeX=0;this.changeY=0;this.disableCalcMap=15;this.props=l(t);this.mouseMoveFunc=this.handleMove.bind(this);this.mouseUpFunc=this.handleUp.bind(this);this.minW=this.props.minWidth;this.minH=this.props.minHeight;this.maxW=(s=this.props.maxWidth)!==null&&s!==void 0?s:0;this.maxH=(e=this.props.maxHeight)!==null&&e!==void 0?e:0;this.parent={width:0,height:0};this.resizeState=0}set(t){this.$el=t;this.props.disableAttributes.forEach((t=>{switch(t){case"l":this.disableCalcMap&=~n.l;break;case"t":this.disableCalcMap&=~n.t;break;case"w":this.disableCalcMap&=~n.w;break;case"h":this.disableCalcMap&=~n.h}}))}emitEvent(t,i){var s;if(!this.$event){return}const e=(s=this.activeResizer)===null||s===void 0?void 0:s.classList.contains("resizable-l");this.$event(Object.assign({eventName:t,width:this.width+this.changeX*(e?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},i))}static isTouchEvent(t){var i;const s=t;return((i=s.touches)===null||i===void 0?void 0:i.length)>=0}handleMove(t){var i;if(!this.resizeState){return}let s,e;if(r.isTouchEvent(t)){s=t.touches[0].clientY;e=t.touches[0].clientX}else{s=t.clientY;e=t.clientX}let l=this.resizeState&o["resizable-r"].bit||this.resizeState&o["resizable-l"].bit;let c=this.resizeState&o["resizable-t"].bit||this.resizeState&o["resizable-b"].bit;if(c&&this.disableCalcMap&n.h){let t=s-this.mouseY;let i=this.changeY+t;const e=this.height+i;if(e<this.minH){i=-(this.height-this.minH)}if(this.maxH&&e>this.maxH){i=this.maxH-this.height}this.changeY=i;this.mouseY=s;if(this.activeResizer){this.activeResizer.style.bottom=`${-this.changeY}px`}}if(l&&this.disableCalcMap&n.w){const t=(i=this.activeResizer)===null||i===void 0?void 0:i.classList.contains("resizable-l");let s=e-this.mouseX;let h=this.changeX+s;const o=this.width+h*(t?-1:1);if(o<this.minW){h=-(this.width-this.minW)}if(this.maxW&&o>this.maxW){h=this.maxW-this.width}this.changeX=h;this.mouseX=e;if(this.activeResizer){if(!t){this.activeResizer.style.right=`${-this.changeX}px`}else{this.activeResizer.style.left=`${this.changeX}px`}}}this.emitEvent(h.move)}handleDown(t){if(t.defaultPrevented){return}t.preventDefault();this.dropInitial();for(let i in o){const s=t.target;if(this.$el.contains(s)&&(s===null||s===void 0?void 0:s.classList.contains(i))){document.body.style.cursor=o[i].cursor;if(r.isTouchEvent(t)){this.setInitials(t.touches[0],s)}else{t.preventDefault&&t.preventDefault();this.setInitials(t,s)}this.resizeState=o[i].bit;const e=h.start;this.emitEvent(e);break}}this.bindMove()}handleUp(t){t.preventDefault();if(this.resizeState!==0){this.resizeState=0;document.body.style.cursor="";const t=h.end;this.emitEvent(t)}this.dropInitial();this.unbindMove()}setInitials({clientX:t,clientY:i},s){var e,h,o,l;const r=getComputedStyle(this.$el);this.$el.classList.add("active");this.activeResizer=s;if(this.disableCalcMap&n.w){this.mouseX=t;this.width=this.$el.clientWidth;this.parent.width=(h=(e=this.$el.parentElement)===null||e===void 0?void 0:e.clientWidth)!==null&&h!==void 0?h:0;const i=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight);this.minW=Math.max(i,this.initialProps.minWidth||0);if(this.initialProps.maxWidth){this.maxW=Math.max(this.width,this.initialProps.maxWidth)}}if(this.disableCalcMap&n.h){this.mouseY=i;this.height=this.$el.clientHeight;this.parent.height=(l=(o=this.$el.parentElement)===null||o===void 0?void 0:o.clientHeight)!==null&&l!==void 0?l:0;const t=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);this.minH=Math.max(t,this.initialProps.minHeight||0);if(this.initialProps.maxHeight){this.maxH=Math.max(this.height,this.initialProps.maxHeight)}}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH;this.width=this.height=0;if(this.activeResizer){this.activeResizer.removeAttribute("style")}this.$el.classList.remove("active");this.activeResizer=undefined}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.addEventListener("touchend",this.mouseUpFunc,true);document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.removeEventListener("touchend",this.mouseUpFunc,true);document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const c=(i,s)=>{const e=[];const o=i.canResize&&new r(i,(t=>{var s;if(t.eventName===h.end){(s=i.onResize)===null||s===void 0?void 0:s.call(i,t)}}))||null;if(i.active){if(i.canResize){for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},onMouseDown:t=>o===null||o===void 0?void 0:o.handleDown(t),onTouchStart:t=>o===null||o===void 0?void 0:o.handleDown(t),class:`resizable resizable-${i.active[s]}`}))}}else{for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onTouchStart:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},class:`no-resize resizable resizable-${i.active[s]}`}))}}}return t("div",Object.assign({},i,{ref:t=>t&&(o===null||o===void 0?void 0:o.set(t))}),s,e)};const u="columnclick";const a=({data:e,props:h,additionalData:o},n)=>{let l=(e===null||e===void 0?void 0:e.name)||"";let r=h;if(e===null||e===void 0?void 0:e.columnTemplate){l=e.columnTemplate(t,e,o)}if(e===null||e===void 0?void 0:e.columnProperties){const t=e.columnProperties(e);if(t){r=i(h,t)}}const a=Object.assign(Object.assign({},r),{onMouseDown(t){s(t.currentTarget,u,{data:e,event:t})}});return t(c,Object.assign({},a),t("div",{class:"header-content"},l),n)};export{a as H,u as O,e as a,s as d};
5
- //# sourceMappingURL=header-cell-renderer-da468bd2.js.map
4
+ import{h as t}from"./index-a61f225b.js";import{p as i}from"./column.service-9e1f693c.js";function s(t,i,s){const e=new CustomEvent(i,{detail:s,cancelable:true,bubbles:true});t===null||t===void 0?void 0:t.dispatchEvent(e);return e}function e(t,i,e){t.preventDefault();return s(t.target,i,e)}var h;(function(t){t["start"]="resize:start";t["move"]="resize:move";t["end"]="resize:end"})(h||(h={}));const o={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};const n={l:1,t:2,w:4,h:8};const l=t=>Object.assign(Object.assign({},t),{fitParent:t.fitParent||false,active:t.active||[],disableAttributes:t.disableAttributes||[],minWidth:t.minWidth||0,minHeight:t.minHeight||0});class r{constructor(t,i){var s,e;this.initialProps=t;this.$event=i;this.mouseX=0;this.mouseY=0;this.width=0;this.height=0;this.changeX=0;this.changeY=0;this.disableCalcMap=15;this.props=l(t);this.mouseMoveFunc=this.handleMove.bind(this);this.mouseUpFunc=this.handleUp.bind(this);this.minW=this.props.minWidth;this.minH=this.props.minHeight;this.maxW=(s=this.props.maxWidth)!==null&&s!==void 0?s:0;this.maxH=(e=this.props.maxHeight)!==null&&e!==void 0?e:0;this.parent={width:0,height:0};this.resizeState=0}set(t){this.$el=t;this.props.disableAttributes.forEach((t=>{switch(t){case"l":this.disableCalcMap&=~n.l;break;case"t":this.disableCalcMap&=~n.t;break;case"w":this.disableCalcMap&=~n.w;break;case"h":this.disableCalcMap&=~n.h}}))}emitEvent(t,i){var s;if(!this.$event){return}const e=(s=this.activeResizer)===null||s===void 0?void 0:s.classList.contains("resizable-l");this.$event(Object.assign({eventName:t,width:this.width+this.changeX*(e?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},i))}static isTouchEvent(t){var i;const s=t;return((i=s.touches)===null||i===void 0?void 0:i.length)>=0}handleMove(t){var i;if(!this.resizeState){return}let s,e;if(r.isTouchEvent(t)){s=t.touches[0].clientY;e=t.touches[0].clientX}else{s=t.clientY;e=t.clientX}let l=this.resizeState&o["resizable-r"].bit||this.resizeState&o["resizable-l"].bit;let c=this.resizeState&o["resizable-t"].bit||this.resizeState&o["resizable-b"].bit;if(c&&this.disableCalcMap&n.h){let t=s-this.mouseY;let i=this.changeY+t;const e=this.height+i;if(e<this.minH){i=-(this.height-this.minH)}if(this.maxH&&e>this.maxH){i=this.maxH-this.height}this.changeY=i;this.mouseY=s;if(this.activeResizer){this.activeResizer.style.bottom=`${-this.changeY}px`}}if(l&&this.disableCalcMap&n.w){const t=(i=this.activeResizer)===null||i===void 0?void 0:i.classList.contains("resizable-l");let s=e-this.mouseX;let h=this.changeX+s;const o=this.width+h*(t?-1:1);if(o<this.minW){h=-(this.width-this.minW)}if(this.maxW&&o>this.maxW){h=this.maxW-this.width}this.changeX=h;this.mouseX=e;if(this.activeResizer){if(!t){this.activeResizer.style.right=`${-this.changeX}px`}else{this.activeResizer.style.left=`${this.changeX}px`}}}this.emitEvent(h.move)}handleDown(t){if(t.defaultPrevented){return}t.preventDefault();this.dropInitial();for(let i in o){const s=t.target;if(this.$el.contains(s)&&(s===null||s===void 0?void 0:s.classList.contains(i))){document.body.style.cursor=o[i].cursor;if(r.isTouchEvent(t)){this.setInitials(t.touches[0],s)}else{t.preventDefault&&t.preventDefault();this.setInitials(t,s)}this.resizeState=o[i].bit;const e=h.start;this.emitEvent(e);break}}this.bindMove()}handleUp(t){t.preventDefault();if(this.resizeState!==0){this.resizeState=0;document.body.style.cursor="";const t=h.end;this.emitEvent(t)}this.dropInitial();this.unbindMove()}setInitials({clientX:t,clientY:i},s){var e,h,o,l;const r=getComputedStyle(this.$el);this.$el.classList.add("active");this.activeResizer=s;if(this.disableCalcMap&n.w){this.mouseX=t;this.width=this.$el.clientWidth;this.parent.width=(h=(e=this.$el.parentElement)===null||e===void 0?void 0:e.clientWidth)!==null&&h!==void 0?h:0;const i=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight);this.minW=Math.max(i,this.initialProps.minWidth||0);if(this.initialProps.maxWidth){this.maxW=Math.max(this.width,this.initialProps.maxWidth)}}if(this.disableCalcMap&n.h){this.mouseY=i;this.height=this.$el.clientHeight;this.parent.height=(l=(o=this.$el.parentElement)===null||o===void 0?void 0:o.clientHeight)!==null&&l!==void 0?l:0;const t=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);this.minH=Math.max(t,this.initialProps.minHeight||0);if(this.initialProps.maxHeight){this.maxH=Math.max(this.height,this.initialProps.maxHeight)}}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH;this.width=this.height=0;if(this.activeResizer){this.activeResizer.removeAttribute("style")}this.$el.classList.remove("active");this.activeResizer=undefined}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.addEventListener("touchend",this.mouseUpFunc,true);document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.removeEventListener("touchend",this.mouseUpFunc,true);document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const c=(i,s)=>{const e=[];const o=i.canResize&&new r(i,(t=>{var s;if(t.eventName===h.end){(s=i.onResize)===null||s===void 0?void 0:s.call(i,t)}}))||null;if(i.active){if(i.canResize){for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},onMouseDown:t=>o===null||o===void 0?void 0:o.handleDown(t),onTouchStart:t=>o===null||o===void 0?void 0:o.handleDown(t),class:`resizable resizable-${i.active[s]}`}))}}else{for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onTouchStart:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},class:`no-resize resizable resizable-${i.active[s]}`}))}}}return t("div",Object.assign({},i,{ref:t=>t&&(o===null||o===void 0?void 0:o.set(t))}),s,e)};const u="columnclick";const a=({data:e,props:h,additionalData:o},n)=>{let l=(e===null||e===void 0?void 0:e.name)||"";let r=h;if(e===null||e===void 0?void 0:e.columnTemplate){l=e.columnTemplate(t,e,o)}if(e===null||e===void 0?void 0:e.columnProperties){const t=e.columnProperties(e);if(t){r=i(h,t)}}const a=Object.assign(Object.assign({},r),{onMouseDown(t){s(t.currentTarget,u,{data:e,event:t})}});return t(c,Object.assign({},a),t("div",{class:"header-content"},l),n)};export{a as H,u as O,e as a,s as d};
5
+ //# sourceMappingURL=header-cell-renderer-2ef5f8a1.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export{B as BasePlugin,D as DimensionStore,b as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,d as FilterPlugin,c as columnTypes,f as filterCoreFunctionsIndexedByType,g as filterNames,e as filterTypes,h as getLeftRelative,i as isRowType,a as isStretchPlugin,r as rowTypes}from"./column.drag.plugin-170c12a3.js";export{d as dispatch,a as dispatchByEvent}from"./header-cell-renderer-da468bd2.js";export{h}from"./index-a61f225b.js";export{C as CELL_CLASS,K as CELL_HANDLER_CLASS,w as DATA_COL,x as DATA_ROW,y as DISABLED_CLASS,G as DRAGGABLE_CLASS,N as DRAGG_TEXT,F as DRAG_ICON_CLASS,D as DataStore,L as EDIT_INPUT_WR,I as FOCUS_CLASS,O as GRID_INTERNALS,E as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,B as HEADER_ROW_CLASS,A as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,J as MOBILE_CLASS,R as RESIZE_INTERVAL,P as ROW_FOCUSED_CLASS,z as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS,u as applyMixins,h as calculateDimensionData,Q as codesLetter,k as findPositionInArray,f as gatherTrimmedItems,j as getItemByIndex,i as getItemByPosition,g as getPhysical,n as getScrollbarSize,b as getSourceItem,e as getSourceItemVirtualIndexByProp,a as getVisibleSourceItem,U as keyValues,m as mergeSortedArray,p as proxyPlugin,l as pushSorted,r as range,o as scaleValue,d as setItems,c as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,v as setStore,q as timeout,t as trimmedPlugin}from"./index-b6586f9b.js";export{S as SelectionStore,c as cropCellToMax,k as gatherGroup,b as getCellData,d as getCellDataParsed,l as getColumnByProp,f as getColumnSizes,e as getColumnType,j as getColumns,g as getRange,h as isColGrouping,i as isHiddenStore,a as isRangeSingleCell,n as nextCell}from"./column.service-407956dd.js";export{S as SortingSign}from"./sorting.sign-1a675bf7.js";export{T as TextEditor}from"./text-editor-654f5d53.js";export{V as ViewportStore,a as addMissingItems,f as calculateRowHeaderSize,d as getFirstItem,b as getItems,e as getLastItem,g as getUpdatedItemsByPosition,i as isActiveRange,c as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./row-header-utils-e043f744.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button-d40ab17b.js";export{k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,f as isEnterKeyValue,i as isMetaKey,j as isPaste,d as isTab,e as isTabKeyValue}from"./key.utils-562c749e.js";import"./debounce-7b511afc.js";
4
+ export{B as BasePlugin,D as DimensionStore,b as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,d as FilterPlugin,c as columnTypes,f as filterCoreFunctionsIndexedByType,g as filterNames,e as filterTypes,h as getLeftRelative,i as isRowType,a as isStretchPlugin,r as rowTypes}from"./column.drag.plugin-41640959.js";export{d as dispatch,a as dispatchByEvent}from"./header-cell-renderer-2ef5f8a1.js";export{h}from"./index-a61f225b.js";export{C as CELL_CLASS,K as CELL_HANDLER_CLASS,w as DATA_COL,x as DATA_ROW,y as DISABLED_CLASS,G as DRAGGABLE_CLASS,N as DRAGG_TEXT,F as DRAG_ICON_CLASS,D as DataStore,L as EDIT_INPUT_WR,I as FOCUS_CLASS,O as GRID_INTERNALS,E as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,B as HEADER_ROW_CLASS,A as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,J as MOBILE_CLASS,R as RESIZE_INTERVAL,P as ROW_FOCUSED_CLASS,z as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS,u as applyMixins,h as calculateDimensionData,Q as codesLetter,k as findPositionInArray,f as gatherTrimmedItems,j as getItemByIndex,i as getItemByPosition,g as getPhysical,n as getScrollbarSize,b as getSourceItem,e as getSourceItemVirtualIndexByProp,a as getVisibleSourceItem,U as keyValues,m as mergeSortedArray,p as proxyPlugin,l as pushSorted,r as range,o as scaleValue,d as setItems,c as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,v as setStore,q as timeout,t as trimmedPlugin}from"./index-b6586f9b.js";export{S as SelectionStore,c as cropCellToMax,k as gatherGroup,b as getCellData,d as getCellDataParsed,l as getColumnByProp,f as getColumnSizes,e as getColumnType,j as getColumns,g as getRange,h as isColGrouping,i as isHiddenStore,a as isRangeSingleCell,n as nextCell}from"./column.service-9e1f693c.js";export{S as SortingSign}from"./sorting.sign-1a675bf7.js";export{T as TextEditor}from"./text-editor-654f5d53.js";export{V as ViewportStore,a as addMissingItems,f as calculateRowHeaderSize,d as getFirstItem,b as getItems,e as getLastItem,g as getUpdatedItemsByPosition,i as isActiveRange,c as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./row-header-utils-e043f744.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button-d40ab17b.js";export{k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,f as isEnterKeyValue,i as isMetaKey,j as isPaste,d as isTab,e as isTabKeyValue}from"./key.utils-562c749e.js";import"./debounce-7b511afc.js";
5
5
  //# sourceMappingURL=index.esm.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as e,r as t,c as r,H as o,a as i}from"./index-a61f225b.js";import{g as s,d as a,_ as n,a1 as d,a2 as l,a3 as h,a4 as c,a5 as g,v as u,D as f,b as v,W as p,e as m,s as w,X as b,a as x,f as C,j as y,R as S,q as k}from"./index-b6586f9b.js";import{B as R,c as L,F as j,r as E,i as P,D as H,a as z,S as O,A as I,d as M,E as T,C as D}from"./column.drag.plugin-170c12a3.js";import{m as N,G as F,q as $,r as B,s as V,P as U,t as A,u as G,v as W,w as X,x as Y,y as _,l as q,e as Z,f as J,E as K,j as Q,z as ee}from"./column.service-407956dd.js";import{a as te,b as re,d as oe}from"./debounce-7b511afc.js";import{V as ie}from"./row-header-utils-e043f744.js";import{v as se,H as ae,C as ne,F as de,D as le}from"./viewport.helpers-7e7f9dad.js";import{g as he}from"./events-cf0893a3.js";import"./filter.button-d40ab17b.js";import"./header-cell-renderer-da468bd2.js";class ce{constructor(){this.defaultRowSize=32}}class ge{constructor(){this.defaultRowSize=27}}class ue{constructor(){this.defaultRowSize=42}}const fe="default";const ve=[fe,"material","compact","darkMaterial","darkCompact"];class pe{get theme(){return this.currentTheme}get rowSize(){return this.customRowSize||this.currentTheme.defaultRowSize}set rowSize(e){this.customRowSize=e}constructor(e){this.customRowSize=0;this.customRowSize=e.rowSize;this.register("default")}register(e){const t=me(e);switch(t){case"material":case"darkMaterial":this.currentTheme=new ue;break;case"compact":case"darkCompact":this.currentTheme=new ce;break;default:this.currentTheme=new ge;break}}}function me(e){if(e&&ve.indexOf(e)>-1){return e}return fe}function we(e,t){const r=t[e];const o=r[U];const i={};let s=e+1;const a=t.length;while(s<a){const e=t[s];if(N(e)){const t=e[U];if(!t.length||!t.startsWith(o+",")){break}e[F]=false}i[s++]=true}r[F]=false;return{trimmed:i}}function be(e,t,r){const o=r[e];const i=t[o];const s=$(i[A]);const a={};if(!s){return{trimmed:a}}const n=[];i[F]=true;let d=o+1;const l=t.length;let h=0;while(d<l){const e=t[d];const r=N(e);if(r){if(!B(s,i,e)){break}else if(!h){h=e[V]}}if(!h||r&&h===e[V]){a[d]=false;n.push(d)}d++}const c={trimmed:a};if(n.length){const t=[...r];t.splice(e+1,0,...n);c.items=t}return c}const xe="grouping";function Ce(e,t,r){const o={};for(let i in e){if(i===xe){continue}const s=e[i];const a={};for(let e in s){let n=t[e];if(r){n=r[n]}if(s[e]){a[n]=true;if(n!==parseInt(e,10)){o[i]=a}}}}return o}class ye extends R{get hasProps(){var e,t,r;return((e=this.options)===null||e===void 0?void 0:e.props)&&((r=(t=this.options)===null||t===void 0?void 0:t.props)===null||r===void 0?void 0:r.length)}get store(){return this.providers.data.stores[G].store}get rowItems(){return this.store.get("items")}get trimmed(){return this.store.get("trimmed")}constructor(e,t){super(e,t);this.revogrid=e;this.providers=t}onFocus(e){if(N(e.detail.model)){e.preventDefault()}}onExpand({virtualIndex:e}){const{source:t}=this.getSource();let r=this.trimmed[xe];let o=s(this.store,e);const i=t[o];const n=i[F];if(!n){const{trimmed:o,items:i}=be(e,t,this.rowItems);r=Object.assign(Object.assign({},r),o);if(i){a(this.store,i)}}else{const{trimmed:e}=we(o,t);r=Object.assign(Object.assign({},r),e);this.revogrid.clearFocus()}this.store.set("source",t);this.revogrid.addTrimmed(r,xe)}getSource(e=false){const t=this.store.get("source");const r=this.store.get("proxyItems");let o=0;return r.reduce(((r,i)=>{const s=t[i];if(!e){r.source.push(s);return r}if(N(s)){if(s[F]){r.prevExpanded[s[U]]=true}}else{r.source.push(s);r.oldNewIndexes[i]=o;o++}return r}),{source:[],prevExpanded:{},oldNewIndexes:{}})}setColumnGrouping(e){if(e===null||e===void 0?void 0:e.length){e[0][W]=true;return true}return false}setColumns({columns:e}){for(let t of L){if(this.setColumnGrouping(e[t])){break}}}onDrag(e){const{from:t,to:r}=e.detail;const o=r-t>=0;const{source:i}=this.getSource();const s=this.rowItems;let a=o?t:r;const n=o?r:t;for(;a<n;a++){const t=i[s[a]];const r=N(t);if(r){e.preventDefault();return}}}beforeTrimmedApply(e,t){if(t===j){const t=this.store.get("source");for(let r in e){if(e[r]&&N(t[r])){e[r]=false}}}}subscribe(){this.addEventListener("beforesourceset",(({detail:e})=>this.onDataSet(e)));this.addEventListener("beforecolumnsset",(({detail:e})=>this.setColumns(e)));this.addEventListener("beforetrimmed",(({detail:{trimmed:e,trimmedType:t}})=>this.beforeTrimmedApply(e,t)));this.addEventListener("aftersortingapply",(()=>this.doSourceUpdate(Object.assign({},this.options))));this.addEventListener("beforecellfocus",(e=>this.onFocus(e)));this.addEventListener("roworderchanged",(e=>this.onDrag(e)));this.addEventListener(X,(({detail:e})=>this.onExpand(e)))}doSourceUpdate(e){var t;if(!this.hasProps){return}const{source:r,prevExpanded:o,oldNewIndexes:i}=this.getSource(true);const{sourceWithGroups:s,depth:a,trimmed:n,oldNewIndexMap:d,childrenByGroup:l}=Y(r,((t=this.options)===null||t===void 0?void 0:t.props)||[],Object.assign({prevExpanded:o},e));this.providers.data.setData(s,G,this.revogrid.disableVirtualY,{depth:a,customRenderer:e===null||e===void 0?void 0:e.groupLabelTemplate},true);this.updateTrimmed(n,l,i!==null&&i!==void 0?i:{},d)}onDataSet(e){var t;if(!this.hasProps||!(e===null||e===void 0?void 0:e.source)||!e.source.length){return}const r=e.source.filter((e=>!N(e)));const o=this.revogrid.grouping||{};const{sourceWithGroups:i,depth:s,trimmed:a,oldNewIndexMap:n,childrenByGroup:d}=Y(r,((t=this.options)===null||t===void 0?void 0:t.props)||[],Object.assign({},o||{}));e.source=i;this.providers.data.setGrouping({depth:s});this.updateTrimmed(a,d,n)}setGrouping(e){this.clearSubscriptions();this.options=e;if(!e.props||!Object.keys(e.props).length){this.clearGrouping();return}const{source:t}=this.getSource();if(t.length){this.doSourceUpdate(Object.assign({},e))}for(let e of L){if(this.setColumnGrouping(this.providers.column.getColumns(e))){this.providers.column.refreshByType(e);break}}this.subscribe()}clearGrouping(){L.forEach((e=>{const t=this.providers.column.getColumns(e);let r=false;t.forEach((e=>{if(_(e)){delete e[W];r=true}}));if(r){this.providers.column.refreshByType(e)}}));const{source:e,oldNewIndexes:t}=this.getSource(true);this.providers.data.setData(e,G,this.revogrid.disableVirtualY,undefined,true);this.updateTrimmed(undefined,undefined,t)}updateTrimmed(e={},t={},r={},o){const i=Ce(this.trimmed,r,o);for(let e in i){this.revogrid.addTrimmed(i[e],e)}this.revogrid.addTrimmed(Object.assign({},e),xe)}}var Se="[object String]";function ke(e){return typeof e=="string"||!n(e)&&te(e)&&re(e)==Se}var Re=d("length");const Le=Re;var je="\\ud800-\\udfff",Ee="\\u0300-\\u036f",Pe="\\ufe20-\\ufe2f",He="\\u20d0-\\u20ff",ze=Ee+Pe+He,Oe="\\ufe0e\\ufe0f";var Ie="\\u200d";var Me=RegExp("["+Ie+je+ze+Oe+"]");function Te(e){return Me.test(e)}var De="\\ud800-\\udfff",Ne="\\u0300-\\u036f",Fe="\\ufe20-\\ufe2f",$e="\\u20d0-\\u20ff",Be=Ne+Fe+$e,Ve="\\ufe0e\\ufe0f";var Ue="["+De+"]",Ae="["+Be+"]",Ge="\\ud83c[\\udffb-\\udfff]",We="(?:"+Ae+"|"+Ge+")",Xe="[^"+De+"]",Ye="(?:\\ud83c[\\udde6-\\uddff]){2}",_e="[\\ud800-\\udbff][\\udc00-\\udfff]",qe="\\u200d";var Ze=We+"?",Je="["+Ve+"]?",Ke="(?:"+qe+"(?:"+[Xe,Ye,_e].join("|")+")"+Je+Ze+")*",Qe=Je+Ze+Ke,et="(?:"+[Xe+Ae+"?",Ae,Ye,_e,Ue].join("|")+")";var tt=RegExp(Ge+"(?="+Ge+")|"+et+Qe,"g");function rt(e){var t=tt.lastIndex=0;while(tt.test(e)){++t}return t}function ot(e){return Te(e)?rt(e):Le(e)}var it="[object Map]",st="[object Set]";function at(e){if(e==null){return 0}if(l(e)){return ke(e)?ot(e):e.length}var t=h(e);if(t==it||t==st){return e.size}return c(e).length}class nt extends R{async runSorting(e,t){var r;await this.sort(e,t);(r=this.sortingPromise)===null||r===void 0?void 0:r.call(this);this.sortingPromise=null}constructor(e,t){super(e,t);this.revogrid=e;this.sortingPromise=null;this.postponeSort=oe((async(e,t)=>this.runSorting(e,t)),50);const r=async({detail:{type:e}})=>{if(!!this.sorting&&this.sortingFunc){const t=this.emit("beforesorting",{type:e});if(t.defaultPrevented){return}this.startSorting(this.sorting,this.sortingFunc)}};const o=async({detail:{order:e}})=>{const t=await this.revogrid.getColumns();const r={};for(let o in e){const i=this.getComparer(q(t,o),e[o]);r[o]=i}this.runSorting(e,r)};const i=async e=>{var t,r;if(e.defaultPrevented){return}if(!e.detail.column.sortable){return}this.headerclick(e.detail.column,e.detail.index,(r=(t=e.detail)===null||t===void 0?void 0:t.originalEvent)===null||r===void 0?void 0:r.shiftKey)};this.addEventListener("beforeanysource",r);this.addEventListener("aftercolumnsset",o);this.addEventListener("beforeheaderclick",i)}startSorting(e,t){if(!this.sortingPromise){this.revogrid.jobsBeforeRender.push(new Promise((e=>{this.sortingPromise=e})))}this.postponeSort(e,t)}getComparer(e,t){var r;const o=((r=e===null||e===void 0?void 0:e.cellCompare)===null||r===void 0?void 0:r.bind({order:t}))||this.defaultCellCompare;if(t=="asc"){return o}if(t=="desc"){return this.descCellCompare(o)}return undefined}async headerclick(e,t,r){var o,i;let s=this.getNextOrder(e.order);const a=this.emit("beforesorting",{column:e,order:s,additive:r});if(a.defaultPrevented){return}s=a.detail.order;const n=await this.revogrid.updateColumnSorting(a.detail.column,t,s,r);const d=this.emit("beforesortingapply",{column:n,order:s,additive:r});if(d.defaultPrevented){return}s=d.detail.order;const l=this.getComparer(e,s);if(r&&this.sorting){const t={};const r={};this.sorting=Object.assign(Object.assign({},this.sorting),t);this.sortingFunc=Object.assign(Object.assign({},this.sortingFunc),r);if(e.prop in t&&at(t)>1&&s===undefined){delete t[e.prop];delete r[e.prop]}else{t[e.prop]=s;r[e.prop]=l}}else{if(s){this.sorting={[e.prop]:s};this.sortingFunc={[e.prop]:l}}else{(o=this.sorting)===null||o===void 0?true:delete o[e.prop];(i=this.sortingFunc)===null||i===void 0?true:delete i[e.prop]}}this.startSorting(this.sorting,this.sortingFunc)}async sort(e,t,r=["rgRow","rowPinStart","rowPinEnd"]){if(!at(e)){this.sorting=undefined;this.sortingFunc=undefined;for(let e of r){const t=await this.revogrid.getSourceStore(e);const r=t.get("source");const o=g(0,r.length);u(t,{proxyItems:o,source:[...r]})}}else{this.sorting=e;this.sortingFunc=t;for(let e of r){const r=await this.revogrid.getSourceStore(e);const o=r.get("source");const i=r.get("proxyItems");const s=this.sortIndexByItems([...i],o,t);u(r,{proxyItems:s,source:[...o]})}}this.emit("aftersortingapply")}defaultCellCompare(e,t,r){var o,i;const s=(o=t[e])===null||o===void 0?void 0:o.toString().toLowerCase();const a=(i=r[e])===null||i===void 0?void 0:i.toString().toLowerCase();return s==a?0:s>a?1:-1}descCellCompare(e){return(t,r,o)=>-1*e(t,r,o)}sortIndexByItems(e,t,r={}){if(Object.entries(r).length===0){return[...Array(e.length).keys()]}return e.sort(((e,o)=>{for(const[i,s]of Object.entries(r)){const r=t[e];const a=t[o];const n=s===null||s===void 0?void 0:s(i,r,a);if(n){return n}}return 0}))}getNextOrder(e){switch(e){case undefined:return"asc";case"asc":return"desc";case"desc":return undefined}}}class dt{get order(){const e={};const t=this.sorting;if(t){Object.keys(t).forEach((r=>{e[r]=t[r].order}))}return e}get stores(){return this.dataSources}constructor(){this.sorting=null;this.collection=null;this.dataSources=L.reduce(((e,t)=>{e[t]=new f(t);return e}),{})}column(e,t){return this.getColumn(e,t||"rgCol")}getColumn(e,t){return v(this.dataSources[t].store,e)}getRawColumns(){return p(this.dataSources,((e,t,r)=>{e[r]=t.store.get("source");return e}),{rgCol:[],colPinStart:[],colPinEnd:[]})}getColumns(e="all"){if(e!=="all"){return this.dataSources[e].store.get("source")}return L.reduce(((e,t)=>{e.push(...this.dataSources[t].store.get("source"));return e}),[])}getColumnIndexByProp(e,t){return m(this.dataSources[t].store,e)}getColumnByProp(e){var t;return(t=this.collection)===null||t===void 0?void 0:t.columnByProp[e]}refreshByType(e){this.dataSources[e].refresh()}setColumns(e){L.forEach((t=>{this.dataSources[t].updateData(e.columns[t],{depth:e.maxLevel,groups:e.columnGrouping[t].reduce(((e,t)=>{if(!e[t.level]){e[t.level]=[]}e[t.level].push(t);return e}),{})})}));this.sorting=e.sort;this.collection=e;return e}updateColumns(e){const t=e.reduce(((e,t)=>{const r=Z(t);if(!e[r]){e[r]={}}e[r][t.prop]=t;return e}),{});const r={};for(const e in t){if(!t.hasOwnProperty(e)){continue}const o=e;const i=t[o];const s=this.dataSources[o].store.get("source");r[o]={};for(let e=0;e<s.length;e++){const t=s[e];const a=i===null||i===void 0?void 0:i[t.prop];if(a){r[o][e]=a}}}for(const e in r){if(!r.hasOwnProperty(e)){continue}const t=e;w(this.dataSources[t].store,r[t]||{})}}updateColumn(e,t){const r=Z(e);w(this.dataSources[r].store,{[t]:e})}updateColumnSorting(e,t,r,o){if(!o){this.clearSorting()}e.order=r;if(!this.sorting){this.sorting={}}this.sorting[e.prop]=e;this.updateColumn(e,t);return e}clearSorting(){const e=p(this.sorting,((e,t)=>{const r=Z(t);e[r]=true;return e}),{});b(e,((e,t)=>{const r=this.dataSources[t].store.get("source");b(r,(e=>e.order=undefined));this.dataSources[t].setData({source:[...r]})}));this.sorting={}}}class lt{constructor(e){this.dimensionProvider=e;this.stores=p(E,((e,t)=>{e[t]=new f(t);return e}),{})}setData(e,t="rgRow",r=false,o,i=false){this.stores[t].updateData([...e],o,i);const s=t!=="rgRow"||r;this.dimensionProvider.setData(e.length,t,s);return e}getModel(e,t="rgRow"){const r=this.stores[t].store;return v(r,e)}setCellData({type:e,rowIndex:t,prop:r,val:o},i=true){const s=this.getModel(t,e);s[r]=o;w(this.stores[e].store,{[t]:s},i)}setRangeData(e,t){const r={};for(let o in e){const i=r[o]=v(this.stores[t].store,parseInt(o,10));if(!i){continue}for(let t in e[o]){i[t]=e[o][t]}}w(this.stores[t].store,r)}refresh(e="all"){if(P(e)){this.refreshItems(e)}E.forEach((e=>this.refreshItems(e)))}refreshItems(e="rgRow"){const t=this.stores[e].store.get("items");this.stores[e].setData({items:[...t]})}setGrouping({depth:e},t="rgRow"){this.stores[t].setData({groupingDepth:e})}setTrimmed(e,t="rgRow"){const r=this.stores[t];r.addTrimmed(e);this.dimensionProvider.setTrimmed(e,t);if(t==="rgRow"){this.dimensionProvider.setData(x(r.store).length,t)}}}class ht{constructor(e,t){this.viewports=e;const r=oe((e=>t.realSizeChanged(e)),S);this.stores=p([...E,...L],((e,t)=>{e[t]=new H(t);e[t].store.onChange("realSize",(()=>r(t)));return e}),{})}clearSize(e,t){this.stores[e].drop();this.viewports.stores[e].setOriginalSizes(this.stores[e].store.get("originItemSize"));this.setItemCount(t,e)}setCustomSizes(e,t,r=false){let o=t;if(r){const r=this.stores[e].store.get("sizes");o=Object.assign(Object.assign({},r),t)}this.stores[e].setDimensionSize(o);this.updateViewport(e,true)}setItemCount(e,t){this.viewports.stores[t].setViewport({realCount:e});this.stores[t].setStore({count:e})}setTrimmed(e,t){const r=C(e);const o=this.stores[t];o.setStore({trimmed:r});this.updateViewport(t,true)}setData(e,t,r=false){this.setItemCount(e,t);if(r){const e=this.stores[t].getCurrentState();this.viewports.stores[t].setViewport({virtualSize:e.realSize})}this.updateViewport(t)}applyNewColumns(e,t){for(let r of L){this.stores[r].drop();const o=e[r];const i=r!=="rgCol"||t;this.stores[r].setStore({count:o.length});const s=J(o);this.stores[r].setDimensionSize(s);const a={realCount:o.length};if(i){a.virtualSize=this.stores[r].getCurrentState().realSize}this.viewports.stores[r].setViewport(a);this.setViewPortCoordinate({coordinate:this.viewports.stores[r].lastCoordinate,type:r})}}getFullSize(){var e,t;let r=0;let o=0;for(let t of L){r+=((e=this.stores[t])===null||e===void 0?void 0:e.store.get("realSize"))||0}for(let e of E){o+=((t=this.stores[e])===null||t===void 0?void 0:t.store.get("realSize"))||0}return{y:o,x:r}}updateViewport(e,t=false){this.setViewPortCoordinate({coordinate:this.viewports.stores[e].lastCoordinate,type:e,force:t})}setViewPortCoordinate({coordinate:e,type:t,force:r=false}){const o=this.stores[t].getCurrentState();this.viewports.stores[t].setViewPortCoordinate(e,o,r)}getViewPortPos(e){const t=this.stores[e.dimension].getCurrentState();const r=y(t,e.coordinate);return r.start}setSettings(e,t){let r=[];switch(t){case"rgCol":r=L;break;case"rgRow":r=E;break}for(let t of r){this.stores[t].setStore(e)}}}class ct{constructor(){this.stores=p([...E,...L],((e,t)=>{e[t]=new ie(t);return e}),{})}setViewport(e,t){this.stores[e].setViewport(t)}}function gt(e){const t=e.dimensions[e.colType].store;const r=t.get("realSize");const o={contentWidth:r,class:e.colType,contentHeight:e.contentHeight,key:e.colType,colType:e.colType,onResizeviewport:e.onResizeviewport,style:e.fixWidth?{minWidth:`${r}px`}:undefined};const i={colData:x(e.colStore),dimensionCol:t,type:e.colType,groups:e.colStore.get("groups"),groupingDepth:e.colStore.get("groupingDepth"),resizeHandler:e.colType==="colPinEnd"?["l"]:undefined,onHeaderresize:e.onHeaderresize};return{prop:o,type:e.colType,position:e.position,headerProp:i,viewportCol:e.viewports[e.colType].store}}class ut{constructor(e,t){var r,o;this.config=e;(r=this.config.selectionStoreConnector)===null||r===void 0?void 0:r.beforeUpdate();const i=[];let s=0;L.forEach((r=>{const o=e.columnProvider.stores[r].store;if(!o.get("items").length){return}const a={colType:r,position:{x:s,y:1},contentHeight:t,fixWidth:r!=="rgCol",viewports:e.viewportProvider.stores,dimensions:e.dimensionProvider.stores,rowStores:e.dataProvider.stores,colStore:o,onHeaderresize:e=>this.onColumnResize(r,e,o)};if(r==="rgCol"){a.onResizeviewport=t=>{var r;if(e.disableVirtualY&&t.detail.dimension==="rgRow"){return}else if(e.disableVirtualX&&t.detail.dimension==="rgCol"){return}(r=e.viewportProvider)===null||r===void 0?void 0:r.setViewport(t.detail.dimension,{virtualSize:t.detail.size})}}const n=gt(a);const d=this.registerCol(n.position.x,r);const l=this.dataViewPort(a).reduce(((t,o)=>{const i=this.registerSegment(o.position);i.setLastCell(o.lastCell);const s=this.registerRow(o.position.y,o.type);const a=Object.assign(Object.assign({colType:r},o),{rowSelectionStore:s,segmentSelectionStore:i.store,ref:t=>e.selectionStoreConnector.registerSection(t),onSetrange:e=>{i.setRangeArea(e.detail)},onSettemprange:e=>i.setTempArea(e.detail),onFocuscell:t=>{i.clearFocus();e.selectionStoreConnector.focus(i,t.detail)}});t.push(a);return t}),[]);i.push(Object.assign(Object.assign({},n),{columnSelectionStore:d,dataPorts:l}));s++}));this.columns=i;(o=this.config.scrollingService)===null||o===void 0?void 0:o.unregister()}onColumnResize(e,{detail:t},r){var o;(o=this.config.dimensionProvider)===null||o===void 0?void 0:o.setCustomSizes(e,t,true);const i=p(t||{},((e,t,o)=>{const i=parseInt(o,10);const s=v(r,i);if(s){e[i]=Object.assign(Object.assign({},s),{size:t})}return e}),{});this.config.resize(i)}registerSegment(e){return this.config.selectionStoreConnector.register(e)}registerRow(e,t){return this.config.selectionStoreConnector.registerRow(e,t).store}registerCol(e,t){return this.config.selectionStoreConnector.registerColumn(e,t).store}dataViewPort(e){const t={rowPinStart:ae,rgRow:ne,rowPinEnd:de};let r=0;return E.reduce(((o,i)=>{const s=e.viewports[i].store.get("realCount")||i==="rgRow";const a=Object.assign(Object.assign({},e),{position:Object.assign(Object.assign({},e.position),{y:s?r:K})});const n=se(a,i,t[i],i!=="rgRow");o.push(n);if(s){r++}return o}),[])}scrollToCell(e){for(let t in e){const r=e[t];if(typeof r==="number"){this.config.scrollingService.proxyScroll({dimension:t==="x"?"rgCol":"rgRow",coordinate:r})}}}clearFocused(){this.config.selectionStoreConnector.clearAll()}clearEdit(){this.config.selectionStoreConnector.setEdit(false)}getFocused(){const e=this.config.selectionStoreConnector.focusedStore;if(!e){return null}const t=this.config.selectionStoreConnector.storesXToType[e.position.x];const r=this.config.columnProvider.getColumn(e.cell.x,t);const o=this.config.selectionStoreConnector.storesYToType[e.position.y];const i=this.config.dataProvider.getModel(e.cell.y,o);return{column:r,model:i,cell:e.cell,colType:t,rowType:o}}getStoreCoordinateByType(e,t){const r=this.config.selectionStoreConnector.storesByType;if(typeof r[e]==="undefined"||typeof r[t]==="undefined"){return}return{x:r[e],y:r[t]}}setFocus(e,t,r,o){var i;const s=this.getStoreCoordinateByType(e,t);if(s){(i=this.config.selectionStoreConnector)===null||i===void 0?void 0:i.focusByCell(s,r,o)}}getSelectedRange(){return this.config.selectionStoreConnector.selectedRange}setEdit(e,t,r,o){var i;const s=this.getStoreCoordinateByType(r,o);if(s){(i=this.config.selectionStoreConnector)===null||i===void 0?void 0:i.setEditByCell(s,{x:t,y:e})}}}class ft{constructor(e){this.setViewport=e;this.elements={}}async proxyScroll(e,t){var r;let o;let i=e;for(let i in this.elements){if(e.dimension==="rgCol"&&i==="headerRow"){continue}else if(this.isPinnedColumn(t)&&e.dimension==="rgCol"){if(i===t||!e.delta){continue}for(let t of this.elements[i]){if(t.changeScroll){o=t.changeScroll(e)}}}else{for(let t of this.elements[i]){await((r=t.setScroll)===null||r===void 0?void 0:r.call(t,e))}}}const s=await o;if(s){i=s}this.setViewport(i)}async scrollSilentService(e,t){var r;for(let o in this.elements){if(o===t){continue}if(L.includes(t)&&(o==="headerRow"||L.includes(o))){for(let t of this.elements[o]){await((r=t.changeScroll)===null||r===void 0?void 0:r.call(t,e,true))}continue}}}isPinnedColumn(e){return!!e&&["colPinStart","colPinEnd"].indexOf(e)>-1}registerElements(e){this.elements=e}registerElement(e,t){if(!this.elements[t]){this.elements[t]=[]}if(e){this.elements[t].push(e)}else if(this.elements[t]){delete this.elements[t]}}unregister(){this.elements={}}}class vt{constructor(){this.parentY=0}start(e,{pos:t,text:r,event:o}){var i;const{top:s}=e.getBoundingClientRect();this.parentY=s;if(this.text){this.text.innerText=r}this.move(t);this.moveTip({x:o.x,y:o.y});(i=this.el)===null||i===void 0?void 0:i.classList.remove("hidden")}end(){var e;(e=this.el)===null||e===void 0?void 0:e.classList.add("hidden")}move(e){this.moveElement(e.end-this.parentY)}moveTip({x:e,y:t}){if(!this.draggable){return}this.draggable.style.left=`${e}px`;this.draggable.style.top=`${t}px`}moveElement(e){if(!this.rgRow){return}this.rgRow.style.transform=`translateY(${e}px)`}}const pt=({ref:t})=>{const r=new vt;t(r);return e("div",{class:"draggable-wrapper hidden",ref:e=>r.el=e},e("div",{class:"draggable",ref:e=>r.draggable=e},e("span",{class:"revo-alt-icon"}),e("span",{ref:e=>r.text=e})),e("div",{class:"drag-position",ref:e=>r.rgRow=e}))};const mt=(e=[])=>{const t={};for(const r of e){let e=t[r.type];if(!e){e=t[r.type]={}}if(r.size){if(!e.sizes){e.sizes={}}e.sizes[r.index]=r.size}}return t};const wt=(e=[])=>{const t={};for(const r of e){let e=t[r.type];if(!e){e=t[r.type]=[]}if(r.size){e.push(r.index)}}return t};function bt(){return/Mobi/i.test(navigator.userAgent)||/Android/i.test(navigator.userAgent)||navigator.maxTouchPoints>0}class xt extends R{constructor(e,t){super(e,t);e.setAttribute("dir","ltr");e.setAttribute("role","treegrid");e.setAttribute("aria-keyshortcuts","Enter");e.setAttribute("aria-multiselectable","true");e.setAttribute("tabindex","0");this.addEventListener("beforecolumnsset",(({detail:t})=>{const r=[...t.columns.colPinStart,...t.columns.rgCol,...t.columns.colPinEnd];e.setAttribute("aria-colcount",`${r.length}`);r.forEach(((e,t)=>{const{columnProperties:r,cellProperties:o}=e;e.columnProperties=(...e)=>{const o=(r===null||r===void 0?void 0:r(...e))||{};o.role="columnheader";o["aria-colindex"]=t;return o};e.cellProperties=(...e)=>{const r={["role"]:"gridcell",["aria-colindex"]:t,["aria-rowindex"]:e[0].rowIndex,["tabindex"]:-1};const i=(o===null||o===void 0?void 0:o(...e))||{};return Object.assign(Object.assign({},r),i)}}))}));this.addEventListener("beforesourceset",(({detail:t})=>{e.setAttribute("aria-rowcount",`${t.source.length}`)}));this.addEventListener("beforerowrender",(({detail:e})=>{e.node.t=Object.assign(Object.assign({},e.node.t),{role:"row",["aria-rowindex"]:e.item.itemIndex})}));this.addEventListener("afterfocus",(async e=>{if(e.defaultPrevented){return}const t=this.revogrid.querySelector(`revogr-data[type="${e.detail.rowType}"][col-type="${e.detail.colType}"] [data-rgrow="${e.detail.rowIndex}"][data-rgcol="${e.detail.colIndex}"]`);if(t instanceof HTMLElement){t.focus()}}))}}const Ct='.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::"}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version=\'1.0\' encoding=\'UTF-8\'%3F%3E%3Csvg viewBox=\'0 0 384 383\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'%3E%3Cg%3E%3Cpath d=\'M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z\'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version=\'1.0\' encoding=\'UTF-8\'%3F%3E%3Csvg viewBox=\'0 0 384 383\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'%3E%3Cg%3E%3Cpath d=\'M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z\'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037;border:1px solid #00772d}.revo-button.red{background-color:#E0662E;border:1px solid #d55920}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.light{border:1px solid #cedefa;line-height:32px;background:none;color:#000;box-shadow:none}revo-grid[theme=default],revo-grid:not([theme]){border:1px solid #cecece;font-size:12px}revo-grid[theme=default] revogr-header,revo-grid:not([theme]) revogr-header{text-align:center;line-height:30px;background-color:#f8f9fa}revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:#000}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 #cecece inset, 0 -1px 0 0 #cecece, 0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-header .rgHeaderCell.focused-cell,revo-grid:not([theme]) revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:#f8f9fa}revo-grid[theme=default] .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:#000}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 #cecece inset, 1px 0 0 0 #cecece inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid #cecece}revo-grid[theme=default] .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #cecece inset, -1px 0 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 #cecece inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset, 0 -1px 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data,revo-grid:not([theme]) revogr-data{text-align:center}revo-grid[theme=default] revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid[theme=default] revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:27px}revo-grid[theme=default] revogr-data .rgRow.focused-rgRow,revo-grid:not([theme]) revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data .rgCell.disabled,revo-grid:not([theme]) revogr-data .rgCell.disabled{background-color:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=material] .rowHeaders{background-color:#f7faff}revo-grid[theme=material] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=material] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=material] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=material] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=material] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=material] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#d8d8d8}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkMaterial] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkMaterial] revogr-edit{background-color:#28272b}revo-grid[theme=darkMaterial] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkMaterial] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkMaterial] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#d8d8d8}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkCompact] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkCompact] revogr-edit{background-color:#28272b}revo-grid[theme=darkCompact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkCompact] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkCompact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] .rowHeaders{background-color:#f7faff}revo-grid[theme=compact] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=compact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=compact] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=compact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=compact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=compact] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid{display:block;height:100%;min-height:300px;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid .attribution{position:absolute;top:0;left:0;right:0;z-index:100;width:0;height:0;border-left:4px solid rgba(38, 106, 232, 0.6);border-top:4px solid rgba(38, 106, 232, 0.6);border-bottom:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;top:0;left:0;background-color:rgba(255, 255, 255, 0.9);padding:4px;border-radius:4px;box-shadow:0 1px 10px rgba(0, 0, 0, 0.2);white-space:nowrap;text-decoration:none;color:black;letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:#fff;border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 rgba(0, 0, 0, 0.15);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:black;position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:gray;pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:gray;pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}';const yt=Ct;const St=class{constructor(e){t(this,e);this.contentsizechanged=r(this,"contentsizechanged",7);this.beforeedit=r(this,"beforeedit",7);this.beforerangeedit=r(this,"beforerangeedit",7);this.afteredit=r(this,"afteredit",7);this.beforeautofill=r(this,"beforeautofill",7);this.beforerange=r(this,"beforerange",7);this.afterfocus=r(this,"afterfocus",7);this.roworderchanged=r(this,"roworderchanged",7);this.beforesortingapply=r(this,"beforesortingapply",7);this.beforesorting=r(this,"beforesorting",7);this.rowdragstart=r(this,"rowdragstart",7);this.headerclick=r(this,"headerclick",7);this.beforecellfocus=r(this,"beforecellfocus",7);this.beforefocuslost=r(this,"beforefocuslost",7);this.beforesourceset=r(this,"beforesourceset",7);this.beforeanysource=r(this,"beforeanysource",7);this.aftersourceset=r(this,"aftersourceset",7);this.afteranysource=r(this,"afteranysource",7);this.beforecolumnsset=r(this,"beforecolumnsset",7);this.beforecolumnapplied=r(this,"beforecolumnapplied",7);this.aftercolumnsset=r(this,"aftercolumnsset",7);this.beforefilterapply=r(this,"beforefilterapply",7);this.beforefiltertrimmed=r(this,"beforefiltertrimmed",7);this.beforetrimmed=r(this,"beforetrimmed",7);this.aftertrimmed=r(this,"aftertrimmed",7);this.viewportscroll=r(this,"viewportscroll",7);this.beforeexport=r(this,"beforeexport",7);this.beforeeditstart=r(this,"beforeeditstart",7);this.aftercolumnresize=r(this,"aftercolumnresize",7);this.beforerowdefinition=r(this,"beforerowdefinition",7);this.filterconfigchanged=r(this,"filterconfigchanged",7);this.rowheaderschanged=r(this,"rowheaderschanged",7);this.beforegridrender=r(this,"beforegridrender",7);this.aftergridinit=r(this,"aftergridinit",7);this.additionaldatachanged=r(this,"additionaldatachanged",7);this.afterthemechanged=r(this,"afterthemechanged",7);this.extraElements=[];this.viewport=null;this.isInited=false;this.internalPlugins=[];this.rowHeaders=undefined;this.frameSize=1;this.rowSize=0;this.colSize=100;this.range=false;this.readonly=false;this.resize=false;this.canFocus=true;this.useClipboard=true;this.columns=[];this.source=[];this.pinnedTopSource=[];this.pinnedBottomSource=[];this.rowDefinitions=[];this.editors={};this.applyOnClose=false;this.plugins=[];this.columnTypes={};this.theme="default";this.rowClass="";this.autoSizeColumn=false;this.filter=false;this.focusTemplate=undefined;this.canMoveColumns=false;this.trimmedRows={};this.exporting=false;this.grouping=undefined;this.stretch=true;this.additionalData={};this.disableVirtualX=false;this.disableVirtualY=false;this.hideAttribution=false;this.jobsBeforeRender=[];this.registerVNode=[];this.accessible=true}async refresh(e="all"){if(!this.dataProvider){throw new Error("Not connected")}this.dataProvider.refresh(e)}async setDataAt(e){const t=this.element.querySelector(`revogr-data[type="${e.rowType}"][col-type="${e.colType}"]`);return t===null||t===void 0?void 0:t.updateCell({row:e.row,col:e.col})}async scrollToRow(e=0){if(!this.dimensionProvider){throw new Error("Not connected")}const t=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgRow"});await this.scrollToCoordinate({y:t})}async scrollToColumnIndex(e=0){if(!this.dimensionProvider){throw new Error("Not connected")}const t=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgCol"});await this.scrollToCoordinate({x:t})}async scrollToColumnProp(e,t="rgCol"){if(!this.dimensionProvider){throw new Error("Not connected")}const r=this.columnProvider.getColumnIndexByProp(e,t);if(r<0){return}const o=this.dimensionProvider.getViewPortPos({coordinate:r,dimension:t});await this.scrollToCoordinate({x:o})}async updateColumns(e){this.columnProvider.updateColumns(e)}async addTrimmed(e,t="external",r="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}const o=this.beforetrimmed.emit({trimmed:e,trimmedType:t,type:r});if(o.defaultPrevented){return o}this.dataProvider.setTrimmed({[t]:o.detail.trimmed},r);this.aftertrimmed.emit();return o}async scrollToCoordinate(e){var t;(t=this.viewport)===null||t===void 0?void 0:t.scrollToCell(e)}async setCellEdit(e,t,r="rgRow"){var o;const i=q(this.columns,t);if(!i){return}await k();const s=i.pin||"rgCol";(o=this.viewport)===null||o===void 0?void 0:o.setEdit(e,this.columnProvider.getColumnIndexByProp(t,s),s,r)}async setCellsFocus(e={x:0,y:0},t={x:0,y:0},r="rgCol",o="rgRow"){var i;(i=this.viewport)===null||i===void 0?void 0:i.setFocus(r,o,e,t)}async getSource(e="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}return this.dataProvider.stores[e].store.get("source")}async getVisibleSource(e="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}return x(this.dataProvider.stores[e].store)}async getSourceStore(e="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}return this.dataProvider.stores[e].store}async getColumnStore(e="rgCol"){return this.columnProvider.stores[e].store}async updateColumnSorting(e,t,r,o){return this.columnProvider.updateColumnSorting(e,t,r,o)}async clearSorting(){this.columnProvider.clearSorting()}async getColumns(){return this.columnProvider.getColumns()}async clearFocus(){var e;const t=(e=this.viewport)===null||e===void 0?void 0:e.getFocused();const r=this.beforefocuslost.emit(t);if(r.defaultPrevented){return}this.selectionStoreConnector.clearAll()}async getPlugins(){return[...this.internalPlugins]}async getFocused(){var e,t;return(t=(e=this.viewport)===null||e===void 0?void 0:e.getFocused())!==null&&t!==void 0?t:null}async getContentSize(){var e;if(!this.dimensionProvider){throw new Error("Not connected")}return(e=this.dimensionProvider)===null||e===void 0?void 0:e.getFullSize()}async getSelectedRange(){var e,t;return(t=(e=this.viewport)===null||e===void 0?void 0:e.getSelectedRange())!==null&&t!==void 0?t:null}mousedownHandle(e){const t=he(e,"screenX");const r=he(e,"screenY");if(t===null||r===null){return}this.clickTrackForFocusClear=t+r}async mouseupHandle(e){var t;const r=he(e,"screenX");const o=he(e,"screenY");if(r===null||o===null){return}if(e.defaultPrevented){return}const i=r+o;if(Math.abs(((t=this.clickTrackForFocusClear)!==null&&t!==void 0?t:0)-i)>10){return}const s=e.composedPath();if(!s.includes(this.element)&&!(this.element.shadowRoot&&s.includes(this.element.shadowRoot))){await this.clearFocus()}}onRowDragStarted(e){var t;const r=this.rowdragstart.emit(e.detail);if(r.defaultPrevented){e.preventDefault();return}(t=this.orderService)===null||t===void 0?void 0:t.start(this.element,Object.assign(Object.assign({},e.detail),r.detail))}onRowDragEnd(){var e;(e=this.orderService)===null||e===void 0?void 0:e.end()}onRowDrag({detail:e}){var t;(t=this.orderService)===null||t===void 0?void 0:t.move(e)}onRowMouseMove(e){var t;(t=this.orderService)===null||t===void 0?void 0:t.moveTip(e.detail)}async onCellEdit(e){var t;const{defaultPrevented:r,detail:o}=this.beforeedit.emit(e.detail);await k();if(!r){(t=this.dataProvider)===null||t===void 0?void 0:t.setCellData(o);this.afteredit.emit(o)}}onRangeEdit(e){if(!this.dataProvider){throw new Error("Not connected")}const{defaultPrevented:t,detail:r}=this.beforerangeedit.emit(e.detail);if(t){e.preventDefault();return}this.dataProvider.setRangeData(r.data,r.type);this.afteredit.emit(r)}onRangeChanged(e){const t=this.beforerange.emit(e.detail);if(t.defaultPrevented){e.preventDefault()}const r=this.beforeautofill.emit(t.detail);if(r.defaultPrevented){e.preventDefault()}}onRowDropped(e){const{defaultPrevented:t}=this.roworderchanged.emit(e.detail);if(t){e.preventDefault()}}onHeaderClick(e){const{defaultPrevented:t}=this.headerclick.emit(Object.assign(Object.assign({},e.detail.column),{originalEvent:e.detail.originalEvent}));if(t){e.preventDefault()}}onCellFocus(e){const{defaultPrevented:t}=this.beforecellfocus.emit(e.detail);if(!this.canFocus||t){e.preventDefault()}}columnTypesChanged(){this.columnChanged(this.columns)}columnChanged(e=[]){if(!this.dimensionProvider){return}const t=Q(e,0,this.columnTypes);this.beforecolumnsset.emit(t);this.dimensionProvider.applyNewColumns(t.columns,this.disableVirtualX);this.beforecolumnapplied.emit(t);const r=this.columnProvider.setColumns(t);this.aftercolumnsset.emit({columns:r,order:this.columnProvider.order})}disableVirtualXChanged(e=false,t=false){if(e===t){return}this.columnChanged(this.columns)}rowSizeChanged(e){if(!this.dimensionProvider){return}this.dimensionProvider.setSettings({originItemSize:e},"rgRow");this.rowDefChanged(this.rowDefinitions,this.rowDefinitions,"rowSize",true)}themeChanged(e,t,r="theme",o=false){if(!this.dimensionProvider){return}this.themeService.register(e);this.dimensionProvider.setSettings({originItemSize:this.themeService.rowSize},"rgRow");this.dimensionProvider.setSettings({originItemSize:this.colSize},"rgCol");if(!o){this.dimensionProvider.setSettings({originItemSize:this.themeService.rowSize},"rgRow");this.rowDefChanged(this.rowDefinitions,this.rowDefinitions,"theme",true)}this.afterthemechanged.emit(e)}dataSourceChanged(e=[],t,r){if(!this.dataProvider){return}let o="rgRow";switch(r){case"pinnedBottomSource":o="rowPinEnd";break;case"pinnedTopSource":o="rowPinStart";break;case"source":o="rgRow";const t=this.beforesourceset.emit({type:o,source:e});e=t.detail.source;break}const i=this.beforeanysource.emit({type:o,source:e});const s=[...i.detail.source];this.dataProvider.setData(s,o,this.disableVirtualY);if(r==="source"){this.aftersourceset.emit({type:o,source:e})}this.afteranysource.emit({type:o,source:e})}disableVirtualYChanged(e=false,t=false){if(e===t){return}this.dataSourceChanged(this.source,this.source,"source")}rowDefChanged(e,t,r,o=true){if(!this.dimensionProvider||!this.dataProvider){return}const{detail:{vals:i,oldVals:s}}=this.beforerowdefinition.emit({vals:e,oldVals:t});const a=mt(i);if(s){const e=wt(s);for(const t in e){if(e.hasOwnProperty(t)){const e=t;const r=this.dataProvider.stores[e];const o=r.store.get("source").length;this.dimensionProvider.clearSize(e,o)}}}E.forEach((e=>{var t;const r=a[e];if(r||o){(t=this.dimensionProvider)===null||t===void 0?void 0:t.setCustomSizes(e,(r===null||r===void 0?void 0:r.sizes)||{})}}))}trimmedRowsChanged(e={}){this.addTrimmed(e)}groupingChanged(e={}){let t;for(let e of this.internalPlugins){const r=e;if(!!r.setGrouping){t=r;break}}t===null||t===void 0?void 0:t.setGrouping(e||{})}applyStretch(e){if(!this.dimensionProvider||!this.dataProvider){return}if(e==="false"){e=false}let t=this.internalPlugins.filter((e=>z(e)))[0];if(typeof e==="boolean"&&e||e==="true"){if(!t){const e={data:this.dataProvider,column:this.columnProvider,dimension:this.dimensionProvider,viewport:this.viewportProvider,selection:this.selectionStoreConnector};this.internalPlugins.push(new O(this.element,e))}else if(z(t)){t.applyStretch(this.columnProvider.getRawColumns())}}else if(t){const e=this.internalPlugins.indexOf(t);this.internalPlugins.splice(e,1)}}applyFilter(e){this.filterconfigchanged.emit(e)}rowHeadersChange(e){this.rowheaderschanged.emit(e)}registerOutsideVNodes(e=[]){this.extraElements=[...this.extraElements,...e]}additionalDataChanged(e){this.additionaldatachanged.emit(e)}pluginsChanged(e=[],t){const r=this.getPluginData();if(!r){return}e===null||e===void 0?void 0:e.forEach((e=>{const t=this.internalPlugins.find((t=>t instanceof e));if(t){return}this.internalPlugins.push(new e(this.element,r))}))}setPlugins(){this.removePlugins();const e=this.getPluginData();if(!e){return}if(this.accessible){this.internalPlugins.push(new xt(this.element,e))}if(this.autoSizeColumn){this.internalPlugins.push(new I(this.element,e,typeof this.autoSizeColumn==="object"?this.autoSizeColumn:undefined))}if(this.filter){this.internalPlugins.push(new M(this.element,e,typeof this.filter==="object"?this.filter:undefined))}if(this.exporting){this.internalPlugins.push(new T(this.element,e))}this.internalPlugins.push(new nt(this.element,e));this.internalPlugins.push(new ye(this.element,e));if(this.canMoveColumns){this.internalPlugins.push(new D(this.element,e))}this.pluginsChanged(this.plugins)}getPluginData(){if(!this.dimensionProvider||!this.dataProvider){return}const e={data:this.dataProvider,column:this.columnProvider,dimension:this.dimensionProvider,viewport:this.viewportProvider,selection:this.selectionStoreConnector};return e}removePlugins(){this.internalPlugins.forEach((e=>{var t;return(t=e.destroy)===null||t===void 0?void 0:t.call(e)}));this.internalPlugins=[]}connectedCallback(){if(this.isInited){this.setPlugins()}}componentWillLoad(){var e;this.viewportProvider=new ct;this.themeService=new pe({rowSize:this.rowSize});this.dimensionProvider=new ht(this.viewportProvider,{realSizeChanged:e=>this.contentsizechanged.emit(e)});this.columnProvider=new dt;this.selectionStoreConnector=new ee;this.dataProvider=new lt(this.dimensionProvider);this.registerOutsideVNodes(this.registerVNode);this.setPlugins();this.applyStretch(this.stretch);this.themeChanged(this.theme,undefined,undefined,true);this.columnChanged(this.columns);this.dataSourceChanged(this.source,undefined,"source");this.dataSourceChanged(this.pinnedTopSource,undefined,"pinnedTopSource");this.dataSourceChanged(this.pinnedBottomSource,undefined,"pinnedBottomSource");if(Object.keys((e=this.trimmedRows)!==null&&e!==void 0?e:{}).length>0){this.trimmedRowsChanged(this.trimmedRows)}this.rowDefChanged(this.rowDefinitions);this.groupingChanged(this.grouping);this.scrollingService=new ft((e=>{var t;(t=this.dimensionProvider)===null||t===void 0?void 0:t.setViewPortCoordinate({coordinate:e.coordinate,type:e.dimension});this.viewportscroll.emit(e)}));this.aftergridinit.emit();this.isInited=true}componentWillRender(){const e=this.beforegridrender.emit();if(e.defaultPrevented){return false}return Promise.all(this.jobsBeforeRender)}render(){if(!this.dimensionProvider||!this.dataProvider){return}const t=this.dimensionProvider.stores["rgRow"].store.get("realSize");this.viewport=new ut({columnProvider:this.columnProvider,dataProvider:this.dataProvider,dimensionProvider:this.dimensionProvider,viewportProvider:this.viewportProvider,scrollingService:this.scrollingService,orderService:this.orderService,selectionStoreConnector:this.selectionStoreConnector,disableVirtualX:this.disableVirtualX,disableVirtualY:this.disableVirtualY,resize:e=>this.aftercolumnresize.emit(e)},t);const r=[];if(this.rowHeaders&&this.viewport.columns.length){const o=this.viewport.columns[0];r.push(e("revogr-row-headers",{additionalData:this.additionalData,height:t,rowClass:this.rowClass,resize:this.resize,dataPorts:o.dataPorts,headerProp:o.headerProp,jobsBeforeRender:this.jobsBeforeRender,rowHeaderColumn:typeof this.rowHeaders==="object"?this.rowHeaders:undefined,onScrollview:({detail:e})=>this.scrollingService.proxyScroll(e,"headerRow"),onRef:({detail:e})=>this.scrollingService.registerElement(e,"headerRow")}))}const i=bt();const s=[];for(let t of this.viewport.columns){const r=Object.assign(Object.assign({},t.headerProp),{type:t.type,additionalData:this.additionalData,viewportCol:t.viewportCol,selectionStore:t.columnSelectionStore,canResize:this.resize,readonly:this.readonly,columnFilter:!!this.filter});const o=[e("revogr-header",Object.assign({},r,{slot:ae}))];t.dataPorts.forEach((r=>{const s=`${r.type}_${t.type}`;const a=e("revogr-overlay-selection",Object.assign({},r,{isMobileDevice:i,selectionStore:r.segmentSelectionStore,onSelectall:()=>this.selectionStoreConnector.selectAll(),editors:this.editors,readonly:this.readonly,range:this.range,useClipboard:this.useClipboard,applyChangesOnClose:this.applyOnClose,additionalData:this.additionalData,slot:r.slot,onBeforenextvpfocus:e=>this.selectionStoreConnector.beforeNextFocusCell(e.detail),onCanceledit:()=>this.selectionStoreConnector.setEdit(false),onSetedit:({detail:e})=>{const t=this.beforeeditstart.emit(e);if(!t.defaultPrevented){this.selectionStoreConnector.setEdit(e.val)}}}),e("revogr-data",Object.assign({},r,{colType:t.type,key:s,readonly:this.readonly,range:this.range,rowClass:this.rowClass,rowSelectionStore:r.rowSelectionStore,additionalData:this.additionalData,jobsBeforeRender:this.jobsBeforeRender,slot:le}),e("slot",{name:`data-${t.type}-${r.type}`})),e("revogr-temp-range",{selectionStore:r.segmentSelectionStore,dimensionRow:r.dimensionRow,dimensionCol:r.dimensionCol}),e("revogr-focus",{colData:r.colData,dataStore:r.dataStore,focusTemplate:this.focusTemplate,rowType:r.type,colType:t.type,selectionStore:r.segmentSelectionStore,dimensionRow:r.dimensionRow,dimensionCol:r.dimensionCol},e("slot",{name:`focus-${t.type}-${r.type}`})));o.push(a)}));s.push(e("revogr-viewport-scroll",Object.assign({},t.prop,{ref:e=>this.scrollingService.registerElement(e,`${t.prop.key}`),onScrollviewport:e=>this.scrollingService.proxyScroll(e.detail,`${t.prop.key}`),onScrollviewportsilent:e=>this.scrollingService.scrollSilentService(e.detail,`${t.prop.key}`)}),o))}r.push(s);const a="rgRow";const n="rgCol";const d=this.viewportProvider.stores;const l=this.dimensionProvider.stores;return e(o,null,this.hideAttribution?null:e("revogr-attribution",{class:"attribution"}),e("div",{class:"main-viewport",onClick:e=>{var t;if(e.currentTarget===e.target){(t=this.viewport)===null||t===void 0?void 0:t.clearEdit()}}},e("div",{class:"viewports"},e("slot",{name:"viewport"}),r,e("revogr-scroll-virtual",{class:"vertical",dimension:a,viewportStore:d[a].store,dimensionStore:l[a].store,ref:e=>this.scrollingService.registerElement(e,"rowScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)}),e(pt,{ref:e=>this.orderService=e}))),e("revogr-scroll-virtual",{class:"horizontal",dimension:n,viewportStore:d[n].store,dimensionStore:l[n].store,ref:e=>this.scrollingService.registerElement(e,"colScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)}),this.extraElements)}disconnectedCallback(){this.removePlugins()}get element(){return i(this)}static get watchers(){return{columnTypes:["columnTypesChanged"],columns:["columnChanged"],disableVirtualX:["disableVirtualXChanged"],rowSize:["rowSizeChanged"],theme:["themeChanged"],source:["dataSourceChanged"],pinnedBottomSource:["dataSourceChanged"],pinnedTopSource:["dataSourceChanged"],disableVirtualY:["disableVirtualYChanged"],rowDefinitions:["rowDefChanged"],trimmedRows:["trimmedRowsChanged"],grouping:["groupingChanged"],stretch:["applyStretch"],filter:["applyFilter"],rowHeaders:["rowHeadersChange"],registerVNode:["registerOutsideVNodes"],additionalData:["additionalDataChanged"],plugins:["pluginsChanged"]}}};St.style=yt;export{St as revo_grid};
4
+ import{h as e,r as t,c as r,H as o,a as i}from"./index-a61f225b.js";import{g as s,d as a,_ as n,a1 as d,a2 as l,a3 as h,a4 as c,a5 as g,v as u,D as f,b as v,W as p,e as m,s as w,X as b,a as x,f as C,j as y,R as S,q as k}from"./index-b6586f9b.js";import{B as R,c as L,F as j,r as E,i as P,D as H,a as z,S as O,A as I,d as M,E as T,C as D}from"./column.drag.plugin-41640959.js";import{m as N,G as F,q as $,r as B,s as V,P as U,t as A,u as G,v as W,w as X,x as Y,y as _,l as q,e as Z,f as J,E as K,j as Q,z as ee}from"./column.service-9e1f693c.js";import{a as te,b as re,d as oe}from"./debounce-7b511afc.js";import{V as ie}from"./row-header-utils-e043f744.js";import{v as se,H as ae,C as ne,F as de,D as le}from"./viewport.helpers-7e7f9dad.js";import{g as he}from"./events-cf0893a3.js";import"./filter.button-d40ab17b.js";import"./header-cell-renderer-2ef5f8a1.js";class ce{constructor(){this.defaultRowSize=32}}class ge{constructor(){this.defaultRowSize=27}}class ue{constructor(){this.defaultRowSize=42}}const fe="default";const ve=[fe,"material","compact","darkMaterial","darkCompact"];class pe{get theme(){return this.currentTheme}get rowSize(){return this.customRowSize||this.currentTheme.defaultRowSize}set rowSize(e){this.customRowSize=e}constructor(e){this.customRowSize=0;this.customRowSize=e.rowSize;this.register("default")}register(e){const t=me(e);switch(t){case"material":case"darkMaterial":this.currentTheme=new ue;break;case"compact":case"darkCompact":this.currentTheme=new ce;break;default:this.currentTheme=new ge;break}}}function me(e){if(e&&ve.indexOf(e)>-1){return e}return fe}function we(e,t){const r=t[e];const o=r[U];const i={};let s=e+1;const a=t.length;while(s<a){const e=t[s];if(N(e)){const t=e[U];if(!t.length||!t.startsWith(o+",")){break}e[F]=false}i[s++]=true}r[F]=false;return{trimmed:i}}function be(e,t,r){const o=r[e];const i=t[o];const s=$(i[A]);const a={};if(!s){return{trimmed:a}}const n=[];i[F]=true;let d=o+1;const l=t.length;let h=0;while(d<l){const e=t[d];const r=N(e);if(r){if(!B(s,i,e)){break}else if(!h){h=e[V]}}if(!h||r&&h===e[V]){a[d]=false;n.push(d)}d++}const c={trimmed:a};if(n.length){const t=[...r];t.splice(e+1,0,...n);c.items=t}return c}const xe="grouping";function Ce(e,t,r){const o={};for(let i in e){if(i===xe){continue}const s=e[i];const a={};for(let e in s){let n=t[e];if(r){n=r[n]}if(s[e]){a[n]=true;if(n!==parseInt(e,10)){o[i]=a}}}}return o}class ye extends R{get hasProps(){var e,t,r;return((e=this.options)===null||e===void 0?void 0:e.props)&&((r=(t=this.options)===null||t===void 0?void 0:t.props)===null||r===void 0?void 0:r.length)}get store(){return this.providers.data.stores[G].store}get rowItems(){return this.store.get("items")}get trimmed(){return this.store.get("trimmed")}constructor(e,t){super(e,t);this.revogrid=e;this.providers=t}onFocus(e){if(N(e.detail.model)){e.preventDefault()}}onExpand({virtualIndex:e}){const{source:t}=this.getSource();let r=this.trimmed[xe];let o=s(this.store,e);const i=t[o];const n=i[F];if(!n){const{trimmed:o,items:i}=be(e,t,this.rowItems);r=Object.assign(Object.assign({},r),o);if(i){a(this.store,i)}}else{const{trimmed:e}=we(o,t);r=Object.assign(Object.assign({},r),e);this.revogrid.clearFocus()}this.store.set("source",t);this.revogrid.addTrimmed(r,xe)}getSource(e=false){const t=this.store.get("source");const r=this.store.get("proxyItems");let o=0;return r.reduce(((r,i)=>{const s=t[i];if(!e){r.source.push(s);return r}if(N(s)){if(s[F]){r.prevExpanded[s[U]]=true}}else{r.source.push(s);r.oldNewIndexes[i]=o;o++}return r}),{source:[],prevExpanded:{},oldNewIndexes:{}})}setColumnGrouping(e){if(e===null||e===void 0?void 0:e.length){e[0][W]=true;return true}return false}setColumns({columns:e}){for(let t of L){if(this.setColumnGrouping(e[t])){break}}}onDrag(e){const{from:t,to:r}=e.detail;const o=r-t>=0;const{source:i}=this.getSource();const s=this.rowItems;let a=o?t:r;const n=o?r:t;for(;a<n;a++){const t=i[s[a]];const r=N(t);if(r){e.preventDefault();return}}}beforeTrimmedApply(e,t){if(t===j){const t=this.store.get("source");for(let r in e){if(e[r]&&N(t[r])){e[r]=false}}}}subscribe(){this.addEventListener("beforesourceset",(({detail:e})=>this.onDataSet(e)));this.addEventListener("beforecolumnsset",(({detail:e})=>this.setColumns(e)));this.addEventListener("beforetrimmed",(({detail:{trimmed:e,trimmedType:t}})=>this.beforeTrimmedApply(e,t)));this.addEventListener("aftersortingapply",(()=>this.doSourceUpdate(Object.assign({},this.options))));this.addEventListener("beforecellfocus",(e=>this.onFocus(e)));this.addEventListener("roworderchanged",(e=>this.onDrag(e)));this.addEventListener(X,(({detail:e})=>this.onExpand(e)))}doSourceUpdate(e){var t;if(!this.hasProps){return}const{source:r,prevExpanded:o,oldNewIndexes:i}=this.getSource(true);const{sourceWithGroups:s,depth:a,trimmed:n,oldNewIndexMap:d,childrenByGroup:l}=Y(r,((t=this.options)===null||t===void 0?void 0:t.props)||[],Object.assign({prevExpanded:o},e));this.providers.data.setData(s,G,this.revogrid.disableVirtualY,{depth:a,customRenderer:e===null||e===void 0?void 0:e.groupLabelTemplate},true);this.updateTrimmed(n,l,i!==null&&i!==void 0?i:{},d)}onDataSet(e){var t;if(!this.hasProps||!(e===null||e===void 0?void 0:e.source)||!e.source.length){return}const r=e.source.filter((e=>!N(e)));const o=this.revogrid.grouping||{};const{sourceWithGroups:i,depth:s,trimmed:a,oldNewIndexMap:n,childrenByGroup:d}=Y(r,((t=this.options)===null||t===void 0?void 0:t.props)||[],Object.assign({},o||{}));e.source=i;this.providers.data.setGrouping({depth:s});this.updateTrimmed(a,d,n)}setGrouping(e){this.clearSubscriptions();this.options=e;if(!e.props||!Object.keys(e.props).length){this.clearGrouping();return}const{source:t}=this.getSource();if(t.length){this.doSourceUpdate(Object.assign({},e))}for(let e of L){if(this.setColumnGrouping(this.providers.column.getColumns(e))){this.providers.column.refreshByType(e);break}}this.subscribe()}clearGrouping(){L.forEach((e=>{const t=this.providers.column.getColumns(e);let r=false;t.forEach((e=>{if(_(e)){delete e[W];r=true}}));if(r){this.providers.column.refreshByType(e)}}));const{source:e,oldNewIndexes:t}=this.getSource(true);this.providers.data.setData(e,G,this.revogrid.disableVirtualY,undefined,true);this.updateTrimmed(undefined,undefined,t)}updateTrimmed(e={},t={},r={},o){const i=Ce(this.trimmed,r,o);for(let e in i){this.revogrid.addTrimmed(i[e],e)}this.revogrid.addTrimmed(Object.assign({},e),xe)}}var Se="[object String]";function ke(e){return typeof e=="string"||!n(e)&&te(e)&&re(e)==Se}var Re=d("length");const Le=Re;var je="\\ud800-\\udfff",Ee="\\u0300-\\u036f",Pe="\\ufe20-\\ufe2f",He="\\u20d0-\\u20ff",ze=Ee+Pe+He,Oe="\\ufe0e\\ufe0f";var Ie="\\u200d";var Me=RegExp("["+Ie+je+ze+Oe+"]");function Te(e){return Me.test(e)}var De="\\ud800-\\udfff",Ne="\\u0300-\\u036f",Fe="\\ufe20-\\ufe2f",$e="\\u20d0-\\u20ff",Be=Ne+Fe+$e,Ve="\\ufe0e\\ufe0f";var Ue="["+De+"]",Ae="["+Be+"]",Ge="\\ud83c[\\udffb-\\udfff]",We="(?:"+Ae+"|"+Ge+")",Xe="[^"+De+"]",Ye="(?:\\ud83c[\\udde6-\\uddff]){2}",_e="[\\ud800-\\udbff][\\udc00-\\udfff]",qe="\\u200d";var Ze=We+"?",Je="["+Ve+"]?",Ke="(?:"+qe+"(?:"+[Xe,Ye,_e].join("|")+")"+Je+Ze+")*",Qe=Je+Ze+Ke,et="(?:"+[Xe+Ae+"?",Ae,Ye,_e,Ue].join("|")+")";var tt=RegExp(Ge+"(?="+Ge+")|"+et+Qe,"g");function rt(e){var t=tt.lastIndex=0;while(tt.test(e)){++t}return t}function ot(e){return Te(e)?rt(e):Le(e)}var it="[object Map]",st="[object Set]";function at(e){if(e==null){return 0}if(l(e)){return ke(e)?ot(e):e.length}var t=h(e);if(t==it||t==st){return e.size}return c(e).length}class nt extends R{async runSorting(e,t){var r;await this.sort(e,t);(r=this.sortingPromise)===null||r===void 0?void 0:r.call(this);this.sortingPromise=null}constructor(e,t){super(e,t);this.revogrid=e;this.sortingPromise=null;this.postponeSort=oe((async(e,t)=>this.runSorting(e,t)),50);const r=async({detail:{type:e}})=>{if(!!this.sorting&&this.sortingFunc){const t=this.emit("beforesorting",{type:e});if(t.defaultPrevented){return}this.startSorting(this.sorting,this.sortingFunc)}};const o=async({detail:{order:e}})=>{const t=await this.revogrid.getColumns();const r={};for(let o in e){const i=this.getComparer(q(t,o),e[o]);r[o]=i}this.runSorting(e,r)};const i=async e=>{var t,r;if(e.defaultPrevented){return}if(!e.detail.column.sortable){return}this.headerclick(e.detail.column,e.detail.index,(r=(t=e.detail)===null||t===void 0?void 0:t.originalEvent)===null||r===void 0?void 0:r.shiftKey)};this.addEventListener("beforeanysource",r);this.addEventListener("aftercolumnsset",o);this.addEventListener("beforeheaderclick",i)}startSorting(e,t){if(!this.sortingPromise){this.revogrid.jobsBeforeRender.push(new Promise((e=>{this.sortingPromise=e})))}this.postponeSort(e,t)}getComparer(e,t){var r;const o=((r=e===null||e===void 0?void 0:e.cellCompare)===null||r===void 0?void 0:r.bind({order:t}))||this.defaultCellCompare;if(t=="asc"){return o}if(t=="desc"){return this.descCellCompare(o)}return undefined}async headerclick(e,t,r){var o,i;let s=this.getNextOrder(e.order);const a=this.emit("beforesorting",{column:e,order:s,additive:r});if(a.defaultPrevented){return}s=a.detail.order;const n=await this.revogrid.updateColumnSorting(a.detail.column,t,s,r);const d=this.emit("beforesortingapply",{column:n,order:s,additive:r});if(d.defaultPrevented){return}s=d.detail.order;const l=this.getComparer(e,s);if(r&&this.sorting){const t={};const r={};this.sorting=Object.assign(Object.assign({},this.sorting),t);this.sortingFunc=Object.assign(Object.assign({},this.sortingFunc),r);if(e.prop in t&&at(t)>1&&s===undefined){delete t[e.prop];delete r[e.prop]}else{t[e.prop]=s;r[e.prop]=l}}else{if(s){this.sorting={[e.prop]:s};this.sortingFunc={[e.prop]:l}}else{(o=this.sorting)===null||o===void 0?true:delete o[e.prop];(i=this.sortingFunc)===null||i===void 0?true:delete i[e.prop]}}this.startSorting(this.sorting,this.sortingFunc)}async sort(e,t,r=["rgRow","rowPinStart","rowPinEnd"]){if(!at(e)){this.sorting=undefined;this.sortingFunc=undefined;for(let e of r){const t=await this.revogrid.getSourceStore(e);const r=t.get("source");const o=g(0,r.length);u(t,{proxyItems:o,source:[...r]})}}else{this.sorting=e;this.sortingFunc=t;for(let e of r){const r=await this.revogrid.getSourceStore(e);const o=r.get("source");const i=r.get("proxyItems");const s=this.sortIndexByItems([...i],o,t);u(r,{proxyItems:s,source:[...o]})}}this.emit("aftersortingapply")}defaultCellCompare(e,t,r){var o,i;const s=(o=t[e])===null||o===void 0?void 0:o.toString().toLowerCase();const a=(i=r[e])===null||i===void 0?void 0:i.toString().toLowerCase();return s==a?0:s>a?1:-1}descCellCompare(e){return(t,r,o)=>-1*e(t,r,o)}sortIndexByItems(e,t,r={}){if(Object.entries(r).length===0){return[...Array(e.length).keys()]}return e.sort(((e,o)=>{for(const[i,s]of Object.entries(r)){const r=t[e];const a=t[o];const n=s===null||s===void 0?void 0:s(i,r,a);if(n){return n}}return 0}))}getNextOrder(e){switch(e){case undefined:return"asc";case"asc":return"desc";case"desc":return undefined}}}class dt{get order(){const e={};const t=this.sorting;if(t){Object.keys(t).forEach((r=>{e[r]=t[r].order}))}return e}get stores(){return this.dataSources}constructor(){this.sorting=null;this.collection=null;this.dataSources=L.reduce(((e,t)=>{e[t]=new f(t);return e}),{})}column(e,t){return this.getColumn(e,t||"rgCol")}getColumn(e,t){return v(this.dataSources[t].store,e)}getRawColumns(){return p(this.dataSources,((e,t,r)=>{e[r]=t.store.get("source");return e}),{rgCol:[],colPinStart:[],colPinEnd:[]})}getColumns(e="all"){if(e!=="all"){return this.dataSources[e].store.get("source")}return L.reduce(((e,t)=>{e.push(...this.dataSources[t].store.get("source"));return e}),[])}getColumnIndexByProp(e,t){return m(this.dataSources[t].store,e)}getColumnByProp(e){var t;return(t=this.collection)===null||t===void 0?void 0:t.columnByProp[e]}refreshByType(e){this.dataSources[e].refresh()}setColumns(e){L.forEach((t=>{this.dataSources[t].updateData(e.columns[t],{depth:e.maxLevel,groups:e.columnGrouping[t].reduce(((e,t)=>{if(!e[t.level]){e[t.level]=[]}e[t.level].push(t);return e}),{})})}));this.sorting=e.sort;this.collection=e;return e}updateColumns(e){const t=e.reduce(((e,t)=>{const r=Z(t);if(!e[r]){e[r]={}}e[r][t.prop]=t;return e}),{});const r={};for(const e in t){if(!t.hasOwnProperty(e)){continue}const o=e;const i=t[o];const s=this.dataSources[o].store.get("source");r[o]={};for(let e=0;e<s.length;e++){const t=s[e];const a=i===null||i===void 0?void 0:i[t.prop];if(a){r[o][e]=a}}}for(const e in r){if(!r.hasOwnProperty(e)){continue}const t=e;w(this.dataSources[t].store,r[t]||{})}}updateColumn(e,t){const r=Z(e);w(this.dataSources[r].store,{[t]:e})}updateColumnSorting(e,t,r,o){if(!o){this.clearSorting()}e.order=r;if(!this.sorting){this.sorting={}}this.sorting[e.prop]=e;this.updateColumn(e,t);return e}clearSorting(){const e=p(this.sorting,((e,t)=>{const r=Z(t);e[r]=true;return e}),{});b(e,((e,t)=>{const r=this.dataSources[t].store.get("source");b(r,(e=>e.order=undefined));this.dataSources[t].setData({source:[...r]})}));this.sorting={}}}class lt{constructor(e){this.dimensionProvider=e;this.stores=p(E,((e,t)=>{e[t]=new f(t);return e}),{})}setData(e,t="rgRow",r=false,o,i=false){this.stores[t].updateData([...e],o,i);const s=t!=="rgRow"||r;this.dimensionProvider.setData(e.length,t,s);return e}getModel(e,t="rgRow"){const r=this.stores[t].store;return v(r,e)}setCellData({type:e,rowIndex:t,prop:r,val:o},i=true){const s=this.getModel(t,e);s[r]=o;w(this.stores[e].store,{[t]:s},i)}setRangeData(e,t){const r={};for(let o in e){const i=r[o]=v(this.stores[t].store,parseInt(o,10));if(!i){continue}for(let t in e[o]){i[t]=e[o][t]}}w(this.stores[t].store,r)}refresh(e="all"){if(P(e)){this.refreshItems(e)}E.forEach((e=>this.refreshItems(e)))}refreshItems(e="rgRow"){const t=this.stores[e].store.get("items");this.stores[e].setData({items:[...t]})}setGrouping({depth:e},t="rgRow"){this.stores[t].setData({groupingDepth:e})}setTrimmed(e,t="rgRow"){const r=this.stores[t];r.addTrimmed(e);this.dimensionProvider.setTrimmed(e,t);if(t==="rgRow"){this.dimensionProvider.setData(x(r.store).length,t)}}}class ht{constructor(e,t){this.viewports=e;const r=oe((e=>t.realSizeChanged(e)),S);this.stores=p([...E,...L],((e,t)=>{e[t]=new H(t);e[t].store.onChange("realSize",(()=>r(t)));return e}),{})}clearSize(e,t){this.stores[e].drop();this.viewports.stores[e].setOriginalSizes(this.stores[e].store.get("originItemSize"));this.setItemCount(t,e)}setCustomSizes(e,t,r=false){let o=t;if(r){const r=this.stores[e].store.get("sizes");o=Object.assign(Object.assign({},r),t)}this.stores[e].setDimensionSize(o);this.updateViewport(e,true)}setItemCount(e,t){this.viewports.stores[t].setViewport({realCount:e});this.stores[t].setStore({count:e})}setTrimmed(e,t){const r=C(e);const o=this.stores[t];o.setStore({trimmed:r});this.updateViewport(t,true)}setData(e,t,r=false){this.setItemCount(e,t);if(r){const e=this.stores[t].getCurrentState();this.viewports.stores[t].setViewport({virtualSize:e.realSize})}this.updateViewport(t)}applyNewColumns(e,t){for(let r of L){this.stores[r].drop();const o=e[r];const i=r!=="rgCol"||t;this.stores[r].setStore({count:o.length});const s=J(o);this.stores[r].setDimensionSize(s);const a={realCount:o.length};if(i){a.virtualSize=this.stores[r].getCurrentState().realSize}this.viewports.stores[r].setViewport(a);this.setViewPortCoordinate({coordinate:this.viewports.stores[r].lastCoordinate,type:r})}}getFullSize(){var e,t;let r=0;let o=0;for(let t of L){r+=((e=this.stores[t])===null||e===void 0?void 0:e.store.get("realSize"))||0}for(let e of E){o+=((t=this.stores[e])===null||t===void 0?void 0:t.store.get("realSize"))||0}return{y:o,x:r}}updateViewport(e,t=false){this.setViewPortCoordinate({coordinate:this.viewports.stores[e].lastCoordinate,type:e,force:t})}setViewPortCoordinate({coordinate:e,type:t,force:r=false}){const o=this.stores[t].getCurrentState();this.viewports.stores[t].setViewPortCoordinate(e,o,r)}getViewPortPos(e){const t=this.stores[e.dimension].getCurrentState();const r=y(t,e.coordinate);return r.start}setSettings(e,t){let r=[];switch(t){case"rgCol":r=L;break;case"rgRow":r=E;break}for(let t of r){this.stores[t].setStore(e)}}}class ct{constructor(){this.stores=p([...E,...L],((e,t)=>{e[t]=new ie(t);return e}),{})}setViewport(e,t){this.stores[e].setViewport(t)}}function gt(e){const t=e.dimensions[e.colType].store;const r=t.get("realSize");const o={contentWidth:r,class:e.colType,contentHeight:e.contentHeight,key:e.colType,colType:e.colType,onResizeviewport:e.onResizeviewport,style:e.fixWidth?{minWidth:`${r}px`}:undefined};const i={colData:x(e.colStore),dimensionCol:t,type:e.colType,groups:e.colStore.get("groups"),groupingDepth:e.colStore.get("groupingDepth"),resizeHandler:e.colType==="colPinEnd"?["l"]:undefined,onHeaderresize:e.onHeaderresize};return{prop:o,type:e.colType,position:e.position,headerProp:i,viewportCol:e.viewports[e.colType].store}}class ut{constructor(e,t){var r,o;this.config=e;(r=this.config.selectionStoreConnector)===null||r===void 0?void 0:r.beforeUpdate();const i=[];let s=0;L.forEach((r=>{const o=e.columnProvider.stores[r].store;if(!o.get("items").length){return}const a={colType:r,position:{x:s,y:1},contentHeight:t,fixWidth:r!=="rgCol",viewports:e.viewportProvider.stores,dimensions:e.dimensionProvider.stores,rowStores:e.dataProvider.stores,colStore:o,onHeaderresize:e=>this.onColumnResize(r,e,o)};if(r==="rgCol"){a.onResizeviewport=t=>{var r;if(e.disableVirtualY&&t.detail.dimension==="rgRow"){return}else if(e.disableVirtualX&&t.detail.dimension==="rgCol"){return}(r=e.viewportProvider)===null||r===void 0?void 0:r.setViewport(t.detail.dimension,{virtualSize:t.detail.size})}}const n=gt(a);const d=this.registerCol(n.position.x,r);const l=this.dataViewPort(a).reduce(((t,o)=>{const i=this.registerSegment(o.position);i.setLastCell(o.lastCell);const s=this.registerRow(o.position.y,o.type);const a=Object.assign(Object.assign({colType:r},o),{rowSelectionStore:s,segmentSelectionStore:i.store,ref:t=>e.selectionStoreConnector.registerSection(t),onSetrange:e=>{i.setRangeArea(e.detail)},onSettemprange:e=>i.setTempArea(e.detail),onFocuscell:t=>{i.clearFocus();e.selectionStoreConnector.focus(i,t.detail)}});t.push(a);return t}),[]);i.push(Object.assign(Object.assign({},n),{columnSelectionStore:d,dataPorts:l}));s++}));this.columns=i;(o=this.config.scrollingService)===null||o===void 0?void 0:o.unregister()}onColumnResize(e,{detail:t},r){var o;(o=this.config.dimensionProvider)===null||o===void 0?void 0:o.setCustomSizes(e,t,true);const i=p(t||{},((e,t,o)=>{const i=parseInt(o,10);const s=v(r,i);if(s){e[i]=Object.assign(Object.assign({},s),{size:t})}return e}),{});this.config.resize(i)}registerSegment(e){return this.config.selectionStoreConnector.register(e)}registerRow(e,t){return this.config.selectionStoreConnector.registerRow(e,t).store}registerCol(e,t){return this.config.selectionStoreConnector.registerColumn(e,t).store}dataViewPort(e){const t={rowPinStart:ae,rgRow:ne,rowPinEnd:de};let r=0;return E.reduce(((o,i)=>{const s=e.viewports[i].store.get("realCount")||i==="rgRow";const a=Object.assign(Object.assign({},e),{position:Object.assign(Object.assign({},e.position),{y:s?r:K})});const n=se(a,i,t[i],i!=="rgRow");o.push(n);if(s){r++}return o}),[])}scrollToCell(e){for(let t in e){const r=e[t];if(typeof r==="number"){this.config.scrollingService.proxyScroll({dimension:t==="x"?"rgCol":"rgRow",coordinate:r})}}}clearFocused(){this.config.selectionStoreConnector.clearAll()}clearEdit(){this.config.selectionStoreConnector.setEdit(false)}getFocused(){const e=this.config.selectionStoreConnector.focusedStore;if(!e){return null}const t=this.config.selectionStoreConnector.storesXToType[e.position.x];const r=this.config.columnProvider.getColumn(e.cell.x,t);const o=this.config.selectionStoreConnector.storesYToType[e.position.y];const i=this.config.dataProvider.getModel(e.cell.y,o);return{column:r,model:i,cell:e.cell,colType:t,rowType:o}}getStoreCoordinateByType(e,t){const r=this.config.selectionStoreConnector.storesByType;if(typeof r[e]==="undefined"||typeof r[t]==="undefined"){return}return{x:r[e],y:r[t]}}setFocus(e,t,r,o){var i;const s=this.getStoreCoordinateByType(e,t);if(s){(i=this.config.selectionStoreConnector)===null||i===void 0?void 0:i.focusByCell(s,r,o)}}getSelectedRange(){return this.config.selectionStoreConnector.selectedRange}setEdit(e,t,r,o){var i;const s=this.getStoreCoordinateByType(r,o);if(s){(i=this.config.selectionStoreConnector)===null||i===void 0?void 0:i.setEditByCell(s,{x:t,y:e})}}}class ft{constructor(e){this.setViewport=e;this.elements={}}async proxyScroll(e,t){var r;let o;let i=e;for(let i in this.elements){if(e.dimension==="rgCol"&&i==="headerRow"){continue}else if(this.isPinnedColumn(t)&&e.dimension==="rgCol"){if(i===t||!e.delta){continue}for(let t of this.elements[i]){if(t.changeScroll){o=t.changeScroll(e)}}}else{for(let t of this.elements[i]){await((r=t.setScroll)===null||r===void 0?void 0:r.call(t,e))}}}const s=await o;if(s){i=s}this.setViewport(i)}async scrollSilentService(e,t){var r;for(let o in this.elements){if(o===t){continue}if(L.includes(t)&&(o==="headerRow"||L.includes(o))){for(let t of this.elements[o]){await((r=t.changeScroll)===null||r===void 0?void 0:r.call(t,e,true))}continue}}}isPinnedColumn(e){return!!e&&["colPinStart","colPinEnd"].indexOf(e)>-1}registerElements(e){this.elements=e}registerElement(e,t){if(!this.elements[t]){this.elements[t]=[]}if(e){this.elements[t].push(e)}else if(this.elements[t]){delete this.elements[t]}}unregister(){this.elements={}}}class vt{constructor(){this.parentY=0}start(e,{pos:t,text:r,event:o}){var i;const{top:s}=e.getBoundingClientRect();this.parentY=s;if(this.text){this.text.innerText=r}this.move(t);this.moveTip({x:o.x,y:o.y});(i=this.el)===null||i===void 0?void 0:i.classList.remove("hidden")}end(){var e;(e=this.el)===null||e===void 0?void 0:e.classList.add("hidden")}move(e){this.moveElement(e.end-this.parentY)}moveTip({x:e,y:t}){if(!this.draggable){return}this.draggable.style.left=`${e}px`;this.draggable.style.top=`${t}px`}moveElement(e){if(!this.rgRow){return}this.rgRow.style.transform=`translateY(${e}px)`}}const pt=({ref:t})=>{const r=new vt;t(r);return e("div",{class:"draggable-wrapper hidden",ref:e=>r.el=e},e("div",{class:"draggable",ref:e=>r.draggable=e},e("span",{class:"revo-alt-icon"}),e("span",{ref:e=>r.text=e})),e("div",{class:"drag-position",ref:e=>r.rgRow=e}))};const mt=(e=[])=>{const t={};for(const r of e){let e=t[r.type];if(!e){e=t[r.type]={}}if(r.size){if(!e.sizes){e.sizes={}}e.sizes[r.index]=r.size}}return t};const wt=(e=[])=>{const t={};for(const r of e){let e=t[r.type];if(!e){e=t[r.type]=[]}if(r.size){e.push(r.index)}}return t};function bt(){return/Mobi/i.test(navigator.userAgent)||/Android/i.test(navigator.userAgent)||navigator.maxTouchPoints>0}class xt extends R{constructor(e,t){super(e,t);e.setAttribute("dir","ltr");e.setAttribute("role","treegrid");e.setAttribute("aria-keyshortcuts","Enter");e.setAttribute("aria-multiselectable","true");e.setAttribute("tabindex","0");this.addEventListener("beforecolumnsset",(({detail:t})=>{const r=[...t.columns.colPinStart,...t.columns.rgCol,...t.columns.colPinEnd];e.setAttribute("aria-colcount",`${r.length}`);r.forEach(((e,t)=>{const{columnProperties:r,cellProperties:o}=e;e.columnProperties=(...e)=>{const o=(r===null||r===void 0?void 0:r(...e))||{};o.role="columnheader";o["aria-colindex"]=t;return o};e.cellProperties=(...e)=>{const r={["role"]:"gridcell",["aria-colindex"]:t,["aria-rowindex"]:e[0].rowIndex,["tabindex"]:-1};const i=(o===null||o===void 0?void 0:o(...e))||{};return Object.assign(Object.assign({},r),i)}}))}));this.addEventListener("beforesourceset",(({detail:t})=>{e.setAttribute("aria-rowcount",`${t.source.length}`)}));this.addEventListener("beforerowrender",(({detail:e})=>{e.node.t=Object.assign(Object.assign({},e.node.t),{role:"row",["aria-rowindex"]:e.item.itemIndex})}));this.addEventListener("afterfocus",(async e=>{if(e.defaultPrevented){return}const t=this.revogrid.querySelector(`revogr-data[type="${e.detail.rowType}"][col-type="${e.detail.colType}"] [data-rgrow="${e.detail.rowIndex}"][data-rgcol="${e.detail.colIndex}"]`);if(t instanceof HTMLElement){t.focus()}}))}}const Ct='.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::"}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version=\'1.0\' encoding=\'UTF-8\'%3F%3E%3Csvg viewBox=\'0 0 384 383\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'%3E%3Cg%3E%3Cpath d=\'M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z\'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version=\'1.0\' encoding=\'UTF-8\'%3F%3E%3Csvg viewBox=\'0 0 384 383\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\'%3E%3Cg%3E%3Cpath d=\'M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z\'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037;border:1px solid #00772d}.revo-button.red{background-color:#E0662E;border:1px solid #d55920}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.light{border:1px solid #cedefa;line-height:32px;background:none;color:#000;box-shadow:none}revo-grid[theme=default],revo-grid:not([theme]){border:1px solid #cecece;font-size:12px}revo-grid[theme=default] revogr-header,revo-grid:not([theme]) revogr-header{text-align:center;line-height:30px;background-color:#f8f9fa}revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:#000}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 #cecece inset, 0 -1px 0 0 #cecece, 0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-header .rgHeaderCell.focused-cell,revo-grid:not([theme]) revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:#f8f9fa}revo-grid[theme=default] .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:#000}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 #cecece inset, 1px 0 0 0 #cecece inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid #cecece}revo-grid[theme=default] .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #cecece inset, -1px 0 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 #cecece inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset, 0 -1px 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data,revo-grid:not([theme]) revogr-data{text-align:center}revo-grid[theme=default] revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid[theme=default] revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:27px}revo-grid[theme=default] revogr-data .rgRow.focused-rgRow,revo-grid:not([theme]) revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data .rgCell.disabled,revo-grid:not([theme]) revogr-data .rgCell.disabled{background-color:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=material] .rowHeaders{background-color:#f7faff}revo-grid[theme=material] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=material] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=material] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=material] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=material] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=material] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#d8d8d8}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkMaterial] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkMaterial] revogr-edit{background-color:#28272b}revo-grid[theme=darkMaterial] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkMaterial] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkMaterial] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#d8d8d8}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkCompact] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkCompact] revogr-edit{background-color:#28272b}revo-grid[theme=darkCompact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkCompact] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkCompact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] .rowHeaders{background-color:#f7faff}revo-grid[theme=compact] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=compact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=compact] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=compact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=compact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=compact] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid{display:block;height:100%;min-height:300px;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid .attribution{position:absolute;top:0;left:0;right:0;z-index:100;width:0;height:0;border-left:4px solid rgba(38, 106, 232, 0.6);border-top:4px solid rgba(38, 106, 232, 0.6);border-bottom:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;top:0;left:0;background-color:rgba(255, 255, 255, 0.9);padding:4px;border-radius:4px;box-shadow:0 1px 10px rgba(0, 0, 0, 0.2);white-space:nowrap;text-decoration:none;color:black;letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:#fff;border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 rgba(0, 0, 0, 0.15);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:black;position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:gray;pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:gray;pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}';const yt=Ct;const St=class{constructor(e){t(this,e);this.contentsizechanged=r(this,"contentsizechanged",7);this.beforeedit=r(this,"beforeedit",7);this.beforerangeedit=r(this,"beforerangeedit",7);this.afteredit=r(this,"afteredit",7);this.beforeautofill=r(this,"beforeautofill",7);this.beforerange=r(this,"beforerange",7);this.afterfocus=r(this,"afterfocus",7);this.roworderchanged=r(this,"roworderchanged",7);this.beforesortingapply=r(this,"beforesortingapply",7);this.beforesorting=r(this,"beforesorting",7);this.rowdragstart=r(this,"rowdragstart",7);this.headerclick=r(this,"headerclick",7);this.beforecellfocus=r(this,"beforecellfocus",7);this.beforefocuslost=r(this,"beforefocuslost",7);this.beforesourceset=r(this,"beforesourceset",7);this.beforeanysource=r(this,"beforeanysource",7);this.aftersourceset=r(this,"aftersourceset",7);this.afteranysource=r(this,"afteranysource",7);this.beforecolumnsset=r(this,"beforecolumnsset",7);this.beforecolumnapplied=r(this,"beforecolumnapplied",7);this.aftercolumnsset=r(this,"aftercolumnsset",7);this.beforefilterapply=r(this,"beforefilterapply",7);this.beforefiltertrimmed=r(this,"beforefiltertrimmed",7);this.beforetrimmed=r(this,"beforetrimmed",7);this.aftertrimmed=r(this,"aftertrimmed",7);this.viewportscroll=r(this,"viewportscroll",7);this.beforeexport=r(this,"beforeexport",7);this.beforeeditstart=r(this,"beforeeditstart",7);this.aftercolumnresize=r(this,"aftercolumnresize",7);this.beforerowdefinition=r(this,"beforerowdefinition",7);this.filterconfigchanged=r(this,"filterconfigchanged",7);this.rowheaderschanged=r(this,"rowheaderschanged",7);this.beforegridrender=r(this,"beforegridrender",7);this.aftergridinit=r(this,"aftergridinit",7);this.additionaldatachanged=r(this,"additionaldatachanged",7);this.afterthemechanged=r(this,"afterthemechanged",7);this.extraElements=[];this.viewport=null;this.isInited=false;this.internalPlugins=[];this.rowHeaders=undefined;this.frameSize=1;this.rowSize=0;this.colSize=100;this.range=false;this.readonly=false;this.resize=false;this.canFocus=true;this.useClipboard=true;this.columns=[];this.source=[];this.pinnedTopSource=[];this.pinnedBottomSource=[];this.rowDefinitions=[];this.editors={};this.applyOnClose=false;this.plugins=[];this.columnTypes={};this.theme="default";this.rowClass="";this.autoSizeColumn=false;this.filter=false;this.focusTemplate=undefined;this.canMoveColumns=false;this.trimmedRows={};this.exporting=false;this.grouping=undefined;this.stretch=true;this.additionalData={};this.disableVirtualX=false;this.disableVirtualY=false;this.hideAttribution=false;this.jobsBeforeRender=[];this.registerVNode=[];this.accessible=true}async refresh(e="all"){if(!this.dataProvider){throw new Error("Not connected")}this.dataProvider.refresh(e)}async setDataAt(e){const t=this.element.querySelector(`revogr-data[type="${e.rowType}"][col-type="${e.colType}"]`);return t===null||t===void 0?void 0:t.updateCell({row:e.row,col:e.col})}async scrollToRow(e=0){if(!this.dimensionProvider){throw new Error("Not connected")}const t=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgRow"});await this.scrollToCoordinate({y:t})}async scrollToColumnIndex(e=0){if(!this.dimensionProvider){throw new Error("Not connected")}const t=this.dimensionProvider.getViewPortPos({coordinate:e,dimension:"rgCol"});await this.scrollToCoordinate({x:t})}async scrollToColumnProp(e,t="rgCol"){if(!this.dimensionProvider){throw new Error("Not connected")}const r=this.columnProvider.getColumnIndexByProp(e,t);if(r<0){return}const o=this.dimensionProvider.getViewPortPos({coordinate:r,dimension:t});await this.scrollToCoordinate({x:o})}async updateColumns(e){this.columnProvider.updateColumns(e)}async addTrimmed(e,t="external",r="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}const o=this.beforetrimmed.emit({trimmed:e,trimmedType:t,type:r});if(o.defaultPrevented){return o}this.dataProvider.setTrimmed({[t]:o.detail.trimmed},r);this.aftertrimmed.emit();return o}async scrollToCoordinate(e){var t;(t=this.viewport)===null||t===void 0?void 0:t.scrollToCell(e)}async setCellEdit(e,t,r="rgRow"){var o;const i=q(this.columns,t);if(!i){return}await k();const s=i.pin||"rgCol";(o=this.viewport)===null||o===void 0?void 0:o.setEdit(e,this.columnProvider.getColumnIndexByProp(t,s),s,r)}async setCellsFocus(e={x:0,y:0},t={x:0,y:0},r="rgCol",o="rgRow"){var i;(i=this.viewport)===null||i===void 0?void 0:i.setFocus(r,o,e,t)}async getSource(e="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}return this.dataProvider.stores[e].store.get("source")}async getVisibleSource(e="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}return x(this.dataProvider.stores[e].store)}async getSourceStore(e="rgRow"){if(!this.dataProvider){throw new Error("Not connected")}return this.dataProvider.stores[e].store}async getColumnStore(e="rgCol"){return this.columnProvider.stores[e].store}async updateColumnSorting(e,t,r,o){return this.columnProvider.updateColumnSorting(e,t,r,o)}async clearSorting(){this.columnProvider.clearSorting()}async getColumns(){return this.columnProvider.getColumns()}async clearFocus(){var e;const t=(e=this.viewport)===null||e===void 0?void 0:e.getFocused();const r=this.beforefocuslost.emit(t);if(r.defaultPrevented){return}this.selectionStoreConnector.clearAll()}async getPlugins(){return[...this.internalPlugins]}async getFocused(){var e,t;return(t=(e=this.viewport)===null||e===void 0?void 0:e.getFocused())!==null&&t!==void 0?t:null}async getContentSize(){var e;if(!this.dimensionProvider){throw new Error("Not connected")}return(e=this.dimensionProvider)===null||e===void 0?void 0:e.getFullSize()}async getSelectedRange(){var e,t;return(t=(e=this.viewport)===null||e===void 0?void 0:e.getSelectedRange())!==null&&t!==void 0?t:null}mousedownHandle(e){const t=he(e,"screenX");const r=he(e,"screenY");if(t===null||r===null){return}this.clickTrackForFocusClear=t+r}async mouseupHandle(e){var t;const r=he(e,"screenX");const o=he(e,"screenY");if(r===null||o===null){return}if(e.defaultPrevented){return}const i=r+o;if(Math.abs(((t=this.clickTrackForFocusClear)!==null&&t!==void 0?t:0)-i)>10){return}const s=e.composedPath();if(!s.includes(this.element)&&!(this.element.shadowRoot&&s.includes(this.element.shadowRoot))){await this.clearFocus()}}onRowDragStarted(e){var t;const r=this.rowdragstart.emit(e.detail);if(r.defaultPrevented){e.preventDefault();return}(t=this.orderService)===null||t===void 0?void 0:t.start(this.element,Object.assign(Object.assign({},e.detail),r.detail))}onRowDragEnd(){var e;(e=this.orderService)===null||e===void 0?void 0:e.end()}onRowDrag({detail:e}){var t;(t=this.orderService)===null||t===void 0?void 0:t.move(e)}onRowMouseMove(e){var t;(t=this.orderService)===null||t===void 0?void 0:t.moveTip(e.detail)}async onCellEdit(e){var t;const{defaultPrevented:r,detail:o}=this.beforeedit.emit(e.detail);await k();if(!r){(t=this.dataProvider)===null||t===void 0?void 0:t.setCellData(o);this.afteredit.emit(o)}}onRangeEdit(e){if(!this.dataProvider){throw new Error("Not connected")}const{defaultPrevented:t,detail:r}=this.beforerangeedit.emit(e.detail);if(t){e.preventDefault();return}this.dataProvider.setRangeData(r.data,r.type);this.afteredit.emit(r)}onRangeChanged(e){const t=this.beforerange.emit(e.detail);if(t.defaultPrevented){e.preventDefault()}const r=this.beforeautofill.emit(t.detail);if(r.defaultPrevented){e.preventDefault()}}onRowDropped(e){const{defaultPrevented:t}=this.roworderchanged.emit(e.detail);if(t){e.preventDefault()}}onHeaderClick(e){const{defaultPrevented:t}=this.headerclick.emit(Object.assign(Object.assign({},e.detail.column),{originalEvent:e.detail.originalEvent}));if(t){e.preventDefault()}}onCellFocus(e){const{defaultPrevented:t}=this.beforecellfocus.emit(e.detail);if(!this.canFocus||t){e.preventDefault()}}columnTypesChanged(){this.columnChanged(this.columns)}columnChanged(e=[]){if(!this.dimensionProvider){return}const t=Q(e,0,this.columnTypes);this.beforecolumnsset.emit(t);this.dimensionProvider.applyNewColumns(t.columns,this.disableVirtualX);this.beforecolumnapplied.emit(t);const r=this.columnProvider.setColumns(t);this.aftercolumnsset.emit({columns:r,order:this.columnProvider.order})}disableVirtualXChanged(e=false,t=false){if(e===t){return}this.columnChanged(this.columns)}rowSizeChanged(e){if(!this.dimensionProvider){return}this.dimensionProvider.setSettings({originItemSize:e},"rgRow");this.rowDefChanged(this.rowDefinitions,this.rowDefinitions,"rowSize",true)}themeChanged(e,t,r="theme",o=false){if(!this.dimensionProvider){return}this.themeService.register(e);this.dimensionProvider.setSettings({originItemSize:this.themeService.rowSize},"rgRow");this.dimensionProvider.setSettings({originItemSize:this.colSize},"rgCol");if(!o){this.dimensionProvider.setSettings({originItemSize:this.themeService.rowSize},"rgRow");this.rowDefChanged(this.rowDefinitions,this.rowDefinitions,"theme",true)}this.afterthemechanged.emit(e)}dataSourceChanged(e=[],t,r){if(!this.dataProvider){return}let o="rgRow";switch(r){case"pinnedBottomSource":o="rowPinEnd";break;case"pinnedTopSource":o="rowPinStart";break;case"source":o="rgRow";const t=this.beforesourceset.emit({type:o,source:e});e=t.detail.source;break}const i=this.beforeanysource.emit({type:o,source:e});const s=[...i.detail.source];this.dataProvider.setData(s,o,this.disableVirtualY);if(r==="source"){this.aftersourceset.emit({type:o,source:e})}this.afteranysource.emit({type:o,source:e})}disableVirtualYChanged(e=false,t=false){if(e===t){return}this.dataSourceChanged(this.source,this.source,"source")}rowDefChanged(e,t,r,o=true){if(!this.dimensionProvider||!this.dataProvider){return}const{detail:{vals:i,oldVals:s}}=this.beforerowdefinition.emit({vals:e,oldVals:t});const a=mt(i);if(s){const e=wt(s);for(const t in e){if(e.hasOwnProperty(t)){const e=t;const r=this.dataProvider.stores[e];const o=r.store.get("source").length;this.dimensionProvider.clearSize(e,o)}}}E.forEach((e=>{var t;const r=a[e];if(r||o){(t=this.dimensionProvider)===null||t===void 0?void 0:t.setCustomSizes(e,(r===null||r===void 0?void 0:r.sizes)||{})}}))}trimmedRowsChanged(e={}){this.addTrimmed(e)}groupingChanged(e={}){let t;for(let e of this.internalPlugins){const r=e;if(!!r.setGrouping){t=r;break}}t===null||t===void 0?void 0:t.setGrouping(e||{})}applyStretch(e){if(!this.dimensionProvider||!this.dataProvider){return}if(e==="false"){e=false}let t=this.internalPlugins.filter((e=>z(e)))[0];if(typeof e==="boolean"&&e||e==="true"){if(!t){const e={data:this.dataProvider,column:this.columnProvider,dimension:this.dimensionProvider,viewport:this.viewportProvider,selection:this.selectionStoreConnector};this.internalPlugins.push(new O(this.element,e))}else if(z(t)){t.applyStretch(this.columnProvider.getRawColumns())}}else if(t){const e=this.internalPlugins.indexOf(t);this.internalPlugins.splice(e,1)}}applyFilter(e){this.filterconfigchanged.emit(e)}rowHeadersChange(e){this.rowheaderschanged.emit(e)}registerOutsideVNodes(e=[]){this.extraElements=[...this.extraElements,...e]}additionalDataChanged(e){this.additionaldatachanged.emit(e)}pluginsChanged(e=[],t){const r=this.getPluginData();if(!r){return}e===null||e===void 0?void 0:e.forEach((e=>{const t=this.internalPlugins.find((t=>t instanceof e));if(t){return}this.internalPlugins.push(new e(this.element,r))}))}setPlugins(){this.removePlugins();const e=this.getPluginData();if(!e){return}if(this.accessible){this.internalPlugins.push(new xt(this.element,e))}if(this.autoSizeColumn){this.internalPlugins.push(new I(this.element,e,typeof this.autoSizeColumn==="object"?this.autoSizeColumn:undefined))}if(this.filter){this.internalPlugins.push(new M(this.element,e,typeof this.filter==="object"?this.filter:undefined))}if(this.exporting){this.internalPlugins.push(new T(this.element,e))}this.internalPlugins.push(new nt(this.element,e));this.internalPlugins.push(new ye(this.element,e));if(this.canMoveColumns){this.internalPlugins.push(new D(this.element,e))}this.pluginsChanged(this.plugins)}getPluginData(){if(!this.dimensionProvider||!this.dataProvider){return}const e={data:this.dataProvider,column:this.columnProvider,dimension:this.dimensionProvider,viewport:this.viewportProvider,selection:this.selectionStoreConnector};return e}removePlugins(){this.internalPlugins.forEach((e=>{var t;return(t=e.destroy)===null||t===void 0?void 0:t.call(e)}));this.internalPlugins=[]}connectedCallback(){if(this.isInited){this.setPlugins()}}componentWillLoad(){var e;this.viewportProvider=new ct;this.themeService=new pe({rowSize:this.rowSize});this.dimensionProvider=new ht(this.viewportProvider,{realSizeChanged:e=>this.contentsizechanged.emit(e)});this.columnProvider=new dt;this.selectionStoreConnector=new ee;this.dataProvider=new lt(this.dimensionProvider);this.registerOutsideVNodes(this.registerVNode);this.setPlugins();this.applyStretch(this.stretch);this.themeChanged(this.theme,undefined,undefined,true);this.columnChanged(this.columns);this.dataSourceChanged(this.source,undefined,"source");this.dataSourceChanged(this.pinnedTopSource,undefined,"pinnedTopSource");this.dataSourceChanged(this.pinnedBottomSource,undefined,"pinnedBottomSource");if(Object.keys((e=this.trimmedRows)!==null&&e!==void 0?e:{}).length>0){this.trimmedRowsChanged(this.trimmedRows)}this.rowDefChanged(this.rowDefinitions);this.groupingChanged(this.grouping);this.scrollingService=new ft((e=>{var t;(t=this.dimensionProvider)===null||t===void 0?void 0:t.setViewPortCoordinate({coordinate:e.coordinate,type:e.dimension});this.viewportscroll.emit(e)}));this.aftergridinit.emit();this.isInited=true}componentWillRender(){const e=this.beforegridrender.emit();if(e.defaultPrevented){return false}return Promise.all(this.jobsBeforeRender)}render(){if(!this.dimensionProvider||!this.dataProvider){return}const t=this.dimensionProvider.stores["rgRow"].store.get("realSize");this.viewport=new ut({columnProvider:this.columnProvider,dataProvider:this.dataProvider,dimensionProvider:this.dimensionProvider,viewportProvider:this.viewportProvider,scrollingService:this.scrollingService,orderService:this.orderService,selectionStoreConnector:this.selectionStoreConnector,disableVirtualX:this.disableVirtualX,disableVirtualY:this.disableVirtualY,resize:e=>this.aftercolumnresize.emit(e)},t);const r=[];if(this.rowHeaders&&this.viewport.columns.length){const o=this.viewport.columns[0];r.push(e("revogr-row-headers",{additionalData:this.additionalData,height:t,rowClass:this.rowClass,resize:this.resize,dataPorts:o.dataPorts,headerProp:o.headerProp,jobsBeforeRender:this.jobsBeforeRender,rowHeaderColumn:typeof this.rowHeaders==="object"?this.rowHeaders:undefined,onScrollview:({detail:e})=>this.scrollingService.proxyScroll(e,"headerRow"),onRef:({detail:e})=>this.scrollingService.registerElement(e,"headerRow")}))}const i=bt();const s=[];for(let t of this.viewport.columns){const r=Object.assign(Object.assign({},t.headerProp),{type:t.type,additionalData:this.additionalData,viewportCol:t.viewportCol,selectionStore:t.columnSelectionStore,canResize:this.resize,readonly:this.readonly,columnFilter:!!this.filter});const o=[e("revogr-header",Object.assign({},r,{slot:ae}))];t.dataPorts.forEach((r=>{const s=`${r.type}_${t.type}`;const a=e("revogr-overlay-selection",Object.assign({},r,{isMobileDevice:i,selectionStore:r.segmentSelectionStore,onSelectall:()=>this.selectionStoreConnector.selectAll(),editors:this.editors,readonly:this.readonly,range:this.range,useClipboard:this.useClipboard,applyChangesOnClose:this.applyOnClose,additionalData:this.additionalData,slot:r.slot,onBeforenextvpfocus:e=>this.selectionStoreConnector.beforeNextFocusCell(e.detail),onCanceledit:()=>this.selectionStoreConnector.setEdit(false),onSetedit:({detail:e})=>{const t=this.beforeeditstart.emit(e);if(!t.defaultPrevented){this.selectionStoreConnector.setEdit(e.val)}}}),e("revogr-data",Object.assign({},r,{colType:t.type,key:s,readonly:this.readonly,range:this.range,rowClass:this.rowClass,rowSelectionStore:r.rowSelectionStore,additionalData:this.additionalData,jobsBeforeRender:this.jobsBeforeRender,slot:le}),e("slot",{name:`data-${t.type}-${r.type}`})),e("revogr-temp-range",{selectionStore:r.segmentSelectionStore,dimensionRow:r.dimensionRow,dimensionCol:r.dimensionCol}),e("revogr-focus",{colData:r.colData,dataStore:r.dataStore,focusTemplate:this.focusTemplate,rowType:r.type,colType:t.type,selectionStore:r.segmentSelectionStore,dimensionRow:r.dimensionRow,dimensionCol:r.dimensionCol},e("slot",{name:`focus-${t.type}-${r.type}`})));o.push(a)}));s.push(e("revogr-viewport-scroll",Object.assign({},t.prop,{ref:e=>this.scrollingService.registerElement(e,`${t.prop.key}`),onScrollviewport:e=>this.scrollingService.proxyScroll(e.detail,`${t.prop.key}`),onScrollviewportsilent:e=>this.scrollingService.scrollSilentService(e.detail,`${t.prop.key}`)}),o))}r.push(s);const a="rgRow";const n="rgCol";const d=this.viewportProvider.stores;const l=this.dimensionProvider.stores;return e(o,null,this.hideAttribution?null:e("revogr-attribution",{class:"attribution"}),e("div",{class:"main-viewport",onClick:e=>{var t;if(e.currentTarget===e.target){(t=this.viewport)===null||t===void 0?void 0:t.clearEdit()}}},e("div",{class:"viewports"},e("slot",{name:"viewport"}),r,e("revogr-scroll-virtual",{class:"vertical",dimension:a,viewportStore:d[a].store,dimensionStore:l[a].store,ref:e=>this.scrollingService.registerElement(e,"rowScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)}),e(pt,{ref:e=>this.orderService=e}))),e("revogr-scroll-virtual",{class:"horizontal",dimension:n,viewportStore:d[n].store,dimensionStore:l[n].store,ref:e=>this.scrollingService.registerElement(e,"colScroll"),onScrollvirtual:e=>this.scrollingService.proxyScroll(e.detail)}),this.extraElements)}disconnectedCallback(){this.removePlugins()}get element(){return i(this)}static get watchers(){return{columnTypes:["columnTypesChanged"],columns:["columnChanged"],disableVirtualX:["disableVirtualXChanged"],rowSize:["rowSizeChanged"],theme:["themeChanged"],source:["dataSourceChanged"],pinnedBottomSource:["dataSourceChanged"],pinnedTopSource:["dataSourceChanged"],disableVirtualY:["disableVirtualYChanged"],rowDefinitions:["rowDefChanged"],trimmedRows:["trimmedRowsChanged"],grouping:["groupingChanged"],stretch:["applyStretch"],filter:["applyFilter"],rowHeaders:["rowHeadersChange"],registerVNode:["registerOutsideVNodes"],additionalData:["additionalDataChanged"],plugins:["pluginsChanged"]}}};St.style=yt;export{St as revo_grid};
5
5
  //# sourceMappingURL=revo-grid.entry.js.map