myprint-design
Version:
操作简单,组件丰富的一站式打印解决方案打印设计器
1 lines • 41.5 kB
Source Map (JSON)
{"version":3,"file":"table-design.vue2.mjs","sources":["../../../../../../../src/components/design/table/data-table/table-design.vue"],"sourcesContent":["<template>\n \n <DataTable :element=\"element\" ref=\"tableRef\" />\n \n <template v-if=\"'HANDLE_ED' == element.runtimeOption.status && !element.lock\">\n \n <div class=\"my-table-resize\" v-for=\"(item, index) in data.resizeControlList\"\n :style=\"{left: item.x + 'px'}\" @mousedown=\"resizeMouseDown($event, index)\" />\n \n <!-- <div class=\"my-table-row-resize\" v-for=\"(item, index) in data.rowResizeControlList\"-->\n <!-- :style=\"{left: item.x + 'px'}\" @mousedown=\"resizeMouseDown($event, index)\" />-->\n <!-- -->\n <!-- <div class=\"my-table-tool\"/>-->\n \n <div class=\"my-table-highlight-sort\"\n :style=\"{left: data.highlightSort.x + 'px', top: data.highlightSort.y + 'px', height: data.highlightSort.height + 'px'}\"\n v-show=\"data.highlightSort.visibility == 'visible'\" />\n \n <div class=\"my-table-highlight-column pointer-events\"\n v-show=\"data.highlightColumn.visibility == 'visible'\"\n :style=\"{\n left: (data.highlightColumn.x-1)+'px',\n top: (data.highlightColumn.y)+'px',\n width: (data.highlightColumn.width+2)+'px',\n height: (data.highlightColumn.height + 3)+'px'\n }\" />\n \n <template v-for=\"(rowList, row) in data.controlPointList\">\n <div class=\"my-table-control-head-point iconfont icon-sigedian\" v-for=\"(item, col) in rowList\"\n :style=\"{left: item.x + 'px', top: (item.y - 10) + 'px'}\"\n :class=\"{'my-table-control-head-point-active': (data.row == row && data.col == col) && data.status != 'RESIZE'}\"\n @mousedown=\"controlPointMouseDown($event, row, col)\">\n </div>\n </template>\n \n <!-- <div class=\"my-table-control-head-col-point iconfont icon-sigedian\"-->\n <!-- v-for=\"(item, index) in data.rowControlPointList\"-->\n <!-- :class=\"{'my-table-control-head-point-active': data.row == index && data.status != 'RESIZE'}\"-->\n <!-- :style=\"{top: item.y + 'px'}\"-->\n <!-- @mousedown=\"rowControlPointMouseDown($event, index)\">-->\n <!-- <div style=\"color: black\">{{ data.row }}</div>-->\n <!-- </div>-->\n \n <div class=\"my-table-statistics-row-remove user-select-none\"\n v-for=\"(item, index) in data.rowRemovePointList\"\n @click=\"removeStatisticsRow(item)\"\n :key=\"index\"\n style=\"background: white !important\"\n :style=\"{top: (item.y-1)+'px'}\" />\n \n <my-popover\n trigger=\"click\"\n ref=\"popoverRef\"\n class=\"table-more-icon_popover\"\n @show=\"showTableEnableSetting\"\n placement=\"top\">\n <template #reference>\n <div class=\"table-more-icon\"\n ref=\"containerMoveIconRef\">\n <i class=\"icon-setting iconfont \" />\n </div>\n </template>\n <my-scrollbar height=\"200px\">\n <div class=\"table_header_setting\">\n <my-tree-list @change=\"changeColumnEnable\" nullActive :list=\"tableHeadNest\" />\n </div>\n </my-scrollbar>\n </my-popover>\n </template>\n\n</template>\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, onUnmounted, reactive, ref, watch } from 'vue-demi';\nimport { Container, MyElement, TableCellElement } from '@myprint/design/types/entity';\nimport DataTable from './data-table.vue';\nimport { elementHandleStatusList } from '@myprint/design/constants/common';\nimport { useAppStoreHook } from '@myprint/design/stores/app';\nimport { sortColumn } from '@myprint/design/utils/utils';\nimport { freshMoveableOption, updateMoveableRect } from '@myprint/design/plugins/moveable/moveable';\nimport { throttle } from 'lodash';\nimport {\n getRecursionParentPanel,\n recursionUpdateCellParentInitWidth,\n recursionUpdateCellParentWidth,\n setCurrentElement,\n setElementHeightPx,\n setElementOffsetWidthPx,\n setElementWidthPx\n} from '@myprint/design/utils/elementUtil';\nimport {\n cellIsContinue,\n computeColumnColspan,\n computedDisableColumn,\n computedTableCell,\n getChildByParent,\n getTableCell,\n getTableCellDown,\n initTableCell,\n lastHeadList,\n selectCell,\n tableHeadList2Nest, tableRealCol\n} from '@myprint/design/utils/table/dataTable';\nimport { tableColClone } from '@myprint/design/utils/myprint';\nimport MyPopover from '@myprint/design/components/my/popover/my-popover.vue';\nimport MyScrollbar from '@myprint/design/components/my/scrollbar/my-scrollbar.vue';\nimport MyTreeList from '@myprint/design/components/my/tree-list/my-tree-list.vue';\nimport numberUtil from '@myprint/design/utils/numberUtil';\n\ntype MyRow = Record<number, number[]>\n\nconst props = withDefaults(defineProps<{\n element: MyElement\n}>(), {\n element: () => ({} as MyElement)\n});\nconst data = reactive({\n status: 'NONE',\n td: undefined,\n row: -1,\n logicRow: -1,\n col: -1,\n handleIng: false,\n controlPointMouseDownIs: false,\n tableMouseEnterIs: false,\n highlightSort: {\n x: 0,\n y: 0,\n height: 0,\n visibility: 'hidden'\n } as Container,\n highlightColumn: {\n rowList: {} as MyRow,\n type: 'NONE',\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n visibility: 'hidden'\n },\n tableRowHeightList: [] as number[],\n lastHeadList: [] as TableCellElement[],\n cellList: [] as TableCellElement[],\n headHeight: 0,\n controlPointList: [] as any[][],\n resizeControlList: [] as any[],\n rowControlPointList: [] as any[],\n rowRemovePointList: [] as any[],\n rowResizeControlList: [] as any[]\n});\nconst tableRef = ref();\nconst useApp = useAppStoreHook();\nlet resizeObserver: ResizeObserver;\n\n// 处理表格行\nconst bodyList = computed(() => {\n const bodyList = [...props.element.tableHeadList, ...props.element.tableBodyList, ...props.element.statisticsList];\n // console.log('computed-bodyList');\n nextTick(() => {\n data.tableRowHeightList = computedTableCell(props.element, tableRef.value.$el, bodyList);\n data.lastHeadList = lastHeadList(props.element.tableHeadList);\n \n initTableCell(bodyList);\n initTableNest();\n \n computeColumn();\n computeColumnHeight();\n });\n return bodyList;\n});\nconst tableHeadNest = ref<TableCellElement[]>([]);\n\nfunction initTableNest() {\n // 不处理enable\n tableHeadNest.value = tableHeadList2Nest(props.element.tableHeadList, 0, 0, props.element.tableHeadList[0].length);\n}\n\nonMounted(() => {\n // console.log(props.element);\n // console.log(props.element.tableHeadList);\n // 创建 ResizeObserver 实例\n resizeObserver = new ResizeObserver((entries) => {\n // entries 是 ResizeObserverEntry 对象的数组\n for (const entry of entries) {\n // console.log(entry);\n if (entry.contentRect.height == 0 && entry.contentRect.width == 0 && entry.contentRect.x == 0) {\n continue;\n }\n // entry.contentRect 包含元素的新尺寸\n // console.log('元素尺寸改变:', entry.contentRect.width, entry.contentRect.height);\n setElementHeightPx(entry.contentRect.height + 1, props.element);\n setElementWidthPx(entry.contentRect.width + 1, props.element);\n nextTick(() => {\n data.tableRowHeightList = computedTableCell(props.element, tableRef.value.$el, bodyList.value);\n if (data.cellList && data.cellList.length > 0) {\n selectCell(data.highlightColumn, data.cellList);\n }\n updateMoveableRect();\n computeColumn();\n computeColumnHeight();\n });\n }\n });\n resizeObserver.observe(tableRef.value.$el);\n \n tableRef.value.$el.parentNode.addEventListener('mouseover', function(event: MouseEvent) {\n if (data.handleIng) {\n return;\n }\n const target = event.target!;\n // @ts-ignore\n const cell = target.closest('td');\n if (cell == undefined) {\n return;\n }\n data.td = cell;\n data.row = cell.parentNode.rowIndex;\n // console.log(event.offsetY);\n // data.logicRow = cell.parentNode.rowIndex;\n data.col = cell.cellIndex;\n \n // console.log(rowIndex, cell.cellIndex);\n data.tableMouseEnterIs = true;\n });\n \n tableRef.value.$el.parentNode.addEventListener('mouseleave', function(_event: MouseEvent) {\n // console.log('离开')\n if (data.handleIng) {\n return;\n }\n data.tableMouseEnterIs = false;\n \n if (data.controlPointMouseDownIs) {\n return;\n }\n data.row = -1;\n data.col = -1;\n });\n bodyList.value;\n});\n\nonUnmounted(() => {\n resizeObserver.disconnect();\n});\n\nfunction showTableEnableSetting() {\n initTableNest();\n}\n\n/**\n * 排序控制点事件\n */\nfunction controlPointMouseDown(ev: MouseEvent, row: number, col: number) {\n \n data.row = row;\n data.col = col;\n data.controlPointMouseDownIs = true;\n data.handleIng = true;\n \n const columnRect = (data.td! as HTMLElement).getBoundingClientRect();\n const tableRect = (tableRef.value.$el as HTMLElement).getBoundingClientRect();\n const columnLeft = columnRect.left;\n const columnTop = columnRect.top;\n const columnWidth = columnRect.width;\n \n const tableLeft = tableRect.left;\n const tableWidth = tableRect.width;\n const { rowCellList, colIndex } = getTableCellDown(props.element, bodyList.value, data.row, data.col);\n const childByParentList = getChildByParent(bodyList.value, data.row, colIndex);\n \n let columnCell: MyElement = rowCellList[0][0];\n let clientStartX = ev.clientX;\n let clientStartY = ev.clientY;\n \n data.highlightSort.y = columnCell.runtimeOption.y;\n data.highlightSort.height = props.element.runtimeOption.height - columnCell.runtimeOption.y;\n \n tableColClone.show(columnLeft, columnTop, columnCell.runtimeOption.width, rowCellList);\n \n // 设置可移动范围\n let targetIndex: number | undefined = undefined;\n \n function controlPointMouseMove(ev: MouseEvent) {\n let clientMoveX = ev.clientX;\n // console.log(clientMoveX);\n const columnCloneLeft = columnLeft + clientMoveX - clientStartX;\n const offsetX = columnCloneLeft + columnWidth / 2 - tableLeft;\n let findIs = false;\n // console.log(data.col);\n if (columnCloneLeft >= tableLeft - columnWidth && columnCloneLeft + columnWidth <= tableLeft + tableWidth + columnWidth) {\n tableColClone.move(columnCloneLeft);\n \n for (let i = 0; i < childByParentList.length; i++) {\n let columnCellTmp = childByParentList[i];\n if (columnCellTmp === columnCell) {\n continue;\n }\n \n // 判断排序高亮的绿色竖线是否显示\n if (offsetX >= (i == 0 ? columnCellTmp.runtimeOption.x - columnCell.width : columnCellTmp.runtimeOption.x)\n && offsetX <= columnCellTmp.runtimeOption.x + (i == childByParentList.length - 1 ? columnCellTmp.runtimeOption.width + columnCell.runtimeOption.width : columnCellTmp.runtimeOption.width)) {\n if (offsetX <= columnCellTmp.runtimeOption.x + columnCellTmp.runtimeOption.width / 2) {\n if (i == col + 1) {\n continue;\n }\n data.highlightSort.x = columnCellTmp.runtimeOption.x;\n targetIndex = i;\n findIs = true;\n } else {\n if (i == col - 1) {\n continue;\n }\n data.highlightSort.x = columnCellTmp.runtimeOption.x + columnCellTmp.runtimeOption.width;\n targetIndex = i + 1;\n findIs = true;\n }\n break;\n }\n }\n }\n \n if (findIs) {\n data.highlightSort.visibility = 'visible';\n } else {\n targetIndex = undefined;\n data.highlightSort.visibility = 'hidden';\n }\n }\n \n function controlPointMouseUp(evUp: MouseEvent) {\n \n let clientEndX = evUp.clientX;\n let clientEndY = evUp.clientY;\n data.handleIng = false;\n \n if (clientStartX == clientEndX && clientEndY == clientStartY) {\n // 选取整列\n const { cellList } = getTableCellDown(props.element, bodyList.value, data.row, data.col);\n data.cellList = cellList;\n selectCell(data.highlightColumn, data.cellList);\n } else {\n if (targetIndex != undefined) {\n // console.log(col, targetIndex);\n if (targetIndex > col) {\n targetIndex--;\n }\n // console.log(col, targetIndex);\n sortColumn(props.element, colIndex, row, col, targetIndex);\n // if (data.highlightColumn.rowList[data.row] == data.col) {\n // data.highlightColumn.col = targetIndex;\n // }\n \n nextTick(() => {\n computedTableCell(props.element, props.element.runtimeOption.target, bodyList.value);\n computeColumn();\n });\n // const rect = computedCellRect(data.cellList);\n // data.highlightColumn.x = rect.x;\n // data.highlightColumn.y = rect.y;\n // data.highlightColumn.width = rect.width;\n // data.highlightColumn.height = rect.height;\n \n data.highlightColumn.visibility = 'hidden';\n // data.highlightColumn.rowList = {};\n }\n }\n \n document.removeEventListener('mousemove', controlPointMouseMove);\n document.removeEventListener('mouseup', controlPointMouseUp);\n // console.log('up')\n tableColClone.hidden();\n useApp.dataRotation = 'none';\n \n data.controlPointMouseDownIs = false;\n \n if (!data.tableMouseEnterIs) {\n data.row = -1;\n data.col = -1;\n }\n data.highlightSort.visibility = 'hidden';\n }\n \n useApp.dataRotation = 'move';\n ev.stopPropagation();\n document.addEventListener('mousemove', controlPointMouseMove);\n document.addEventListener('mouseup', controlPointMouseUp);\n}\n\n// function rowControlPointMouseDown(ev: MouseEvent, row: number) {\n//\n// data.row = row;\n// data.col = 0;\n// data.controlPointMouseDownIs = true;\n//\n// let clientStartX = ev.clientX;\n// let clientStartY = ev.clientY;\n//\n// function controlPointMouseUp(evUp: MouseEvent) {\n//\n// let clientEndX = evUp.clientX;\n// let clientEndY = evUp.clientY;\n// // console.log(bodyList.value[data.row]);\n// let bodyElement: MyElement = bodyList.value[data.row][0];\n// // console.log(bodyElement);\n// if (clientStartX == clientEndX && clientEndY == clientStartY) {\n// data.highlightColumn.rowList = {};\n// data.highlightColumn.width = props.element.runtimeOption.width;\n// data.highlightColumn.x = 0;\n// data.highlightColumn.rowList[data.row] = Array.from(bodyList.value[data.row], (_, i) => i + 1);\n// data.highlightColumn.y = bodyElement.runtimeOption.y;\n// data.highlightColumn.height = bodyElement.runtimeOption.height;\n// setCurrentElement(bodyList.value[data.row]);\n//\n// data.highlightColumn.visibility = 'visible';\n// } else {\n//\n// }\n//\n// document.removeEventListener('mouseup', controlPointMouseUp);\n// // console.log('up')\n// useApp.dataRotation = 'none';\n//\n// data.controlPointMouseDownIs = false;\n//\n// if (!data.tableMouseEnterIs) {\n// data.row = -1;\n// data.col = -1;\n// }\n// }\n//\n// useApp.dataRotation = 'move';\n// ev.stopPropagation();\n// document.addEventListener('mouseup', controlPointMouseUp);\n// }\n\n/**\n * 更改列宽\n */\nfunction resizeMouseDown(ev: MouseEvent, col: number) {\n const clientStartX = ev.clientX;\n const realHeadCell = tableRealCol(props.element, data.lastHeadList, col)!;\n const columnElement = realHeadCell;\n const columnOldWidth = realHeadCell.runtimeOption.width;\n const tableOldWidth = props.element.runtimeOption.width;\n useApp.dataRotation = 'col-resize';\n data.status = 'RESIZE';\n data.handleIng = true;\n console.log(col);\n \n function resizeMouseMove(ev: MouseEvent) {\n const offsetX = ev.clientX - clientStartX;\n const newWidth = columnOldWidth + offsetX;\n // console.log(offsetX);\n if (newWidth > 20) {\n setElementWidthPx(tableOldWidth + offsetX, props.element);\n recursionUpdateCellParentWidth(columnElement, offsetX, getRecursionParentPanel(props.element));\n // 更新body 的宽\n setElementOffsetWidthPx(offsetX, tableRealCol(props.element, props.element.tableBodyList[0], col)!);\n // 更新\n updateMoveableRect();\n // 更新resize位置\n computeColumn();\n }\n // 计算辅助位置\n if (data.highlightColumn.visibility == 'visible') {\n nextTick(() => {\n computedTableCell(props.element, props.element.runtimeOption.target, bodyList.value);\n selectCell(data.highlightColumn, data.cellList);\n });\n \n // const rect = computedCellRect(props.element.runtimeOption.target, data.cellList);\n // data.highlightColumn.x = rect.x;\n // data.highlightColumn.y = rect.y;\n // data.highlightColumn.width = rect.width;\n // data.highlightColumn.height = rect.height;\n }\n }\n \n function resizeMouseUp() {\n useApp.dataRotation = 'none';\n data.status = 'NONE';\n data.handleIng = false;\n initTableCell(bodyList.value);\n recursionUpdateCellParentInitWidth(columnElement);\n document.removeEventListener('mousemove', resizeMouseMove);\n document.removeEventListener('mouseup', resizeMouseUp);\n }\n \n ev.stopPropagation();\n document.addEventListener('mousemove', resizeMouseMove);\n document.addEventListener('mouseup', resizeMouseUp);\n}\n\nfunction tableMouseDown(ev: MouseEvent) {\n // console.log(data);\n // console.log(data.row, data.col);\n // console.log(data.tableRowHeightList);\n data.cellList = getTableCell(props.element, bodyList.value, data.row, data.col);\n // 选取范围\n console.log(data.cellList);\n // const rect = computedCellRect(props.element.runtimeOption.target, data.cellList);\n // console.log(rect);\n \n let clientStartX = ev.clientX, clientStartY = ev.clientY;\n \n function tableMouseUp(ev: MouseEvent) {\n let clientEndX = ev.clientX, clientEndY = ev.clientY;\n \n if (clientEndX == clientStartX && clientEndY == clientStartY) {\n // click\n selectCell(data.highlightColumn, data.cellList);\n // data.highlightColumn.x = rect.x;\n // data.highlightColumn.y = rect.y;\n // data.highlightColumn.width = rect.width;\n // data.highlightColumn.height = rect.height;\n // data.highlightColumn.rowList = {};\n // data.highlightColumn.rowList[data.row] = [data.col];\n // data.highlightColumn.visibility = 'visible';\n // setCurrentElement(data.cellList);\n }\n \n document.removeEventListener('mouseup', tableMouseUp);\n }\n \n document.addEventListener('mouseup', tableMouseUp);\n}\n\nfunction removeStatisticsRow(item: any) {\n // console.log('删除');\n data.cellList = [];\n data.highlightColumn.visibility = 'hidden';\n setCurrentElement([props.element]);\n // console.log(bodyList.value.length);\n props.element.statisticsList.splice(item.row, 1);\n // console.log(bodyList.value.length);\n bodyList.value;\n}\n\nfunction changeColumnEnable() {\n props.element.disableCellMap = computedDisableColumn(props.element.tableHeadList);\n \n computeColumnColspan(tableHeadNest.value, 0);\n let widthTotal = 0;\n for (let lastHeadListElement of data.lastHeadList) {\n widthTotal = numberUtil.sum(widthTotal, lastHeadListElement.runtimeOption.width);\n }\n setElementWidthPx(numberUtil.sum(widthTotal, 1), props.element);\n \n nextTick(() => {\n computedTableCell(props.element, props.element.runtimeOption.target, bodyList.value);\n computeColumn();\n });\n}\n\nwatch(() => props.element.option.tableHeightType, (n, _o) => {\n if (n == 'AUTO') {\n resizeObserver.observe(tableRef.value.$el);\n } else {\n resizeObserver.unobserve(tableRef.value.$el);\n }\n freshMoveableOption(props.element);\n});\n\nwatch(() => props.element.runtimeOption.status, (n, _o) => {\n if (elementHandleStatusList.includes(n)) {\n // console.log('han')\n tableRef.value.$el.addEventListener('mousedown', tableMouseDown);\n // tableRef.value.$el.nextElementSibling.addEventListener('mousedown', tableMouseDown);\n } else {\n tableRef.value.$el.removeEventListener('mousedown', tableMouseDown);\n data.highlightColumn.visibility = 'hidden';\n // data.highlightColumn.rowList = {};\n // setCurrentElement(defaultElement);\n }\n});\n\nconst computeColumn = throttle(() => {\n data.controlPointList.length = 0;\n data.resizeControlList.length = 0;\n \n // 控制点\n for (let tableHeadListElement of props.element.tableHeadList) {\n const pointListTmp: any[] = [];\n for (let col = 0; col < tableHeadListElement.length; col++) {\n let tableCellElement = tableHeadListElement[col];\n if (cellIsContinue(props.element, tableCellElement, col)) {\n continue;\n }\n \n pointListTmp.push({\n x: tableCellElement.runtimeOption.x + tableCellElement.runtimeOption.width / 2 - 10,\n y: tableCellElement.runtimeOption.y\n });\n }\n data.controlPointList.push(pointListTmp);\n }\n \n // 缩放列宽度\n for (let col = 0; col < data.lastHeadList.length; col++) {\n let tableCellElement = data.lastHeadList[col];\n if (cellIsContinue(props.element, tableCellElement, col)) {\n continue;\n }\n data.resizeControlList.push({\n x: tableCellElement.runtimeOption.x + tableCellElement.runtimeOption.width - 5,\n y: 0\n });\n }\n}, 10);\n\nconst computeColumnHeight = throttle(() => {\n // console.log('---')\n data.rowControlPointList.length = 0;\n data.rowResizeControlList.length = 0;\n data.rowRemovePointList.length = 0;\n let height = 0;\n \n for (let i = 0; i < bodyList.value.length; i++) {\n const rowList = bodyList.value[i];\n // console.log(rowList);\n let firstColumn = rowList[0];\n for (let rowListElement of rowList) {\n if (rowListElement != null && rowListElement.rowspan == 1) {\n firstColumn = rowListElement;\n break;\n }\n }\n if (firstColumn == null) {\n continue;\n }\n // firstColumn.runtimeOption.y = height;\n height = height + firstColumn.runtimeOption.height;\n \n data.rowControlPointList.push({\n x: 0,\n y: firstColumn.runtimeOption.y + firstColumn.runtimeOption.height / 2 - 10\n });\n }\n \n for (let i = 0; i < props.element.statisticsList.length; i++) {\n let firstColumn = props.element.statisticsList[i][0];\n data.rowRemovePointList.push({\n row: i,\n y: firstColumn.runtimeOption.y + firstColumn.runtimeOption.height / 2 - 10\n });\n }\n \n // console.log(data.rowRemovePointList);\n \n // console.log(props.element.bodyList);\n // console.log(data.rowControlPointList);\n // data.rowResizeControlList.push({\n // x: 0,\n // y: column.runtimeOption.y + column.runtimeOption.height - 5\n // });\n \n // const keys = Object.keys(data.highlightColumn.rowList);\n // console.log(keys);\n // if (keys.length > 0) {\n // const colKeys = Object.keys(data.highlightColumn.rowList[keys[0]]);\n // let width = 0;\n // let minIndex = 99999;\n // console.log(data.highlightColumn.rowList);\n // for (let colKey of colKeys) {\n // console.log(colKey);\n // const columnElement = props.element.headList[colKey];\n // // const bodyElement = bodyList[colKey];\n // if (minIndex > Number.parseInt(colKey)) {\n // minIndex = Number.parseInt(colKey);\n // }\n // width = width + columnElement.runtimeOption.width;\n // }\n //\n // data.highlightColumn.width = width;\n // data.highlightColumn.x = props.element.headList[minIndex].runtimeOption.x;\n //\n // // if (data.highlightColumn.y != 0) {\n // // data.highlightColumn.y = columnElement.runtimeOption.height;\n // // data.highlightColumn.height = bodyElement.runtimeOption.height;\n // // } else {\n // // data.highlightColumn.height = columnElement.runtimeOption.height;\n // // }\n // }\n}, 10);\n\n</script>\n"],"names":["bodyList","ev","numberUtil"],"mappings":"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"}