@omegagrid/grid 0.9.38 → 0.9.39

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 (47) hide show
  1. package/dist/editors/formulaEditor.d.ts.map +1 -1
  2. package/dist/editors/formulaEditor.js +0 -1
  3. package/dist/editors/formulaEditor.js.map +1 -1
  4. package/dist/filters/{numberFilter.d.ts → NumberFilter.d.ts} +1 -1
  5. package/dist/filters/{numberFilter.d.ts.map → NumberFilter.d.ts.map} +1 -1
  6. package/dist/filters/{numberFilter.js → NumberFilter.js} +1 -1
  7. package/dist/filters/{numberFilter.js.map → NumberFilter.js.map} +1 -1
  8. package/dist/filters/checkboxFilter.d.ts.map +1 -1
  9. package/dist/filters/checkboxFilter.js +1 -0
  10. package/dist/filters/checkboxFilter.js.map +1 -1
  11. package/dist/filters/textFilter.d.ts.map +1 -1
  12. package/dist/filters/textFilter.js +2 -0
  13. package/dist/filters/textFilter.js.map +1 -1
  14. package/dist/ui/comment.d.ts.map +1 -1
  15. package/dist/ui/comment.js +2 -3
  16. package/dist/ui/comment.js.map +1 -1
  17. package/dist/ui/comment.style.d.ts.map +1 -1
  18. package/dist/ui/comment.style.js +21 -3
  19. package/dist/ui/comment.style.js.map +1 -1
  20. package/dist/ui/grid.d.ts.map +1 -1
  21. package/dist/ui/grid.editing.d.ts.map +1 -1
  22. package/dist/ui/grid.editing.js +13 -2
  23. package/dist/ui/grid.editing.js.map +1 -1
  24. package/dist/ui/grid.events.d.ts +4 -0
  25. package/dist/ui/grid.events.d.ts.map +1 -1
  26. package/dist/ui/grid.events.js +21 -3
  27. package/dist/ui/grid.events.js.map +1 -1
  28. package/dist/ui/grid.filtering.d.ts +2 -2
  29. package/dist/ui/grid.filtering.d.ts.map +1 -1
  30. package/dist/ui/grid.filtering.js +3 -3
  31. package/dist/ui/grid.filtering.js.map +1 -1
  32. package/dist/ui/grid.js +14 -4
  33. package/dist/ui/grid.js.map +1 -1
  34. package/dist/ui/group.d.ts.map +1 -1
  35. package/dist/ui/group.js.map +1 -1
  36. package/dist/ui/table.d.ts +7 -6
  37. package/dist/ui/table.d.ts.map +1 -1
  38. package/dist/ui/table.js +46 -22
  39. package/dist/ui/table.js.map +1 -1
  40. package/dist/ui/table.styles.d.ts.map +1 -1
  41. package/dist/ui/table.styles.js +15 -3
  42. package/dist/ui/table.styles.js.map +1 -1
  43. package/dist/ui/tooltip.d.ts +4 -4
  44. package/dist/ui/tooltip.d.ts.map +1 -1
  45. package/dist/ui/tooltip.js +9 -4
  46. package/dist/ui/tooltip.js.map +1 -1
  47. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"grid.editing.js","sourceRoot":"","sources":["../../src/ui/grid.editing.ts"],"names":[],"mappings":"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","sourcesContent":["import { csv, Matrix, utils } from \"@omegagrid/core\";\nimport { FormulaEditor, getEditorFactory } from \"../editors\";\nimport { BaseEditor } from \"../editors/baseEditor\";\nimport { CellModel, isFormula, CellRange, CellValueType, decodeColumn, decodeRow, CellSource, CellAddress } from \"@omegagrid/grid-core\";\nimport { Grid } from \"./grid\";\nimport { GridEditEvent, GridEvent } from \"./grid.events\";\nimport constants from \"../constants\";\n\nexport type DeleteOptions = {\n\tindex: number,\n\tcount: number,\n\tdispatchEvent?: boolean,\n\tfromHistory?: boolean\n};\n\nexport type InsertOptions = DeleteOptions & {\n\tafter?: boolean\n};\n\nexport type MovingOptions = DeleteOptions & {\n\ttargetIndex: number\n};\n\nexport class GridEditing {\n\n\tprivate editorMap = new Map<string, BaseEditor>();\n\tprivate editor: BaseEditor;\n\t\n\tcolumnMoving = false;\n\trowMoving = false;\n\n\tget model() { return this.grid.model }\n\tget selection() { return this.grid.selection }\n\tget selector() { return this.grid.selector }\n\tget events() { return this.grid.events }\n\tget table() { return this.grid.table }\n\tget isEditing() { return !!this.editor }\n\tget activeEditor() { return this.editor }\n\n\tprivate _formulaMode = false;\n\tget isFormulaMode() { return this._formulaMode || this.grid.group?.isFormulaMode }\n\n\tconstructor(readonly grid: Grid) { }\n\n\tcanEdit(cell: CellModel) {\n\t\treturn cell.editable || this.grid.designMode;\n\t}\n\n\tupdateCell(cell: CellModel, value: CellValueType | CellSource, dispatchEvent = true, fromHistory = false) {\n\t\tthis.updateCells([cell], [value], dispatchEvent, fromHistory);\n\t}\n\n\tupdateCells(cells: CellModel[], values: (CellValueType | CellSource)[], dispatchEvent = true, fromHistory = false) {\n\t\tlet oldValues: CellValueType[];\n\t\tlet oldPropsArr: CellValueType[];\n\t\tlet newValues: CellValueType[];\n\t\tlet newPropsArr: CellValueType[];\n\t\tlet editedCells: CellModel[];\n\t\tcells.forEach((cell, i) => {\n\t\t\tconst oldValue = cell.value;\n\t\t\tlet newValue: CellValueType;\n\t\t\tlet newProps: CellSource;\n\t\t\t\n\t\t\tif (utils.isObject(values[i])) {\n\t\t\t\tnewProps = values[i] as CellSource;\n\t\t\t\tnewValue = ('v' in newProps) ? newProps.v : undefined;\n\t\t\t} else {\n\t\t\t\tnewValue = values[i] as CellValueType;\n\t\t\t}\n\n\t\t\tlet oldProps: Partial<CellSource>;\n\t\t\tif (newProps) {\n\t\t\t\toldProps = cell.update(newProps);\n\t\t\t} else {\n\t\t\t\tcell.clearFormula();\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\toldProps = {v: oldValue, dv: cell.displayValue};\n\t\t\t\t\tcell.value = newValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dispatchEvent && oldProps) {\n\t\t\t\toldValues = oldValues || [];\n\t\t\t\toldPropsArr = oldPropsArr || [];\n\t\t\t\tnewValues = newValues || [];\n\t\t\t\tnewPropsArr = newPropsArr || [];\n\t\t\t\teditedCells = editedCells || [];\n\t\t\t\toldValues.push(oldValue);\n\t\t\t\toldPropsArr.push(oldProps);\n\t\t\t\tnewValues.push(newValue);\n\t\t\t\tnewPropsArr.push(newProps);\n\t\t\t\teditedCells.push(cell);\n\t\t\t}\n\t\t});\n\n\t\tif (dispatchEvent && editedCells?.length) {\n\t\t\tthis.grid.dispatchEvent(new GridEditEvent({\n\t\t\t\tgrid: this.grid,\n\t\t\t\tfromHistory: !!fromHistory,\n\t\t\t\tcells: editedCells,\n\t\t\t\teditType: 'value',\n\t\t\t\tnewValues: newValues,\n\t\t\t\tnewProps: newPropsArr,\n\t\t\t\toldValues: oldValues,\n\t\t\t\toldProps: oldPropsArr\n\t\t\t}));\n\t\t}\n\t}\n\n\tstartFormulaMode() {\n\t\tthis._formulaMode = true;\n\t\tif (this.grid.group) this.grid.group.startFormulaMode(this.grid);\n\t}\n\n\tendFormulaMode(group = true) {\n\t\tthis._formulaMode = false;\n\t\tif (group && this.grid.group) this.grid.group.endFormulaMode();\n\t\tthis.grid.selecting.hideFormulaSelector();\n\t\tthis.grid.selecting.removeFormulaHighlight();\n\t\tthis.grid.selecting.showSelector();\n\t}\n\n\tstartEdit(initialValue: unknown = null) {\n\t\tconst cell = this.grid.selecting.activeCell;\n\t\tif (cell && this.canEdit(cell)) {\n\t\t\tthis.grid.logger.info(`start edit ${(new CellRange(cell.c, cell.r)).A1}`);\n\t\t\tlet formula = true;\n\t\t\tif (isFormula(initialValue as string)) {\n\t\t\t\tthis.editor = this.getFormulaEditor().open(this.grid, initialValue);\n\t\t\t} else {\n\t\t\t\tif (initialValue == null && cell.hasOwnFormula) {\n\t\t\t\t\tthis.editor = this.getFormulaEditor().open(this.grid, initialValue);\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tformula = false;\n\t\t\t\t\tthis.editor = this.getEditor(cell).open(this.grid, initialValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.grid.dispatchEvent(new GridEvent('startEdit', {grid: this.grid}));\n\t\t\tif (formula) {\n\t\t\t\tthis.startFormulaMode();\n\t\t\t\tthis.grid.dispatchEvent(new GridEvent('startFormulaEdit', {grid: this.grid}));\n\t\t\t}\n\t\t}\n\t}\n\n\tendEdit() {\n\t\tif (!this.editor) return;\n\t\tthis.grid.logger.info('end edit');\n\t\tthis.grid.editing.endFormulaMode();\n\t\tthis.editor?.close();\n\t\tthis.editor = null;\n\t\tthis.grid.dispatchEvent(new GridEvent('endEdit', {grid: this.grid}));\n\t}\n\n\tcommitEdit() {\n\t\tif (this.editor) {\n\t\t\tthis.editor.commit();\n\t\t\tthis.endEdit();\n\t\t}\n\t}\n\n\tinsertRows(options: InsertOptions) {\n\t\tconst newRows = this.model.insertRows(options.index, options.count, options.after);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'insert_row',\n\t\t\tnewValues: newRows\n\t\t}));\n\t\treturn newRows;\n\t}\n\n\tinsertColumns(options: InsertOptions) {\n\t\tconst newColumns = this.model.insertColumns(options.index , options.count, options.after);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'insert_column',\n\t\t\tnewValues: newColumns\n\t\t}));\n\t\treturn newColumns;\n\t}\n\n\tdeleteRows(options: DeleteOptions) {\n\t\tconst deletedRows = this.model.deleteRows(options.index, options.count);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'delete_row',\n\t\t\toldValues: deletedRows\n\t\t}));\n\t\treturn deletedRows;\n\t}\n\n\tdeleteColumns(options: DeleteOptions) {\n\t\tconst deletedColumns = this.model.deleteColumns(options.index, options.count);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'delete_column',\n\t\t\toldValues: deletedColumns\n\t\t}));\n\t\treturn deletedColumns\n\t}\n\n\tmoveRows(options: MovingOptions) {\n\t\tthis.model.moveRows(options.index, options.count, options.targetIndex);\n\t\tthis.grid.rendering.renderAll(false);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: options.fromHistory,\n\t\t\teditType: 'move_row',\n\t\t\toldValues: [new CellRange(0, options.index, Infinity, options.index + options.count - 1)],\n\t\t\tnewValues: [new CellRange(0, options.targetIndex, Infinity, options.targetIndex + options.count - 1)],\n\t\t}));\n\t}\n\n\tmoveColumns(options: MovingOptions) {\n\t\tthis.model.moveColumns(options.index, options.count, options.targetIndex);\n\t\tthis.grid.rendering.renderAll(false);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: options.fromHistory,\n\t\t\teditType: 'move_column',\n\t\t\toldValues: [new CellRange(options.index, options.index + options.count - 1, Infinity)],\n\t\t\tnewValues: [new CellRange(options.targetIndex, 0, options.targetIndex + options.count - 1, Infinity)],\n\t\t}));\n\t}\n\n\tclearSelection(dispatchEvent = true) {\n\t\tconst cells = this.model.getCellArray(this.selection.range).filter(cell => this.canEdit(cell));\n\t\tthis.updateCells(cells, cells.map(() => null as CellModel), dispatchEvent);\n\t\tthis.grid.rendering.updateCells(cells, true);\n\t}\n\n\tgetEditor(cell: CellModel) {\n\t\tconst type = cell.type;\n\t\tif (!this.editorMap.has(type)) {\n\t\t\tconst editor = getEditorFactory(type).createComponent(this.model.options.editing);\n\t\t\tthis.grid.shadowRoot.appendChild(editor);\n\t\t\tthis.editorMap.set(type, editor);\n\t\t}\n\t\treturn this.editorMap.get(type);\n\t}\n\n\tgetFormulaEditor() {\n\t\tconst type = 'formula';\n\t\tif (!this.editorMap.has(type)) {\n\t\t\tconst editor = new FormulaEditor();\n\t\t\tthis.grid.shadowRoot.appendChild(editor);\n\t\t\tthis.editorMap.set(type, editor);\n\t\t}\n\t\treturn this.editorMap.get(type);\n\t}\n\n\tgetSelectionCellData() {\n\t\treturn this.model.getCellMatrix(this.selection.range).map(\n\t\t\trow => row.map(cell => cell.getSourceData({displayValue: true}))\n\t\t);\n\t}\n\n\tcopySelection() {\n\t\tconst customClipboardSupport = ClipboardItem.supports(constants.CUSTOM_CLIPBOARD_TYPE);\n\t\tconst values = this.model.getValuesInRange(this.selection.range, customClipboardSupport);\n\t\tthis.grid.selecting.hideSelector();\n\t\tthis.grid.selecting.showCopySelector();\n\n\t\tconst clipboardData: Record<string, string|Blob> = {'text/plain': new Blob([\n\t\t\tcsv.arrayToCsv(values, {decimalSeparator: this.model.options.systemDecimalSeparator})\n\t\t], {\n\t\t\ttype: \"text/plain\"\n\t\t})};\n\t\t\n\t\tif (customClipboardSupport) {\n\t\t\tclipboardData[constants.CUSTOM_CLIPBOARD_TYPE] = new Blob([JSON.stringify(this.getSelectionCellData())], {\n\t\t\t\ttype: \"application/json\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.grid.logger.warn(\"Browser does not support custom clipboard type\");\n\t\t}\n\t\t\n\t\tnavigator.clipboard.write([new ClipboardItem(clipboardData)]).then(\n\t\t\t() => this.grid.logger.info(\"selected content copied\"),\n\t\t\t() => this.grid.logger.error(\"copy rejected\")\n\t\t);\n\t}\n\n\tprivate pasteMatrix(data: Matrix<string | CellSource>) {\n\t\tconst range = this.selection.range;\n\t\tconst cells: CellModel[] = [];\n\t\tconst cellValues: CellValueType[] = [];\n\t\tconst rowPasteMode = this.model.options.clipboard?.rowPasteMode;\n\t\tconst columnPasteMode = this.model.options.clipboard?.columnPasteMode;\n\n\t\tconst pasteProps = (this.model.options.clipboard?.pasteProps ?? 'all') == 'all'\n\t\t\t? null : this.model.options.clipboard.pasteProps as (keyof CellSource)[];\n\n\t\tconst height = data.length;\n\t\tconst width = height > 0 ? data[0].length : 0;\n\n\t\t// insert rows if needed\n\t\tif (rowPasteMode == 'insert') {\n\t\t\tthis.insertRows({index: range.r1, count: height, after: false});\n\t\t} else if (rowPasteMode == 'rewrite_append' && range.r1 + height > this.model.rows.length - 1) {\n\t\t\tthis.insertRows({\n\t\t\t\tindex: this.model.rows.length - 1, \n\t\t\t\tcount: range.r1 + height - this.model.rows.length, \n\t\t\t\tafter: true\n\t\t\t});\n\t\t}\n\n\t\t// insert columns if needed\n\t\tif (columnPasteMode == 'insert') {\n\t\t\tthis.insertColumns({index: range.c1, count: width, after: false});\n\t\t} else if (columnPasteMode == 'rewrite_append' && range.c1 + width > this.model.columns.length - 1) {\n\t\t\tthis.insertColumns({\n\t\t\t\tindex: this.model.columns.length - 1, \n\t\t\t\tcount: range.c1 + width - this.model.columns.length, \n\t\t\t\tafter: true\n\t\t\t});\n\t\t}\n\n\t\t// duplicate clipboard matrix over selection range if it fits\n\t\tconst dataFitsSelection = height > 0 && width > 0 &&\n\t\t\trange.size.rows % height == 0 && range.size.columns % width == 0;\n\n\t\tconst rMax = Math.min(\n\t\t\tdataFitsSelection ? range.r2 : range.r1 + height - 1, \n\t\t\tthis.model.rows.length - 1\n\t\t);\n\n\t\tconst cMax = Math.min(\n\t\t\tdataFitsSelection ? range.c2 : range.c1 + width - 1, \n\t\t\tthis.model.columns.length - 1\n\t\t);\n\n\t\tfor (let r = range.r1; r <= rMax; r++) {\n\t\t\tconst i = (r - range.r1) % height;\n\t\t\tfor (let c = range.c1; c <= cMax; c++) {\n\t\t\t\tconst cell = this.model.rows[r].cell(c);\n\t\t\t\tif (!cell.editable) continue;\n\n\t\t\t\tconst j = (c - range.c1) % data[i].length;\n\t\t\t\t\n\t\t\t\tif (pasteProps && utils.isObject(data[i][j])) {\n\t\t\t\t\t// filter unwanted properties\n\t\t\t\t\tconst updateProps: Partial<CellSource> = {};\n\t\t\t\t\tpasteProps.forEach(<T extends keyof Partial<CellSource>>(key: T) => {\n\t\t\t\t\t\tupdateProps[key] = (data[i][j] as CellSource)[key];\n\t\t\t\t\t});\n\n\t\t\t\t\t// copiing properties of cell with display value into cell without display value\n\t\t\t\t\tif (!cell.prefersDisplayValue) updateProps.dv = undefined;\n\n\t\t\t\t\tcellValues.push(updateProps);\n\t\t\t\t} else {\n\t\t\t\t\tcellValues.push(data[i][j]);\n\t\t\t\t}\n\n\t\t\t\tcells.push(cell);\n\t\t\t}\n\t\t}\n\n\t\tthis.updateCells(cells, cellValues, true);\n\t\tthis.grid.rendering.updateCells(cells, true);\n\t}\n\n\tprivate pasteText(text: string) {\n\t\tthis.pasteMatrix(csv.csvToArray(text));\n\t}\n\n\tasync paste() {\n\t\tthis.grid.selecting.hideCopySelector();\n\n\t\ttry\t{\n\t\t\tconst clipboardItems = await navigator.clipboard.read();\n\t\t\tif (clipboardItems.length == 0) return;\n\t\t\tconst clipboardItem = clipboardItems[0];\n\t\t\tif (clipboardItem.types.includes(constants.CUSTOM_CLIPBOARD_TYPE)) {\n\t\t\t\tconst data = await clipboardItem.getType(constants.CUSTOM_CLIPBOARD_TYPE);\n\t\t\t\tthis.pasteMatrix(JSON.parse(await data.text()));\n\t\t\t} else if (clipboardItem.types.includes('text/plain')) {\n\t\t\t\tconst data = await clipboardItem.getType('text/plain');\n\t\t\t\tthis.pasteText(await data.text());\n\t\t\t}\n\t\t} catch (_e) {\n\t\t\tthis.grid.logger.error(\"paste rejected\");\n\t\t\treturn;\n\t\t}\n\t}\n\n\topenComments(cell: CellModel) {\n\t\tsetTimeout(() => {\n\t\t\tthis.grid.comment.attachTo(this.grid.table.getCellByCellModel(cell), cell, true);\n\t\t}, 100);\n\t}\n\n\tundo() {\n\t\tlet cells: CellModel[];\n\t\tconst [item] = this.grid.history.pop();\n\t\tif (!item) return;\n\t\tswitch (item.type) {\n\t\t\tcase 'value':\n\t\t\t\tcells = item.addresses.map(addr => this.model.getCellByA1(addr));\n\t\t\t\tthis.updateCells(cells, item.oldProps, true, true);\n\t\t\t\tthis.grid.rendering.updateCells(cells, true);\n\t\t\t\tbreak;\n\t\t\tcase 'insert_column':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.deleteColumns({\n\t\t\t\t\tindex: decodeColumn(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tcase 'insert_row':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.deleteRows({\n\t\t\t\t\tindex: decodeRow(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tredo() {\n\t\tlet cells: CellModel[];\n\t\tconst [item] = this.grid.history.pop2();\n\t\tif (!item) return;\n\t\tswitch (item.type) {\n\t\t\tcase 'value':\n\t\t\t\tcells = item.addresses.map(addr => this.model.getCellByA1(addr))\n\t\t\t\tthis.updateCells(cells, item.newValues, true, true);\n\t\t\t\tthis.grid.rendering.updateCells(cells, true);\n\t\t\t\tbreak;\n\t\t\tcase 'insert_column':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.insertColumns({\n\t\t\t\t\tindex: decodeColumn(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tcase 'insert_row':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.insertRows({\n\t\t\t\t\tindex: decodeRow(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstartColumnMoving(_c: number) {\n\t\tthis.columnMoving = true;\n\t}\n\n\tmerge(range?: CellAddress) {\n\t\tconst r = range ? CellRange.fromA1(range) : this.selection.range;\n\t\tconst cell = this.model.rows[r.r1]?.cell(r.c1);\n\t\tif (!cell) return;\n\t\tthis.model.merges.add({r: r.r1, c: r.c1, rs: r.size.rows, cs: r.size.columns});\n\t\tthis.grid.rendering.renderCells({vertical: true, horizontal: true});\n\t\tthis.grid.selecting.select(r);\n\t}\n\n\tunmerge(range?: CellAddress) {\n\t\tconst r = range ? CellRange.fromA1(range) : this.selection.range;\n\t\tconst cell = this.model.rows[r.r1]?.cell(r.c1);\n\t\tif (!cell) return;\n\t\tconst merge = this.model.merges.mergedCells.get(cell.address);\n\t\tif (!merge) return;\n\t\tthis.model.merges.remove(cell.address);\n\t\tthis.grid.rendering.renderCells({vertical: true, horizontal: true});\n\t\tthis.grid.selecting.select(new CellRange(merge.c, merge.r, merge.c + merge.cs - 1, merge.r + merge.rs - 1));\n\t}\n\n}"]}
1
+ {"version":3,"file":"grid.editing.js","sourceRoot":"","sources":["../../src/ui/grid.editing.ts"],"names":[],"mappings":"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","sourcesContent":["import { csv, Matrix, utils } from \"@omegagrid/core\";\nimport { FormulaEditor, getEditorFactory } from \"../editors\";\nimport { BaseEditor } from \"../editors/baseEditor\";\nimport { CellModel, isFormula, CellRange, CellValueType, decodeColumn, decodeRow, CellSource, CellAddress } from \"@omegagrid/grid-core\";\nimport { Grid } from \"./grid\";\nimport { GridEditEvent, GridEvent } from \"./grid.events\";\nimport constants from \"../constants\";\n\nexport type DeleteOptions = {\n\tindex: number,\n\tcount: number,\n\tdispatchEvent?: boolean,\n\tfromHistory?: boolean\n};\n\nexport type InsertOptions = DeleteOptions & {\n\tafter?: boolean\n};\n\nexport type MovingOptions = DeleteOptions & {\n\ttargetIndex: number\n};\n\nexport class GridEditing {\n\n\tprivate editorMap = new Map<string, BaseEditor>();\n\tprivate editor: BaseEditor;\n\t\n\tcolumnMoving = false;\n\trowMoving = false;\n\n\tget model() { return this.grid.model }\n\tget selection() { return this.grid.selection }\n\tget selector() { return this.grid.selector }\n\tget events() { return this.grid.events }\n\tget table() { return this.grid.table }\n\tget isEditing() { return !!this.editor }\n\tget activeEditor() { return this.editor }\n\n\tprivate _formulaMode = false;\n\tget isFormulaMode() { return this._formulaMode || this.grid.group?.isFormulaMode }\n\n\tconstructor(readonly grid: Grid) { }\n\n\tcanEdit(cell: CellModel) {\n\t\treturn cell.editable || this.grid.designMode;\n\t}\n\n\tupdateCell(cell: CellModel, value: CellValueType | CellSource, dispatchEvent = true, fromHistory = false) {\n\t\tthis.updateCells([cell], [value], dispatchEvent, fromHistory);\n\t}\n\n\tupdateCells(cells: CellModel[], values: (CellValueType | CellSource)[], dispatchEvent = true, fromHistory = false) {\n\t\tlet oldValues: CellValueType[];\n\t\tlet oldPropsArr: CellValueType[];\n\t\tlet newValues: CellValueType[];\n\t\tlet newPropsArr: CellValueType[];\n\t\tlet editedCells: CellModel[];\n\t\tcells.forEach((cell, i) => {\n\t\t\tconst oldValue = cell.value;\n\t\t\tlet newValue: CellValueType;\n\t\t\tlet newProps: CellSource;\n\t\t\t\n\t\t\tif (utils.isObject(values[i])) {\n\t\t\t\tnewProps = values[i] as CellSource;\n\t\t\t\tnewValue = ('v' in newProps) ? newProps.v : undefined;\n\t\t\t} else {\n\t\t\t\tnewValue = values[i] as CellValueType;\n\t\t\t}\n\n\t\t\tlet oldProps: Partial<CellSource>;\n\t\t\tif (newProps) {\n\t\t\t\toldProps = cell.update(newProps);\n\t\t\t} else {\n\t\t\t\tcell.clearFormula();\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\toldProps = {v: oldValue, dv: cell.displayValue};\n\t\t\t\t\tcell.value = newValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dispatchEvent && oldProps) {\n\t\t\t\toldValues = oldValues || [];\n\t\t\t\toldPropsArr = oldPropsArr || [];\n\t\t\t\tnewValues = newValues || [];\n\t\t\t\tnewPropsArr = newPropsArr || [];\n\t\t\t\teditedCells = editedCells || [];\n\t\t\t\toldValues.push(oldValue);\n\t\t\t\toldPropsArr.push(oldProps);\n\t\t\t\tnewValues.push(newValue);\n\t\t\t\tnewPropsArr.push(newProps);\n\t\t\t\teditedCells.push(cell);\n\t\t\t}\n\t\t});\n\n\t\tif (dispatchEvent && editedCells?.length) {\n\t\t\tthis.grid.dispatchEvent(new GridEditEvent({\n\t\t\t\tgrid: this.grid,\n\t\t\t\tfromHistory: !!fromHistory,\n\t\t\t\tcells: editedCells,\n\t\t\t\teditType: 'value',\n\t\t\t\tnewValues: newValues,\n\t\t\t\tnewProps: newPropsArr,\n\t\t\t\toldValues: oldValues,\n\t\t\t\toldProps: oldPropsArr\n\t\t\t}));\n\t\t}\n\t}\n\n\tstartFormulaMode() {\n\t\tthis._formulaMode = true;\n\t\tif (this.grid.group) this.grid.group.startFormulaMode(this.grid);\n\t}\n\n\tendFormulaMode(group = true) {\n\t\tthis._formulaMode = false;\n\t\tif (group && this.grid.group) this.grid.group.endFormulaMode();\n\t\tthis.grid.selecting.hideFormulaSelector();\n\t\tthis.grid.selecting.removeFormulaHighlight();\n\t\tthis.grid.selecting.showSelector();\n\t}\n\n\tstartEdit(initialValue: unknown = null) {\n\t\tconst cell = this.grid.selecting.activeCell;\n\t\tif (cell && this.canEdit(cell)) {\n\t\t\tthis.grid.logger.info(`start edit ${(new CellRange(cell.c, cell.r)).A1}`);\n\t\t\tlet formula = true;\n\t\t\tif (isFormula(initialValue as string)) {\n\t\t\t\tthis.editor = this.getFormulaEditor().open(this.grid, initialValue);\n\t\t\t} else {\n\t\t\t\tif (initialValue == null && cell.hasOwnFormula) {\n\t\t\t\t\tthis.editor = this.getFormulaEditor().open(this.grid, initialValue);\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tformula = false;\n\t\t\t\t\tthis.editor = this.getEditor(cell).open(this.grid, initialValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.grid.dispatchEvent(new GridEvent('startEdit', {grid: this.grid}));\n\t\t\tif (formula) {\n\t\t\t\tthis.startFormulaMode();\n\t\t\t\tthis.grid.dispatchEvent(new GridEvent('startFormulaEdit', {grid: this.grid}));\n\t\t\t}\n\t\t}\n\t}\n\n\tendEdit() {\n\t\tif (!this.editor) return;\n\t\tthis.grid.logger.info('end edit');\n\t\tthis.grid.editing.endFormulaMode();\n\t\tthis.editor?.close();\n\t\tthis.editor = null;\n\t\tthis.grid.dispatchEvent(new GridEvent('endEdit', {grid: this.grid}));\n\t}\n\n\tcommitEdit() {\n\t\tif (this.editor) {\n\t\t\tthis.editor.commit();\n\t\t\tthis.endEdit();\n\t\t}\n\t}\n\n\tinsertRows(options: InsertOptions) {\n\t\tconst newRows = this.model.insertRows(options.index, options.count, options.after);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'insert_row',\n\t\t\tnewValues: newRows\n\t\t}));\n\t\treturn newRows;\n\t}\n\n\tinsertColumns(options: InsertOptions) {\n\t\tconst newColumns = this.model.insertColumns(options.index , options.count, options.after);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'insert_column',\n\t\t\tnewValues: newColumns\n\t\t}));\n\t\treturn newColumns;\n\t}\n\n\tdeleteRows(options: DeleteOptions) {\n\t\tconst deletedRows = this.model.deleteRows(options.index, options.count);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'delete_row',\n\t\t\toldValues: deletedRows\n\t\t}));\n\t\treturn deletedRows;\n\t}\n\n\tdeleteColumns(options: DeleteOptions) {\n\t\tconst deletedColumns = this.model.deleteColumns(options.index, options.count);\n\t\tthis.grid.rendering.renderAll(true);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: !!options.fromHistory,\n\t\t\teditType: 'delete_column',\n\t\t\toldValues: deletedColumns\n\t\t}));\n\t\treturn deletedColumns\n\t}\n\n\tmoveRows(options: MovingOptions) {\n\t\tthis.model.moveRows(options.index, options.count, options.targetIndex);\n\t\tthis.grid.rendering.renderAll(false);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: options.fromHistory,\n\t\t\teditType: 'move_row',\n\t\t\toldValues: [new CellRange(0, options.index, Infinity, options.index + options.count - 1)],\n\t\t\tnewValues: [new CellRange(0, options.targetIndex, Infinity, options.targetIndex + options.count - 1)],\n\t\t}));\n\t}\n\n\tmoveColumns(options: MovingOptions) {\n\t\tthis.model.moveColumns(options.index, options.count, options.targetIndex);\n\t\tthis.grid.rendering.renderAll(false);\n\t\tif (utils.ifNull(options.dispatchEvent, true)) this.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\tfromHistory: options.fromHistory,\n\t\t\teditType: 'move_column',\n\t\t\toldValues: [new CellRange(options.index, options.index + options.count - 1, Infinity)],\n\t\t\tnewValues: [new CellRange(options.targetIndex, 0, options.targetIndex + options.count - 1, Infinity)],\n\t\t}));\n\t}\n\n\tclearSelection(dispatchEvent = true) {\n\t\tconst cells = this.model.getCellArray(this.selection.range).filter(cell => this.canEdit(cell));\n\t\tthis.updateCells(cells, cells.map(() => null as CellModel), dispatchEvent);\n\t\tthis.grid.rendering.updateCells(cells, true);\n\t}\n\n\tgetEditor(cell: CellModel) {\n\t\tconst type = cell.type;\n\t\tif (!this.editorMap.has(type)) {\n\t\t\tconst editor = getEditorFactory(type).createComponent(this.model.options.editing);\n\t\t\tthis.grid.shadowRoot.appendChild(editor);\n\t\t\tthis.editorMap.set(type, editor);\n\t\t}\n\t\treturn this.editorMap.get(type);\n\t}\n\n\tgetFormulaEditor() {\n\t\tconst type = 'formula';\n\t\tif (!this.editorMap.has(type)) {\n\t\t\tconst editor = new FormulaEditor();\n\t\t\tthis.grid.shadowRoot.appendChild(editor);\n\t\t\tthis.editorMap.set(type, editor);\n\t\t}\n\t\treturn this.editorMap.get(type);\n\t}\n\n\tgetSelectionCellData() {\n\t\treturn this.model.getCellMatrix(this.selection.range).map(\n\t\t\trow => row.map(cell => cell.getSourceData({displayValue: true}))\n\t\t);\n\t}\n\n\tcopySelection() {\n\t\tconst customClipboardSupport = ClipboardItem.supports(constants.CUSTOM_CLIPBOARD_TYPE);\n\t\tconst values = this.model.getValuesInRange(this.selection.range, customClipboardSupport);\n\t\tthis.grid.selecting.hideSelector();\n\t\tthis.grid.selecting.showCopySelector();\n\n\t\tconst clipboardData: Record<string, string|Blob> = {'text/plain': new Blob([\n\t\t\tcsv.arrayToCsv(values, {decimalSeparator: this.model.options.systemDecimalSeparator})\n\t\t], {\n\t\t\ttype: \"text/plain\"\n\t\t})};\n\t\t\n\t\tif (customClipboardSupport) {\n\t\t\tclipboardData[constants.CUSTOM_CLIPBOARD_TYPE] = new Blob([JSON.stringify(this.getSelectionCellData())], {\n\t\t\t\ttype: \"application/json\"\n\t\t\t});\n\t\t} else {\n\t\t\tthis.grid.logger.warn(\"Browser does not support custom clipboard type\");\n\t\t}\n\t\t\n\t\tnavigator.clipboard.write([new ClipboardItem(clipboardData)]).then(\n\t\t\t() => this.grid.logger.info(\"selected content copied\"),\n\t\t\t() => this.grid.logger.error(\"copy rejected\")\n\t\t);\n\t}\n\n\tprivate pasteMatrix(data: Matrix<string | CellSource>) {\n\t\tconst range = this.selection.range;\n\t\tconst cells: CellModel[] = [];\n\t\tconst cellValues: CellValueType[] = [];\n\t\tconst rowPasteMode = this.model.options.clipboard?.rowPasteMode;\n\t\tconst columnPasteMode = this.model.options.clipboard?.columnPasteMode;\n\n\t\tconst pasteProps = (this.model.options.clipboard?.pasteProps ?? 'all') == 'all'\n\t\t\t? null : this.model.options.clipboard.pasteProps as (keyof CellSource)[];\n\n\t\tconst height = data.length;\n\t\tconst width = height > 0 ? data[0].length : 0;\n\n\t\t// insert rows if needed\n\t\tif (rowPasteMode == 'insert') {\n\t\t\tthis.insertRows({index: range.r1, count: height, after: false});\n\t\t} else if (rowPasteMode == 'rewrite_append' && range.r1 + height > this.model.rows.length - 1) {\n\t\t\tthis.insertRows({\n\t\t\t\tindex: this.model.rows.length - 1, \n\t\t\t\tcount: range.r1 + height - this.model.rows.length, \n\t\t\t\tafter: true\n\t\t\t});\n\t\t}\n\n\t\t// insert columns if needed\n\t\tif (columnPasteMode == 'insert') {\n\t\t\tthis.insertColumns({index: range.c1, count: width, after: false});\n\t\t} else if (columnPasteMode == 'rewrite_append' && range.c1 + width > this.model.columns.length - 1) {\n\t\t\tthis.insertColumns({\n\t\t\t\tindex: this.model.columns.length - 1, \n\t\t\t\tcount: range.c1 + width - this.model.columns.length, \n\t\t\t\tafter: true\n\t\t\t});\n\t\t}\n\n\t\t// duplicate clipboard matrix over selection range if it fits\n\t\tconst dataFitsSelection = height > 0 && width > 0 &&\n\t\t\trange.size.rows % height == 0 && range.size.columns % width == 0;\n\n\t\tlet rMax = Math.min(\n\t\t\tdataFitsSelection ? range.r2 : range.r1 + height - 1, \n\t\t\tthis.model.rows.length - 1\n\t\t);\n\n\t\tconst cMax = Math.min(\n\t\t\tdataFitsSelection ? range.c2 : range.c1 + width - 1, \n\t\t\tthis.model.columns.length - 1\n\t\t);\n\n\t\tfor (let r = range.r1; r <= rMax; r++) {\n\t\t\tconst i = (r - range.r1) % height;\n\t\t\tconst row = this.model.rows[r];\n\t\t\tif (!row) break;\n\n\t\t\tif (this.model.options.clipboard?.skipHiddenRows) {\n\t\t\t\tif (!row.visible) {\n\t\t\t\t\t// resize target range to accommodate skipped row, but only if clipboard data is larger than selection\n\t\t\t\t\tif (height > range.size.rows) rMax++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let c = range.c1; c <= cMax; c++) {\n\t\t\t\tconst cell = row.cell(c);\n\t\t\t\tif (!cell.editable) continue;\n\n\t\t\t\tconst j = (c - range.c1) % data[i].length;\n\t\t\t\t\n\t\t\t\tif (pasteProps && utils.isObject(data[i][j])) {\n\t\t\t\t\t// filter unwanted properties\n\t\t\t\t\tconst updateProps: Partial<CellSource> = {};\n\t\t\t\t\tpasteProps.forEach(<T extends keyof Partial<CellSource>>(key: T) => {\n\t\t\t\t\t\tupdateProps[key] = (data[i][j] as CellSource)[key];\n\t\t\t\t\t});\n\n\t\t\t\t\t// copiing properties of cell with display value into cell without display value\n\t\t\t\t\tif (!cell.prefersDisplayValue) updateProps.dv = undefined;\n\n\t\t\t\t\tcellValues.push(updateProps);\n\t\t\t\t} else {\n\t\t\t\t\tcellValues.push(data[i][j]);\n\t\t\t\t}\n\n\t\t\t\tcells.push(cell);\n\t\t\t}\n\t\t}\n\n\t\tthis.updateCells(cells, cellValues, true);\n\t\tthis.grid.rendering.updateCells(cells, true);\n\t}\n\n\tprivate pasteText(text: string) {\n\t\tthis.pasteMatrix(csv.csvToArray(text));\n\t}\n\n\tasync paste() {\n\t\tthis.grid.selecting.hideCopySelector();\n\n\t\ttry\t{\n\t\t\tconst clipboardItems = await navigator.clipboard.read();\n\t\t\tif (clipboardItems.length == 0) return;\n\t\t\tconst clipboardItem = clipboardItems[0];\n\t\t\tif (clipboardItem.types.includes(constants.CUSTOM_CLIPBOARD_TYPE)) {\n\t\t\t\tconst data = await clipboardItem.getType(constants.CUSTOM_CLIPBOARD_TYPE);\n\t\t\t\tthis.pasteMatrix(JSON.parse(await data.text()));\n\t\t\t} else if (clipboardItem.types.includes('text/plain')) {\n\t\t\t\tconst data = await clipboardItem.getType('text/plain');\n\t\t\t\tthis.pasteText(await data.text());\n\t\t\t}\n\t\t} catch (_e) {\n\t\t\tthis.grid.logger.error(\"paste rejected\");\n\t\t\treturn;\n\t\t}\n\t}\n\n\topenComments(cell: CellModel) {\n\t\tsetTimeout(() => {\n\t\t\tthis.grid.comment.attachTo(this.grid.table.getCellByCellModel(cell), cell, true);\n\t\t}, 100);\n\t}\n\n\tundo() {\n\t\tlet cells: CellModel[];\n\t\tconst [item] = this.grid.history.pop();\n\t\tif (!item) return;\n\t\tswitch (item.type) {\n\t\t\tcase 'value':\n\t\t\t\tcells = item.addresses.map(addr => this.model.getCellByA1(addr));\n\t\t\t\tthis.updateCells(cells, item.oldProps, true, true);\n\t\t\t\tthis.grid.rendering.updateCells(cells, true);\n\t\t\t\tbreak;\n\t\t\tcase 'insert_column':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.deleteColumns({\n\t\t\t\t\tindex: decodeColumn(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tcase 'insert_row':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.deleteRows({\n\t\t\t\t\tindex: decodeRow(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tredo() {\n\t\tlet cells: CellModel[];\n\t\tconst [item] = this.grid.history.pop2();\n\t\tif (!item) return;\n\t\tswitch (item.type) {\n\t\t\tcase 'value':\n\t\t\t\tcells = item.addresses.map(addr => this.model.getCellByA1(addr))\n\t\t\t\tthis.updateCells(cells, item.newValues, true, true);\n\t\t\t\tthis.grid.rendering.updateCells(cells, true);\n\t\t\t\tbreak;\n\t\t\tcase 'insert_column':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.insertColumns({\n\t\t\t\t\tindex: decodeColumn(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tcase 'insert_row':\n\t\t\t\titem.newValues.forEach((_, i) => this.grid.editing.insertRows({\n\t\t\t\t\tindex: decodeRow(item.addresses[i]),\n\t\t\t\t\tcount: 1,\n\t\t\t\t\tdispatchEvent: true,\n\t\t\t\t\tfromHistory: true\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstartColumnMoving(_c: number) {\n\t\tthis.columnMoving = true;\n\t}\n\n\tmerge(range?: CellAddress) {\n\t\tconst r = range ? CellRange.fromA1(range) : this.selection.range;\n\t\tconst cell = this.model.rows[r.r1]?.cell(r.c1);\n\t\tif (!cell) return;\n\t\tthis.model.merges.add({r: r.r1, c: r.c1, rs: r.size.rows, cs: r.size.columns});\n\t\tthis.grid.rendering.renderCells({vertical: true, horizontal: true});\n\t\tthis.grid.selecting.select(r);\n\t}\n\n\tunmerge(range?: CellAddress) {\n\t\tconst r = range ? CellRange.fromA1(range) : this.selection.range;\n\t\tconst cell = this.model.rows[r.r1]?.cell(r.c1);\n\t\tif (!cell) return;\n\t\tconst merge = this.model.merges.mergedCells.get(cell.address);\n\t\tif (!merge) return;\n\t\tthis.model.merges.remove(cell.address);\n\t\tthis.grid.rendering.renderCells({vertical: true, horizontal: true});\n\t\tthis.grid.selecting.select(new CellRange(merge.c, merge.r, merge.c + merge.cs - 1, merge.r + merge.rs - 1));\n\t}\n\n}"]}
@@ -3,6 +3,10 @@ import { CellModel, ColumnModel, CellRange, CellValueType, EditType, RowModel, C
3
3
  import { Grid } from "./grid";
4
4
  import { SelectorEvent, SelectorMoveEvent } from "./selector";
5
5
  import { CommentEvent } from "./comment";
6
+ export declare class GridErrorEvent extends Event {
7
+ readonly error: Error;
8
+ constructor(error: Error);
9
+ }
6
10
  export declare class GridEvent extends Event {
7
11
  get selection(): import("@omegagrid/grid-core").SelectionModel;
8
12
  get activeCell(): CellRange;
@@ -1 +1 @@
1
- {"version":3,"file":"grid.events.d.ts","sourceRoot":"","sources":["../../src/ui/grid.events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid.events.d.ts","sourceRoot":"","sources":["../../src/ui/grid.events.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@ import { dom, ResizeEvent } from "@omegagrid/core";
3
3
  import { debounce } from "ts-debounce";
4
4
  import { autofill, CellRange } from "@omegagrid/grid-core";
5
5
  const IGNORED_KEYS = ['F5', 'F12'];
6
+ export class GridErrorEvent extends Event {
7
+ constructor(error) {
8
+ super(`grid.error`, { bubbles: true, composed: true });
9
+ this.error = error;
10
+ }
11
+ }
6
12
  export class GridEvent extends Event {
7
13
  get selection() { return this.grid.selecting.selection; }
8
14
  get activeCell() { return this.selection.activeCell; }
@@ -146,7 +152,10 @@ export class GridEvents {
146
152
  }
147
153
  };
148
154
  this._onMouseMove = (e) => {
155
+ if (!this.model)
156
+ return;
149
157
  let hidePopups = true;
158
+ let hideSizers = true;
150
159
  const hSizer = this.grid.hSizer;
151
160
  const vSizer = this.grid.vSizer;
152
161
  const { offsetX, offsetY } = e;
@@ -185,13 +194,20 @@ export class GridEvents {
185
194
  dom.hideElement(vSizer);
186
195
  }
187
196
  }
197
+ if (exactCell.c != null) {
198
+ const columnModel = this.model.columns[exactCell.c];
199
+ if (columnModel?.hasHeaderTooltip(exactCell.r)) {
200
+ hidePopups = false;
201
+ this.grid.tooltip.attachToCell(exactCell, columnModel.header[exactCell.r], 'bottom');
202
+ }
203
+ }
188
204
  }
189
205
  if (cell && cell.tagName == 'TH') {
190
206
  if (this.grid.selecting.isSelecting) {
191
207
  this.suspendClick();
192
208
  this.grid.selecting.updateSelecting(cell.c, cell.r);
193
209
  }
194
- return;
210
+ hideSizers = false;
195
211
  }
196
212
  else if (cell && cell.tagName == 'TD') {
197
213
  if (this.grid.selecting.isSelectorOperationActive || this.grid.selecting.isFormulaSelectorOperationActive) {
@@ -223,8 +239,10 @@ export class GridEvents {
223
239
  this.grid.tooltip.deatach();
224
240
  this.grid.comment.deatach(this.model.options.comments.hideTimeout);
225
241
  }
226
- dom.hideElement(hSizer);
227
- dom.hideElement(vSizer);
242
+ if (hideSizers) {
243
+ dom.hideElement(hSizer);
244
+ dom.hideElement(vSizer);
245
+ }
228
246
  };
229
247
  this._onMouseDown = (e) => {
230
248
  if ((e.buttons & 1) == 0)
@@ -1 +1 @@
1
- {"version":3,"file":"grid.events.js","sourceRoot":"","sources":["../../src/ui/grid.events.ts"],"names":[],"mappings":"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","sourcesContent":["import constants from \"../constants\";\nimport { dom, ResizeEvent, SlideEvent } from \"@omegagrid/core\";\nimport { debounce } from \"ts-debounce\";\nimport { CellModel, ColumnModel, autofill, CellRange, CellValueType, EditType, ElementModel, RowModel, CellSource } from \"@omegagrid/grid-core\";\nimport { Grid } from \"./grid\";\nimport { TableCell, TableHeaderCell } from \"./table\";\nimport { SelectorEvent, SelectorMoveEvent } from \"./selector\";\nimport { CommentEvent } from \"./comment\";\n\nconst IGNORED_KEYS = ['F5', 'F12'];\n\nexport class GridEvent extends Event {\n\n\tget selection() { return this.grid.selecting.selection }\n\tget activeCell() { return this.selection.activeCell }\n\t\n\tcells?: CellModel[];\n\tcell: CellModel;\n\trow: RowModel;\n\tcolumn: ColumnModel;\n\taction: string;\n\tgrid: Grid;\n\n\tconstructor(type: string, args?: Partial<GridEvent>) {\n\t\tsuper(`grid.${type}`, {bubbles: true, composed: true});\n\t\tObject.assign(this, args);\n\n\t\tif (this.cell) {\n\t\t\tthis.row = this.cell.row;\n\t\t\tthis.column = this.cell.column;\n\t\t}\n\t}\n\n}\n\nexport class GridEditEvent extends GridEvent {\n\n\tfromHistory?: boolean;\n\teditType?: EditType;\n\toldValues?: CellValueType[];\n\toldProps?: Partial<CellSource>[];\n\tnewValues?: CellValueType[];\n\tnewProps?: Partial<CellSource>[];\n\n\tconstructor(args?: Partial<GridEditEvent>) {\n\t\tsuper('edit', args);\n\t}\n}\n\nexport class GridResizeEvent extends ResizeEvent {\n\tpublic readonly grid: Grid;\n\tconstructor(type: string, grid: Grid, args?: Partial<ResizeEvent>) {\n\t\tsuper(`grid.${type}`, args);\n\t\tthis.grid = grid;\n\t}\n}\n\nexport class GridColumnResizeEvent extends GridResizeEvent {\n\tpublic readonly column: ColumnModel;\n\tconstructor(type: string, grid: Grid, column: ColumnModel, args?: Partial<ResizeEvent>) {\n\t\tsuper(type, grid, args);\n\t\tthis.column = column;\n\t}\n}\n\nexport class GridRowResizeEvent extends GridResizeEvent {\n\tpublic readonly row: RowModel;\n\tconstructor(type: string, grid: Grid, row: RowModel, args?: Partial<ResizeEvent>) {\n\t\tsuper(type, grid, args);\n\t\tthis.row = row;\n\t}\n}\n\nexport class GridEvents {\n\n\tget model() { return this.grid.model }\n\tget selection() { return this.grid.selection }\n\tget table() { return this.grid.table }\n\t\n\tclickDisabled = false;\n\teditDisabled = false;\n\tclicked = false;\n\tstartOffset: {x: number, y: number} = {x: 0, y: 0};\n\n\tconstructor(readonly grid: Grid) { }\n\n\tget isSliding() { return this.grid.hSlider.sliding || this.grid.vSlider.sliding }\n\n\tsuspendClick = () => this.clickDisabled = true;\n\tresumeClick = (delay = false) => { \n\t\tif (this.isSliding) return;\n\t\tif (delay) {\n\t\t\tsetTimeout(() => this.clickDisabled = false, 100)\n\t\t} else {\n\t\t\tthis.clickDisabled = false;\n\t\t}\n\t}\n\t\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tif (!IGNORED_KEYS.includes(e.key)) e.preventDefault();\n\t\t\n\t\tswitch (e.key) {\n\t\t\tcase 'Tab':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.selecting.shiftActiveCell(e.shiftKey ? -1 : 1, true);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(1, 0);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(-1, 0);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, 1);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, -1);\n\t\t\t\tbreak;\n\t\t\tcase 'PageUp':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, -this.table.viewport.rows.length);\n\t\t\t\tbreak;\n\t\t\tcase 'PageDown':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, this.table.viewport.rows.length);\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(\n\t\t\t\t\t-this.selection.range.c1, \n\t\t\t\t\te.ctrlKey ? -this.selection.range.r1 : 0\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'End':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(\n\t\t\t\t\tthis.model.gridRange.c2 - this.selection.range.c1,\n\t\t\t\t\te.ctrlKey ? this.model.gridRange.r2 - this.selection.range.r1 : 0\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tthis.grid.selecting.enter();\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\t\tthis.grid.selecting.hideCopySelector();\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\tcase 'C':\n\t\t\t\tif (e.ctrlKey) this.grid.editing.copySelection();\n\t\t\t\tbreak;\n\t\t\tcase 'v':\n\t\t\tcase 'V':\n\t\t\t\tif (e.ctrlKey) this.grid.editing.paste();\n\t\t\t\tbreak;\n\t\t\tcase 'z':\n\t\t\tcase 'Z':\n\t\t\t\tif (!this.grid.options.undoRedo) return;\n\t\t\t\tif (e.ctrlKey) this.grid.editing.undo();\n\t\t\t\tbreak;\n\t\t\tcase 'y':\n\t\t\tcase 'Y':\n\t\t\t\tif (!this.grid.options.undoRedo) return;\n\t\t\t\tif (e.ctrlKey) this.grid.editing.redo();\n\t\t\t\tbreak;\n\t\t\tcase 'F2':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.editing.startEdit();\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.objects.delete();\n\t\t\t\tthis.grid.editing.clearSelection();\n\t\t\t\tbreak;\n\t\t\tcase 'Backspace':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.editing.clearSelection();\n\t\t\t\tbreak;\n\t\t\tcase 'F1':\n\t\t\t\tif (!this.grid.options.commandWindow) return;\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.openCommands();\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (e.key.length == 1 && !e.ctrlKey) {\n\t\t\tthis.grid.editing.startEdit(e.key);\n\t\t}\n\t}\n\n\t_onMouseMove = (e: PointerEvent) => {\n\t\tlet hidePopups = true;\n\t\tconst hSizer = this.grid.hSizer;\n\t\tconst vSizer = this.grid.vSizer;\n\n\t\tconst { offsetX, offsetY} = e;\n\t\tlet scrollbarVisibilityTreshold = this.model.options.scrolling.scrollbarVisibilityTreshold;\n\t\tif (scrollbarVisibilityTreshold <= 0) scrollbarVisibilityTreshold = Math.max(this.grid.clientWidth, this.grid.clientHeight);\n\n\t\tif (offsetX > this.grid.clientWidth - scrollbarVisibilityTreshold) {\n\t\t\tthis.grid.vSlider.show();\n\t\t} else {\n\t\t\tthis.grid.vSlider.hide();\n\t\t}\n\n\t\tif (offsetY > this.grid.clientHeight - scrollbarVisibilityTreshold) {\n\t\t\tthis.grid.hSlider.show();\n\t\t} else {\n\t\t\tthis.grid.hSlider.hide();\n\t\t}\n\n\t\tconst [cell, exactCell] = this.table.findNearestTableCellByOffset(offsetX, offsetY);\n\t\t\n\t\tif (exactCell && exactCell.tagName == 'TH') {\n\t\t\tif (this.model.options.columnResize && !hSizer.resizing && exactCell.classList.contains('hlabel')) {\n\t\t\t\tif (exactCell.offsetWidth - e.offsetX + exactCell.offsetLeft < constants.RESIZE_TRESHOLD) {\n\t\t\t\t\thSizer.snap(exactCell, this.grid);\n\t\t\t\t\tthis.grid.rendering.currentResizedColumn = this.model.columns[exactCell.c];\n\t\t\t\t} else {\n\t\t\t\t\tdom.hideElement(hSizer);\n\t\t\t\t}\n\t\t\t} else if (this.model.options.rowResize && !vSizer.resizing && exactCell.classList.contains('vlabel')) {\n\t\t\t\tif (exactCell.offsetHeight - e.offsetY + exactCell.offsetTop < constants.RESIZE_TRESHOLD) {\n\t\t\t\t\tvSizer.snap(exactCell, this.grid);\n\t\t\t\t\tthis.grid.rendering.currentResizedRow = this.model.rows[exactCell.r];\n\t\t\t\t} else {\n\t\t\t\t\tdom.hideElement(vSizer);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (cell && cell.tagName == 'TH') {\n\t\t\tif (this.grid.selecting.isSelecting) {\n\t\t\t\tthis.suspendClick();\n\t\t\t\tthis.grid.selecting.updateSelecting(cell.c, cell.r);\n\t\t\t}\n\t\t\treturn;\n\t\t} else if (cell && cell.tagName == 'TD') {\n\t\t\tif (this.grid.selecting.isSelectorOperationActive || this.grid.selecting.isFormulaSelectorOperationActive) {\n\t\t\t\tconst { top, left } = dom.getElementOffset(cell, this.grid);\n\t\t\t\tthis.grid.rendering.autoscroll({\n\t\t\t\t\tx: left - this.table.totalHeaderWidth + e.offsetX - cell.offsetLeft,\n\t\t\t\t\ty: top - this.table.thead.clientHeight + e.offsetY - cell.offsetTop\n\t\t\t\t});\n\t\t\t\tif (this.grid.selecting.isSelecting) {\n\t\t\t\t\tthis.suspendClick();\n\t\t\t\t}\n\t\t\t\tthis.grid.selecting.updateSelecting(cell.c, cell.r);\n\t\t\t} else {\n\t\t\t\tconst cellModel = this.model.rows[cell.r]?.cell(cell.c);\n\t\t\t\tif (cellModel && cellModel.hasTooltip) {\n\t\t\t\t\thidePopups = false;\n\t\t\t\t\tthis.grid.tooltip.attachToCell(cell, cellModel);\n\t\t\t\t}\n\n\t\t\t\tif (cellModel && cellModel.hasComment) {\n\t\t\t\t\thidePopups = false;\n\t\t\t\t\tif (this.grid.comment.attachedTo !== cell) {\n\t\t\t\t\t\tthis.grid.comment.attachTo(cell, cellModel);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (hidePopups) {\n\t\t\tthis.grid.tooltip.deatach();\n\t\t\tthis.grid.comment.deatach(this.model.options.comments.hideTimeout);\n\t\t}\n\n\t\tdom.hideElement(hSizer);\n\t\tdom.hideElement(vSizer);\n\t}\n\n\t_onMouseDown = (e: PointerEvent) => {\n\t\tif ((e.buttons & 1) == 0) return;\n\t\t\n\t\tthis.grid.setPointerCapture(e.pointerId);\n\t\tthis.startOffset = {x: e.offsetX, y: e.offsetY};\n\n\t\tfor (const elm of e.composedPath() as HTMLElement[]) {\n\t\t\tif (elm.tagName == 'TD') {\n\t\t\t\tconst td = elm as TableCell;\n\t\t\t\tthis.grid.selecting.startCellSelecting(new CellRange(td.c, td.r));\n\t\t\t\tbreak;\n\t\t\t} else if (elm.tagName == 'TH') {\n\t\t\t\tconst th = elm as TableHeaderCell;\n\t\t\t\tif (elm.matches('.sort')) {\n\t\t\t\t\tthis.grid.sorting.sort(th.c);\n\t\t\t\t} else if (th.classList.contains('filter')) {\n\t\t\t\t\tthis.grid.filtering.openFilter(this.model.columns[th.c], th);\n\t\t\t\t} else if (th.classList.contains('hlabel')) {\n\t\t\t\t\tthis.grid.selecting.startColumnSelecting(th.c);\n\t\t\t\t} else if (th.classList.contains('vlabel')) {\n\t\t\t\t\tthis.grid.selecting.startRowSelecting(th.r);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t_onMouseUp = (e: PointerEvent) => {\n\t\tif (e.buttons != 0) return;\n\n\t\tconst x = Math.abs(this.startOffset.x - e.offsetX);\n\t\tconst y = Math.abs(this.startOffset.y - e.offsetY);\n\t\tif (Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) < this.model.options.events.click.mouseMoveTreshold) {\n\t\t\tthis.resumeClick();\n\t\t}\n\n\t\tthis.grid.releasePointerCapture(e.pointerId);\n\t\tthis.grid.selecting.stopSelectOperations();\n\t}\n\n\t_onClick = (e: PointerEvent) => {\n\t\tif (this.clickDisabled) return;\n\n\t\t// TODO: find better way to prevent clicks on scrollbars\n\t\tif (this.grid.clientHeight - e.offsetY < this.grid.hSlider.offsetHeight) return;\n\t\tif (this.grid.clientWidth - e.offsetX < this.grid.vSlider.offsetWidth) return;\n\n\t\tconst cell = this.table.findTableCellByOffset(e.offsetX, e.offsetY);\n\t\tconst cellModel = cell?.tagName == 'TD' ? this.model.rows[cell.r]?.cell(cell.c) : null;\n\t\tthis.grid.dispatchEvent(new GridEvent('click', {grid: this.grid, cell: cellModel}));\n\t}\n\n\t_onContextMenu = (e: MouseEvent) => {\n\t\te.preventDefault();\n\t\tfor (const elm of e.composedPath() as HTMLElement[]) {\n\t\t\tif (elm.tagName == 'TD') {\n\t\t\t\tconst td = elm as TableCell;\n\t\t\t\tthis.grid.menus.openCellMenu(this.model.rows[td.r].cell(td.c), {x: e.pageX, y: e.pageY});\n\t\t\t} else if (elm.tagName == 'TH') {\n\t\t\t\tconst th = elm as TableHeaderCell;\n\t\t\t\tif (th.classList.contains('hlabel')) {\n\t\t\t\t\tthis.grid.menus.openColumnMenu(this.model.columns[th.c], {x: e.pageX, y: e.pageY});\n\t\t\t\t} else if (th.classList.contains('vlabel')) {\n\t\t\t\t\tthis.grid.menus.openRowMenu(this.model.rows[th.r], {x: e.pageX, y: e.pageY});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t_onVerticalSlide = (e: SlideEvent) => {\n\t\tthis.table.rowOffset = Math.min(e.value, this.model.visibleRows.length - 1);\n\t\tthis.grid.rendering.requireVerticalUpdate = true;\n\t\t// this.grid.logger.info(`v-slide: ${e.value}`);\n\t\tthis.grid.rendering.renderCells();\n\t}\n\t\n\t_onHorizontalSlide = (e: SlideEvent) => {\n\t\tthis.table.colOffset = Math.min(e.value, this.model.visibleColumns.length - 1);\n\t\tthis.grid.rendering.requireHorizontalUpdate = true;\n\t\t// this.grid.logger.info(`h-slide: ${e.value}`);\n\t\tthis.grid.rendering.renderCells();\n\t}\n\n\t_onSlideStart = () => {\n\t\tthis.suspendClick();\n\t}\n\n\t_onSlideStop = () => {\n\t\tthis.resumeClick(true);\n\t}\n\n\t_denbounceHorizontalScroll = debounce((dx: number) => this.grid.rendering.scrollHorizontalByPixels(dx), 50);\n\t_onWheel = (e: WheelEvent) => {\n\t\tif (e.ctrlKey) return;\n\t\tif (e.deltaY != 0) this.grid.rendering.scrollVerticalByPixels(e.deltaY);\n\t\tif (e.deltaX != 0) {\n\t\t\tthis._denbounceHorizontalScroll(Math.sign(e.deltaX) * Math.min(100, Math.abs(e.deltaX)));\n\t\t}\n\t}\n\n\t_onTouchStart = (e: TouchEvent) => {\n\t\tthis.grid.rendering.touchStartX = e.touches[0];\n\t\tthis.grid.rendering.touchStartY = e.touches[0];\n\t}\n\n\t_onTouchEnd = (e: TouchEvent) => {\n\t\tthis.grid.rendering.touchStartX = e.touches[0];\n\t\tthis.grid.rendering.touchStartY = e.touches[0];\n\t}\n\n\t_onTouchMove = (e: TouchEvent) => {\n\t\tconst rendering = this.grid.rendering;\n\t\tif (rendering.touchStartY) {\n\t\t\tconst deltaY = rendering.touchStartY.clientY - e.touches[0].clientY;\n\t\t\tif (Math.abs(deltaY) > this.model.options.rowHeight && this.table.viewport.rows.length > 0) {\n\t\t\t\trendering.scrollVerticalByPixels(deltaY);\n\t\t\t\trendering.touchStartY = e.touches[0];\n\t\t\t}\n\t\t}\n\n\t\tif (rendering.touchStartX) {\n\t\t\tconst deltaX = rendering.touchStartX.clientX - e.touches[0].clientX;\n\t\t\tif (Math.abs(deltaX) > this.model.options.columnWidth && this.table.viewport.columns.length > 0) {\n\t\t\t\trendering.scrollHorizontalByPixels(deltaX);\n\t\t\t\trendering.touchStartX = e.touches[0];\n\t\t\t}\n\t\t}\n\t}\n\n\t_onHorizontalResizeStart = () => {\n\t\tthis.grid.rendering.resizing = true;\n\t\tthis.grid.rendering.currentResizedColumnWidth = this.grid.rendering.currentResizedColumn.width;\n\t}\n\n\t_onHorizontalResizeStop = (e: ResizeEvent) => {\n\t\tthis.suspendClick();\n\t\tthis.grid.rendering.resizing = false;\n\t\tthis.table.clearHeaderCache();\n\t\tthis.table.renderCells({horizontal: true});\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridColumnResizeEvent('column.resize', this.grid, this.grid.rendering.currentResizedColumn, e)\n\t\t);\n\t}\n\n\t_onHorizontalResize = (e: ResizeEvent) => {\n\t\tconst rendering = this.grid.rendering;\n\t\t// if (this.resizing) e.stopPropagation();\n\t\trendering.currentResizedColumn.width = rendering.currentResizedColumnWidth + e.deltaX;\n\t\t// this.showMouseTooltip(`${columnModel.width.toString()}px`, {t: e.mouseY, l: e.mouseX});\n\t\tdom.setSize(this.table.getColumnByModelIndex(rendering.currentResizedColumn.index), {w: rendering.currentResizedColumn.width}, true);\n\t\tthis.grid.selecting.updateSelector();\n\t}\n\n\t_onVerticalResizeStart = () => {\n\t\tthis.grid.rendering.resizing = true;\n\t\tthis.grid.rendering.currentResizedRowHeight = this.grid.rendering.currentResizedRow.height;\n\t}\n\n\t_onVerticalResizeStop = (e: ResizeEvent) => {\n\t\tthis.suspendClick();\n\t\tthis.grid.rendering.resizing = false;\n\t\tthis.table.clearBodyCache();\n\t\tthis.table.renderCells({vertical: true});\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridRowResizeEvent('row.resize', this.grid, this.grid.rendering.currentResizedRow, e)\n\t\t);\n\t}\n\n\t_onVerticalResize = (e: ResizeEvent) => {\n\t\tconst rendering = this.grid.rendering;\n\t\t// if (this.resizing) e.stopPropagation();\n\t\trendering.currentResizedRow.height = rendering.currentResizedRowHeight + e.deltaY;\n\t\t// this.showMouseTooltip(`${columnModel.width.toString()}px`, {t: e.mouseY, l: e.mouseX});\n\t\tdom.setSize(this.table.getRowByModelIndex(rendering.currentResizedRow.index), {h: rendering.currentResizedRow.height}, false);\n\t\tthis.grid.selecting.updateSelector();\n\t}\n\n\t_onCommentCommit = (e: CommentEvent) => {\n\t\tthis.grid.model.comments.set(e.cell.address, e.items);\n\t\te.cell.invalidateStyle();\n\t\tthis.grid.rendering.updateCells([e.cell]);\n\t}\n\n\t_onAutofill = (e: SelectorEvent) => {\n\t\tthis.suspendClick();\n\t\tif (this.grid.selection.range.equals(e.selector.autofillRange)) return;\n\t\tconst {\n\t\t\tcells, oldValues\n\t\t} = autofill(this.model, this.grid.selection.range, e.selector.autofillRange, e.selector.autofillDirection);\n\t\tthis.grid.rendering.updateCells(cells, true);\n\t\tthis.grid.selection.setRange(this.grid.selection.range.unite(e.selector.autofillRange));\n\t\tthis.grid.selecting.updateSelector();\n\n\t\tthis.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\teditType: 'autofill',\n\t\t\tcells: cells,\n\t\t\toldValues: oldValues, \n\t\t\tnewValues: cells.map(cell => cell.value2 as CellValueType)\n\t\t}));\n\t}\n\n\t_onEdit = (e: GridEditEvent) => {\n\t\tif (e.fromHistory) return;\n\t\tconst addresses: string[] = [];\n\t\tconst names: string[] = [];\n\t\tconst nameRangeMap = this.model.names.rangeMap;\n\t\tlet newValues: CellValueType[] = [];\n\t\tlet newProps: Partial<CellSource>[] = [];\n\t\tlet oldValues: CellValueType[] = [];\n\t\tlet oldProps: Partial<CellSource>[] = [];\n\n\t\tswitch (e.editType) {\n\t\t\tcase 'value':\n\t\t\t\tnewValues = e.newValues;\n\t\t\t\tnewProps = e.newProps;\n\t\t\t\toldValues = e.oldValues;\n\t\t\t\toldProps = e.oldProps;\n\t\t\t\te.cells.forEach(cell => {\n\t\t\t\t\tconst a = cell.address;\n\t\t\t\t\taddresses.push(a);\n\t\t\t\t\tnames.push(nameRangeMap.get(a));\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'insert_column':\n\t\t\tcase 'insert_row':\n\t\t\t\t(e.newValues as ElementModel[]).forEach(row => {\n\t\t\t\t\tconst a = row.address;\n\t\t\t\t\taddresses.push(a);\n\t\t\t\t\tnames.push(nameRangeMap.get(a));\n\t\t\t\t\tnewValues.push(row.getSourceData());\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.grid.history.push({\n\t\t\ttype: e.editType,\n\t\t\taddresses,\n\t\t\tnames,\n\t\t\toldValues,\n\t\t\toldProps,\n\t\t\tnewValues,\n\t\t\tnewProps\n\t\t});\n\t}\n\n\t_onSelectorMove = (e: SelectorMoveEvent) => {\n\t\tthis.suspendClick();\n\t\tthis.selection.setRange(e.toRange);\n\t\tif (e.fromRange.isRow) {\n\t\t\tthis.grid.editing.moveRows({\n\t\t\t\tindex: e.fromRange.r1,\n\t\t\t\tcount: e.fromRange.size.rows,\n\t\t\t\ttargetIndex: e.toRange.r1\n\t\t\t});\n\t\t} else if (e.fromRange.isColumn) {\n\t\t\tthis.grid.editing.moveColumns({\n\t\t\t\tindex: e.fromRange.c1,\n\t\t\t\tcount: e.fromRange.size.columns,\n\t\t\t\ttargetIndex: e.toRange.c1\n\t\t\t});\n\t\t} else {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\t_onMouseLeave = () => {\n\t\tthis.grid.rendering.hideSliders();\n\t}\n\n\t// _debounceMouseMove: ReturnType<typeof debounce>;\n\t// registerMouseMove() {\n\t// \tif (this._debounceMouseMove) return;\n\t// \tthis._debounceMouseMove = debounce(this._onMouseMove, 20, {maxWait: 50, isImmediate: true});\n\t// \tthis.grid.addEventListener('pointermove', this._debounceMouseMove);\n\t// }\n\n\t// unregisterMouseMove() {\n\t// \tif (!this._debounceMouseMove) return;\n\t// \tthis.grid.removeEventListener('pointermove', this._debounceMouseMove);\n\t// \tthis._debounceMouseMove = null;\n\t// }\n\n\tdebounceHideSliders = debounce(() => this.grid.rendering.hideSliders(), 1000, {isImmediate: false});\t\n\n\t_onRender = () => {\n\t\tconst grid = this.grid;\n\t\tgrid.selecting.updateSelectors();\n\n\t\tgrid.dispatchEvent(new GridEvent('render', {grid: this.grid}));\n\n\t\tif (grid.adapter && grid.options.pageSize && grid.rendering.isLastRowInViewport()) {\n\t\t\tgrid.rendering.loadNextPage();\n\t\t}\n\n\t\tgrid.rendering.updateSliderVisibility();\n\t\tif (this.model.options.scrolling.scrollbarVisibilityTreshold > 0) {\n\t\t\tthis.debounceHideSliders();\n\t\t}\n\t}\n\n\t_onHorizontalSizerDblClick = (e: MouseEvent) => {\n\t\te.stopPropagation();\n\t\tthis.editDisabled = true;\n\t\tthis.grid.rendering.autofitColumn(this.grid.rendering.currentResizedColumn.index);\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridColumnResizeEvent('column.resize', this.grid, this.grid.rendering.currentResizedColumn, e)\n\t\t);\n\t}\n\n\t_onVerticalSizerDblClick = (e: MouseEvent) => {\n\t\te.stopPropagation();\n\t\tthis.editDisabled = true;\n\t\tthis.grid.rendering.autofitRow(this.grid.rendering.currentResizedRow.index);\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridRowResizeEvent('row.resize', this.grid, this.grid.rendering.currentResizedRow, e)\n\t\t);\n\t}\n\n\t_onDblClick = () => {\n\t\tif (this.editDisabled) {\n\t\t\tthis.editDisabled = false;\n\t\t\treturn;\n\t\t}\n\t\tthis.grid.editing.startEdit();\n\t}\n\n\tasync init() {\n\t\tawait this.grid.updateComplete;\n\t\tawait this.table.updateComplete;\n\t\tconst grid = this.grid;\n\t\t\n\t\t// wheel scroling\n\t\tgrid.addEventListener('wheel', this._onWheel, {passive: true});\n\n\t\t// touch scrolling\n\t\tgrid.addEventListener('touchstart', this._onTouchStart, {passive: true});\n\t\tgrid.addEventListener('touchend', this._onTouchEnd, {passive: true});\n\t\tgrid.addEventListener('touchmove', this._onTouchMove, {passive: true});\n\n\t\t// col/row resize\n\t\tgrid.hSizer.addEventListener('resizestart', this._onHorizontalResizeStart);\n\t\tgrid.hSizer.addEventListener('resizestop', this._onHorizontalResizeStop);\n\t\tgrid.hSizer.addEventListener('resize', this._onHorizontalResize);\n\t\tgrid.hSizer.addEventListener('dblclick', this._onHorizontalSizerDblClick);\n\t\tgrid.vSizer.addEventListener('resizestart', this._onVerticalResizeStart);\n\t\tgrid.vSizer.addEventListener('resizestop', this._onVerticalResizeStop);\n\t\tgrid.vSizer.addEventListener('resize', this._onVerticalResize);\n\t\tgrid.vSizer.addEventListener('dblclick', this._onVerticalSizerDblClick);\n\t\t\n\t\t// comments\n\t\tgrid.comment.addEventListener('comment.commit', this._onCommentCommit);\n\n\t\tgrid.addEventListener('keydown', this._onKeyDown);\n\t\tgrid.addEventListener('click', this._onClick);\n\t\tgrid.addEventListener('contextmenu', this._onContextMenu);\n\t\tgrid.addEventListener('toggle', () => grid.rendering.debounceCalculateViewport());\n\t\t\n\t\tgrid.addEventListener('pointerup', this._onMouseUp);\n\t\tgrid.addEventListener('pointerdown', this._onMouseDown);\n\t\t// grid.addEventListener('pointermove', this._onMouseMove);\n\t\tconst debounceMouseMove = debounce(this._onMouseMove, 20, {maxWait: 50, isImmediate: true});\n\t\tgrid.addEventListener('pointermove', debounceMouseMove);\n\n\t\tgrid.addEventListener('mouseleave', this._onMouseLeave);\n\n\t\t// table event handlers\n\t\tgrid.table.addEventListener('rendercells', this._onRender);\n\t\t\n\t\t// selector event handlers\n\t\tgrid.selector.addEventListener('grid.selector.autofill', this._onAutofill);\n\t\tgrid.selector.addEventListener('grid.selector.move', this._onSelectorMove);\n\n\t\t// editing event handlers\n\t\tgrid.addEventListener('dblclick', this._onDblClick);\n\t\tgrid.addEventListener('grid.edit', this._onEdit);\n\t}\n\n}"]}
1
+ {"version":3,"file":"grid.events.js","sourceRoot":"","sources":["../../src/ui/grid.events.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAc,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAA0B,QAAQ,EAAE,SAAS,EAA+D,MAAM,sBAAsB,CAAC;AAMhJ,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEnC,MAAM,OAAO,cAAe,SAAQ,KAAK;IACxC,YAAqB,KAAY;QAChC,KAAK,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QADjC,UAAK,GAAL,KAAK,CAAO;IAEjC,CAAC;CACD;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAEnC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAA,CAAC,CAAC;IASrD,YAAY,IAAY,EAAE,IAAyB;QAClD,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC;IACF,CAAC;CAED;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAS3C,YAAY,IAA6B;QACxC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;CACD;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAE/C,YAAY,IAAY,EAAE,IAAU,EAAE,IAA2B;QAChE,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD;AAED,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAEzD,YAAY,IAAY,EAAE,IAAU,EAAE,MAAmB,EAAE,IAA2B;QACrF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AAED,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAEtD,YAAY,IAAY,EAAE,IAAU,EAAE,GAAa,EAAE,IAA2B;QAC/E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;CACD;AAED,MAAM,OAAO,UAAU;IAEtB,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA,CAAC,CAAC;IACtC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA,CAAC,CAAC;IAOtC,YAAqB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAL/B,kBAAa,GAAG,KAAK,CAAC;QACtB,iBAAY,GAAG,KAAK,CAAC;QACrB,YAAO,GAAG,KAAK,CAAC;QAChB,gBAAW,GAA2B,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QAMnD,iBAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC/C,gBAAW,GAAG,CAAC,KAAK,GAAG,KAAK,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACX,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,GAAG,CAAC,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC5B,CAAC;QACF,CAAC,CAAA;QAED,eAAU,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;YAEtD,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,KAAK;oBACT,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC/D,MAAM;gBACP,KAAK,YAAY;oBAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/C,MAAM;gBACP,KAAK,WAAW;oBACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM;gBACP,KAAK,WAAW;oBACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/C,MAAM;gBACP,KAAK,SAAS;oBACb,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAChD,MAAM;gBACP,KAAK,QAAQ;oBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9E,MAAM;gBACP,KAAK,UAAU;oBACd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7E,MAAM;gBACP,KAAK,MAAM;oBACV,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CACvC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EACxB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;oBACF,MAAM;gBACP,KAAK,KAAK;oBACT,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CACvC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EACjD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;oBACF,MAAM;gBACP,KAAK,OAAO;oBACX,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM;gBACP,KAAK,QAAQ;oBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBACvC,MAAM;gBACP,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACP,IAAI,CAAC,CAAC,OAAO;wBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBACjD,MAAM;gBACP,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACP,IAAI,CAAC,CAAC,OAAO;wBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACzC,MAAM;gBACP,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;wBAAE,OAAO;oBACxC,IAAI,CAAC,CAAC,OAAO;wBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACxC,MAAM;gBACP,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;wBAAE,OAAO;oBACxC,IAAI,CAAC,CAAC,OAAO;wBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACxC,MAAM;gBACP,KAAK,IAAI;oBACR,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC9B,MAAM;gBACP,KAAK,QAAQ;oBACZ,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBACnC,MAAM;gBACP,KAAK,WAAW;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBACnC,MAAM;gBACP,KAAK,IAAI;oBACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa;wBAAE,OAAO;oBAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzB,MAAM;YACR,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACF,CAAC,CAAA;QAED,iBAAY,GAAG,CAAC,CAAe,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAExB,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,UAAU,GAAG,IAAI,CAAC;YAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAEhC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC;YAC3F,IAAI,2BAA2B,IAAI,CAAC;gBAAE,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE5H,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,2BAA2B,EAAE,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,2BAA2B,EAAE,CAAC;gBACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEpF,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnG,IAAI,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;wBAC1F,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5E,CAAC;yBAAM,CAAC;wBACP,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACzB,CAAC;gBACF,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvG,IAAI,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;wBAC1F,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACP,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACzB,CAAC;gBACF,CAAC;gBAED,IAAI,SAAS,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oBACzB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,WAAW,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,UAAU,GAAG,KAAK,CAAC;wBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACtF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;oBACrC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gCAAgC,EAAE,CAAC;oBAC3G,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;wBAC9B,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU;wBACnE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS;qBACnE,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;wBACrC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACrB,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACP,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;wBACvC,UAAU,GAAG,KAAK,CAAC;wBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBACjD,CAAC;oBAED,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;wBACvC,UAAU,GAAG,KAAK,CAAC;wBACnB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;4BAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;wBAC7C,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxB,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACF,CAAC,CAAA;QAED,iBAAY,GAAG,CAAC,CAAe,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO;YAEjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,GAAG,EAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAC,CAAC;YAEhD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,YAAY,EAAmB,EAAE,CAAC;gBACrD,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,GAAgB,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClE,MAAM;gBACP,CAAC;qBAAM,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAChC,MAAM,EAAE,GAAG,GAAsB,CAAC;oBAClC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC9B,CAAC;yBAAM,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9D,CAAC;yBAAM,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAChD,CAAC;yBAAM,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC7C,CAAC;oBACD,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,eAAU,GAAG,CAAC,CAAe,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;gBAAE,OAAO;YAE3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBACpG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC5C,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,CAAe,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO;YAE/B,wDAAwD;YACxD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;gBAAE,OAAO;YAChF,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,OAAO;YAE9E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;QACrF,CAAC,CAAA;QAED,mBAAc,GAAG,CAAC,CAAa,EAAE,EAAE;YAClC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,YAAY,EAAmB,EAAE,CAAC;gBACrD,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,GAAgB,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;gBAC1F,CAAC;qBAAM,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAChC,MAAM,EAAE,GAAG,GAAsB,CAAC;oBAClC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;oBACpF,CAAC;yBAAM,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;oBAC9E,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,qBAAgB,GAAG,CAAC,CAAa,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC;YACjD,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAA;QAED,uBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACnD,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAA;QAED,kBAAa,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC,CAAA;QAED,iBAAY,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAA;QAED,+BAA0B,GAAG,QAAQ,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5G,aAAQ,GAAG,CAAC,CAAa,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,OAAO;gBAAE,OAAO;YACtB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1F,CAAC;QACF,CAAC,CAAA;QAED,kBAAa,GAAG,CAAC,CAAa,EAAE,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAA;QAED,gBAAW,GAAG,CAAC,CAAa,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAA;QAED,iBAAY,GAAG,CAAC,CAAa,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5F,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;oBACzC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC;YACF,CAAC;YAED,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjG,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBAC3C,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,6BAAwB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAChG,CAAC,CAAA;QAED,4BAAuB,GAAG,CAAC,CAAc,EAAE,EAAE;YAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,CACtB,IAAI,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAClG,CAAC;QACH,CAAC,CAAA;QAED,wBAAmB,GAAG,CAAC,CAAc,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,0CAA0C;YAC1C,SAAS,CAAC,oBAAoB,CAAC,KAAK,GAAG,SAAS,CAAC,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;YACtF,0FAA0F;YAC1F,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAC,CAAC,EAAE,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAC,EAAE,IAAI,CAAC,CAAC;YACrI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QACtC,CAAC,CAAA;QAED,2BAAsB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC5F,CAAC,CAAA;QAED,0BAAqB,GAAG,CAAC,CAAc,EAAE,EAAE;YAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,aAAa,CACtB,IAAI,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CACzF,CAAC;QACH,CAAC,CAAA;QAED,sBAAiB,GAAG,CAAC,CAAc,EAAE,EAAE;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,0CAA0C;YAC1C,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAAC,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;YAClF,0FAA0F;YAC1F,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAC,CAAC,EAAE,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAC,EAAE,KAAK,CAAC,CAAC;YAC9H,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QACtC,CAAC,CAAA;QAED,qBAAgB,GAAG,CAAC,CAAe,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAA;QAED,gBAAW,GAAG,CAAC,CAAgB,EAAE,EAAE;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAAE,OAAO;YACvE,MAAM,EACL,KAAK,EAAE,SAAS,EAChB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAC5G,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YAErC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;gBACzC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAuB,CAAC;aAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAA;QAED,YAAO,GAAG,CAAC,CAAgB,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,WAAW;gBAAE,OAAO;YAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC/C,IAAI,SAAS,GAAoB,EAAE,CAAC;YACpC,IAAI,QAAQ,GAA0B,EAAE,CAAC;YACzC,IAAI,SAAS,GAAoB,EAAE,CAAC;YACpC,IAAI,QAAQ,GAA0B,EAAE,CAAC;YAEzC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACX,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;oBACxB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;oBACtB,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;oBACxB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;oBACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;wBACvB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;oBACH,MAAM;gBACP,KAAK,eAAe,CAAC;gBACrB,KAAK,YAAY;oBACf,CAAC,CAAC,SAA4B,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;wBACtB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;oBACrC,CAAC,CAAC,CAAC;oBACH,MAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,SAAS;gBACT,KAAK;gBACL,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;aACR,CAAC,CAAC;QACJ,CAAC,CAAA;QAED,oBAAe,GAAG,CAAC,CAAoB,EAAE,EAAE;YAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE;oBACrB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;oBAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;iBACzB,CAAC,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC7B,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE;oBACrB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;oBAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;iBACzB,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;QACF,CAAC,CAAA;QAED,kBAAa,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAA;QAED,mDAAmD;QACnD,wBAAwB;QACxB,wCAAwC;QACxC,gGAAgG;QAChG,uEAAuE;QACvE,IAAI;QAEJ,0BAA0B;QAC1B,yCAAyC;QACzC,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI;QAEJ,wBAAmB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC,CAAC,CAAC;QAEpG,cAAS,GAAG,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAEjC,IAAI,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;YAE/D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACnF,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5B,CAAC;QACF,CAAC,CAAA;QAED,+BAA0B,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9C,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAClF,IAAI,CAAC,IAAI,CAAC,aAAa,CACtB,IAAI,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAClG,CAAC;QACH,CAAC,CAAA;QAED,6BAAwB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,CACtB,IAAI,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CACzF,CAAC;QACH,CAAC,CAAA;QAED,gBAAW,GAAG,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,OAAO;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/B,CAAC,CAAA;IA3gBkC,CAAC;IAEpC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA,CAAC,CAAC;IA2gBjF,KAAK,CAAC,IAAI;QACT,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,iBAAiB;QACjB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAE/D,kBAAkB;QAClB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAEvE,iBAAiB;QACjB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExE,WAAW;QACX,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEvE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,EAAC,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAExD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAExD,uBAAuB;QACvB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE3E,yBAAyB;QACzB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;CAED","sourcesContent":["import constants from \"../constants\";\nimport { dom, ResizeEvent, SlideEvent } from \"@omegagrid/core\";\nimport { debounce } from \"ts-debounce\";\nimport { CellModel, ColumnModel, autofill, CellRange, CellValueType, EditType, ElementModel, RowModel, CellSource } from \"@omegagrid/grid-core\";\nimport { Grid } from \"./grid\";\nimport { TableCell, TableHeaderCell } from \"./table\";\nimport { SelectorEvent, SelectorMoveEvent } from \"./selector\";\nimport { CommentEvent } from \"./comment\";\n\nconst IGNORED_KEYS = ['F5', 'F12'];\n\nexport class GridErrorEvent extends Event {\n\tconstructor(readonly error: Error) {\n\t\tsuper(`grid.error`, {bubbles: true, composed: true});\n\t}\n}\n\nexport class GridEvent extends Event {\n\n\tget selection() { return this.grid.selecting.selection }\n\tget activeCell() { return this.selection.activeCell }\n\t\n\tcells?: CellModel[];\n\tcell: CellModel;\n\trow: RowModel;\n\tcolumn: ColumnModel;\n\taction: string;\n\tgrid: Grid;\n\n\tconstructor(type: string, args?: Partial<GridEvent>) {\n\t\tsuper(`grid.${type}`, {bubbles: true, composed: true});\n\t\tObject.assign(this, args);\n\n\t\tif (this.cell) {\n\t\t\tthis.row = this.cell.row;\n\t\t\tthis.column = this.cell.column;\n\t\t}\n\t}\n\n}\n\nexport class GridEditEvent extends GridEvent {\n\n\tfromHistory?: boolean;\n\teditType?: EditType;\n\toldValues?: CellValueType[];\n\toldProps?: Partial<CellSource>[];\n\tnewValues?: CellValueType[];\n\tnewProps?: Partial<CellSource>[];\n\n\tconstructor(args?: Partial<GridEditEvent>) {\n\t\tsuper('edit', args);\n\t}\n}\n\nexport class GridResizeEvent extends ResizeEvent {\n\tpublic readonly grid: Grid;\n\tconstructor(type: string, grid: Grid, args?: Partial<ResizeEvent>) {\n\t\tsuper(`grid.${type}`, args);\n\t\tthis.grid = grid;\n\t}\n}\n\nexport class GridColumnResizeEvent extends GridResizeEvent {\n\tpublic readonly column: ColumnModel;\n\tconstructor(type: string, grid: Grid, column: ColumnModel, args?: Partial<ResizeEvent>) {\n\t\tsuper(type, grid, args);\n\t\tthis.column = column;\n\t}\n}\n\nexport class GridRowResizeEvent extends GridResizeEvent {\n\tpublic readonly row: RowModel;\n\tconstructor(type: string, grid: Grid, row: RowModel, args?: Partial<ResizeEvent>) {\n\t\tsuper(type, grid, args);\n\t\tthis.row = row;\n\t}\n}\n\nexport class GridEvents {\n\n\tget model() { return this.grid.model }\n\tget selection() { return this.grid.selection }\n\tget table() { return this.grid.table }\n\t\n\tclickDisabled = false;\n\teditDisabled = false;\n\tclicked = false;\n\tstartOffset: {x: number, y: number} = {x: 0, y: 0};\n\n\tconstructor(readonly grid: Grid) { }\n\n\tget isSliding() { return this.grid.hSlider.sliding || this.grid.vSlider.sliding }\n\n\tsuspendClick = () => this.clickDisabled = true;\n\tresumeClick = (delay = false) => { \n\t\tif (this.isSliding) return;\n\t\tif (delay) {\n\t\t\tsetTimeout(() => this.clickDisabled = false, 100)\n\t\t} else {\n\t\t\tthis.clickDisabled = false;\n\t\t}\n\t}\n\t\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tif (!IGNORED_KEYS.includes(e.key)) e.preventDefault();\n\t\t\n\t\tswitch (e.key) {\n\t\t\tcase 'Tab':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.selecting.shiftActiveCell(e.shiftKey ? -1 : 1, true);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(1, 0);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(-1, 0);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, 1);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, -1);\n\t\t\t\tbreak;\n\t\t\tcase 'PageUp':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, -this.table.viewport.rows.length);\n\t\t\t\tbreak;\n\t\t\tcase 'PageDown':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(0, this.table.viewport.rows.length);\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(\n\t\t\t\t\t-this.selection.range.c1, \n\t\t\t\t\te.ctrlKey ? -this.selection.range.r1 : 0\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'End':\n\t\t\t\tthis.grid.selecting.debounceMoveSelector(\n\t\t\t\t\tthis.model.gridRange.c2 - this.selection.range.c1,\n\t\t\t\t\te.ctrlKey ? this.model.gridRange.r2 - this.selection.range.r1 : 0\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tthis.grid.selecting.enter();\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\t\tthis.grid.selecting.hideCopySelector();\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\tcase 'C':\n\t\t\t\tif (e.ctrlKey) this.grid.editing.copySelection();\n\t\t\t\tbreak;\n\t\t\tcase 'v':\n\t\t\tcase 'V':\n\t\t\t\tif (e.ctrlKey) this.grid.editing.paste();\n\t\t\t\tbreak;\n\t\t\tcase 'z':\n\t\t\tcase 'Z':\n\t\t\t\tif (!this.grid.options.undoRedo) return;\n\t\t\t\tif (e.ctrlKey) this.grid.editing.undo();\n\t\t\t\tbreak;\n\t\t\tcase 'y':\n\t\t\tcase 'Y':\n\t\t\t\tif (!this.grid.options.undoRedo) return;\n\t\t\t\tif (e.ctrlKey) this.grid.editing.redo();\n\t\t\t\tbreak;\n\t\t\tcase 'F2':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.editing.startEdit();\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.objects.delete();\n\t\t\t\tthis.grid.editing.clearSelection();\n\t\t\t\tbreak;\n\t\t\tcase 'Backspace':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.editing.clearSelection();\n\t\t\t\tbreak;\n\t\t\tcase 'F1':\n\t\t\t\tif (!this.grid.options.commandWindow) return;\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.grid.openCommands();\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (e.key.length == 1 && !e.ctrlKey) {\n\t\t\tthis.grid.editing.startEdit(e.key);\n\t\t}\n\t}\n\n\t_onMouseMove = (e: PointerEvent) => {\n\t\tif (!this.model) return;\n\n\t\tlet hidePopups = true;\n\t\tlet hideSizers = true;\n\t\t\n\t\tconst hSizer = this.grid.hSizer;\n\t\tconst vSizer = this.grid.vSizer;\n\n\t\tconst { offsetX, offsetY} = e;\n\t\tlet scrollbarVisibilityTreshold = this.model.options.scrolling.scrollbarVisibilityTreshold;\n\t\tif (scrollbarVisibilityTreshold <= 0) scrollbarVisibilityTreshold = Math.max(this.grid.clientWidth, this.grid.clientHeight);\n\n\t\tif (offsetX > this.grid.clientWidth - scrollbarVisibilityTreshold) {\n\t\t\tthis.grid.vSlider.show();\n\t\t} else {\n\t\t\tthis.grid.vSlider.hide();\n\t\t}\n\n\t\tif (offsetY > this.grid.clientHeight - scrollbarVisibilityTreshold) {\n\t\t\tthis.grid.hSlider.show();\n\t\t} else {\n\t\t\tthis.grid.hSlider.hide();\n\t\t}\n\n\t\tconst [cell, exactCell] = this.table.findNearestTableCellByOffset(offsetX, offsetY);\n\t\t\n\t\tif (exactCell && exactCell.tagName == 'TH') {\n\t\t\tif (this.model.options.columnResize && !hSizer.resizing && exactCell.classList.contains('hlabel')) {\n\t\t\t\tif (exactCell.offsetWidth - e.offsetX + exactCell.offsetLeft < constants.RESIZE_TRESHOLD) {\n\t\t\t\t\thSizer.snap(exactCell, this.grid);\n\t\t\t\t\tthis.grid.rendering.currentResizedColumn = this.model.columns[exactCell.c];\n\t\t\t\t} else {\n\t\t\t\t\tdom.hideElement(hSizer);\n\t\t\t\t}\n\t\t\t} else if (this.model.options.rowResize && !vSizer.resizing && exactCell.classList.contains('vlabel')) {\n\t\t\t\tif (exactCell.offsetHeight - e.offsetY + exactCell.offsetTop < constants.RESIZE_TRESHOLD) {\n\t\t\t\t\tvSizer.snap(exactCell, this.grid);\n\t\t\t\t\tthis.grid.rendering.currentResizedRow = this.model.rows[exactCell.r];\n\t\t\t\t} else {\n\t\t\t\t\tdom.hideElement(vSizer);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (exactCell.c != null) {\n\t\t\t\tconst columnModel = this.model.columns[exactCell.c];\n\t\t\t\tif (columnModel?.hasHeaderTooltip(exactCell.r)) {\n\t\t\t\t\thidePopups = false;\n\t\t\t\t\tthis.grid.tooltip.attachToCell(exactCell, columnModel.header[exactCell.r], 'bottom');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (cell && cell.tagName == 'TH') {\n\t\t\tif (this.grid.selecting.isSelecting) {\n\t\t\t\tthis.suspendClick();\n\t\t\t\tthis.grid.selecting.updateSelecting(cell.c, cell.r);\n\t\t\t}\n\t\t\thideSizers = false;\n\t\t} else if (cell && cell.tagName == 'TD') {\n\t\t\tif (this.grid.selecting.isSelectorOperationActive || this.grid.selecting.isFormulaSelectorOperationActive) {\n\t\t\t\tconst { top, left } = dom.getElementOffset(cell, this.grid);\n\t\t\t\tthis.grid.rendering.autoscroll({\n\t\t\t\t\tx: left - this.table.totalHeaderWidth + e.offsetX - cell.offsetLeft,\n\t\t\t\t\ty: top - this.table.thead.clientHeight + e.offsetY - cell.offsetTop\n\t\t\t\t});\n\t\t\t\tif (this.grid.selecting.isSelecting) {\n\t\t\t\t\tthis.suspendClick();\n\t\t\t\t}\n\t\t\t\tthis.grid.selecting.updateSelecting(cell.c, cell.r);\n\t\t\t} else {\n\t\t\t\tconst cellModel = this.model.rows[cell.r]?.cell(cell.c);\n\t\t\t\tif (cellModel && cellModel.hasTooltip) {\n\t\t\t\t\thidePopups = false;\n\t\t\t\t\tthis.grid.tooltip.attachToCell(cell, cellModel);\n\t\t\t\t}\n\n\t\t\t\tif (cellModel && cellModel.hasComment) {\n\t\t\t\t\thidePopups = false;\n\t\t\t\t\tif (this.grid.comment.attachedTo !== cell) {\n\t\t\t\t\t\tthis.grid.comment.attachTo(cell, cellModel);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (hidePopups) {\n\t\t\tthis.grid.tooltip.deatach();\n\t\t\tthis.grid.comment.deatach(this.model.options.comments.hideTimeout);\n\t\t}\n\n\t\tif (hideSizers) {\n\t\t\tdom.hideElement(hSizer);\n\t\t\tdom.hideElement(vSizer);\n\t\t}\n\t}\n\n\t_onMouseDown = (e: PointerEvent) => {\n\t\tif ((e.buttons & 1) == 0) return;\n\t\t\n\t\tthis.grid.setPointerCapture(e.pointerId);\n\t\tthis.startOffset = {x: e.offsetX, y: e.offsetY};\n\n\t\tfor (const elm of e.composedPath() as HTMLElement[]) {\n\t\t\tif (elm.tagName == 'TD') {\n\t\t\t\tconst td = elm as TableCell;\n\t\t\t\tthis.grid.selecting.startCellSelecting(new CellRange(td.c, td.r));\n\t\t\t\tbreak;\n\t\t\t} else if (elm.tagName == 'TH') {\n\t\t\t\tconst th = elm as TableHeaderCell;\n\t\t\t\tif (elm.matches('.sort')) {\n\t\t\t\t\tthis.grid.sorting.sort(th.c);\n\t\t\t\t} else if (th.classList.contains('filter')) {\n\t\t\t\t\tthis.grid.filtering.openFilter(this.model.columns[th.c], th);\n\t\t\t\t} else if (th.classList.contains('hlabel')) {\n\t\t\t\t\tthis.grid.selecting.startColumnSelecting(th.c);\n\t\t\t\t} else if (th.classList.contains('vlabel')) {\n\t\t\t\t\tthis.grid.selecting.startRowSelecting(th.r);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t_onMouseUp = (e: PointerEvent) => {\n\t\tif (e.buttons != 0) return;\n\n\t\tconst x = Math.abs(this.startOffset.x - e.offsetX);\n\t\tconst y = Math.abs(this.startOffset.y - e.offsetY);\n\t\tif (Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) < this.model.options.events.click.mouseMoveTreshold) {\n\t\t\tthis.resumeClick();\n\t\t}\n\n\t\tthis.grid.releasePointerCapture(e.pointerId);\n\t\tthis.grid.selecting.stopSelectOperations();\n\t}\n\n\t_onClick = (e: PointerEvent) => {\n\t\tif (this.clickDisabled) return;\n\n\t\t// TODO: find better way to prevent clicks on scrollbars\n\t\tif (this.grid.clientHeight - e.offsetY < this.grid.hSlider.offsetHeight) return;\n\t\tif (this.grid.clientWidth - e.offsetX < this.grid.vSlider.offsetWidth) return;\n\n\t\tconst cell = this.table.findTableCellByOffset(e.offsetX, e.offsetY);\n\t\tconst cellModel = cell?.tagName == 'TD' ? this.model.rows[cell.r]?.cell(cell.c) : null;\n\t\tthis.grid.dispatchEvent(new GridEvent('click', {grid: this.grid, cell: cellModel}));\n\t}\n\n\t_onContextMenu = (e: MouseEvent) => {\n\t\te.preventDefault();\n\t\tfor (const elm of e.composedPath() as HTMLElement[]) {\n\t\t\tif (elm.tagName == 'TD') {\n\t\t\t\tconst td = elm as TableCell;\n\t\t\t\tthis.grid.menus.openCellMenu(this.model.rows[td.r].cell(td.c), {x: e.pageX, y: e.pageY});\n\t\t\t} else if (elm.tagName == 'TH') {\n\t\t\t\tconst th = elm as TableHeaderCell;\n\t\t\t\tif (th.classList.contains('hlabel')) {\n\t\t\t\t\tthis.grid.menus.openColumnMenu(this.model.columns[th.c], {x: e.pageX, y: e.pageY});\n\t\t\t\t} else if (th.classList.contains('vlabel')) {\n\t\t\t\t\tthis.grid.menus.openRowMenu(this.model.rows[th.r], {x: e.pageX, y: e.pageY});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t_onVerticalSlide = (e: SlideEvent) => {\n\t\tthis.table.rowOffset = Math.min(e.value, this.model.visibleRows.length - 1);\n\t\tthis.grid.rendering.requireVerticalUpdate = true;\n\t\t// this.grid.logger.info(`v-slide: ${e.value}`);\n\t\tthis.grid.rendering.renderCells();\n\t}\n\t\n\t_onHorizontalSlide = (e: SlideEvent) => {\n\t\tthis.table.colOffset = Math.min(e.value, this.model.visibleColumns.length - 1);\n\t\tthis.grid.rendering.requireHorizontalUpdate = true;\n\t\t// this.grid.logger.info(`h-slide: ${e.value}`);\n\t\tthis.grid.rendering.renderCells();\n\t}\n\n\t_onSlideStart = () => {\n\t\tthis.suspendClick();\n\t}\n\n\t_onSlideStop = () => {\n\t\tthis.resumeClick(true);\n\t}\n\n\t_denbounceHorizontalScroll = debounce((dx: number) => this.grid.rendering.scrollHorizontalByPixels(dx), 50);\n\t_onWheel = (e: WheelEvent) => {\n\t\tif (e.ctrlKey) return;\n\t\tif (e.deltaY != 0) this.grid.rendering.scrollVerticalByPixels(e.deltaY);\n\t\tif (e.deltaX != 0) {\n\t\t\tthis._denbounceHorizontalScroll(Math.sign(e.deltaX) * Math.min(100, Math.abs(e.deltaX)));\n\t\t}\n\t}\n\n\t_onTouchStart = (e: TouchEvent) => {\n\t\tthis.grid.rendering.touchStartX = e.touches[0];\n\t\tthis.grid.rendering.touchStartY = e.touches[0];\n\t}\n\n\t_onTouchEnd = (e: TouchEvent) => {\n\t\tthis.grid.rendering.touchStartX = e.touches[0];\n\t\tthis.grid.rendering.touchStartY = e.touches[0];\n\t}\n\n\t_onTouchMove = (e: TouchEvent) => {\n\t\tconst rendering = this.grid.rendering;\n\t\tif (rendering.touchStartY) {\n\t\t\tconst deltaY = rendering.touchStartY.clientY - e.touches[0].clientY;\n\t\t\tif (Math.abs(deltaY) > this.model.options.rowHeight && this.table.viewport.rows.length > 0) {\n\t\t\t\trendering.scrollVerticalByPixels(deltaY);\n\t\t\t\trendering.touchStartY = e.touches[0];\n\t\t\t}\n\t\t}\n\n\t\tif (rendering.touchStartX) {\n\t\t\tconst deltaX = rendering.touchStartX.clientX - e.touches[0].clientX;\n\t\t\tif (Math.abs(deltaX) > this.model.options.columnWidth && this.table.viewport.columns.length > 0) {\n\t\t\t\trendering.scrollHorizontalByPixels(deltaX);\n\t\t\t\trendering.touchStartX = e.touches[0];\n\t\t\t}\n\t\t}\n\t}\n\n\t_onHorizontalResizeStart = () => {\n\t\tthis.grid.rendering.resizing = true;\n\t\tthis.grid.rendering.currentResizedColumnWidth = this.grid.rendering.currentResizedColumn.width;\n\t}\n\n\t_onHorizontalResizeStop = (e: ResizeEvent) => {\n\t\tthis.suspendClick();\n\t\tthis.grid.rendering.resizing = false;\n\t\tthis.table.clearHeaderCache();\n\t\tthis.table.renderCells({horizontal: true});\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridColumnResizeEvent('column.resize', this.grid, this.grid.rendering.currentResizedColumn, e)\n\t\t);\n\t}\n\n\t_onHorizontalResize = (e: ResizeEvent) => {\n\t\tconst rendering = this.grid.rendering;\n\t\t// if (this.resizing) e.stopPropagation();\n\t\trendering.currentResizedColumn.width = rendering.currentResizedColumnWidth + e.deltaX;\n\t\t// this.showMouseTooltip(`${columnModel.width.toString()}px`, {t: e.mouseY, l: e.mouseX});\n\t\tdom.setSize(this.table.getColumnByModelIndex(rendering.currentResizedColumn.index), {w: rendering.currentResizedColumn.width}, true);\n\t\tthis.grid.selecting.updateSelector();\n\t}\n\n\t_onVerticalResizeStart = () => {\n\t\tthis.grid.rendering.resizing = true;\n\t\tthis.grid.rendering.currentResizedRowHeight = this.grid.rendering.currentResizedRow.height;\n\t}\n\n\t_onVerticalResizeStop = (e: ResizeEvent) => {\n\t\tthis.suspendClick();\n\t\tthis.grid.rendering.resizing = false;\n\t\tthis.table.clearBodyCache();\n\t\tthis.table.renderCells({vertical: true});\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridRowResizeEvent('row.resize', this.grid, this.grid.rendering.currentResizedRow, e)\n\t\t);\n\t}\n\n\t_onVerticalResize = (e: ResizeEvent) => {\n\t\tconst rendering = this.grid.rendering;\n\t\t// if (this.resizing) e.stopPropagation();\n\t\trendering.currentResizedRow.height = rendering.currentResizedRowHeight + e.deltaY;\n\t\t// this.showMouseTooltip(`${columnModel.width.toString()}px`, {t: e.mouseY, l: e.mouseX});\n\t\tdom.setSize(this.table.getRowByModelIndex(rendering.currentResizedRow.index), {h: rendering.currentResizedRow.height}, false);\n\t\tthis.grid.selecting.updateSelector();\n\t}\n\n\t_onCommentCommit = (e: CommentEvent) => {\n\t\tthis.grid.model.comments.set(e.cell.address, e.items);\n\t\te.cell.invalidateStyle();\n\t\tthis.grid.rendering.updateCells([e.cell]);\n\t}\n\n\t_onAutofill = (e: SelectorEvent) => {\n\t\tthis.suspendClick();\n\t\tif (this.grid.selection.range.equals(e.selector.autofillRange)) return;\n\t\tconst {\n\t\t\tcells, oldValues\n\t\t} = autofill(this.model, this.grid.selection.range, e.selector.autofillRange, e.selector.autofillDirection);\n\t\tthis.grid.rendering.updateCells(cells, true);\n\t\tthis.grid.selection.setRange(this.grid.selection.range.unite(e.selector.autofillRange));\n\t\tthis.grid.selecting.updateSelector();\n\n\t\tthis.grid.dispatchEvent(new GridEditEvent({\n\t\t\tgrid: this.grid,\n\t\t\teditType: 'autofill',\n\t\t\tcells: cells,\n\t\t\toldValues: oldValues, \n\t\t\tnewValues: cells.map(cell => cell.value2 as CellValueType)\n\t\t}));\n\t}\n\n\t_onEdit = (e: GridEditEvent) => {\n\t\tif (e.fromHistory) return;\n\t\tconst addresses: string[] = [];\n\t\tconst names: string[] = [];\n\t\tconst nameRangeMap = this.model.names.rangeMap;\n\t\tlet newValues: CellValueType[] = [];\n\t\tlet newProps: Partial<CellSource>[] = [];\n\t\tlet oldValues: CellValueType[] = [];\n\t\tlet oldProps: Partial<CellSource>[] = [];\n\n\t\tswitch (e.editType) {\n\t\t\tcase 'value':\n\t\t\t\tnewValues = e.newValues;\n\t\t\t\tnewProps = e.newProps;\n\t\t\t\toldValues = e.oldValues;\n\t\t\t\toldProps = e.oldProps;\n\t\t\t\te.cells.forEach(cell => {\n\t\t\t\t\tconst a = cell.address;\n\t\t\t\t\taddresses.push(a);\n\t\t\t\t\tnames.push(nameRangeMap.get(a));\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'insert_column':\n\t\t\tcase 'insert_row':\n\t\t\t\t(e.newValues as ElementModel[]).forEach(row => {\n\t\t\t\t\tconst a = row.address;\n\t\t\t\t\taddresses.push(a);\n\t\t\t\t\tnames.push(nameRangeMap.get(a));\n\t\t\t\t\tnewValues.push(row.getSourceData());\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.grid.history.push({\n\t\t\ttype: e.editType,\n\t\t\taddresses,\n\t\t\tnames,\n\t\t\toldValues,\n\t\t\toldProps,\n\t\t\tnewValues,\n\t\t\tnewProps\n\t\t});\n\t}\n\n\t_onSelectorMove = (e: SelectorMoveEvent) => {\n\t\tthis.suspendClick();\n\t\tthis.selection.setRange(e.toRange);\n\t\tif (e.fromRange.isRow) {\n\t\t\tthis.grid.editing.moveRows({\n\t\t\t\tindex: e.fromRange.r1,\n\t\t\t\tcount: e.fromRange.size.rows,\n\t\t\t\ttargetIndex: e.toRange.r1\n\t\t\t});\n\t\t} else if (e.fromRange.isColumn) {\n\t\t\tthis.grid.editing.moveColumns({\n\t\t\t\tindex: e.fromRange.c1,\n\t\t\t\tcount: e.fromRange.size.columns,\n\t\t\t\ttargetIndex: e.toRange.c1\n\t\t\t});\n\t\t} else {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\t_onMouseLeave = () => {\n\t\tthis.grid.rendering.hideSliders();\n\t}\n\n\t// _debounceMouseMove: ReturnType<typeof debounce>;\n\t// registerMouseMove() {\n\t// \tif (this._debounceMouseMove) return;\n\t// \tthis._debounceMouseMove = debounce(this._onMouseMove, 20, {maxWait: 50, isImmediate: true});\n\t// \tthis.grid.addEventListener('pointermove', this._debounceMouseMove);\n\t// }\n\n\t// unregisterMouseMove() {\n\t// \tif (!this._debounceMouseMove) return;\n\t// \tthis.grid.removeEventListener('pointermove', this._debounceMouseMove);\n\t// \tthis._debounceMouseMove = null;\n\t// }\n\n\tdebounceHideSliders = debounce(() => this.grid.rendering.hideSliders(), 1000, {isImmediate: false});\t\n\n\t_onRender = () => {\n\t\tconst grid = this.grid;\n\t\tgrid.selecting.updateSelectors();\n\n\t\tgrid.dispatchEvent(new GridEvent('render', {grid: this.grid}));\n\n\t\tif (grid.adapter && grid.options.pageSize && grid.rendering.isLastRowInViewport()) {\n\t\t\tgrid.rendering.loadNextPage();\n\t\t}\n\n\t\tgrid.rendering.updateSliderVisibility();\n\t\tif (this.model.options.scrolling.scrollbarVisibilityTreshold > 0) {\n\t\t\tthis.debounceHideSliders();\n\t\t}\n\t}\n\n\t_onHorizontalSizerDblClick = (e: MouseEvent) => {\n\t\te.stopPropagation();\n\t\tthis.editDisabled = true;\n\t\tthis.grid.rendering.autofitColumn(this.grid.rendering.currentResizedColumn.index);\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridColumnResizeEvent('column.resize', this.grid, this.grid.rendering.currentResizedColumn, e)\n\t\t);\n\t}\n\n\t_onVerticalSizerDblClick = (e: MouseEvent) => {\n\t\te.stopPropagation();\n\t\tthis.editDisabled = true;\n\t\tthis.grid.rendering.autofitRow(this.grid.rendering.currentResizedRow.index);\n\t\tthis.grid.dispatchEvent(\n\t\t\tnew GridRowResizeEvent('row.resize', this.grid, this.grid.rendering.currentResizedRow, e)\n\t\t);\n\t}\n\n\t_onDblClick = () => {\n\t\tif (this.editDisabled) {\n\t\t\tthis.editDisabled = false;\n\t\t\treturn;\n\t\t}\n\t\tthis.grid.editing.startEdit();\n\t}\n\n\tasync init() {\n\t\tawait this.grid.updateComplete;\n\t\tawait this.table.updateComplete;\n\t\tconst grid = this.grid;\n\t\t\n\t\t// wheel scroling\n\t\tgrid.addEventListener('wheel', this._onWheel, {passive: true});\n\n\t\t// touch scrolling\n\t\tgrid.addEventListener('touchstart', this._onTouchStart, {passive: true});\n\t\tgrid.addEventListener('touchend', this._onTouchEnd, {passive: true});\n\t\tgrid.addEventListener('touchmove', this._onTouchMove, {passive: true});\n\n\t\t// col/row resize\n\t\tgrid.hSizer.addEventListener('resizestart', this._onHorizontalResizeStart);\n\t\tgrid.hSizer.addEventListener('resizestop', this._onHorizontalResizeStop);\n\t\tgrid.hSizer.addEventListener('resize', this._onHorizontalResize);\n\t\tgrid.hSizer.addEventListener('dblclick', this._onHorizontalSizerDblClick);\n\t\tgrid.vSizer.addEventListener('resizestart', this._onVerticalResizeStart);\n\t\tgrid.vSizer.addEventListener('resizestop', this._onVerticalResizeStop);\n\t\tgrid.vSizer.addEventListener('resize', this._onVerticalResize);\n\t\tgrid.vSizer.addEventListener('dblclick', this._onVerticalSizerDblClick);\n\t\t\n\t\t// comments\n\t\tgrid.comment.addEventListener('comment.commit', this._onCommentCommit);\n\n\t\tgrid.addEventListener('keydown', this._onKeyDown);\n\t\tgrid.addEventListener('click', this._onClick);\n\t\tgrid.addEventListener('contextmenu', this._onContextMenu);\n\t\tgrid.addEventListener('toggle', () => grid.rendering.debounceCalculateViewport());\n\t\t\n\t\tgrid.addEventListener('pointerup', this._onMouseUp);\n\t\tgrid.addEventListener('pointerdown', this._onMouseDown);\n\t\t// grid.addEventListener('pointermove', this._onMouseMove);\n\t\tconst debounceMouseMove = debounce(this._onMouseMove, 20, {maxWait: 50, isImmediate: true});\n\t\tgrid.addEventListener('pointermove', debounceMouseMove);\n\n\t\tgrid.addEventListener('mouseleave', this._onMouseLeave);\n\n\t\t// table event handlers\n\t\tgrid.table.addEventListener('rendercells', this._onRender);\n\t\t\n\t\t// selector event handlers\n\t\tgrid.selector.addEventListener('grid.selector.autofill', this._onAutofill);\n\t\tgrid.selector.addEventListener('grid.selector.move', this._onSelectorMove);\n\n\t\t// editing event handlers\n\t\tgrid.addEventListener('dblclick', this._onDblClick);\n\t\tgrid.addEventListener('grid.edit', this._onEdit);\n\t}\n\n}"]}
@@ -1,5 +1,5 @@
1
1
  import { BaseFilter } from "../filters/baseFilter";
2
- import { ColumnModel, FilterModel } from "@omegagrid/grid-core";
2
+ import { ColumnModel } from "@omegagrid/grid-core";
3
3
  import { Grid } from "./grid";
4
4
  import { TableHeaderCell } from "./table";
5
5
  export declare class GridFiltering {
@@ -9,7 +9,7 @@ export declare class GridFiltering {
9
9
  get selector(): import("./selector").Selector;
10
10
  get events(): import("./grid.events").GridEvents;
11
11
  get table(): import("./table").Table;
12
- filter: FilterModel;
12
+ get filter(): import("@omegagrid/grid-core").FilterModel;
13
13
  filterMap: Map<number, BaseFilter>;
14
14
  constructor(grid: Grid);
15
15
  get isCustomFilter(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"grid.filtering.d.ts","sourceRoot":"","sources":["../../src/ui/grid.filtering.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,aAAa;IAWb,QAAQ,CAAC,IAAI,EAAE,IAAI;IAT/B,IAAI,KAAK,6CAA6B;IACtC,IAAI,SAAS,kDAAiC;IAC9C,IAAI,QAAQ,kCAAgC;IAC5C,IAAI,MAAM,uCAA8B;IACxC,IAAI,KAAK,4BAA6B;IAEtC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,0BAAiC;gBAErB,IAAI,EAAE,IAAI;IAE/B,IAAI,cAAc,YAAoE;IAEtF,IAAI;IAKJ,SAAS,CAAC,MAAM,EAAE,WAAW;IA6B7B,OAAO,CAAC,UAAU,CAAa;IAE/B,qBAAqB,CAAC,MAAM,EAAE,UAAU;IAKxC,uBAAuB;IAMvB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe;CAanD"}
1
+ {"version":3,"file":"grid.filtering.d.ts","sourceRoot":"","sources":["../../src/ui/grid.filtering.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,aAAa;IAWb,QAAQ,CAAC,IAAI,EAAE,IAAI;IAT/B,IAAI,KAAK,6CAA6B;IACtC,IAAI,SAAS,kDAAiC;IAC9C,IAAI,QAAQ,kCAAgC;IAC5C,IAAI,MAAM,uCAA8B;IACxC,IAAI,KAAK,4BAA6B;IACtC,IAAI,MAAM,+CAAgC;IAE1C,SAAS,0BAAiC;gBAErB,IAAI,EAAE,IAAI;IAE/B,IAAI,cAAc,YAAoE;IAEtF,IAAI;IAKJ,SAAS,CAAC,MAAM,EAAE,WAAW;IA6B7B,OAAO,CAAC,UAAU,CAAa;IAE/B,qBAAqB,CAAC,MAAM,EAAE,UAAU;IAKxC,uBAAuB;IAMvB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe;CAanD"}
@@ -1,20 +1,20 @@
1
1
  import { dom } from "@omegagrid/core";
2
2
  import { createFilter } from "../filters";
3
- import { FilterModel } from "@omegagrid/grid-core";
4
3
  export class GridFiltering {
5
4
  get model() { return this.grid.model; }
6
5
  get selection() { return this.grid.selection; }
7
6
  get selector() { return this.grid.selector; }
8
7
  get events() { return this.grid.events; }
9
8
  get table() { return this.grid.table; }
9
+ get filter() { return this.model?.filter; }
10
10
  constructor(grid) {
11
11
  this.grid = grid;
12
12
  this.filterMap = new Map();
13
13
  }
14
14
  get isCustomFilter() { return !!this.grid.adapter && this.model.options.pageSize > 0; } // && !this.model.rowRoot.isLoaded }
15
15
  init() {
16
- this.filter = this.filter ?? new FilterModel(this.model);
17
- this.filter.model = this.model;
16
+ // this.filter = this.filter ?? new FilterModel(this.model);
17
+ // this.filter.model = this.model;
18
18
  }
19
19
  getFilter(column) {
20
20
  let filter = this.filterMap.get(column.index);
@@ -1 +1 @@
1
- {"version":3,"file":"grid.filtering.js","sourceRoot":"","sources":["../../src/ui/grid.filtering.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom } from \"@omegagrid/core\";\nimport { createFilter } from \"../filters\";\nimport { BaseFilter } from \"../filters/baseFilter\";\nimport { ColumnModel, FilterModel } from \"@omegagrid/grid-core\";\nimport { Grid } from \"./grid\";\nimport { TableHeaderCell } from \"./table\";\n\nexport class GridFiltering {\n\t\n\tget model() { return this.grid.model }\n\tget selection() { return this.grid.selection }\n\tget selector() { return this.grid.selector }\n\tget events() { return this.grid.events }\n\tget table() { return this.grid.table }\n\t\n\tfilter: FilterModel;\n\tfilterMap = new Map<number, BaseFilter>();\t\n\n\tconstructor(readonly grid: Grid) { }\n\n\tget isCustomFilter() { return !!this.grid.adapter && this.model.options.pageSize > 0 } // && !this.model.rowRoot.isLoaded }\n\n\tinit() {\n\t\tthis.filter = this.filter ?? new FilterModel(this.model);\n\t\tthis.filter.model = this.model;\n\t}\n\n\tgetFilter(column: ColumnModel) {\n\t\tlet filter = this.filterMap.get(column.index);\n\t\tif (filter) {\n\t\t\tfilter.columnModel = column;\n\t\t\treturn filter;\n\t\t}\n\t\tfilter = createFilter(column, this.filter);\n\t\tthis.grid.shadowRoot.appendChild(filter);\n\t\tthis.filterMap.set(column.index, filter);\n\t\tfilter.addEventListener('grid.filter.deactivate', () => {\n\t\t\tdom.hideElement(filter);\n\t\t\tthis.unsubscribeDeactivation();\n\t\t});\n\n\t\tfilter.addEventListener('grid.filter.apply', () => {\n\t\t\tif (this.isCustomFilter) {\n\t\t\t\tthis.model.rowRoot.clearChildren();\n\t\t\t\tthis.model.rowRoot.count = Infinity; \n\t\t\t\tthis.model.clearRows();\n\t\t\t\tthis.grid.rendering.loadNextPage(null, true);\n\t\t\t} else {\n\t\t\t\tthis.table.rowOffset = 0;\n\t\t\t\tthis.grid.rendering.renderCells({vertical: true, horizontal: true});\n\t\t\t}\n\t\t});\n\n\t\treturn filter;\n\t}\n\n\tprivate deactivate: () => void;\n\n\tsubscribeDeactivation(filter: BaseFilter) {\n\t\tthis.deactivate = () => filter.deactivate();\n\t\tdocument.addEventListener('mousedown', () => this.deactivate ? this.deactivate() : null, {once: true})\n\t}\n\n\tunsubscribeDeactivation() {\n\t\tif (!this.deactivate) return;\n\t\tdocument.removeEventListener('mousedown', this.deactivate);\n\t\tthis.deactivate = null;\n\t}\n\n\topenFilter(column: ColumnModel, th: TableHeaderCell) {\n\t\tthis.filter.custom = this.isCustomFilter;\n\n\t\t// const th = this.table.getColumnByModelIndex(column.index);\n\t\tconst filter = this.getFilter(column);\n\t\tconst offset = dom.getElementOffset(th, this.table);\n\t\tdom.setPosition(filter, {t: offset.top, l: offset.left});\n\t\tdom.setSize(filter, {w: th.offsetWidth, h: th.offsetHeight});\n\t\tdom.showElement(filter);\n\t\tfilter.activate();\n\t\tsetTimeout(() => this.subscribeDeactivation(filter), 100);\n\t}\n\t\n}"]}
1
+ {"version":3,"file":"grid.filtering.js","sourceRoot":"","sources":["../../src/ui/grid.filtering.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom } from \"@omegagrid/core\";\nimport { createFilter } from \"../filters\";\nimport { BaseFilter } from \"../filters/baseFilter\";\nimport { ColumnModel } from \"@omegagrid/grid-core\";\nimport { Grid } from \"./grid\";\nimport { TableHeaderCell } from \"./table\";\n\nexport class GridFiltering {\n\t\n\tget model() { return this.grid.model }\n\tget selection() { return this.grid.selection }\n\tget selector() { return this.grid.selector }\n\tget events() { return this.grid.events }\n\tget table() { return this.grid.table }\n\tget filter() { return this.model?.filter }\n\t\n\tfilterMap = new Map<number, BaseFilter>();\t\n\n\tconstructor(readonly grid: Grid) { }\n\n\tget isCustomFilter() { return !!this.grid.adapter && this.model.options.pageSize > 0 } // && !this.model.rowRoot.isLoaded }\n\n\tinit() {\n\t\t// this.filter = this.filter ?? new FilterModel(this.model);\n\t\t// this.filter.model = this.model;\n\t}\n\n\tgetFilter(column: ColumnModel) {\n\t\tlet filter = this.filterMap.get(column.index);\n\t\tif (filter) {\n\t\t\tfilter.columnModel = column;\n\t\t\treturn filter;\n\t\t}\n\t\tfilter = createFilter(column, this.filter);\n\t\tthis.grid.shadowRoot.appendChild(filter);\n\t\tthis.filterMap.set(column.index, filter);\n\t\tfilter.addEventListener('grid.filter.deactivate', () => {\n\t\t\tdom.hideElement(filter);\n\t\t\tthis.unsubscribeDeactivation();\n\t\t});\n\n\t\tfilter.addEventListener('grid.filter.apply', () => {\n\t\t\tif (this.isCustomFilter) {\n\t\t\t\tthis.model.rowRoot.clearChildren();\n\t\t\t\tthis.model.rowRoot.count = Infinity; \n\t\t\t\tthis.model.clearRows();\n\t\t\t\tthis.grid.rendering.loadNextPage(null, true);\n\t\t\t} else {\n\t\t\t\tthis.table.rowOffset = 0;\n\t\t\t\tthis.grid.rendering.renderCells({vertical: true, horizontal: true});\n\t\t\t}\n\t\t});\n\n\t\treturn filter;\n\t}\n\n\tprivate deactivate: () => void;\n\n\tsubscribeDeactivation(filter: BaseFilter) {\n\t\tthis.deactivate = () => filter.deactivate();\n\t\tdocument.addEventListener('mousedown', () => this.deactivate ? this.deactivate() : null, {once: true})\n\t}\n\n\tunsubscribeDeactivation() {\n\t\tif (!this.deactivate) return;\n\t\tdocument.removeEventListener('mousedown', this.deactivate);\n\t\tthis.deactivate = null;\n\t}\n\n\topenFilter(column: ColumnModel, th: TableHeaderCell) {\n\t\tthis.filter.custom = this.isCustomFilter;\n\n\t\t// const th = this.table.getColumnByModelIndex(column.index);\n\t\tconst filter = this.getFilter(column);\n\t\tconst offset = dom.getElementOffset(th, this.table);\n\t\tdom.setPosition(filter, {t: offset.top, l: offset.left});\n\t\tdom.setSize(filter, {w: th.offsetWidth, h: th.offsetHeight});\n\t\tdom.showElement(filter);\n\t\tfilter.activate();\n\t\tsetTimeout(() => this.subscribeDeactivation(filter), 100);\n\t}\n\t\n}"]}