@dlh.io/bideux 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +90 -0
- package/dist/all.d.ts +14 -0
- package/dist/all.js +15 -0
- package/dist/all.js.map +1 -0
- package/dist/chunk-62IQGXLW.js +11470 -0
- package/dist/chunk-62IQGXLW.js.map +1 -0
- package/dist/chunk-75CRTQK7.js +315 -0
- package/dist/chunk-75CRTQK7.js.map +1 -0
- package/dist/chunk-FVO6E22Z.js +225 -0
- package/dist/chunk-FVO6E22Z.js.map +1 -0
- package/dist/chunk-GRITOB4M.js +337 -0
- package/dist/chunk-GRITOB4M.js.map +1 -0
- package/dist/chunk-HPFHIZWO.js +40 -0
- package/dist/chunk-HPFHIZWO.js.map +1 -0
- package/dist/chunk-IMNUQGHE.js +2864 -0
- package/dist/chunk-IMNUQGHE.js.map +1 -0
- package/dist/chunk-LHD445PJ.js +571 -0
- package/dist/chunk-LHD445PJ.js.map +1 -0
- package/dist/chunk-LPLBBHOW.js +386 -0
- package/dist/chunk-LPLBBHOW.js.map +1 -0
- package/dist/chunk-NGM5R3LW.js +881 -0
- package/dist/chunk-NGM5R3LW.js.map +1 -0
- package/dist/chunk-OMPR32AR.js +1320 -0
- package/dist/chunk-OMPR32AR.js.map +1 -0
- package/dist/chunk-QDQ5VVTC.js +255 -0
- package/dist/chunk-QDQ5VVTC.js.map +1 -0
- package/dist/chunk-RRWZKNDZ.js +1004 -0
- package/dist/chunk-RRWZKNDZ.js.map +1 -0
- package/dist/chunk-SRWIBMEB.js +178 -0
- package/dist/chunk-SRWIBMEB.js.map +1 -0
- package/dist/element/chunk-AOKCBPMV.js +1646 -0
- package/dist/element/chunk-AOKCBPMV.js.map +1 -0
- package/dist/element/chunk-B67SYRQP.js +281 -0
- package/dist/element/chunk-B67SYRQP.js.map +1 -0
- package/dist/element/chunk-FNRVFA2C.js +55 -0
- package/dist/element/chunk-FNRVFA2C.js.map +1 -0
- package/dist/element/chunk-G3C722QP.js +4707 -0
- package/dist/element/chunk-G3C722QP.js.map +1 -0
- package/dist/element/chunk-H5IFOSQP.js +346 -0
- package/dist/element/chunk-H5IFOSQP.js.map +1 -0
- package/dist/element/chunk-LXR3CLCN.js +30 -0
- package/dist/element/chunk-LXR3CLCN.js.map +1 -0
- package/dist/element/chunk-TFV4CJR4.js +183 -0
- package/dist/element/chunk-TFV4CJR4.js.map +1 -0
- package/dist/element/chunk-TXSK3CIN.js +859 -0
- package/dist/element/chunk-TXSK3CIN.js.map +1 -0
- package/dist/element/chunk-WDTTBY3S.js +45 -0
- package/dist/element/chunk-WDTTBY3S.js.map +1 -0
- package/dist/element/chunk-ZI3RYCAR.js +233 -0
- package/dist/element/chunk-ZI3RYCAR.js.map +1 -0
- package/dist/element/element.d.ts +3044 -0
- package/dist/element/element.js +146554 -0
- package/dist/element/element.js.map +1 -0
- package/dist/element/revo-grid.entry-7FHEBN3O.js +4817 -0
- package/dist/element/revo-grid.entry-7FHEBN3O.js.map +1 -0
- package/dist/element/revogr-attribution_7.entry-LSOFVZRA.js +1328 -0
- package/dist/element/revogr-attribution_7.entry-LSOFVZRA.js.map +1 -0
- package/dist/element/revogr-clipboard_3.entry-V74UIBPJ.js +494 -0
- package/dist/element/revogr-clipboard_3.entry-V74UIBPJ.js.map +1 -0
- package/dist/element/revogr-data_4.entry-2UBOKTFN.js +1041 -0
- package/dist/element/revogr-data_4.entry-2UBOKTFN.js.map +1 -0
- package/dist/element/revogr-filter-panel.entry-B24PLQU4.js +552 -0
- package/dist/element/revogr-filter-panel.entry-B24PLQU4.js.map +1 -0
- package/dist/index.d.ts +1041 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/react.d.ts +1915 -0
- package/dist/react.js +14 -0
- package/dist/react.js.map +1 -0
- package/dist/renderers/echarts.d.ts +44 -0
- package/dist/renderers/echarts.js +6 -0
- package/dist/renderers/echarts.js.map +1 -0
- package/dist/renderers/index.d.ts +48 -0
- package/dist/renderers/index.js +12 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/revogrid.d.ts +76 -0
- package/dist/renderers/revogrid.js +6 -0
- package/dist/renderers/revogrid.js.map +1 -0
- package/dist/renderers/tabulator.d.ts +37 -0
- package/dist/renderers/tabulator.js +6 -0
- package/dist/renderers/tabulator.js.map +1 -0
- package/dist/result-table-CPls-277.d.ts +1885 -0
- package/dist/schema/dashboard.schema.json +4374 -0
- package/dist/schema/semantic-model.schema.json +1200 -0
- package/dist/schema/widget.schema.json +1793 -0
- package/dist/styles.css +156 -0
- package/dist/theme.css +1789 -0
- package/dist/types-CHFSsU_X.d.ts +1007 -0
- package/package.json +119 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/@revolist+revogrid@4.25.2/node_modules/@revolist/revogrid/dist/esm/revogr-attribution_7.entry.js"],"names":["_a","range","e","timeout","RevogrFocus"],"mappings":"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","file":"revogr-attribution_7.entry-LSOFVZRA.js","sourcesContent":["/*!\n * Built by Revolist OU ❤️\n */\nimport { r as registerInstance, h, d as Host, a as createEvent, g as getElement } from './index-CtimkLsB.js';\nimport { k as getItemByIndex, b as getSourceItem, j as getItemByPosition, F as FOCUS_CLASS, I as codesLetter, R as RESIZE_INTERVAL, y as MOBILE_CLASS, z as CELL_HANDLER_CLASS, S as SELECTION_BORDER_CLASS, D as DataStore, q as ROW_HEADER_TYPE, T as TMP_SELECTION_BG_CLASS } from './dimension.helpers-fl4HSSK9.js';\nimport { g as getPropertyFromEvent, v as verifyTouchTarget } from './events-BvSmBueA.js';\nimport { g as getRange, M as ColumnService, z as getCellData, N as getCellEditor, b as isRangeSingleCell } from './column.service-Cfw3L0PN.js';\nimport { l as isShortcutModifier, m as isEditInput, c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll } from './edit.utils-4e9fsqOR.js';\nimport { t as timeout, g as getScrollbarSize } from './index-D24ku9ej.js';\nimport { d as debounce } from './debounce-PCRWZliA.js';\nimport { V as ViewportStore, j as calculateRowHeaderSize } from './viewport.store-BSXmsiZc.js';\nimport { H as HEADER_SLOT } from './viewport.helpers-CoCAvmZs.js';\nimport { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-Cpk1LoGk.js';\n\nconst Attribution = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n render() {\n return (h(Host, { key: '3d66475a019010c24b6c610ccc047e01c35178f9' }, h(\"a\", { key: '777afddffef0309a697b9c14ee73c0001ac22b71', href: \"https://rv-grid.com/guide/attribution\", target: \"_blank\", rel: \"noopener noreferrer\", title: \"Made with \\u2764\\uFE0F by Revolist OU Team\", class: \"value\" }, \"RevoGrid\")));\n }\n};\n\nconst RevoGridExtra = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * Nodes to render\n */\n this.nodes = [];\n /**\n * Force component to re-render\n */\n this.update = 1;\n }\n /**\n * Refreshes the extra component. Useful if you want to manually\n * force the component to re-render.\n */\n async refresh() {\n this.update *= -1;\n }\n render() {\n var _a;\n return (_a = this.nodes) === null || _a === void 0 ? void 0 : _a.map(node => {\n // Check if node is a function or a stencil component\n // If function wrap it in a stencil component with the refresh function\n if (typeof node === 'function') {\n const config = {};\n const getNodes = () => [node({ refresh: () => { var _a; return (_a = config.refresh) === null || _a === void 0 ? void 0 : _a.call(config); } })];\n return (h(\"revogr-extra\", { nodes: getNodes(), ref: (el) => {\n if (el) {\n // Update exclusively for current node\n config.refresh = () => {\n el.nodes = getNodes();\n };\n }\n } }));\n }\n return node;\n });\n }\n};\n\nfunction collectModelsOfRange(data, store) {\n const models = {};\n for (let i in data) {\n const rowIndex = parseInt(i, 10);\n models[rowIndex] = getSourceItem(store, rowIndex);\n }\n return models;\n}\nfunction getFocusCellBasedOnEvent(e, data) {\n // If event default is prevented, return\n if (e.defaultPrevented) {\n return null;\n }\n // Get coordinates from event object\n const x = getPropertyFromEvent(e, 'clientX');\n const y = getPropertyFromEvent(e, 'clientY');\n // If coordinates are not available, return\n if (x === null || y === null) {\n return null;\n }\n // Get current cell based on coordinates and data\n const focusCell = getCurrentCell({ x, y }, data);\n // If current cell is not available, return\n if (isAfterLast(focusCell, data.lastCell)) {\n return null;\n }\n return focusCell;\n}\n/**\n * Calculate cell based on x, y position\n */\nfunction getCurrentCell({ x, y }, { el, rows, cols }) {\n // Get the bounding rectangle of the element\n const { top, left, height, width } = el.getBoundingClientRect();\n // Calculate the cell position relative to the element\n let cellY = y - top;\n let cellX = x - left;\n // Limit the cell position to the element height\n if (cellY >= height) {\n cellY = height - 1;\n }\n // Limit the cell position to the element width\n if (cellX >= width) {\n cellX = width - 1;\n }\n // Get the row and column items based on the cell position\n const rgRow = getItemByPosition(rows, cellY + (rows.renderOffset || 0));\n const rgCol = getItemByPosition(cols, cellX + (cols.renderOffset || 0));\n // Set the row and column index to 0 if they are before the first item\n if (rgCol.itemIndex < 0) {\n rgCol.itemIndex = 0;\n }\n if (rgRow.itemIndex < 0) {\n rgRow.itemIndex = 0;\n }\n return { x: rgCol.itemIndex, y: rgRow.itemIndex };\n}\nfunction getCoordinate(range, focus, changes, isMulti = false) {\n const updateCoordinate = (c, pos = 0) => {\n const start = { x: range.x, y: range.y };\n const end = isMulti ? { x: range.x1, y: range.y1 } : start;\n const point = end[c] > focus[c] ? end : start;\n point[c] += pos;\n return { start, end };\n };\n if (changes.x) {\n return updateCoordinate('x', changes['x']);\n }\n if (changes.y) {\n return updateCoordinate('y', changes['y']);\n }\n return null;\n}\n/**\n * Check if the x coordinate of the cell position is after or equal to the x coordinate of the last cell position\n * or if the y coordinate of the cell position is after or equal to the y coordinate of the last cell position\n */\nfunction isAfterLast({ x, y }, lastCell) {\n return x >= lastCell.x || y >= lastCell.y;\n}\n/** check if out of range */\nfunction isBeforeFirst({ x, y }) {\n return x < 0 || y < 0;\n}\n/** Compare cells, only 1 coordinate difference is possible */\n// export function getDirectionCoordinate(initial: Cell, last: Cell): Partial<Cell> | null {\n// const c: (keyof Cell)[] = ['x', 'y'];\n// for (let k of c) {\n// if (initial[k] !== last[k]) {\n// return { [k]: 1 };\n// }\n// }\n// return null;\n// }\n// export function getLargestAxis(initial: Cell, last: Cell): Partial<Cell> | null {\n// const cell: Partial<Cell> = {};\n// const c: (keyof Cell)[] = ['x', 'y'];\n// for (let k of c) {\n// cell[k] = Math.abs(initial[k] - last[k]);\n// }\n// if (cell.x > cell.y) {\n// return { x: 1 };\n// }\n// if (cell.y > cell.x) {\n// return { y: 1 };\n// }\n// return null;\n// }\nfunction styleByCellProps(styles) {\n return {\n left: `${styles.left}px`,\n top: `${styles.top}px`,\n width: `${styles.width}px`,\n height: `${styles.height}px`,\n };\n}\nfunction getCell({ x, y, x1, y1 }, dimensionRow, dimensionCol) {\n const rowOffset = dimensionRow.renderOffset || 0;\n const colOffset = dimensionCol.renderOffset || 0;\n const top = getItemByIndex(dimensionRow, y).start - rowOffset;\n const left = getItemByIndex(dimensionCol, x).start - colOffset;\n const bottom = getItemByIndex(dimensionRow, y1).end - rowOffset;\n const right = getItemByIndex(dimensionCol, x1).end - colOffset;\n return {\n left,\n right,\n top,\n bottom,\n width: right - left,\n height: bottom - top,\n };\n}\n\nconst revogrFocusStyleCss = () => `revogr-focus.focused-cell{box-shadow:-1px 0 0 var(--rg-theme-selection-border) inset, 1px 0 0 var(--rg-theme-selection-border) inset, 0 -1px 0 var(--rg-theme-selection-border) inset, 0 1px 0 var(--rg-theme-selection-border) inset;position:absolute;pointer-events:none;z-index:9;display:block !important}`;\n\nconst RevogrFocus$1 = class RevogrFocus {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.beforeFocusRender = createEvent(this, \"beforefocusrender\", 7);\n this.beforeScrollIntoView = createEvent(this, \"beforescrollintoview\", 7);\n this.afterFocus = createEvent(this, \"afterfocus\", 7);\n /**\n * Focus template custom function. Can be used to render custom focus layer.\n */\n this.focusTemplate = null;\n this.activeFocus = null;\n }\n componentDidRender() {\n var _a, _b;\n const currentFocus = this.selectionStore.get('focus');\n if (((_a = this.activeFocus) === null || _a === void 0 ? void 0 : _a.x) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.x) &&\n ((_b = this.activeFocus) === null || _b === void 0 ? void 0 : _b.y) === (currentFocus === null || currentFocus === void 0 ? void 0 : currentFocus.y)) {\n return;\n }\n this.activeFocus = currentFocus;\n if (currentFocus && this.el) {\n const beforeScrollIn = this.beforeScrollIntoView.emit({ el: this.el });\n if (!beforeScrollIn.defaultPrevented) {\n this.el.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n const model = getSourceItem(this.dataStore, currentFocus.y);\n const column = getSourceItem(this.colData, currentFocus.x);\n this.afterFocus.emit({\n model,\n column,\n rowType: this.rowType,\n colType: this.colType,\n rowIndex: currentFocus.y,\n colIndex: currentFocus.x,\n });\n }\n }\n render() {\n var _a;\n const editCell = this.selectionStore.get('edit');\n if (editCell) {\n return;\n }\n const focusCell = this.selectionStore.get('focus');\n if (!focusCell) {\n return;\n }\n const event = this.beforeFocusRender.emit({\n range: Object.assign(Object.assign({}, focusCell), { x1: focusCell.x, y1: focusCell.y }),\n rowType: this.rowType,\n colType: this.colType,\n rowDimension: Object.assign({}, this.dimensionRow.state),\n colDimension: Object.assign({}, this.dimensionCol.state),\n });\n if (event.defaultPrevented) {\n return h(\"slot\", null);\n }\n const { detail } = event;\n const cell = getCell(detail.range, event.detail.rowDimension, event.detail.colDimension);\n const styles = styleByCellProps(cell);\n const extra = (_a = this.focusTemplate) === null || _a === void 0 ? void 0 : _a.call(this, h, detail);\n const props = {\n class: { [FOCUS_CLASS]: true },\n style: styles,\n };\n return (h(Host, Object.assign({}, props), h(\"slot\", null), extra));\n }\n get el() { return getElement(this); }\n};\nRevogrFocus$1.style = revogrFocusStyleCss();\n\nconst DIRECTION_CODES = [\n codesLetter.TAB,\n codesLetter.ARROW_UP,\n codesLetter.ARROW_DOWN,\n codesLetter.ARROW_LEFT,\n codesLetter.ARROW_RIGHT,\n];\nclass KeyboardService {\n constructor(sv) {\n this.sv = sv;\n }\n /**\n * Appends printable key input that arrives after edit mode was requested\n * but before the editor input has mounted or received focus.\n */\n appendPendingEditValue(e) {\n if (isShortcutModifier(e) ||\n e.key.length !== 1 ||\n (e.target instanceof HTMLElement && isEditInput(e.target))) {\n return false;\n }\n const editCell = this.sv.selectionStore.get('edit');\n if (typeof (editCell === null || editCell === void 0 ? void 0 : editCell.val) !== 'string') {\n return false;\n }\n e.preventDefault();\n this.sv.selectionStore.set('edit', Object.assign(Object.assign({}, editCell), { val: `${editCell.val}${e.key}` }));\n return true;\n }\n async keyDown(e, canRange, isEditMode, { range, focus }) {\n // IF EDIT MODE\n if (isEditMode) {\n if (this.appendPendingEditValue(e)) {\n return;\n }\n switch (e.code) {\n case codesLetter.ESCAPE:\n this.sv.cancel();\n break;\n case codesLetter.TAB:\n this.keyChangeSelection(e, canRange);\n break;\n }\n return;\n }\n // IF NOT EDIT MODE\n // pressed clear key\n if (range && isClear(e.code)) {\n this.sv.clearCell();\n return;\n }\n // below works with focus only\n if (!focus) {\n return;\n }\n // tab key means same as arrow right\n if (isTab(e.code)) {\n this.keyChangeSelection(e, canRange);\n return;\n }\n // pressed enter\n if (isEnterKeyValue(e.key)) {\n this.sv.change();\n return;\n }\n // copy operation\n if (isCopy(e)) {\n return;\n }\n // cut operation\n if (isCut(e)) {\n return;\n }\n // paste operation\n if (isPaste(e)) {\n this.sv.internalPaste();\n return;\n }\n // select all\n if (isAll(e)) {\n if (canRange) {\n this.selectAll(e);\n }\n return;\n }\n // pressed letter key\n if (!isShortcutModifier(e) && e.key.length === 1) {\n if (this.sv.change(e.key)) {\n e.preventDefault();\n }\n return;\n }\n // pressed arrow, change selection position\n if (await this.keyChangeSelection(e, canRange)) {\n return;\n }\n }\n selectAll(e) {\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n // if no range or focus - do nothing\n if (!range || !focus) {\n return;\n }\n e.preventDefault();\n this.sv.selectAll();\n }\n async keyChangeSelection(e, canRange) {\n const data = this.changeDirectionKey(e, canRange);\n if (!data) {\n return false;\n }\n // this interval needed for several cases\n // grid could be resized before next click\n // at this case to avoid screen jump we use this interval\n await timeout(RESIZE_INTERVAL + 30);\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n return this.keyPositionChange(data.changes, range, focus, data.isMulti);\n }\n keyPositionChange(changes, range, focus, isMulti = false) {\n if (!range || !focus) {\n return false;\n }\n const data = getCoordinate(range, focus, changes, isMulti);\n if (!data) {\n return false;\n }\n const eData = this.sv.getData();\n if (isMulti) {\n const isOutOfBounds = [data.start, data.end].some(cell => isAfterLast(cell, eData.lastCell) || isBeforeFirst(cell));\n if (isOutOfBounds) {\n return false;\n }\n const range = getRange(data.start, data.end);\n return this.sv.range(range);\n }\n return this.sv.focus(data.start, changes, isAfterLast(data.start, eData.lastCell)\n ? 1\n : isBeforeFirst(data.start)\n ? -1\n : 0);\n }\n /** Monitor key direction changes */\n changeDirectionKey(e, canRange) {\n const isMulti = canRange && e.shiftKey;\n if (DIRECTION_CODES.includes(e.code)) {\n e.preventDefault();\n }\n if (e.shiftKey) {\n switch (e.code) {\n case codesLetter.TAB:\n return { changes: { x: -1 }, isMulti: false };\n }\n }\n switch (e.code) {\n case codesLetter.ARROW_UP:\n return { changes: { y: -1 }, isMulti };\n case codesLetter.ARROW_DOWN:\n return { changes: { y: 1 }, isMulti };\n case codesLetter.ARROW_LEFT:\n return { changes: { x: -1 }, isMulti };\n case codesLetter.TAB:\n case codesLetter.ARROW_RIGHT:\n return { changes: { x: 1 }, isMulti };\n }\n }\n}\n\nclass AutoFillService {\n constructor(sv) {\n this.sv = sv;\n this.autoFillType = null;\n this.autoFillInitial = null;\n this.autoFillStart = null;\n this.autoFillLast = null;\n }\n /**\n * Render autofill box\n * @param range\n * @param selectionFocus\n */\n renderAutofill(range, selectionFocus, isMobile = false) {\n let handlerStyle;\n if (range) {\n handlerStyle = getCell(range, this.sv.dimensionRow.state, this.sv.dimensionCol.state);\n }\n else {\n handlerStyle = getCell(Object.assign(Object.assign({}, selectionFocus), { x1: selectionFocus.x, y1: selectionFocus.y }), this.sv.dimensionRow.state, this.sv.dimensionCol.state);\n }\n return (h(\"div\", { class: {\n [CELL_HANDLER_CLASS]: true,\n [MOBILE_CLASS]: isMobile,\n }, style: {\n left: `${handlerStyle.right}px`,\n top: `${handlerStyle.bottom}px`,\n }, onMouseDown: (e) => this.autoFillHandler(e), onTouchStart: (e) => this.autoFillHandler(e) }));\n }\n autoFillHandler(e, type = \"AutoFill\" /* AutoFillType.autoFill */) {\n let target = null;\n if (e.target instanceof Element) {\n target = e.target;\n }\n if (!target) {\n return;\n }\n this.selectionStart(target, this.sv.getData(), type);\n e.preventDefault();\n }\n get isAutoFill() {\n return !!this.autoFillType;\n }\n /**\n * Process mouse move events\n */\n selectionMouseMove(e) {\n // initiate mouse move debounce if not present\n if (!this.onMouseMoveAutofill) {\n this.onMouseMoveAutofill = debounce((e, data) => this.doAutofillMouseMove(e, data), 5);\n }\n if (this.isAutoFill) {\n this.onMouseMoveAutofill(e, this.sv.getData());\n }\n }\n getFocus(focus, range) {\n // there was an issue that it was taking last cell from range but focus was out\n if (!focus && range) {\n focus = { x: range.x, y: range.y };\n }\n return focus || null;\n }\n /**\n * Autofill logic:\n * on mouse move apply based on previous direction (if present)\n */\n doAutofillMouseMove(event, data) {\n // if no initial - not started\n if (!this.autoFillInitial) {\n return;\n }\n const x = getPropertyFromEvent(event, 'clientX', MOBILE_CLASS);\n const y = getPropertyFromEvent(event, 'clientY', MOBILE_CLASS);\n // skip touch\n if (x === null || y === null) {\n return;\n }\n const current = getCurrentCell({ x, y }, data);\n // first time or direction equal to start(same as first time)\n if (!this.autoFillLast) {\n if (!this.autoFillLast) {\n this.autoFillLast = this.autoFillStart;\n }\n }\n // check if not the latest, if latest - do nothing\n if (isAfterLast(current, data.lastCell)) {\n return;\n }\n this.autoFillLast = current;\n const isSame = current.x === this.autoFillInitial.x &&\n current.y === this.autoFillInitial.y;\n // if same as initial - clear\n if (isSame) {\n this.sv.setTempRange(null);\n }\n else {\n const area = getRange(this.autoFillInitial, this.autoFillLast);\n this.sv.setTempRange({\n area,\n type: this.autoFillType,\n });\n }\n }\n /**\n * Range selection started\n * Mode @param type:\n * Can be triggered from MouseDown selection on element\n * Or can be triggered on corner square drag\n */\n selectionStart(target, data, type = \"Selection\" /* AutoFillType.selection */) {\n /** Get cell by autofill element */\n const { top, left } = target.getBoundingClientRect();\n this.autoFillInitial = this.getFocus(data.focus, data.range);\n this.autoFillType = type;\n this.autoFillStart = getCurrentCell({ x: left, y: top }, data);\n }\n /**\n * Clear current range selection on mouse up and mouse leave events\n */\n clearAutoFillSelection(focus, oldRange) {\n // If autofill was active, apply autofill values\n if (this.autoFillInitial) {\n // Fetch latest focus\n this.autoFillInitial = this.getFocus(focus, oldRange);\n // Apply range data if autofill mode is active\n if (this.autoFillType === \"AutoFill\" /* AutoFillType.autoFill */) {\n const range = getRange(this.autoFillInitial, this.autoFillLast);\n // If range is present, apply data\n if (range) {\n const { defaultPrevented: stopApply, detail: { range: newRange }, } = this.sv.clearRangeDataApply({\n range,\n });\n // If data apply was not prevented, apply new range\n if (!stopApply && oldRange) {\n this.applyRangeWithData(newRange, oldRange);\n }\n else {\n // If data apply was prevented, clear temporary range\n this.sv.setTempRange(null);\n }\n }\n }\n else {\n // If not autofill mode, apply range only\n this.applyRangeOnly(this.autoFillInitial, this.autoFillLast);\n }\n }\n // Reset autofill state\n this.resetAutoFillState();\n }\n /**\n * Reset autofill state\n */\n resetAutoFillState() {\n this.autoFillType = null;\n this.autoFillInitial = null;\n this.autoFillLast = null;\n this.autoFillStart = null;\n }\n /**\n * Trigger range apply events and handle responses\n */\n onRangeApply(newData, newRange, oldRange) {\n this.sv.rangeDataApply({\n data: newData,\n models: collectModelsOfRange(newData, this.sv.dataStore),\n type: this.sv.dataStore.get('type'),\n oldRange,\n newRange\n });\n this.sv.setRange(newRange);\n }\n /** Apply range and copy data during range application */\n applyRangeWithData(newRange, rangeToCopy) {\n const rangeData = {\n type: this.sv.dataStore.get('type'),\n colType: this.sv.columnService.type,\n newData: {},\n mapping: {},\n newRange,\n oldRange: rangeToCopy,\n };\n const { mapping, changed } = this.sv.columnService.getRangeData(rangeData, this.sv.columnService.columns);\n rangeData.newData = changed;\n rangeData.mapping = mapping;\n let e = this.sv.selectionChanged(rangeData);\n // if default prevented - clear range\n if (e.defaultPrevented) {\n this.sv.setTempRange(null);\n return;\n }\n e = this.sv.rangeCopy(rangeData);\n if (e.defaultPrevented) {\n this.sv.setRange(newRange);\n return;\n }\n this.onRangeApply(rangeData.newData, newRange, rangeToCopy);\n }\n /**\n * Update range selection only,\n * no data change (mouse selection)\n */\n applyRangeOnly(start, end) {\n // no changes to apply\n if (!start || !end) {\n return;\n }\n const newRange = getRange(start, end);\n this.sv.setRange(newRange);\n }\n}\n\nfunction getRangeFillClipboardData(data, useClipboard) {\n var _a;\n if (!isClipboardRangeFillEnabled(useClipboard)) {\n return null;\n }\n const normalized = trimTrailingEmptyClipboardRows(data);\n return normalized.length === 1 && ((_a = normalized[0]) === null || _a === void 0 ? void 0 : _a.length) === 1\n ? normalized\n : null;\n}\nfunction isClipboardRangeFillEnabled(useClipboard) {\n return (typeof useClipboard === 'object' && useClipboard.rangeFill === true);\n}\nfunction trimTrailingEmptyClipboardRows(data) {\n const rows = [...data];\n while (rows.length > 1 && isEmptyClipboardRow(rows[rows.length - 1])) {\n rows.pop();\n }\n return rows;\n}\nfunction isEmptyClipboardRow(row) {\n return !row || row.every(cell => cell === '');\n}\n\nconst revogrOverlayStyleCss = () => `revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:\"\";position:absolute;right:0;bottom:0;width:10px;height:10px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:\"\";position:absolute;right:0;bottom:0;width:12px;height:12px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;background-color:var(--rg-theme-selection-bg)}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:var(--rg-theme-range-handle-bg)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:\"\";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:\"\";bottom:0}revogr-overlay-selection .selection-border-range{box-shadow:-1px 0 0 var(--rg-theme-selection-border) inset, 1px 0 0 var(--rg-theme-selection-border) inset, 0 -1px 0 var(--rg-theme-selection-border) inset, 0 1px 0 var(--rg-theme-selection-border) inset}revogr-overlay-selection revogr-edit{z-index:10}`;\n\nconst OverlaySelection = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.beforeCopyRegion = createEvent(this, \"beforecopyregion\", 7);\n this.beforeRegionPaste = createEvent(this, \"beforepasteregion\", 7);\n this.cellEditApply = createEvent(this, \"celleditapply\", 7);\n this.beforeFocusCell = createEvent(this, \"beforecellfocusinit\", 7);\n this.beforeNextViewportFocus = createEvent(this, \"beforenextvpfocus\", 7);\n this.setEdit = createEvent(this, \"setedit\", 7);\n this.beforeApplyRange = createEvent(this, \"beforeapplyrange\", 7);\n this.beforeSetRange = createEvent(this, \"beforesetrange\", 7);\n this.setRange = createEvent(this, \"setrange\", 7);\n this.beforeEditRender = createEvent(this, \"beforeeditrender\", 7);\n this.selectAll = createEvent(this, \"selectall\", 7);\n this.cancelEdit = createEvent(this, \"canceledit\", 7);\n this.setTempRange = createEvent(this, \"settemprange\", 7);\n this.beforeSetTempRange = createEvent(this, \"beforesettemprange\", 7);\n this.applyFocus = createEvent(this, \"applyfocus\", 7);\n this.focusCell = createEvent(this, \"focuscell\", 7);\n this.beforeRangeDataApply = createEvent(this, \"beforerangedataapply\", 7);\n this.selectionChange = createEvent(this, \"selectionchangeinit\", 7);\n this.beforeRangeCopyApply = createEvent(this, \"beforerangecopyapply\", 7);\n this.rangeEditApply = createEvent(this, \"rangeeditapply\", 7);\n this.rangeClipboardCopy = createEvent(this, \"clipboardrangecopy\", 7);\n this.rangeClipboardPaste = createEvent(this, \"clipboardrangepaste\", 7);\n this.beforeKeyDown = createEvent(this, \"beforekeydown\", 7);\n this.beforeKeyUp = createEvent(this, \"beforekeyup\", 7);\n this.beforeCellSave = createEvent(this, \"beforecellsave\", 7);\n this.cellEditDone = createEvent(this, \"celledit\", 7);\n /**\n * If true applys changes when cell closes if not Escape.\n */\n this.applyChangesOnClose = false;\n this.keyboardService = null;\n this.autoFillService = null;\n this.unsubscribeSelectionStore = [];\n }\n // #endregion\n // #region Listeners\n onMouseMove(e) {\n var _a;\n if (this.selectionStore.get('focus')) {\n (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.selectionMouseMove(e);\n }\n }\n /**\n * Action finished inside the document.\n * Pointer left document, clear any active operation.\n */\n onMouseUp() {\n var _a;\n // Clear autofill selection\n // when pointer left document,\n // clear any active operation.\n (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.clearAutoFillSelection(this.selectionStore.get('focus'), this.selectionStore.get('range'));\n }\n /**\n * Row drag started.\n * This event is fired when drag action started on cell.\n */\n onCellDrag(e) {\n var _a;\n // Invoke drag start on order editor.\n (_a = this.orderEditor) === null || _a === void 0 ? void 0 : _a.dragStart(e.detail);\n }\n /**\n * Get keyboard down from element.\n * This event is fired when keyboard key is released.\n */\n onKeyUp(e) {\n // Emit before key up event.\n this.beforeKeyUp.emit(Object.assign({ original: e }, this.getData()));\n }\n /**\n * Get keyboard down from element.\n * This event is fired when keyboard key is pressed.\n */\n onKeyDown(e) {\n var _a;\n // Emit before key down event and check if default prevention is set.\n const proxy = this.beforeKeyDown.emit(Object.assign({ original: e }, this.getData()));\n if (e.defaultPrevented || proxy.defaultPrevented) {\n return;\n }\n // Invoke key down on keyboard service.\n (_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyDown(e, this.range, !!this.selectionStore.get('edit'), {\n focus: this.selectionStore.get('focus'),\n range: this.selectionStore.get('range'),\n });\n }\n // #endregion\n /**\n * Selection & Keyboard\n */\n selectionServiceSet(selectionStore) {\n // clear subscriptions\n this.unsubscribeSelectionStore.forEach(v => v());\n this.unsubscribeSelectionStore.length = 0;\n this.unsubscribeSelectionStore.push(selectionStore.onChange('nextFocus', v => v && this.doFocus(v, v)));\n this.keyboardService = new KeyboardService({\n selectionStore,\n range: r => !!r && this.triggerRangeEvent(r),\n focus: (f, changes, focusNextViewport) => {\n if (focusNextViewport) {\n this.beforeNextViewportFocus.emit(f);\n return false;\n }\n else {\n return this.doFocus(f, f, changes);\n }\n },\n change: val => this.doEdit(val),\n cancel: async () => {\n var _a;\n await ((_a = this.revogrEdit) === null || _a === void 0 ? void 0 : _a.cancelChanges());\n this.closeEdit();\n },\n clearCell: () => !this.readonly && this.clearCell(),\n internalPaste: () => !this.readonly && this.beforeRegionPaste.emit(),\n getData: () => this.getData(),\n selectAll: () => this.selectAll.emit(),\n });\n this.createAutoFillService();\n }\n /** Autofill */\n createAutoFillService() {\n this.autoFillService = new AutoFillService({\n dimensionRow: this.dimensionRow,\n dimensionCol: this.dimensionCol,\n columnService: this.columnService,\n dataStore: this.dataStore,\n clearRangeDataApply: e => this.beforeRangeDataApply.emit(Object.assign(Object.assign(Object.assign({}, e), this.types), { rowDimension: Object.assign({}, this.dimensionRow.state), colDimension: Object.assign({}, this.dimensionCol.state) })),\n setTempRange: e => {\n const tempRangeEvent = this.beforeSetTempRange.emit(Object.assign(Object.assign({ tempRange: e }, this.getData()), this.types));\n if (tempRangeEvent.defaultPrevented) {\n return null;\n }\n return this.setTempRange.emit(tempRangeEvent.detail.tempRange);\n },\n selectionChanged: e => this.selectionChange.emit(e),\n rangeCopy: e => this.beforeRangeCopyApply.emit(e),\n rangeDataApply: e => this.rangeEditApply.emit(e),\n setRange: e => !!e && this.triggerRangeEvent(e),\n getData: () => this.getData(),\n });\n }\n /** Columns */\n columnServiceSet() {\n var _a;\n (_a = this.columnService) === null || _a === void 0 ? void 0 : _a.destroy();\n this.columnService = new ColumnService(this.dataStore, this.colData);\n this.createAutoFillService();\n }\n connectedCallback() {\n this.columnServiceSet();\n this.selectionServiceSet(this.selectionStore);\n }\n disconnectedCallback() {\n var _a;\n // clear subscriptions\n this.unsubscribeSelectionStore.forEach(v => v());\n this.unsubscribeSelectionStore.length = 0;\n (_a = this.columnService) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n async componentWillRender() {\n var _a, _b;\n const editCell = this.selectionStore.get('edit');\n if (!editCell) {\n await ((_b = (_a = this.revogrEdit) === null || _a === void 0 ? void 0 : _a.beforeDisconnect) === null || _b === void 0 ? void 0 : _b.call(_a));\n }\n }\n renderRange(range) {\n const cell = getCell(range, this.dimensionRow.state, this.dimensionCol.state);\n const styles = styleByCellProps(cell);\n return [\n h(\"div\", { class: SELECTION_BORDER_CLASS, style: styles }, this.isMobileDevice && (h(\"div\", { class: \"range-handlers\" }, h(\"span\", { class: MOBILE_CLASS }), h(\"span\", { class: MOBILE_CLASS })))),\n ];\n }\n renderEditor() {\n // Check if edit access\n const editCell = this.selectionStore.get('edit');\n // Readonly or Editor closed\n if (this.readonly || !editCell) {\n return null;\n }\n const enteredOrModelValue = editCell.val ||\n getCellData(this.columnService.rowDataModel(editCell.y, editCell.x).value);\n const editable = Object.assign(Object.assign({}, editCell), this.columnService.getSaveData(editCell.y, editCell.x, enteredOrModelValue));\n const renderEvent = this.beforeEditRender.emit(Object.assign(Object.assign({ range: Object.assign(Object.assign({}, editCell), { x1: editCell.x, y1: editCell.y }) }, this.types), { rowDimension: Object.assign({}, this.dimensionRow.state), colDimension: Object.assign({}, this.dimensionCol.state) }));\n // Render prevented\n if (renderEvent.defaultPrevented) {\n return null;\n }\n const cell = getCell(renderEvent.detail.range, renderEvent.detail.rowDimension, renderEvent.detail.colDimension);\n const styles = styleByCellProps(cell);\n return (h(\"revogr-edit\", { style: styles, ref: el => (this.revogrEdit = el), additionalData: this.additionalData, editCell: editable, saveOnClose: this.applyChangesOnClose, onCelleditinit: (e) => {\n this.cellEditDone.emit(e.detail);\n }, column: this.columnService.rowDataModel(editCell.y, editCell.x), editor: getCellEditor(this.columnService.columns[editCell.x], this.editors) }));\n }\n onEditCell(e) {\n if (e.defaultPrevented) {\n return;\n }\n const saveEv = this.beforeCellSave.emit(e.detail);\n if (!saveEv.defaultPrevented) {\n this.cellEdit(saveEv.detail);\n }\n // if not clear navigate to next cell after edit\n if (!saveEv.detail.preventFocus) {\n this.focusNext();\n }\n }\n render() {\n var _a;\n const nodes = [];\n const editCell = this.renderEditor();\n // Editor\n if (editCell) {\n nodes.push(editCell);\n }\n else {\n const range = this.selectionStore.get('range');\n const focus = this.selectionStore.get('focus');\n // Clipboard\n if ((range || focus) && this.useClipboard) {\n nodes.push(h(\"revogr-clipboard\", { readonly: this.readonly, onCopyregion: e => this.onCopy(e.detail), onClearregion: () => !this.readonly && this.clearCell(), ref: e => (this.clipboard = e), onPasteregion: e => this.onPaste(e.detail) }));\n }\n // Range\n if (range) {\n nodes.push(...this.renderRange(range));\n }\n // Autofill\n if (focus && !this.readonly && this.range) {\n nodes.push((_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.renderAutofill(range, focus, this.isMobileDevice));\n }\n // Order\n if (this.canDrag) {\n nodes.push(h(\"revogr-order-editor\", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, rowType: this.types.rowType, onRowdragstartinit: e => this.rowDragStart(e) }));\n }\n }\n return (h(Host, { key: '2d8dc4fd40a883fe59b24b2cfac1c370b9f0ac16', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true), onCloseedit: (e) => this.closeEdit(e),\n // it's done to be able to throw events from different levels, not just from editor\n onCelledit: (e) => this.onEditCell(e) }, nodes, h(\"slot\", { key: '8ad5df55904ca6a8b2fb0e69c5f608ec7264a0f1', name: \"data\" })));\n }\n /**\n * Executes the focus operation on the specified range of cells.\n */\n doFocus(focus, end, changes, originalEvent) {\n // 1. Trigger beforeFocus event\n const { defaultPrevented } = this.beforeFocusCell.emit(Object.assign(Object.assign({}, this.columnService.getSaveData(focus.y, focus.x)), { originalEvent }));\n if (defaultPrevented) {\n return false;\n }\n const evData = Object.assign(Object.assign({ range: Object.assign(Object.assign({}, focus), { x1: end.x, y1: end.y }), next: changes }, this.types), { rowDimension: Object.assign({}, this.dimensionRow.state), colDimension: Object.assign({}, this.dimensionCol.state), originalEvent });\n // 2. Trigger apply focus event\n const applyEvent = this.applyFocus.emit(evData);\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const { range } = applyEvent.detail;\n // 3. Trigger focus event\n return !this.focusCell.emit(Object.assign({ focus: {\n x: range.x,\n y: range.y,\n }, end: {\n x: range.x1,\n y: range.y1,\n } }, applyEvent.detail)).defaultPrevented;\n }\n triggerRangeEvent(range, originalEvent) {\n const type = this.types.rowType;\n // 1. Apply range\n const applyEvent = this.beforeApplyRange.emit(Object.assign(Object.assign({ range: Object.assign({}, range) }, this.types), { rowDimension: Object.assign({}, this.dimensionRow.state), colDimension: Object.assign({}, this.dimensionCol.state), originalEvent }));\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const data = this.columnService.getRangeTransformedToProps(applyEvent.detail.range, this.dataStore);\n // 2. Before set range\n let e = this.beforeSetRange.emit(data);\n if (e.defaultPrevented) {\n return false;\n }\n // 3. Set range\n e = this.setRange.emit(Object.assign(Object.assign({}, applyEvent.detail.range), { type }));\n if (e.defaultPrevented) {\n return false;\n }\n return !e.defaultPrevented;\n }\n /**\n * Open Editor on DblClick\n */\n onElementDblClick(e) {\n // DblClick prevented outside - Editor will not open\n if (e.defaultPrevented) {\n return;\n }\n // Get data from the component\n const data = this.getData();\n const focusCell = getFocusCellBasedOnEvent(e, data);\n if (!focusCell) {\n return;\n }\n this.doEdit();\n }\n /**\n * Handle mouse down event on Host element\n */\n onElementMouseDown(e, touch = false) {\n var _a;\n // Get the target element from the event object\n const targetElement = e.target;\n // Ignore focus if clicked input\n if (isEditInput(targetElement) || e.defaultPrevented) {\n return;\n }\n // Get data from the component\n const data = this.getData();\n const focusCell = getFocusCellBasedOnEvent(e, data);\n if (!focusCell) {\n return;\n }\n // Set focus on the current cell\n this.focus(focusCell, this.range && e.shiftKey, e);\n // Initiate autofill selection\n if (this.range) {\n targetElement &&\n ((_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.selectionStart(targetElement, this.getData()));\n // Prevent default behavior for mouse events,\n // but only if target element is not a mobile input\n if (!touch) {\n e.preventDefault();\n }\n else if (verifyTouchTarget(e.touches[0], MOBILE_CLASS)) {\n // Prevent default behavior for touch events\n // if target element is a mobile input\n e.preventDefault();\n }\n }\n }\n /**\n * Start cell editing\n */\n doEdit(val = '') {\n if (!this.canEdit()) {\n return false;\n }\n const focus = this.selectionStore.get('focus');\n if (!focus) {\n return false;\n }\n const data = this.columnService.getSaveData(focus.y, focus.x);\n const event = this.setEdit.emit(Object.assign(Object.assign({}, data), { val }));\n return !event.defaultPrevented;\n }\n /**\n * Close editor event triggered\n * @param details - if it requires focus next\n */\n async closeEdit(e) {\n this.cancelEdit.emit();\n if (e === null || e === void 0 ? void 0 : e.detail) {\n await this.focusNext();\n }\n }\n /**\n * Edit finished.\n * Close Editor and save.\n */\n cellEdit(e) {\n const dataToSave = this.columnService.getSaveData(e.rgRow, e.rgCol, e.val);\n this.cellEditApply.emit(dataToSave);\n }\n getRegion() {\n const focus = this.selectionStore.get('focus');\n let range = this.selectionStore.get('range');\n if (!range) {\n range = getRange(focus, focus);\n }\n return range;\n }\n onCopy(e) {\n var _a;\n const range = this.getRegion();\n const canCopyEvent = this.beforeCopyRegion.emit(range);\n if (canCopyEvent.defaultPrevented) {\n return false;\n }\n let rangeData;\n if (range) {\n const { data, mapping } = this.columnService.copyRangeArray(range, this.dataStore);\n const event = this.rangeClipboardCopy.emit(Object.assign({ range,\n data,\n mapping }, this.types));\n if (!event.defaultPrevented) {\n rangeData = event.detail.data;\n }\n }\n (_a = this.clipboard) === null || _a === void 0 ? void 0 : _a.doCopy(e, rangeData);\n return true;\n }\n onPaste(data) {\n var _a;\n const focus = this.selectionStore.get('focus');\n const isEditing = this.selectionStore.get('edit') !== null;\n if (!focus || isEditing) {\n return;\n }\n const rangeFillData = getRangeFillClipboardData(data, this.useClipboard);\n const targetRange = rangeFillData\n ? this.getClipboardPasteTargetRange()\n : null;\n let { changed, range } = this.columnService.getTransformedDataToApply({\n start: focus,\n data: rangeFillData || data,\n targetRange,\n });\n const { defaultPrevented: canPaste } = this.rangeClipboardPaste.emit(Object.assign({ data: changed, models: collectModelsOfRange(changed, this.dataStore), range }, this.types));\n if (canPaste) {\n return;\n }\n (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.onRangeApply(changed, range, range);\n }\n getClipboardPasteTargetRange() {\n const range = this.selectionStore.get('range');\n return range && !isRangeSingleCell(range) ? range : null;\n }\n async focusNext() {\n var _a;\n const canFocus = await ((_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyChangeSelection(new KeyboardEvent('keydown', {\n code: codesLetter.ARROW_DOWN,\n }), this.range));\n if (!canFocus) {\n this.closeEdit();\n }\n }\n clearCell() {\n var _a;\n const range = this.selectionStore.get('range');\n if (range && !isRangeSingleCell(range)) {\n const data = this.columnService.getRangeStaticData(range, '');\n (_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.onRangeApply(data, range, range);\n }\n else if (this.canEdit()) {\n const focused = this.selectionStore.get('focus');\n if (!focused) {\n return;\n }\n const cell = this.columnService.getSaveData(focused.y, focused.x);\n this.cellEdit({\n rgRow: focused.y,\n rgCol: focused.x,\n val: '',\n type: cell.type,\n prop: cell.prop,\n });\n }\n }\n rowDragStart({ detail }) {\n detail.text = getCellData(this.columnService.rowDataModel(detail.cell.y, detail.cell.x).value);\n }\n /**\n * Verify if edit allowed.\n */\n canEdit() {\n var _a;\n if (this.readonly) {\n return false;\n }\n const focus = this.selectionStore.get('focus');\n return focus && !((_a = this.columnService) === null || _a === void 0 ? void 0 : _a.isReadOnly(focus.y, focus.x));\n }\n get edited() {\n return this.selectionStore.get('edit');\n }\n /**\n * Sets the focus on a cell and optionally edits a range.\n */\n focus(cell, isRangeEdit = false, originalEvent) {\n if (!cell)\n return false;\n const end = cell;\n const start = this.selectionStore.get('focus');\n if (isRangeEdit && start) {\n const range = getRange(start, end);\n if (range) {\n return this.triggerRangeEvent(range, originalEvent);\n }\n }\n return this.doFocus(cell, end, undefined, originalEvent);\n }\n get types() {\n return {\n rowType: this.dataStore.get('type'),\n colType: this.columnService.type,\n };\n }\n /**\n * Collect data\n */\n getData() {\n return {\n el: this.element,\n rows: this.dimensionRow.state,\n cols: this.dimensionCol.state,\n lastCell: this.lastCell,\n focus: this.selectionStore.get('focus'),\n range: this.selectionStore.get('range'),\n edit: this.selectionStore.get('edit'),\n };\n }\n get element() { return getElement(this); }\n static get watchers() { return {\n \"selectionStore\": [{\n \"selectionServiceSet\": 0\n }],\n \"dimensionRow\": [{\n \"createAutoFillService\": 0\n }],\n \"dimensionCol\": [{\n \"createAutoFillService\": 0\n }],\n \"dataStore\": [{\n \"columnServiceSet\": 0\n }],\n \"colData\": [{\n \"columnServiceSet\": 0\n }]\n }; }\n};\nOverlaySelection.style = revogrOverlayStyleCss();\n\nconst RowHeaderRender = s => (__, { rowIndex: i }) => s + i;\n\nconst RevogrRowHeaders = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.scrollViewport = createEvent(this, \"scrollview\", 3);\n this.elementToScroll = createEvent(this, \"ref\", 3);\n /**\n * Prevent rendering until job is done.\n * Can be used for initial rendering performance improvement.\n * When several plugins require initial rendering this will prevent double initial rendering.\n */\n this.jobsBeforeRender = [];\n }\n render() {\n const dataViews = [];\n const viewport = new ViewportStore('colPinStart');\n /** render viewports rows */\n let totalLength = 1;\n // todo: this part could be optimized to avoid to often re-render dataPorts can be cached\n for (let data of this.dataPorts) {\n const itemCount = data.dataStore.get('items').length;\n // initiate row data\n const dataStore = new DataStore(data.type, Object.assign({}, data.dataStore.state));\n // initiate column data\n const colData = new DataStore('colPinStart');\n const column = Object.assign({ cellTemplate: RowHeaderRender(totalLength) }, this.rowHeaderColumn);\n colData.updateData([column]);\n dataViews.push(h(\"revogr-data\", Object.assign({}, data, { colType: \"rowHeaders\", jobsBeforeRender: this.jobsBeforeRender, rowClass: this.rowClass, dataStore: dataStore.store, colData: colData.store, viewportCol: viewport.store, readonly: true, range: false })));\n totalLength += itemCount;\n }\n const colSize = calculateRowHeaderSize(totalLength, this.rowHeaderColumn);\n viewport.setViewport({\n realCount: 1,\n virtualSize: 0,\n items: [\n {\n size: colSize,\n start: 0,\n end: colSize,\n itemIndex: 0,\n },\n ],\n });\n const viewportScroll = {\n contentHeight: this.height,\n contentWidth: 0,\n style: { minWidth: `${colSize}px` },\n colType: 'rowHeaders',\n ref: (el) => this.elementToScroll.emit(el),\n onScrollviewport: (e) => this.scrollViewport.emit(e.detail),\n };\n const viewportHeader = Object.assign(Object.assign({}, this.headerProp), {\n // groups not present on row headers\n groups: [], colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [], viewportCol: viewport.store, canResize: false, type: ROW_HEADER_TYPE,\n // parent,\n slot: HEADER_SLOT\n });\n return (h(Host, { class: { [ROW_HEADER_TYPE]: true }, key: ROW_HEADER_TYPE }, h(\"revogr-viewport-scroll\", Object.assign({ key: 'c401e82e02e4bdb7afb25f2f49c6776f2e115c81' }, viewportScroll, { \"row-header\": true }), h(\"revogr-header\", Object.assign({ key: '3c73d27bd96e23a34fc0cf47eda4d2e65751df98' }, viewportHeader)), dataViews)));\n }\n};\n\n/**\n * Autohide scroll for MacOS when scroll is visible only for 1 sec\n */\nclass AutohideScrollPlugin {\n constructor(element) {\n this.element = element;\n this.autohideScrollTimeout = 0;\n }\n /**\n * When scroll size updates set it up for autohide\n */\n setScrollSize(s) {\n if (!s) {\n this.element.setAttribute('autohide', 'true');\n }\n else {\n this.element.removeAttribute('autohide');\n }\n }\n /**\n * On each scroll check if it's time to show\n */\n checkScroll({ scrollSize, contentSize, virtualSize, }) {\n const hasScroll = contentSize > virtualSize;\n const isHidden = !scrollSize && hasScroll;\n if (isHidden) {\n this.element.setAttribute('visible', 'true');\n this.autohideScrollTimeout = this.show(this.element, this.autohideScrollTimeout);\n }\n }\n show(element, timeout) {\n clearTimeout(timeout);\n return Number(setTimeout(() => {\n element === null || element === void 0 ? void 0 : element.removeAttribute('visible');\n }, 1000));\n }\n clear() {\n clearTimeout(this.autohideScrollTimeout);\n }\n}\n\nconst revogrScrollStyleCss = () => `revogr-scroll-virtual[autohide]{position:absolute;z-index:100 !important}revogr-scroll-virtual[autohide].vertical{top:0;right:0}revogr-scroll-virtual[autohide].vertical[visible]{min-width:20px !important}revogr-scroll-virtual[autohide].horizontal{bottom:0;left:0}revogr-scroll-virtual[autohide].horizontal[visible]{min-height:20px !important}revogr-scroll-virtual.vertical{overflow-y:auto;overflow-x:hidden;height:100%}revogr-scroll-virtual.vertical>div{width:1px}revogr-scroll-virtual.horizontal{overflow-x:auto;overflow-y:hidden;width:100%}revogr-scroll-virtual.horizontal>div{height:1px}`;\n\nconst RevogrScrollVirtual = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.scrollVirtual = createEvent(this, \"scrollvirtual\", 7);\n /**\n * Scroll dimension (`X` - `rgCol` or `Y` - `rgRow`)\n */\n this.dimension = 'rgRow';\n this.scrollSize = 0;\n }\n async setScroll(e) {\n var _a;\n if (this.dimension !== e.dimension) {\n return;\n }\n this.localScrollTimer.latestScrollUpdate(e.dimension);\n (_a = this.localScrollService) === null || _a === void 0 ? void 0 : _a.setScroll(e);\n if (e.coordinate) {\n this.autohideScrollPlugin.checkScroll({\n scrollSize: this.scrollSize,\n contentSize: this.realSize,\n virtualSize: this.virtualSize,\n });\n }\n }\n /**\n * Update if `delta` exists in case we don't know current position or if it's external change\n */\n async changeScroll(e) {\n if (e.delta) {\n const scrollProperty = e.dimension === 'rgRow' ? 'scrollTop' : 'scrollLeft';\n const currentPhysicalCoordinate = this.element[scrollProperty];\n return this.localScrollService.setScrollByDelta(e, currentPhysicalCoordinate);\n }\n return e;\n }\n connectedCallback() {\n this.autohideScrollPlugin = new AutohideScrollPlugin(this.element);\n this.localScrollTimer = new LocalScrollTimer('ontouchstart' in document.documentElement ? 0 : 10);\n this.localScrollService = new LocalScrollService({\n runScroll: e => this.scrollVirtual.emit(e),\n applyScroll: e => {\n this.localScrollTimer.setCoordinate(e);\n const type = e.dimension === 'rgRow' ? 'scrollTop' : 'scrollLeft';\n // this will trigger on scroll event\n this.element[type] = e.coordinate;\n },\n });\n }\n disconnectedCallback() {\n this.autohideScrollPlugin.clear();\n }\n componentWillLoad() {\n this.scrollSize = getScrollbarSize(document);\n }\n componentDidRender() {\n let scrollSize = 0;\n if (this.dimension === 'rgRow') {\n scrollSize = this.element.scrollHeight > this.element.clientHeight ? this.scrollSize : 0;\n this.element.style.minWidth = `${scrollSize}px`;\n }\n else {\n scrollSize = this.element.scrollWidth > this.element.clientWidth ? this.scrollSize : 0;\n this.element.style.minHeight = `${scrollSize}px`;\n }\n this.autohideScrollPlugin.setScrollSize(scrollSize);\n this.localScrollService.setParams({\n contentSize: this.realSize,\n clientSize: this.dimension === 'rgRow' ? this.element.clientHeight : this.element.clientWidth,\n virtualSize: this.clientSize,\n }, this.dimension);\n }\n onScroll(e) {\n if (!(e.target instanceof Element)) {\n return;\n }\n const target = e.target;\n let type = 'scrollLeft';\n if (this.dimension === 'rgRow') {\n type = 'scrollTop';\n }\n const setScroll = () => {\n var _a;\n (_a = this.localScrollService) === null || _a === void 0 ? void 0 : _a.scroll(target[type] || 0, this.dimension);\n };\n // apply after throttling\n if (this.localScrollTimer.isReady(this.dimension, target[type])) {\n setScroll();\n }\n else {\n this.localScrollTimer.throttleLastScrollUpdate(this.dimension, target[type] || 0, () => setScroll());\n }\n }\n render() {\n const size = getContentSize(this.realSize, this.dimension === 'rgRow' ? this.element.clientHeight : this.element.clientWidth, this.clientSize);\n return (h(Host, { key: '7213817ef941eee4050b714266598ec0c2961ee9', onScroll: (e) => this.onScroll(e) }, h(\"div\", { key: '501da49c63253ab943172494b9dbf5399be56cee', style: {\n [this.dimension === 'rgRow' ? 'height' : 'width']: `${size}px`,\n } })));\n }\n get element() { return getElement(this); }\n};\nRevogrScrollVirtual.style = revogrScrollStyleCss();\n\nconst revogrTempRangeStyleCss = () => `.temp-bg-range{display:block !important;position:absolute;pointer-events:none;z-index:9;border:1px solid var(--rg-theme-temporary-range-border);box-sizing:border-box}.temp-bg-range.Selection{border:1px dashed var(--rg-theme-temporary-selection-border)}.temp-bg-range>div{width:1px;height:1px;position:absolute}.temp-bg-range>div.top{top:-1px}.temp-bg-range>div.bottom{bottom:-1px}.temp-bg-range>div.left{left:-1px}.temp-bg-range>div.right{right:-1px}`;\n\nconst RevogrFocus = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.onChange = throttle((e) => this.doChange(e), 300);\n }\n doChange(e) {\n e === null || e === void 0 ? void 0 : e.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n componentDidRender() {\n if (this.el) {\n this.onChange(this.el);\n }\n }\n render() {\n const data = this.selectionStore.get('tempRange');\n const type = this.selectionStore.get('tempRangeType');\n if (!data) {\n return;\n }\n let directionY = 'bottom';\n let derectionX = 'right';\n const range = this.getRange();\n if (!range) {\n return;\n }\n if (data.y < range.y) {\n directionY = 'top';\n }\n if (data.x < range.x) {\n derectionX = 'left';\n }\n const directionClass = `${derectionX} ${directionY}`;\n const cell = getCell(data, this.dimensionRow.state, this.dimensionCol.state);\n const styles = styleByCellProps(cell);\n const props = {\n class: {\n [TMP_SELECTION_BG_CLASS]: true,\n [type || '']: true,\n },\n style: styles,\n hidden: false\n };\n return (h(Host, Object.assign({}, props), h(\"div\", { class: directionClass, ref: (e) => (this.el = e) })));\n }\n getRange() {\n const range = this.selectionStore.get('range');\n if (range) {\n return range;\n }\n const focus = this.selectionStore.get('focus');\n if (!focus) {\n return null;\n }\n return Object.assign(Object.assign({}, focus), { x1: focus.x, y1: focus.y });\n }\n};\nRevogrFocus.style = revogrTempRangeStyleCss();\n\nexport { Attribution as revogr_attribution, RevoGridExtra as revogr_extra, RevogrFocus$1 as revogr_focus, OverlaySelection as revogr_overlay_selection, RevogrRowHeaders as revogr_row_headers, RevogrScrollVirtual as revogr_scroll_virtual, RevogrFocus as revogr_temp_range };\n"]}
|