{"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            // 设置元素高度和宽度 + 2 （+1会死循环）\n            setElementHeightPx(entry.contentRect.height + 2, props.element);\n            setElementWidthPx(entry.contentRect.width + 2, 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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"}