tdesign-vue-next 1.8.2-alpha.1 → 1.8.2-alpha.2
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/cjs/_chunks/{dep-e401fa95.js → dep-05724dfb.js} +1 -1
- package/cjs/_chunks/{dep-e401fa95.js.map → dep-05724dfb.js.map} +1 -1
- package/cjs/auto-complete/index.d.ts +10 -10
- package/cjs/auto-complete/index.js.map +1 -1
- package/cjs/auto-complete/type.d.ts +4 -0
- package/cjs/index-lib.js +1 -1
- package/cjs/index.js +1 -1
- package/cjs/table/base-table.js +3 -2
- package/cjs/table/base-table.js.map +1 -1
- package/cjs/table/hooks/useFixed.js +1 -1
- package/cjs/table/hooks/useFixed.js.map +1 -1
- package/cjs/table/hooks/useTreeDataExpand.js +2 -2
- package/cjs/table/hooks/useTreeDataExpand.js.map +1 -1
- package/dist/tdesign.js +6 -5
- package/dist/tdesign.js.map +1 -1
- package/dist/tdesign.min.js +2 -2
- package/dist/tdesign.min.js.map +1 -1
- package/es/_chunks/{dep-5ef9b79d.mjs → dep-25b5a758.mjs} +1 -1
- package/es/_chunks/{dep-5ef9b79d.mjs.map → dep-25b5a758.mjs.map} +1 -1
- package/es/auto-complete/index.d.ts +10 -10
- package/es/auto-complete/index.mjs.map +1 -1
- package/es/auto-complete/type.d.ts +4 -0
- package/es/index.mjs +1 -1
- package/es/nuxt/components/Affix.mjs +1 -2
- package/es/nuxt/components/Alert.mjs +1 -2
- package/es/nuxt/components/Anchor.mjs +1 -2
- package/es/nuxt/components/AnchorItem.mjs +1 -2
- package/es/nuxt/components/AnchorTarget.mjs +1 -2
- package/es/nuxt/components/Aside.mjs +1 -2
- package/es/nuxt/components/AutoComplete.mjs +1 -2
- package/es/nuxt/components/Avatar.mjs +1 -2
- package/es/nuxt/components/AvatarGroup.mjs +1 -2
- package/es/nuxt/components/BackTop.mjs +1 -2
- package/es/nuxt/components/Badge.mjs +1 -2
- package/es/nuxt/components/BaseTable.mjs +1 -2
- package/es/nuxt/components/Breadcrumb.mjs +1 -2
- package/es/nuxt/components/BreadcrumbItem.mjs +1 -2
- package/es/nuxt/components/Button.mjs +1 -2
- package/es/nuxt/components/Calendar.mjs +1 -2
- package/es/nuxt/components/Card.mjs +1 -2
- package/es/nuxt/components/Cascader.mjs +1 -2
- package/es/nuxt/components/CascaderPanel.mjs +1 -2
- package/es/nuxt/components/CheckTag.mjs +1 -2
- package/es/nuxt/components/CheckTagGroup.mjs +1 -2
- package/es/nuxt/components/Checkbox.mjs +1 -2
- package/es/nuxt/components/CheckboxGroup.mjs +1 -2
- package/es/nuxt/components/Col.mjs +1 -2
- package/es/nuxt/components/Collapse.mjs +1 -2
- package/es/nuxt/components/CollapsePanel.mjs +1 -2
- package/es/nuxt/components/ColorPicker.mjs +1 -2
- package/es/nuxt/components/ColorPickerPanel.mjs +1 -2
- package/es/nuxt/components/Comment.mjs +1 -2
- package/es/nuxt/components/ConfigProvider.mjs +1 -2
- package/es/nuxt/components/Content.mjs +1 -2
- package/es/nuxt/components/DatePicker.mjs +1 -2
- package/es/nuxt/components/DatePickerPanel.mjs +1 -2
- package/es/nuxt/components/DateRangePicker.mjs +1 -2
- package/es/nuxt/components/DateRangePickerPanel.mjs +1 -2
- package/es/nuxt/components/Descriptions.mjs +1 -2
- package/es/nuxt/components/DescriptionsItem.mjs +1 -2
- package/es/nuxt/components/Dialog.mjs +1 -2
- package/es/nuxt/components/DialogPlugin.mjs +1 -2
- package/es/nuxt/components/Divider.mjs +1 -2
- package/es/nuxt/components/Drawer.mjs +1 -2
- package/es/nuxt/components/Dropdown.mjs +1 -2
- package/es/nuxt/components/DropdownItem.mjs +1 -2
- package/es/nuxt/components/DropdownMenu.mjs +1 -2
- package/es/nuxt/components/EnhancedTable.mjs +1 -2
- package/es/nuxt/components/Footer.mjs +1 -2
- package/es/nuxt/components/Form.mjs +1 -2
- package/es/nuxt/components/FormItem.mjs +1 -2
- package/es/nuxt/components/Guide.mjs +1 -2
- package/es/nuxt/components/HeadMenu.mjs +1 -2
- package/es/nuxt/components/Header.mjs +1 -2
- package/es/nuxt/components/HighlightOption.mjs +1 -2
- package/es/nuxt/components/Icon.mjs +1 -2
- package/es/nuxt/components/Image.mjs +1 -2
- package/es/nuxt/components/ImageViewer.mjs +1 -2
- package/es/nuxt/components/Input.mjs +1 -2
- package/es/nuxt/components/InputAdornment.mjs +1 -2
- package/es/nuxt/components/InputGroup.mjs +1 -2
- package/es/nuxt/components/InputNumber.mjs +1 -2
- package/es/nuxt/components/Layout.mjs +1 -2
- package/es/nuxt/components/Link.mjs +1 -2
- package/es/nuxt/components/List.mjs +1 -2
- package/es/nuxt/components/ListItem.mjs +1 -2
- package/es/nuxt/components/ListItemMeta.mjs +1 -2
- package/es/nuxt/components/Loading.mjs +1 -2
- package/es/nuxt/components/LoadingPlugin.mjs +1 -2
- package/es/nuxt/components/Menu.mjs +1 -2
- package/es/nuxt/components/MenuGroup.mjs +1 -2
- package/es/nuxt/components/MenuItem.mjs +1 -2
- package/es/nuxt/components/Message.mjs +1 -2
- package/es/nuxt/components/MessagePlugin.mjs +1 -2
- package/es/nuxt/components/Notification.mjs +1 -2
- package/es/nuxt/components/Notify.mjs +1 -2
- package/es/nuxt/components/NotifyPlugin.mjs +1 -2
- package/es/nuxt/components/Option.mjs +1 -2
- package/es/nuxt/components/OptionGroup.mjs +1 -2
- package/es/nuxt/components/Pagination.mjs +1 -2
- package/es/nuxt/components/PaginationMini.mjs +1 -2
- package/es/nuxt/components/Popconfirm.mjs +1 -2
- package/es/nuxt/components/Popup.mjs +1 -2
- package/es/nuxt/components/PrimaryTable.mjs +1 -2
- package/es/nuxt/components/Progress.mjs +1 -2
- package/es/nuxt/components/Radio.mjs +1 -2
- package/es/nuxt/components/RadioButton.mjs +1 -2
- package/es/nuxt/components/RadioGroup.mjs +1 -2
- package/es/nuxt/components/RangeInput.mjs +1 -2
- package/es/nuxt/components/RangeInputPopup.mjs +1 -2
- package/es/nuxt/components/Rate.mjs +1 -2
- package/es/nuxt/components/Row.mjs +1 -2
- package/es/nuxt/components/Select.mjs +1 -2
- package/es/nuxt/components/SelectInput.mjs +1 -2
- package/es/nuxt/components/Skeleton.mjs +1 -2
- package/es/nuxt/components/Slider.mjs +1 -2
- package/es/nuxt/components/SliderButton.mjs +1 -2
- package/es/nuxt/components/Space.mjs +1 -2
- package/es/nuxt/components/Statistic.mjs +1 -2
- package/es/nuxt/components/StepItem.mjs +1 -2
- package/es/nuxt/components/Steps.mjs +1 -2
- package/es/nuxt/components/StickyItem.mjs +1 -2
- package/es/nuxt/components/StickyTool.mjs +1 -2
- package/es/nuxt/components/Submenu.mjs +1 -2
- package/es/nuxt/components/Swiper.mjs +1 -2
- package/es/nuxt/components/SwiperItem.mjs +1 -2
- package/es/nuxt/components/Switch.mjs +1 -2
- package/es/nuxt/components/TabPanel.mjs +1 -2
- package/es/nuxt/components/Table.mjs +1 -2
- package/es/nuxt/components/Tabs.mjs +1 -2
- package/es/nuxt/components/Tag.mjs +1 -2
- package/es/nuxt/components/TagInput.mjs +1 -2
- package/es/nuxt/components/Textarea.mjs +1 -2
- package/es/nuxt/components/TimePicker.mjs +1 -2
- package/es/nuxt/components/TimePickerPanel.mjs +1 -2
- package/es/nuxt/components/TimeRangePicker.mjs +1 -2
- package/es/nuxt/components/Timeline.mjs +1 -2
- package/es/nuxt/components/TimelineItem.mjs +1 -2
- package/es/nuxt/components/Tooltip.mjs +1 -2
- package/es/nuxt/components/Transfer.mjs +1 -2
- package/es/nuxt/components/Tree.mjs +1 -2
- package/es/nuxt/components/TreeSelect.mjs +1 -2
- package/es/nuxt/components/Upload.mjs +1 -2
- package/es/nuxt/components/Watermark.mjs +1 -2
- package/es/nuxt/index.mjs +1 -1
- package/es/table/base-table.mjs +3 -2
- package/es/table/base-table.mjs.map +1 -1
- package/es/table/hooks/useFixed.mjs +1 -1
- package/es/table/hooks/useFixed.mjs.map +1 -1
- package/es/table/hooks/useTreeDataExpand.mjs +2 -2
- package/es/table/hooks/useTreeDataExpand.mjs.map +1 -1
- package/esm/_chunks/{dep-dd6b7e27.js → dep-b9d64ff1.js} +1 -1
- package/esm/_chunks/{dep-dd6b7e27.js.map → dep-b9d64ff1.js.map} +1 -1
- package/esm/auto-complete/index.d.ts +10 -10
- package/esm/auto-complete/index.js.map +1 -1
- package/esm/auto-complete/type.d.ts +4 -0
- package/esm/index.js +1 -1
- package/esm/table/base-table.js +3 -2
- package/esm/table/base-table.js.map +1 -1
- package/esm/table/hooks/useFixed.js +1 -1
- package/esm/table/hooks/useFixed.js.map +1 -1
- package/esm/table/hooks/useTreeDataExpand.js +2 -2
- package/esm/table/hooks/useTreeDataExpand.js.map +1 -1
- package/lib/_chunks/{dep-fa2656e4.js → dep-d69c6270.js} +1 -1
- package/lib/_chunks/{dep-fa2656e4.js.map → dep-d69c6270.js.map} +1 -1
- package/lib/auto-complete/index.d.ts +10 -10
- package/lib/auto-complete/index.js.map +1 -1
- package/lib/auto-complete/type.d.ts +4 -0
- package/lib/index-lib.js +1 -1
- package/lib/index.js +1 -1
- package/lib/table/base-table.js +3 -2
- package/lib/table/base-table.js.map +1 -1
- package/lib/table/hooks/useFixed.js +1 -1
- package/lib/table/hooks/useFixed.js.map +1 -1
- package/lib/table/hooks/useTreeDataExpand.js +2 -2
- package/lib/table/hooks/useTreeDataExpand.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFixed.js","sources":["../../../src/table/hooks/useFixed.ts"],"sourcesContent":["import {\n ref,\n reactive,\n watch,\n toRefs,\n SetupContext,\n onMounted,\n computed,\n ComputedRef,\n onBeforeUnmount,\n Ref,\n} from 'vue';\nimport get from 'lodash/get';\nimport debounce from 'lodash/debounce';\nimport xorWith from 'lodash/xorWith';\nimport log from '../../_common/js/log';\nimport { ClassName, Styles } from '../../common';\nimport { BaseTableCol, BaseTableInstanceFunctions, TableRowData, TdBaseTableProps } from '../type';\nimport { getScrollbarWidthWithCSS } from '../../_common/js/utils/getScrollbarWidth';\nimport { on, off } from '../../utils/dom';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../interface';\nimport { getIEVersion } from '../../_common/js/utils/helper';\nimport pick from 'lodash/pick';\n\n// 固定列相关类名处理\nexport function getColumnFixedStyles(\n col: TdBaseTableProps['columns'][0],\n index: number,\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableColFixedClasses: TableColFixedClasses,\n): { style?: Styles; classes?: ClassName } {\n const fixedPos = rowAndColFixedPosition?.get(col.colKey || index);\n if (!fixedPos) return {};\n const thClasses = {\n [tableColFixedClasses.left]: col.fixed === 'left',\n [tableColFixedClasses.right]: col.fixed === 'right',\n [tableColFixedClasses.lastLeft]: col.fixed === 'left' && fixedPos.lastLeftFixedCol,\n [tableColFixedClasses.firstRight]: col.fixed === 'right' && fixedPos.firstRightFixedCol,\n };\n const thStyles = {\n left: col.fixed === 'left' ? `${fixedPos.left}px` : undefined,\n right: col.fixed === 'right' ? `${fixedPos.right}px` : undefined,\n };\n return {\n style: thStyles,\n classes: thClasses,\n };\n}\n\n// 固定行相关类名处理\nexport function getRowFixedStyles(\n rowId: string | number,\n rowIndex: number,\n rowLength: number,\n fixedRows: TdBaseTableProps['fixedRows'],\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableRowFixedClasses: TableRowFixedClasses,\n): { style: Styles; classes: ClassName } {\n if (!fixedRows || !fixedRows.length) return { style: undefined, classes: undefined };\n const fixedTop = rowIndex < fixedRows[0];\n const fixedBottom = rowIndex > rowLength - 1 - fixedRows[1];\n const firstFixedBottomRow = rowLength - fixedRows[1];\n const fixedPos = rowAndColFixedPosition?.get(rowId) || {};\n const rowClasses = {\n [tableRowFixedClasses.top]: fixedTop,\n [tableRowFixedClasses.bottom]: fixedBottom,\n [tableRowFixedClasses.firstBottom]: rowIndex === firstFixedBottomRow,\n [tableRowFixedClasses.withoutBorderBottom]: rowIndex === firstFixedBottomRow - 1,\n };\n const rowStyles = {\n top: fixedTop ? `${fixedPos.top}px` : undefined,\n bottom: fixedBottom ? `${fixedPos.bottom}px` : undefined,\n };\n return {\n style: rowStyles,\n classes: rowClasses,\n };\n}\n\nexport default function useFixed(\n props: TdBaseTableProps,\n context: SetupContext,\n finalColumns: ComputedRef<BaseTableCol<TableRowData>[]>,\n affixRef: Record<string, Ref>,\n) {\n const {\n columns,\n tableLayout,\n tableContentWidth,\n fixedRows,\n firstFullRow,\n lastFullRow,\n maxHeight,\n headerAffixedTop,\n footerAffixedBottom,\n bordered,\n resizable,\n allowResizeColumnWidth,\n } = toRefs(props);\n const data = ref<TableRowData[]>([]);\n const tableRef = ref<HTMLDivElement>();\n const tableContentRef = ref<HTMLDivElement>();\n const isFixedHeader = ref(false);\n const isWidthOverflow = ref(false);\n const tableElmRef = ref<HTMLTableElement>();\n // CSS 样式设置了固定 6px\n const scrollbarWidth = ref(6);\n // 固定列、固定表头、固定表尾等内容的位置信息\n const rowAndColFixedPosition = ref<RowAndColFixedPosition>(new Map());\n const showColumnShadow = reactive({\n left: false,\n right: false,\n });\n // 虚拟滚动不能使用 CSS sticky 固定表头\n const virtualScrollHeaderPos = ref<{ left: number; top: number }>({ left: 0, top: 0 });\n const tableWidth = ref(0);\n const tableElmWidth = ref(0);\n const thWidthList = ref<{ [colKey: string]: number }>({});\n\n const isFixedColumn = ref(false);\n const isFixedRightColumn = ref(false);\n const isFixedLeftColumn = ref(false);\n\n const columnResizable = computed(() => allowResizeColumnWidth.value ?? resizable.value ?? false);\n\n // 没有表头吸顶,没有虚拟滚动,则不需要表头宽度计算\n const notNeedThWidthList = computed(\n () =>\n !(\n props.headerAffixedTop ||\n props.footerAffixedBottom ||\n props.horizontalScrollAffixedBottom ||\n props.scroll?.type === 'virtual'\n ),\n );\n\n function setUseFixedTableElmRef(val: HTMLTableElement) {\n tableElmRef.value = val;\n }\n\n function getColumnMap(\n columns: BaseTableCol[],\n map: RowAndColFixedPosition = new Map(),\n levelNodes: FixedColumnInfo[][] = [],\n level = 0,\n parent?: FixedColumnInfo,\n ) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (['left', 'right'].includes(col.fixed)) {\n isFixedColumn.value = true;\n }\n if (col.fixed === 'right') {\n isFixedRightColumn.value = true;\n }\n if (col.fixed === 'left') {\n isFixedLeftColumn.value = true;\n }\n const key = col.colKey || i;\n const columnInfo: FixedColumnInfo = { col, parent, index: i };\n map.set(key, columnInfo);\n if (col.children?.length) {\n getColumnMap(col.children, map, levelNodes, level + 1, columnInfo);\n }\n if (levelNodes[level]) {\n levelNodes[level].push(columnInfo);\n } else {\n // eslint-disable-next-line no-param-reassign\n levelNodes[level] = [columnInfo];\n }\n }\n return {\n newColumnsMap: map,\n levelNodes,\n };\n }\n\n const setFixedLeftPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.fixed === 'right') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i - 1;\n while (lastColIndex >= 0 && columns[lastColIndex].fixed !== 'left') {\n lastColIndex -= 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === 0 ? parent?.left || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i - 1);\n if (colInfo) {\n colInfo.left = (lastColInfo?.left || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedLeftPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n const setFixedRightPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n if (col.fixed === 'left') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i + 1;\n while (lastColIndex < columns.length && columns[lastColIndex].fixed !== 'right') {\n lastColIndex += 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === columns.length - 1 ? parent?.right || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i + 1);\n if (colInfo) {\n colInfo.right = (lastColInfo?.right || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedRightPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n // 获取固定列位置信息。先获取节点宽度,再计算\n const setFixedColPosition = (trList: HTMLCollection, initialColumnMap: RowAndColFixedPosition) => {\n if (!trList) return;\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n if (!colKey) {\n log.warn('TDesign Table', `${th.innerText} missing colKey. colKey is required for fixed column feature.`);\n }\n const obj = initialColumnMap.get(colKey || j);\n if (obj?.col?.fixed) {\n initialColumnMap.set(colKey, { ...obj, width: th.getBoundingClientRect().width });\n }\n }\n }\n setFixedLeftPos(columns.value, initialColumnMap);\n setFixedRightPos(columns.value, initialColumnMap);\n };\n\n // 设置固定行位置信息 top/bottom\n const setFixedRowPosition = (\n trList: HTMLCollection,\n initialColumnMap: RowAndColFixedPosition,\n thead: HTMLTableSectionElement,\n tfoot: HTMLTableSectionElement,\n ) => {\n const [fixedTopRows, fixedBottomRows] = fixedRows.value || [];\n const { data, rowKey = 'id' } = props;\n for (let i = 0; i < fixedTopRows; i++) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i - 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === 0) {\n defaultBottom = thead?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.top = (lastRowInfo.top || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n for (let i = data.length - 1; i >= data.length - fixedBottomRows; i--) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i + 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === data.length - 1) {\n defaultBottom = tfoot?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.bottom = (lastRowInfo.bottom || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n };\n\n const updateRowAndColFixedPosition = (tableContentElm: HTMLElement, initialColumnMap: RowAndColFixedPosition) => {\n rowAndColFixedPosition.value.clear();\n if (!tableContentElm) return;\n const thead = tableContentElm.querySelector('thead');\n // 处理固定列\n thead && setFixedColPosition(thead.children, initialColumnMap);\n // 处理冻结行\n const tbody = tableContentElm.querySelector('tbody');\n const tfoot = tableContentElm.querySelector('tfoot');\n tbody && setFixedRowPosition(tbody.children, initialColumnMap, thead, tfoot);\n // 更新最终 Map\n rowAndColFixedPosition.value = initialColumnMap;\n };\n\n let shadowLastScrollLeft: number;\n const updateColumnFixedShadow = (target: HTMLElement, extra?: { skipScrollLimit?: boolean }) => {\n if (!isFixedColumn.value || !target) return;\n const { scrollLeft } = target;\n // 只有左右滚动,需要更新固定列阴影\n if (shadowLastScrollLeft === scrollLeft && (!extra || !extra.skipScrollLimit)) return;\n shadowLastScrollLeft = scrollLeft;\n const isShowRight = target.clientWidth + scrollLeft < target.scrollWidth;\n const isShowLeft = scrollLeft > 0;\n if (showColumnShadow.left === isShowLeft && showColumnShadow.right === isShowRight) return;\n showColumnShadow.left = isShowLeft && isFixedLeftColumn.value;\n showColumnShadow.right = isShowRight && isFixedRightColumn.value;\n };\n\n // 多级表头场景较为复杂:为了滚动的阴影效果,需要知道哪些列是边界列,左侧固定列的最后一列,右侧固定列的第一列,每一层表头都需要兼顾\n const setIsLastOrFirstFixedCol = (levelNodes: FixedColumnInfo[][]) => {\n for (let t = 0; t < levelNodes.length; t++) {\n const nodes = levelNodes[t];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const colMapInfo = nodes[i];\n const nextColMapInfo = nodes[i + 1];\n const { parent } = colMapInfo;\n const isParentLastLeftFixedCol = !parent || parent?.lastLeftFixedCol;\n if (isParentLastLeftFixedCol && colMapInfo.col.fixed === 'left' && nextColMapInfo?.col.fixed !== 'left') {\n colMapInfo.lastLeftFixedCol = true;\n }\n const lastColMapInfo = nodes[i - 1];\n const isParentFirstRightFixedCol = !parent || parent?.firstRightFixedCol;\n if (isParentFirstRightFixedCol && colMapInfo.col.fixed === 'right' && lastColMapInfo?.col.fixed !== 'right') {\n colMapInfo.firstRightFixedCol = true;\n }\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const updateFixedStatus = () => {\n const { newColumnsMap, levelNodes } = getColumnMap(columns.value);\n setIsLastOrFirstFixedCol(levelNodes);\n const timer = setTimeout(() => {\n if (isFixedColumn.value || fixedRows.value?.length) {\n updateRowAndColFixedPosition(tableContentRef.value, newColumnsMap);\n }\n clearTimeout(timer);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n };\n\n const updateFixedHeader = () => {\n const timer = setTimeout(() => {\n if (!tableContentRef.value) return;\n isFixedHeader.value = tableContentRef.value.scrollHeight > tableContentRef.value.clientHeight;\n isWidthOverflow.value = tableContentRef.value.scrollWidth > tableContentRef.value.clientWidth;\n const pos = tableContentRef.value.getBoundingClientRect();\n virtualScrollHeaderPos.value = {\n top: pos.top,\n left: pos.left,\n };\n clearTimeout(timer);\n }, 0);\n };\n\n const setTableElmWidth = (width: number) => {\n if (tableElmWidth.value === width) return;\n tableElmWidth.value = width;\n };\n\n const updateTableWidth = () => {\n const rect = tableContentRef.value?.getBoundingClientRect();\n if (!rect) return;\n // 存在纵向滚动条,且固定表头时,需去除滚动条宽度\n const reduceWidth = isFixedHeader.value ? scrollbarWidth.value : 0;\n tableWidth.value = rect.width - reduceWidth - (props.bordered ? 1 : 0);\n const elmRect = tableElmRef?.value?.getBoundingClientRect();\n elmRect?.width && setTableElmWidth(elmRect.width);\n };\n\n const updateAffixPosition = () => {\n // 在表格高度变化的时候 需要手动调整affix的位置 因为affix本身无法监听到这些变化触发重新计算\n affixRef.paginationAffixRef.value?.handleScroll?.();\n affixRef.horizontalScrollAffixRef.value?.handleScroll?.();\n affixRef.headerTopAffixRef.value?.handleScroll?.();\n affixRef.footerBottomAffixRef.value?.handleScroll?.();\n };\n\n const calculateThWidthList = (trList: HTMLCollection) => {\n const widthMap: { [colKey: string]: number } = {};\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n // second for used for multiple row header\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n widthMap[colKey] = th.getBoundingClientRect().width;\n }\n }\n return widthMap;\n };\n\n const updateThWidthList = (trList: HTMLCollection | { [colKey: string]: number }) => {\n if (trList instanceof HTMLCollection) {\n if (columnResizable.value) return;\n thWidthList.value = calculateThWidthList(trList);\n } else {\n thWidthList.value = thWidthList.value || {};\n Object.entries(trList).forEach(([colKey, width]) => {\n thWidthList.value[colKey] = width;\n });\n }\n return thWidthList.value;\n };\n\n const updateThWidthListHandler = () => {\n const timer = setTimeout(() => {\n updateTableWidth();\n if (notNeedThWidthList.value) return;\n const thead = tableContentRef.value?.querySelector('thead');\n if (!thead) return;\n updateThWidthList(thead.children);\n clearTimeout(timer);\n }, 0);\n };\n\n const resetThWidthList = () => {\n thWidthList.value = {};\n };\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScrollX?.({ e });\n props.onScrollY?.({ e });\n props.onScroll?.({ e });\n };\n\n const getThWidthList = (type?: 'default' | 'calculate') => {\n if (type === 'calculate') {\n const trList = tableContentRef.value?.querySelector('thead')?.children;\n return calculateThWidthList(trList);\n }\n return thWidthList.value || {};\n };\n\n watch(\n [\n data,\n columns,\n bordered,\n tableLayout,\n tableContentWidth,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n fixedRows,\n firstFullRow,\n lastFullRow,\n ],\n updateFixedStatus,\n { immediate: true },\n );\n\n watch(\n [isFixedColumn, columns],\n () => {\n const timer = setTimeout(() => {\n if (isFixedColumn.value) {\n updateColumnFixedShadow(tableContentRef.value);\n }\n clearTimeout(timer);\n }, 0);\n },\n { immediate: true },\n );\n\n watch(\n [maxHeight, data, columns, bordered, tableContentRef],\n () => {\n if (tableContentRef.value) {\n // 如果不监听元素的ref,会出现watch在ref还没ready的时候触发,此时没有触发这个判断的更新,导致表头消失\n updateFixedHeader();\n }\n },\n { immediate: true },\n );\n\n watch(finalColumns, () => {\n resetThWidthList();\n });\n\n // 影响表头宽度的元素\n watch(\n [data, bordered, tableLayout, fixedRows, isFixedHeader, headerAffixedTop, footerAffixedBottom, tableContentWidth],\n () => {\n const timer = setTimeout(() => {\n updateThWidthListHandler();\n updateAffixPosition();\n clearTimeout(timer);\n }, 60);\n },\n { immediate: true },\n );\n\n watch([finalColumns], ([finalColumns], [preFinalColumns]) => {\n const finalColKeys = finalColumns.map((t) => t.colKey);\n const preColKeys = preFinalColumns.map((t) => t.colKey);\n if (finalColKeys.length < preColKeys.length) {\n const reduceKeys = xorWith(preColKeys, finalColKeys);\n const thWidthList = getThWidthList('calculate');\n let reduceWidth = 0;\n reduceKeys.forEach((key) => {\n reduceWidth += thWidthList[key];\n });\n const rootThWidthList = pick(thWidthList, preColKeys);\n const oldTotalWidth = Object.values(rootThWidthList).reduce((r = 0, n) => r + n);\n // 保留原有可能编辑过的列宽度,但是当剩余列过小时,表头小于内容宽,需要缩放回内容宽度\n // 使用不包含滚动条的可视化区域宽度,意味着当不再溢出的时候,将宽度设置回完整宽度\n const contentWidth = tableContentRef.value.clientWidth;\n const widthToReserve = oldTotalWidth - reduceWidth;\n setTableElmWidth(Math.max(contentWidth, widthToReserve));\n }\n });\n\n const refreshTable: BaseTableInstanceFunctions['refreshTable'] = () => {\n // updateTableWidth();\n updateThWidthListHandler();\n updateFixedHeader();\n updateAffixPosition();\n\n if (isFixedColumn.value || isFixedHeader.value) {\n updateFixedStatus();\n updateColumnFixedShadow(tableContentRef.value, { skipScrollLimit: true });\n }\n };\n\n const onResize = debounce(() => {\n refreshTable();\n }, 30);\n\n let resizeObserver: ResizeObserver = null;\n function addTableResizeObserver(tableElement: HTMLDivElement) {\n if (typeof window === 'undefined') return;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n if (getIEVersion() < 11 || typeof window.ResizeObserver === 'undefined') return;\n off(window, 'resize', onResize);\n resizeObserver = new window.ResizeObserver(() => {\n const timer = setTimeout(() => {\n refreshTable();\n clearTimeout(timer);\n }, 60);\n });\n resizeObserver.observe(tableElement);\n tableRef.value = tableElement;\n }\n\n onMounted(() => {\n const scrollWidth = getScrollbarWidthWithCSS();\n scrollbarWidth.value = scrollWidth;\n updateThWidthListHandler();\n const isWatchResize = isFixedColumn.value || isFixedHeader.value || !notNeedThWidthList.value || !data.value.length;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n const hasWindow = typeof window !== 'undefined';\n const hasResizeObserver = hasWindow && typeof window.ResizeObserver !== 'undefined';\n if ((isWatchResize && getIEVersion() < 11) || !hasResizeObserver) {\n on(window, 'resize', onResize);\n }\n });\n\n onBeforeUnmount(() => {\n if (typeof window !== 'undefined') {\n off(window, 'resize', onResize);\n }\n resizeObserver?.unobserve(tableRef.value);\n resizeObserver?.disconnect();\n });\n\n const setData = (dataSource: TableRowData[]) => {\n data.value = dataSource;\n };\n\n const updateTableAfterColumnResize = () => {\n updateFixedStatus();\n updateFixedHeader();\n };\n\n return {\n tableWidth,\n tableElmWidth,\n thWidthList,\n isFixedHeader,\n isWidthOverflow,\n tableContentRef,\n isFixedColumn,\n showColumnShadow,\n rowAndColFixedPosition,\n virtualScrollHeaderPos,\n scrollbarWidth,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n updateThWidthListHandler,\n updateColumnFixedShadow,\n setUseFixedTableElmRef,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n };\n}\n"],"names":["getColumnFixedStyles","col","index","rowAndColFixedPosition","tableColFixedClasses","fixedPos","get","colKey","thClasses","_defineProperty","left","fixed","right","lastLeft","lastLeftFixedCol","firstRight","firstRightFixedCol","thStyles","concat","style","classes","getRowFixedStyles","rowId","rowIndex","rowLength","fixedRows","tableRowFixedClasses","length","fixedTop","fixedBottom","firstFixedBottomRow","rowClasses","top","bottom","firstBottom","withoutBorderBottom","rowStyles","useFixed","props","context","finalColumns","affixRef","_toRefs","toRefs","columns","tableLayout","tableContentWidth","firstFullRow","lastFullRow","maxHeight","headerAffixedTop","footerAffixedBottom","bordered","resizable","allowResizeColumnWidth","data","ref","tableRef","tableContentRef","isFixedHeader","isWidthOverflow","tableElmRef","scrollbarWidth","Map","showColumnShadow","reactive","virtualScrollHeaderPos","tableWidth","tableElmWidth","thWidthList","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","computed","_ref","_allowResizeColumnWid","value","notNeedThWidthList","_props$scroll","horizontalScrollAffixedBottom","scroll","type","setUseFixedTableElmRef","val","getColumnMap","map","arguments","undefined","levelNodes","level","parent","i","len","_col$children","includes","key","columnInfo","set","children","push","newColumnsMap","setFixedLeftPos","initialColumnMap","_col$children2","colInfo","lastColIndex","lastCol","defaultWidth","lastColInfo","width","setFixedRightPos","_col$children3","setFixedColPosition","trList","thList","j","thLen","_obj$col","th","dataset","colkey","log","warn","innerText","obj","_objectSpread","getBoundingClientRect","setFixedRowPosition","thead","tfoot","_ref2","_ref3","_slicedToArray","fixedTopRows","fixedBottomRows","_props$rowKey","rowKey","tr","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","height","updateRowAndColFixedPosition","tableContentElm","clear","querySelector","tbody","shadowLastScrollLeft","updateColumnFixedShadow","target","extra","scrollLeft","skipScrollLimit","isShowRight","clientWidth","scrollWidth","isShowLeft","setIsLastOrFirstFixedCol","t","nodes","colMapInfo","nextColMapInfo","isParentLastLeftFixedCol","lastColMapInfo","isParentFirstRightFixedCol","updateFixedStatus","_getColumnMap","timer","setTimeout","_fixedRows$value","clearTimeout","updateFixedHeader","scrollHeight","clientHeight","pos","setTableElmWidth","updateTableWidth","_tableContentRef$valu","_tableElmRef$value","rect","reduceWidth","elmRect","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","handleScroll","call","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","updateThWidthList","HTMLCollection","Object","entries","forEach","_ref4","_ref5","updateThWidthListHandler","_tableContentRef$valu2","resetThWidthList","emitScrollEvent","e","_props$onScrollX","_props$onScrollY","_props$onScroll","onScrollX","onScrollY","onScroll","getThWidthList","_tableContentRef$valu3","watch","immediate","_ref6","_ref7","_ref8","_ref9","preFinalColumns","finalColKeys","preColKeys","reduceKeys","xorWith","rootThWidthList","pick","oldTotalWidth","values","reduce","r","n","contentWidth","widthToReserve","Math","max","refreshTable","onResize","debounce","resizeObserver","addTableResizeObserver","tableElement","window","getIEVersion","ResizeObserver","off","observe","onMounted","getScrollbarWidthWithCSS","isWatchResize","hasWindow","hasResizeObserver","on","onBeforeUnmount","_resizeObserver","_resizeObserver2","unobserve","disconnect","setData","dataSource","updateTableAfterColumnResize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,SAASA,oBACdA,CAAAC,GAAA,EACAC,KACA,EAAAC,sBAAA,EACAC,oBACyC,EAAA;AACzC,EAAA,IAAMC,QAAW,GAAAF,sBAAA,KAAA,IAAA,IAAAA,sBAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAwBG,GAAI,CAAAL,GAAA,CAAIM,UAAUL,KAAK,CAAA,CAAA;AAChE,EAAA,IAAI,CAACG,QAAA,EAAU,OAAO,EAAC,CAAA;EACvB,IAAMG,SAAY,GAAAC,mCAAA,CAAAA,mCAAA,CAAAA,mCAAA,CAAAA,mCAAA,CACfL,EAAAA,EAAAA,oBAAA,CAAqBM,IAAO,EAAAT,GAAA,CAAIU,KAAU,KAAA,MAAA,CAAA,EAC1CP,oBAAA,CAAqBQ,KAAQ,EAAAX,GAAA,CAAIU,KAAU,KAAA,OAAA,CAC3CP,EAAAA,oBAAqB,CAAAS,QAAA,EAAWZ,GAAI,CAAAU,KAAA,KAAU,UAAUN,QAAS,CAAAS,gBAAA,CACjEV,EAAAA,oBAAqB,CAAAW,UAAA,EAAad,GAAI,CAAAU,KAAA,KAAU,WAAWN,QAAS,CAAAW,kBAAA,CACvE,CAAA;AACA,EAAA,IAAMC,QAAW,GAAA;AACfP,IAAAA,MAAMT,GAAI,CAAAU,KAAA,KAAU,MAAS,GAAA,EAAA,CAAAO,MAAA,CAAGb,SAASK,IAAW,EAAA,IAAA,CAAA,GAAA,KAAA,CAAA;AACpDE,IAAAA,OAAOX,GAAI,CAAAU,KAAA,KAAU,OAAU,GAAAO,EAAAA,CAAAA,MAAA,CAAGb,SAASO,KAAY,UAAA,KAAA,CAAA;GACzD,CAAA;EACO,OAAA;AACLO,IAAAA,KAAO,EAAAF,QAAA;AACPG,IAAAA,OAAS,EAAAZ,SAAAA;GACX,CAAA;AACF,CAAA;AAGO,SAASa,kBACdC,KACA,EAAAC,QAAA,EACAC,SACA,EAAAC,SAAA,EACAtB,wBACAuB,oBACuC,EAAA;EACnC,IAAA,CAACD,SAAa,IAAA,CAACA,SAAU,CAAAE,MAAA,EAAQ,OAAO;IAAER,KAAA,EAAO,KAAW,CAAA;AAAAC,IAAAA,OAAA,EAAS,KAAU,CAAA;GAAA,CAAA;AAC7E,EAAA,IAAAQ,QAAA,GAAWL,WAAWE,SAAU,CAAA,CAAA,CAAA,CAAA;EACtC,IAAMI,WAAc,GAAAN,QAAA,GAAWC,SAAY,GAAA,CAAA,GAAIC,SAAU,CAAA,CAAA,CAAA,CAAA;AACnD,EAAA,IAAAK,mBAAA,GAAsBN,YAAYC,SAAU,CAAA,CAAA,CAAA,CAAA;AAClD,EAAA,IAAMpB,QAAW,GAAA,CAAAF,sBAAA,aAAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,sBAAA,CAAwBG,GAAI,CAAAgB,KAAK,MAAK,EAAC,CAAA;AACxD,EAAA,IAAMS,UAAa,GAAAtB,mCAAA,CAAAA,mCAAA,CAAAA,mCAAA,CAAAA,mCAAA,CAAA,EAAA,EAChBiB,qBAAqBM,GAAM,EAAAJ,QAAA,CAAA,EAC3BF,qBAAqBO,MAAS,EAAAJ,WAAA,GAC9BH,oBAAqB,CAAAQ,WAAA,EAAcX,QAAa,KAAAO,mBAAA,CAAA,EAChDJ,oBAAA,CAAqBS,mBAAsB,EAAAZ,QAAA,KAAaO,mBAAsB,GAAA,CAAA,CACjF,CAAA;AACA,EAAA,IAAMM,SAAY,GAAA;IAChBJ,GAAK,EAAAJ,QAAA,GAAA,EAAA,CAAAV,MAAA,CAAcb,QAAA,CAAS2B,GAAU,EAAA,IAAA,CAAA,GAAA,KAAA,CAAA;IACtCC,MAAQ,EAAAJ,WAAA,GAAAX,EAAAA,CAAAA,MAAA,CAAiBb,QAAA,CAAS4B,MAAa,EAAA,IAAA,CAAA,GAAA,KAAA,CAAA;GACjD,CAAA;EACO,OAAA;AACLd,IAAAA,KAAO,EAAAiB,SAAA;AACPhB,IAAAA,OAAS,EAAAW,UAAAA;GACX,CAAA;AACF,CAAA;AAEA,SAAwBM,QACtBA,CAAAC,KAAA,EACAC,OACA,EAAAC,YAAA,EACAC,QACA,EAAA;AACM,EAAA,IAAAC,OAAA,GAaFC,WAAOL,KAAK,CAAA;IAZdM,OAAA,GAAAF,OAAA,CAAAE,OAAA;IACAC,WAAA,GAAAH,OAAA,CAAAG,WAAA;IACAC,iBAAA,GAAAJ,OAAA,CAAAI,iBAAA;IACArB,SAAA,GAAAiB,OAAA,CAAAjB,SAAA;IACAsB,YAAA,GAAAL,OAAA,CAAAK,YAAA;IACAC,WAAA,GAAAN,OAAA,CAAAM,WAAA;IACAC,SAAA,GAAAP,OAAA,CAAAO,SAAA;IACAC,gBAAA,GAAAR,OAAA,CAAAQ,gBAAA;IACAC,mBAAA,GAAAT,OAAA,CAAAS,mBAAA;IACAC,QAAA,GAAAV,OAAA,CAAAU,QAAA;IACAC,SAAA,GAAAX,OAAA,CAAAW,SAAA;IACAC,sBAAA,GAAAZ,OAAA,CAAAY,sBAAA,CAAA;AAEI,EAAA,IAAAC,IAAA,GAAOC,OAAoB,CAAA,EAAE,CAAA,CAAA;AACnC,EAAA,IAAMC,WAAWD,OAAoB,EAAA,CAAA;AACrC,EAAA,IAAME,kBAAkBF,OAAoB,EAAA,CAAA;AACtC,EAAA,IAAAG,aAAA,GAAgBH,QAAI,KAAK,CAAA,CAAA;AACzB,EAAA,IAAAI,eAAA,GAAkBJ,QAAI,KAAK,CAAA,CAAA;AACjC,EAAA,IAAMK,cAAcL,OAAsB,EAAA,CAAA;AAEpC,EAAA,IAAAM,cAAA,GAAiBN,QAAI,CAAC,CAAA,CAAA;EAE5B,IAAMrD,sBAAyB,GAAAqD,OAAA,iBAAgC,IAAAO,GAAA,EAAK,CAAA,CAAA;EACpE,IAAMC,mBAAmBC,YAAS,CAAA;AAChCvD,IAAAA,IAAM,EAAA,KAAA;AACNE,IAAAA,KAAO,EAAA,KAAA;AACT,GAAC,CAAA,CAAA;EAED,IAAMsD,yBAAyBV,OAAmC,CAAA;AAAE9C,IAAAA,MAAM,CAAG;AAAAsB,IAAAA,GAAA,EAAK,CAAA;AAAE,GAAC,CAAA,CAAA;AAC/E,EAAA,IAAAmC,UAAA,GAAaX,QAAI,CAAC,CAAA,CAAA;AAClB,EAAA,IAAAY,aAAA,GAAgBZ,QAAI,CAAC,CAAA,CAAA;AACrB,EAAA,IAAAa,WAAA,GAAcb,OAAkC,CAAA,EAAE,CAAA,CAAA;AAElD,EAAA,IAAAc,aAAA,GAAgBd,QAAI,KAAK,CAAA,CAAA;AACzB,EAAA,IAAAe,kBAAA,GAAqBf,QAAI,KAAK,CAAA,CAAA;AAC9B,EAAA,IAAAgB,iBAAA,GAAoBhB,QAAI,KAAK,CAAA,CAAA;EAEnC,IAAMiB,kBAAkBC,YAAS,CAAA,YAAA;IAAA,IAAAC,IAAA,EAAAC,qBAAA,CAAA;IAAA,OAAAD,CAAAA,IAAA,IAAAC,qBAAA,GAAMtB,uBAAuBuB,KAAS,cAAAD,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAAvB,SAAA,CAAUwB,4CAAS,KAAK,CAAA;GAAA,CAAA,CAAA;EAG/F,IAAMC,kBAAqB,GAAAJ,YAAA,CACzB,YAAA;AAAA,IAAA,IAAAK,aAAA,CAAA;IAAA,OACE,EACEzC,KAAA,CAAMY,gBACN,IAAAZ,KAAA,CAAMa,uBACNb,KAAM,CAAA0C,6BAAA,IACN,CAAAD,CAAAA,aAAA,GAAAzC,KAAM,CAAA2C,MAAA,MAAAF,IAAAA,IAAAA,aAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAcG,IAAS,MAAA,SAAA,CAAA,CAAA;AAAA,GAE7B,CAAA,CAAA;EAEA,SAASC,uBAAuBC,GAAuB,EAAA;IACrDvB,WAAA,CAAYgB,KAAQ,GAAAO,GAAA,CAAA;AACtB,GAAA;EAES,SAAAC,YAAAA,CACPzC,QACA,EAIA;AAAA,IAAA,IAJA0C,GAAA,GAAAC,SAAA,CAAA5D,MAAA,QAAA4D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAA8B,CAAA,CAAA,kBAAI,IAAAxB,GAAA,EAClC,CAAA;AAAA,IAAA,IAAA0B,UAAA,GAAAF,SAAA,CAAA5D,MAAA,GAAA,CAAA,IAAA4D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAkC,EAAC,CAAA;AAAA,IAAA,IACnCG,KAAQ,GAAAH,SAAA,CAAA5D,MAAA,GAAA,CAAA,IAAA4D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;IAAA,IACRI,MACA,GAAAJ,SAAA,CAAA5D,MAAA,GAAA4D,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;AACA,IAAA,KAAA,IAASI,IAAI,CAAG,EAAAC,GAAA,GAAMjD,SAAQjB,MAAQ,EAAAiE,CAAA,GAAIC,KAAKD,CAAK,EAAA,EAAA;AAAA,MAAA,IAAAE,aAAA,CAAA;AAClD,MAAA,IAAM7F,MAAM2C,QAAQ,CAAAgD,CAAA,CAAA,CAAA;AACpB,MAAA,IAAI,CAAC,MAAQ,EAAA,OAAO,EAAEG,QAAS,CAAA9F,GAAA,CAAIU,KAAK,CAAG,EAAA;QACzC2D,aAAA,CAAcO,KAAQ,GAAA,IAAA,CAAA;AACxB,OAAA;AACI,MAAA,IAAA5E,GAAA,CAAIU,UAAU,OAAS,EAAA;QACzB4D,kBAAA,CAAmBM,KAAQ,GAAA,IAAA,CAAA;AAC7B,OAAA;AACI,MAAA,IAAA5E,GAAA,CAAIU,UAAU,MAAQ,EAAA;QACxB6D,iBAAA,CAAkBK,KAAQ,GAAA,IAAA,CAAA;AAC5B,OAAA;AACM,MAAA,IAAAmB,GAAA,GAAM/F,IAAIM,MAAU,IAAAqF,CAAA,CAAA;AAC1B,MAAA,IAAMK,UAA8B,GAAA;AAAEhG,QAAAA,GAAK,EAALA,GAAK;AAAA0F,QAAAA,MAAA,EAAAA,MAAA;AAAQzF,QAAAA,OAAO0F,CAAAA;OAAE,CAAA;AACxDN,MAAAA,GAAA,CAAAY,GAAA,CAAIF,KAAKC,UAAU,CAAA,CAAA;MACnB,IAAAH,CAAAA,aAAA,GAAA7F,GAAA,CAAIkG,wCAAJL,KAAAA,CAAAA,IAAAA,aAAA,CAAcnE,MAAQ,EAAA;AACxB0D,QAAAA,YAAA,CAAapF,IAAIkG,QAAU,EAAAb,GAAA,EAAKG,UAAY,EAAAC,KAAA,GAAQ,GAAGO,UAAU,CAAA,CAAA;AACnE,OAAA;AACA,MAAA,IAAIR,WAAWC,KAAQ,CAAA,EAAA;AACVD,QAAAA,UAAA,CAAAC,KAAA,CAAA,CAAOU,KAAKH,UAAU,CAAA,CAAA;AACnC,OAAO,MAAA;AAEMR,QAAAA,UAAA,CAAAC,KAAA,CAAA,GAAS,CAACO,UAAU,CAAA,CAAA;AACjC,OAAA;AACF,KAAA;IACO,OAAA;AACLI,MAAAA,aAAe,EAAAf,GAAA;AACfG,MAAAA,UAAA,EAAAA,UAAAA;KACF,CAAA;AACF,GAAA;EAEA,IAAMa,kBAAkB,SAAlBA,gBACJ1D,QAAAA,EACA2D,gBACA,EACG;AAAA,IAAA,IADHZ,MAAA,GAAAJ,SAAA,CAAA5D,MAAA,GAAA,CAAA,IAAA4D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAA0B,EACvB,CAAA;AACH,IAAA,KAAA,IAASK,IAAI,CAAG,EAAAC,GAAA,GAAMjD,SAAQjB,MAAQ,EAAAiE,CAAA,GAAIC,KAAKD,CAAK,EAAA,EAAA;AAAA,MAAA,IAAAY,cAAA,CAAA;AAClD,MAAA,IAAMvG,MAAM2C,QAAQ,CAAAgD,CAAA,CAAA,CAAA;AACpB,MAAA,IAAI3F,IAAIU,KAAU,KAAA,OAAA,EAAS,OAAA;MAC3B,IAAM8F,OAAU,GAAAF,gBAAA,CAAiBjG,GAAI,CAAAL,GAAA,CAAIM,UAAUqF,CAAC,CAAA,CAAA;AACpD,MAAA,IAAIc,eAAed,CAAI,GAAA,CAAA,CAAA;AACvB,MAAA,OAAOc,YAAgB,IAAA,CAAA,IAAK9D,QAAQ,CAAA8D,YAAA,CAAA,CAAc/F,UAAU,MAAQ,EAAA;AAClD+F,QAAAA,YAAA,IAAA,CAAA,CAAA;AAClB,OAAA;AACA,MAAA,IAAMC,UAAU/D,QAAQ,CAAA8D,YAAA,CAAA,CAAA;AAExB,MAAA,IAAME,YAAe,GAAAhB,CAAA,KAAM,CAAI,GAAA,CAAAD,MAAA,KAAAA,IAAAA,IAAAA,MAAA,uBAAAA,MAAA,CAAQjF,SAAQ,CAAI,GAAA,CAAA,CAAA;AACnD,MAAA,IAAMmG,cAAcN,gBAAiB,CAAAjG,GAAA,CAAI,CAAAqG,OAAS,KAAA,IAAA,IAATA,OAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,OAAS,CAAApG,MAAA,KAAUqF,IAAI,CAAC,CAAA,CAAA;AACjE,MAAA,IAAIa,OAAS,EAAA;QACXA,OAAA,CAAQ/F,IAAQ,GAAA,CAAA,CAAAmG,WAAA,KAAAA,IAAAA,IAAAA,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAanG,IAAQ,KAAAkG,YAAA,KAAiB,CAAAC,gBAAAA,IAAAA,IAAAA,gBAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAaC,KAAS,KAAA,CAAA,CAAA,CAAA;AAC9E,OAAA;MAEI,IAAAN,CAAAA,cAAA,GAAAvG,GAAA,CAAIkG,yCAAJK,KAAAA,CAAAA,IAAAA,cAAA,CAAc7E,MAAQ,EAAA;QACR2E,eAAA,CAAArG,GAAA,CAAIkG,QAAU,EAAAI,gBAAA,EAAkBE,OAAO,CAAA,CAAA;AACzD,OAAA;AACF,KAAA;GACF,CAAA;EAEA,IAAMM,mBAAmB,SAAnBA,iBACJnE,QAAAA,EACA2D,gBACA,EACG;AAAA,IAAA,IADHZ,MAAA,GAAAJ,SAAA,CAAA5D,MAAA,GAAA,CAAA,IAAA4D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAA0B,EACvB,CAAA;AACH,IAAA,KAAA,IAASK,IAAIhD,QAAQ,CAAAjB,MAAA,GAAS,CAAG,EAAAiE,CAAA,IAAK,GAAGA,CAAK,EAAA,EAAA;AAAA,MAAA,IAAAoB,cAAA,CAAA;AAC5C,MAAA,IAAM/G,MAAM2C,QAAQ,CAAAgD,CAAA,CAAA,CAAA;AACpB,MAAA,IAAI3F,IAAIU,KAAU,KAAA,MAAA,EAAQ,OAAA;MAC1B,IAAM8F,OAAU,GAAAF,gBAAA,CAAiBjG,GAAI,CAAAL,GAAA,CAAIM,UAAUqF,CAAC,CAAA,CAAA;AACpD,MAAA,IAAIc,eAAed,CAAI,GAAA,CAAA,CAAA;AACvB,MAAA,OAAOc,eAAe9D,QAAQ,CAAAjB,MAAA,IAAUiB,QAAQ,CAAA8D,YAAA,CAAA,CAAc/F,UAAU,OAAS,EAAA;AAC/D+F,QAAAA,YAAA,IAAA,CAAA,CAAA;AAClB,OAAA;AACA,MAAA,IAAMC,UAAU/D,QAAQ,CAAA8D,YAAA,CAAA,CAAA;MAExB,IAAME,eAAehB,CAAMhD,KAAAA,QAAAA,CAAQjB,SAAS,CAAI,GAAA,CAAAgE,MAAA,KAAA,IAAA,IAAAA,MAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAA,CAAQ/E,UAAS,CAAI,GAAA,CAAA,CAAA;AACrE,MAAA,IAAMiG,cAAcN,gBAAiB,CAAAjG,GAAA,CAAI,CAAAqG,OAAS,KAAA,IAAA,IAATA,OAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,OAAS,CAAApG,MAAA,KAAUqF,IAAI,CAAC,CAAA,CAAA;AACjE,MAAA,IAAIa,OAAS,EAAA;QACXA,OAAA,CAAQ7F,KAAS,GAAA,CAAA,CAAAiG,WAAA,KAAAA,IAAAA,IAAAA,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAajG,KAAS,KAAAgG,YAAA,KAAiB,CAAAC,gBAAAA,IAAAA,IAAAA,gBAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAaC,KAAS,KAAA,CAAA,CAAA,CAAA;AAChF,OAAA;MAEI,IAAAE,CAAAA,cAAA,GAAA/G,GAAA,CAAIkG,yCAAJa,KAAAA,CAAAA,IAAAA,cAAA,CAAcrF,MAAQ,EAAA;QACPoF,gBAAA,CAAA9G,GAAA,CAAIkG,QAAU,EAAAI,gBAAA,EAAkBE,OAAO,CAAA,CAAA;AAC1D,OAAA;AACF,KAAA;GACF,CAAA;EAGM,IAAAQ,mBAAA,GAAsB,SAAtBA,mBAAAA,CAAuBC,MAAA,EAAwBX,gBAA6C,EAAA;IAChG,IAAI,CAACW,MAAA,EAAQ,OAAA;AACb,IAAA,KAAA,IAAStB,IAAI,CAAG,EAAAC,GAAA,GAAMqB,OAAOvF,MAAQ,EAAAiE,CAAA,GAAIC,KAAKD,CAAK,EAAA,EAAA;AAC3C,MAAA,IAAAuB,MAAA,GAASD,OAAOtB,CAAG,CAAA,CAAAO,QAAA,CAAA;AACzB,MAAA,KAAA,IAASiB,IAAI,CAAG,EAAAC,KAAA,GAAQF,OAAOxF,MAAQ,EAAAyF,CAAA,GAAIC,OAAOD,CAAK,EAAA,EAAA;AAAA,QAAA,IAAAE,QAAA,CAAA;AACrD,QAAA,IAAMC,KAAKJ,MAAO,CAAAC,CAAA,CAAA,CAAA;AACZ,QAAA,IAAA7G,MAAA,GAASgH,GAAGC,OAAQ,CAAAC,MAAA,CAAA;QAC1B,IAAI,CAAClH,MAAQ,EAAA;UACXmH,6BAAA,CAAIC,IAAK,CAAA,eAAA,EAAA,EAAA,CAAAzG,MAAA,CAAoBqG,EAAA,CAAGK,SAAwE,EAAA,+DAAA,CAAA,CAAA,CAAA;AAC1G,SAAA;QACA,IAAMC,GAAM,GAAAtB,gBAAA,CAAiBjG,GAAI,CAAAC,MAAA,IAAU6G,CAAC,CAAA,CAAA;AACxC,QAAA,IAAAS,GAAA,KAAA,IAAA,IAAAA,GAAA,KAAA,KAAA,CAAA,IAAA,CAAAP,QAAA,GAAAO,GAAA,CAAK5H,wCAALqH,QAAA,CAAU3G,KAAO,EAAA;UACF4F,gBAAA,CAAAL,GAAA,CAAI3F,MAAQ,EAAAuH,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAKD,GAAA,CAAA,EAAA,EAAA,EAAA;AAAKf,YAAAA,OAAOS,EAAG,CAAAQ,qBAAA,EAAwB,CAAAjB,KAAAA;AAAA,WAAA,CAAO,CAAA,CAAA;AAClF,SAAA;AACF,OAAA;AACF,KAAA;AACgBR,IAAAA,eAAA,CAAA1D,OAAA,CAAQiC,OAAO0B,gBAAgB,CAAA,CAAA;AAC9BQ,IAAAA,gBAAA,CAAAnE,OAAA,CAAQiC,OAAO0B,gBAAgB,CAAA,CAAA;GAClD,CAAA;AAGA,EAAA,IAAMyB,mBAAsB,GAAA,SAAtBA,mBAAsBA,CAC1Bd,MACA,EAAAX,gBAAA,EACA0B,OACAC,KACG,EAAA;AACH,IAAA,IAAAC,KAAA,GAAwC1G,SAAA,CAAUoD,SAAS,EAAC;MAAAuD,KAAA,GAAAC,kCAAA,CAAAF,KAAA,EAAA,CAAA,CAAA;AAArDG,MAAAA,YAAc,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAAG,MAAAA,eAAe,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;AACpC,IAAA,IAAQ7E,KAAM,GAAkBjB,KAAA,CAAxBiB,IAAA;MAAAiF,aAAA,GAAwBlG,KAAA,CAAlBmG,MAAA;AAAAA,MAAAA,MAAA,GAAAD,aAAA,KAAS,KAAA,CAAA,GAAA;IACvB,KAAA,IAAS5C,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAA0C,YAAA,EAAc1C,CAAK,EAAA,EAAA;AACrC,MAAA,IAAM8C,KAAKxB,MAAO,CAAAtB,CAAA,CAAA,CAAA;MAClB,IAAMtE,KAAQ,GAAAhB,uBAAA,CAAIiD,KAAK,CAAAqC,CAAA,CAAA,EAAI6C,MAAM,CAAA,CAAA;MACjC,IAAME,WAAc,GAAApC,gBAAA,CAAiBjG,GAAI,CAAAgB,KAAK,KAAK,EAAC,CAAA;AACpD,MAAA,IAAMsH,SAAY,GAAAtI,uBAAA,CAAIiD,KAAK,CAAAqC,CAAA,GAAI,IAAI6C,MAAM,CAAA,CAAA;MACzC,IAAMI,WAAc,GAAAtC,gBAAA,CAAiBjG,GAAI,CAAAsI,SAAS,KAAK,EAAC,CAAA;MACxD,IAAIE,aAAgB,GAAA,CAAA,CAAA;MACpB,IAAIlD,MAAM,CAAG,EAAA;AACKkD,QAAAA,aAAA,GAAA,CAAAb,KAAA,KAAA,IAAA,IAAAA,KAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAA,CAAOF,qBAAsB,EAAA,CAAEgB,MAAU,KAAA,CAAA,CAAA;AAC3D,OAAA;AACAJ,MAAAA,WAAA,CAAY3G,GAAO,GAAA,CAAA6G,WAAA,CAAY7G,GAAO,IAAA8G,aAAA,KAAkBD,YAAYE,MAAU,IAAA,CAAA,CAAA,CAAA;MAC7DxC,gBAAA,CAAAL,GAAA,CAAI5E,KAAO,EAAAwG,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAKa,WAAA,CAAA,EAAA,EAAA,EAAA;AAAaI,QAAAA,MAAQ,EAAA,CAAAL,EAAA,KAAA,IAAA,IAAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAIX,qBAAsB,EAAA,CAAEgB,MAAU,KAAA,CAAA;AAAA,OAAA,CAAG,CAAA,CAAA;AACjG,KAAA;AACS,IAAA,KAAA,IAAAnD,EAAA,GAAIrC,MAAK5B,MAAS,GAAA,CAAA,EAAGiE,MAAKrC,KAAK,CAAA5B,MAAA,GAAS4G,iBAAiB3C,EAAK,EAAA,EAAA;AACrE,MAAA,IAAM8C,MAAKxB,MAAO,CAAAtB,EAAA,CAAA,CAAA;MAClB,IAAMtE,MAAQ,GAAAhB,uBAAA,CAAIiD,KAAK,CAAAqC,EAAA,CAAA,EAAI6C,MAAM,CAAA,CAAA;MACjC,IAAME,YAAc,GAAApC,gBAAA,CAAiBjG,GAAI,CAAAgB,MAAK,KAAK,EAAC,CAAA;AACpD,MAAA,IAAMsH,UAAY,GAAAtI,uBAAA,CAAIiD,KAAK,CAAAqC,EAAA,GAAI,IAAI6C,MAAM,CAAA,CAAA;MACzC,IAAMI,YAAc,GAAAtC,gBAAA,CAAiBjG,GAAI,CAAAsI,UAAS,KAAK,EAAC,CAAA;MACxD,IAAIE,cAAgB,GAAA,CAAA,CAAA;AAChB,MAAA,IAAAlD,EAAA,KAAMrC,KAAK,CAAA5B,MAAA,GAAS,CAAG,EAAA;AACTmH,QAAAA,cAAA,GAAA,CAAAZ,KAAA,KAAA,IAAA,IAAAA,KAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAA,CAAOH,qBAAsB,EAAA,CAAEgB,MAAU,KAAA,CAAA,CAAA;AAC3D,OAAA;AACAJ,MAAAA,YAAA,CAAY1G,MAAU,GAAA,CAAA4G,YAAA,CAAY5G,MAAU,IAAA6G,cAAA,KAAkBD,aAAYE,MAAU,IAAA,CAAA,CAAA,CAAA;MACnExC,gBAAA,CAAAL,GAAA,CAAI5E,MAAO,EAAAwG,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAKa,YAAA,CAAA,EAAA,EAAA,EAAA;AAAaI,QAAAA,MAAQ,EAAA,CAAAL,GAAA,KAAA,IAAA,IAAAA,GAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,GAAA,CAAIX,qBAAsB,EAAA,CAAEgB,MAAU,KAAA,CAAA;AAAA,OAAA,CAAG,CAAA,CAAA;AACjG,KAAA;GACF,CAAA;EAEM,IAAAC,4BAAA,GAA+B,SAA/BA,4BAAAA,CAAgCC,eAAA,EAA8B1C,gBAA6C,EAAA;AAC/GpG,IAAAA,sBAAA,CAAuB0E,MAAMqE,KAAM,EAAA,CAAA;IACnC,IAAI,CAACD,eAAA,EAAiB,OAAA;AAChB,IAAA,IAAAhB,KAAA,GAAQgB,eAAgB,CAAAE,aAAA,CAAc,OAAO,CAAA,CAAA;IAE1ClB,KAAA,IAAAhB,mBAAA,CAAoBgB,KAAM,CAAA9B,QAAA,EAAUI,gBAAgB,CAAA,CAAA;AAEvD,IAAA,IAAA6C,KAAA,GAAQH,eAAgB,CAAAE,aAAA,CAAc,OAAO,CAAA,CAAA;AAC7C,IAAA,IAAAjB,KAAA,GAAQe,eAAgB,CAAAE,aAAA,CAAc,OAAO,CAAA,CAAA;AACnDC,IAAAA,KAAA,IAASpB,mBAAoB,CAAAoB,KAAA,CAAMjD,QAAU,EAAAI,gBAAA,EAAkB0B,OAAOC,KAAK,CAAA,CAAA;IAE3E/H,sBAAA,CAAuB0E,KAAQ,GAAA0B,gBAAA,CAAA;GACjC,CAAA;AAEI,EAAA,IAAA8C,oBAAA,CAAA;EACE,IAAAC,uBAAA,GAA0B,SAA1BA,uBAAAA,CAA2BC,MAAA,EAAqBC,KAA0C,EAAA;AAC1F,IAAA,IAAA,CAAClF,aAAc,CAAAO,KAAA,IAAS,CAAC0E,MAAA,EAAQ,OAAA;AAC/B,IAAA,IAAEE,aAAeF,MAAA,CAAfE;AAER,IAAA,IAAIJ,oBAAyB,KAAAI,UAAA,KAAe,CAACD,KAAA,IAAS,CAACA,KAAM,CAAAE,eAAA,CAAA,EAAkB,OAAA;AACxDL,IAAAA,oBAAA,GAAAI,UAAA,CAAA;IACvB,IAAME,WAAc,GAAAJ,MAAA,CAAOK,WAAc,GAAAH,UAAA,GAAaF,MAAO,CAAAM,WAAA,CAAA;AAC7D,IAAA,IAAMC,aAAaL,UAAa,GAAA,CAAA,CAAA;IAChC,IAAIzF,gBAAiB,CAAAtD,IAAA,KAASoJ,UAAc,IAAA9F,gBAAA,CAAiBpD,KAAU,KAAA+I,WAAA,EAAa,OAAA;AACnE3F,IAAAA,gBAAA,CAAAtD,IAAA,GAAOoJ,cAActF,iBAAkB,CAAAK,KAAA,CAAA;AACvCb,IAAAA,gBAAA,CAAApD,KAAA,GAAQ+I,eAAepF,kBAAmB,CAAAM,KAAA,CAAA;GAC7D,CAAA;AAGM,EAAA,IAAAkF,wBAAA,GAA2B,SAA3BA,wBAAAA,CAA4BtE,UAAoC,EAAA;AACpE,IAAA,KAAA,IAASuE,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAvE,UAAA,CAAW9D,QAAQqI,CAAK,EAAA,EAAA;AAC1C,MAAA,IAAMC,QAAQxE,UAAW,CAAAuE,CAAA,CAAA,CAAA;AACzB,MAAA,KAAA,IAASpE,IAAI,CAAG,EAAAC,GAAA,GAAMoE,MAAMtI,MAAQ,EAAAiE,CAAA,GAAIC,KAAKD,CAAK,EAAA,EAAA;AAChD,QAAA,IAAMsE,aAAaD,KAAM,CAAArE,CAAA,CAAA,CAAA;AACnB,QAAA,IAAAuE,cAAA,GAAiBF,MAAMrE,CAAI,GAAA,CAAA,CAAA,CAAA;AAC3B,QAAA,IAAED,SAAWuE,UAAA,CAAXvE;QACF,IAAAyE,wBAAA,GAA2B,CAACzE,MAAA,KAAUA,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAA7E,gBAAA,CAAA,CAAA;QAChD,IAAAsJ,wBAAA,IAA4BF,WAAWjK,GAAI,CAAAU,KAAA,KAAU,UAAU,CAAAwJ,cAAgB,KAAhBA,IAAAA,IAAAA,cAAgB,uBAAhBA,cAAgB,CAAAlK,GAAA,CAAIU,WAAU,MAAQ,EAAA;UACvGuJ,UAAA,CAAWpJ,gBAAmB,GAAA,IAAA,CAAA;AAChC,SAAA;AACM,QAAA,IAAAuJ,cAAA,GAAiBJ,MAAMrE,CAAI,GAAA,CAAA,CAAA,CAAA;QAC3B,IAAA0E,0BAAA,GAA6B,CAAC3E,MAAA,KAAUA,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAA3E,kBAAA,CAAA,CAAA;QAClD,IAAAsJ,0BAAA,IAA8BJ,WAAWjK,GAAI,CAAAU,KAAA,KAAU,WAAW,CAAA0J,cAAgB,KAAhBA,IAAAA,IAAAA,cAAgB,uBAAhBA,cAAgB,CAAApK,GAAA,CAAIU,WAAU,OAAS,EAAA;UAC3GuJ,UAAA,CAAWlJ,kBAAqB,GAAA,IAAA,CAAA;AAClC,SAAA;AACF,OAAA;AACF,KAAA;GACF,CAAA;AAGA,EAAA,IAAMuJ,oBAAoB,SAApBA,oBAA0B;AAC9B,IAAA,IAAAC,aAAA,GAAsCnF,YAAA,CAAazC,QAAQiC,KAAK,CAAA;MAAxDwB,aAAe,GAAAmE,aAAA,CAAfnE,aAAe;MAAAZ,UAAA,GAAA+E,aAAA,CAAA/E,UAAA,CAAA;IACvBsE,wBAAA,CAAyBtE,UAAU,CAAA,CAAA;AAC7B,IAAA,IAAAgF,KAAA,GAAQC,WAAW,YAAM;AAAA,MAAA,IAAAC,gBAAA,CAAA;AAC7B,MAAA,IAAIrG,aAAc,CAAAO,KAAA,IAAA,CAAA8F,gBAAA,GAASlJ,SAAU,CAAAoD,KAAA,cAAA8F,gBAAA,KAAA,KAAA,CAAA,IAAVA,gBAAA,CAAiBhJ,MAAQ,EAAA;AACrBqH,QAAAA,4BAAA,CAAAtF,eAAA,CAAgBmB,OAAOwB,aAAa,CAAA,CAAA;AACnE,OAAA;MACAuE,YAAA,CAAaH,KAAK,CAAA,CAAA;OACjB,CAAC,CAAA,CAAA;AACJ,IAAA,OAAO,YAAM;MACXG,YAAA,CAAaH,KAAK,CAAA,CAAA;KACpB,CAAA;GACF,CAAA;AAEA,EAAA,IAAMI,oBAAoB,SAApBA,oBAA0B;AACxB,IAAA,IAAAJ,KAAA,GAAQC,WAAW,YAAM;AAC7B,MAAA,IAAI,CAAChH,eAAgB,CAAAmB,KAAA,EAAO,OAAA;AAC5BlB,MAAAA,aAAA,CAAckB,KAAQ,GAAAnB,eAAA,CAAgBmB,KAAM,CAAAiG,YAAA,GAAepH,gBAAgBmB,KAAM,CAAAkG,YAAA,CAAA;AACjFnH,MAAAA,eAAA,CAAgBiB,KAAQ,GAAAnB,eAAA,CAAgBmB,KAAM,CAAAgF,WAAA,GAAcnG,gBAAgBmB,KAAM,CAAA+E,WAAA,CAAA;MAC5E,IAAAoB,GAAA,GAAMtH,eAAgB,CAAAmB,KAAA,CAAMkD,qBAAsB,EAAA,CAAA;MACxD7D,sBAAA,CAAuBW,KAAQ,GAAA;QAC7B7C,KAAKgJ,GAAI,CAAAhJ,GAAA;QACTtB,MAAMsK,GAAI,CAAAtK,IAAAA;OACZ,CAAA;MACAkK,YAAA,CAAaH,KAAK,CAAA,CAAA;OACjB,CAAC,CAAA,CAAA;GACN,CAAA;AAEM,EAAA,IAAAQ,gBAAA,GAAmB,SAAnBA,gBAAAA,CAAoBnE,KAAkB,EAAA;AAC1C,IAAA,IAAI1C,cAAcS,KAAU,KAAAiC,KAAA,EAAO,OAAA;IACnC1C,aAAA,CAAcS,KAAQ,GAAAiC,KAAA,CAAA;GACxB,CAAA;AAEA,EAAA,IAAMoE,mBAAmB,SAAnBA,mBAAyB;IAAA,IAAAC,qBAAA,EAAAC,kBAAA,CAAA;AACvB,IAAA,IAAAC,IAAA,GAAA,CAAAF,qBAAA,GAAOzH,eAAgB,CAAAmB,KAAA,MAAAsG,IAAAA,IAAAA,qBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAuBpD,qBAAsB,EAAA,CAAA;IAC1D,IAAI,CAACsD,IAAA,EAAM,OAAA;IAEX,IAAMC,WAAc,GAAA3H,aAAA,CAAckB,KAAQ,GAAAf,cAAA,CAAee,KAAQ,GAAA,CAAA,CAAA;AACjEV,IAAAA,UAAA,CAAWU,QAAQwG,IAAK,CAAAvE,KAAA,GAAQwE,WAAe,IAAAhJ,KAAA,CAAMc,WAAW,CAAI,GAAA,CAAA,CAAA,CAAA;AAC9D,IAAA,IAAAmI,OAAA,GAAU1H,WAAa,aAAbA,WAAa,KAAA,KAAA,CAAA,IAAA,CAAAuH,kBAAA,GAAbvH,WAAa,CAAAgB,KAAA,cAAAuG,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,kBAAA,CAAoBrD,qBAAsB,EAAA,CAAA;AACjD,IAAA,CAAAwD,OAAA,KAAA,IAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAzE,KAAA,KAASmE,gBAAiB,CAAAM,OAAA,CAAQzE,KAAK,CAAA,CAAA;GAClD,CAAA;AAEA,EAAA,IAAM0E,sBAAsB,SAAtBA,sBAA4B;AAAA,IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA,CAAA;IAEvB,CAAAP,qBAAA,GAAAhJ,QAAA,CAAAwJ,kBAAA,CAAmBpH,iFAAnB4G,qBAAA,CAA0BS,YAAe,MAAA,IAAA,IAAAR,sBAAA,KAAA,KAAA,CAAA,IAAzCA,sBAAA,CAAAS,IAAA,CAAAV,qBAAyC,CAAA,CAAA;IACzC,CAAAE,qBAAA,GAAAlJ,QAAA,CAAA2J,wBAAA,CAAyBvH,iFAAzB8G,qBAAA,CAAgCO,YAAe,MAAA,IAAA,IAAAN,sBAAA,KAAA,KAAA,CAAA,IAA/CA,sBAAA,CAAAO,IAAA,CAAAR,qBAA+C,CAAA,CAAA;IAC/C,CAAAE,qBAAA,GAAApJ,QAAA,CAAA4J,iBAAA,CAAkBxH,iFAAlBgH,qBAAA,CAAyBK,YAAe,MAAA,IAAA,IAAAJ,sBAAA,KAAA,KAAA,CAAA,IAAxCA,sBAAA,CAAAK,IAAA,CAAAN,qBAAwC,CAAA,CAAA;IACxC,CAAAE,qBAAA,GAAAtJ,QAAA,CAAA6J,oBAAA,CAAqBzH,iFAArBkH,qBAAA,CAA4BG,YAAe,MAAA,IAAA,IAAAF,sBAAA,KAAA,KAAA,CAAA,IAA3CA,sBAAA,CAAAG,IAAA,CAAAJ,qBAA2C,CAAA,CAAA;GACtD,CAAA;AAEM,EAAA,IAAAQ,oBAAA,GAAuB,SAAvBA,oBAAAA,CAAwBrF,MAA2B,EAAA;IACvD,IAAMsF,WAAyC,EAAC,CAAA;AAChD,IAAA,KAAA,IAAS5G,IAAI,CAAG,EAAAC,GAAA,GAAMqB,OAAOvF,MAAQ,EAAAiE,CAAA,GAAIC,KAAKD,CAAK,EAAA,EAAA;AAC3C,MAAA,IAAAuB,MAAA,GAASD,OAAOtB,CAAG,CAAA,CAAAO,QAAA,CAAA;AAEzB,MAAA,KAAA,IAASiB,IAAI,CAAG,EAAAC,KAAA,GAAQF,OAAOxF,MAAQ,EAAAyF,CAAA,GAAIC,OAAOD,CAAK,EAAA,EAAA;AACrD,QAAA,IAAMG,KAAKJ,MAAO,CAAAC,CAAA,CAAA,CAAA;AACZ,QAAA,IAAA7G,MAAA,GAASgH,GAAGC,OAAQ,CAAAC,MAAA,CAAA;QACjB+E,QAAA,CAAAjM,MAAA,CAAA,GAAUgH,EAAG,CAAAQ,qBAAA,EAAwB,CAAAjB,KAAA,CAAA;AAChD,OAAA;AACF,KAAA;AACO,IAAA,OAAA0F,QAAA,CAAA;GACT,CAAA;AAEM,EAAA,IAAAC,iBAAA,GAAoB,SAApBA,iBAAAA,CAAqBvF,MAA0D,EAAA;IACnF,IAAIA,kBAAkBwF,cAAgB,EAAA;MACpC,IAAIjI,eAAgB,CAAAI,KAAA,EAAO,OAAA;AACfR,MAAAA,WAAA,CAAAQ,KAAA,GAAQ0H,qBAAqBrF,MAAM,CAAA,CAAA;AACjD,KAAO,MAAA;MACO7C,WAAA,CAAAQ,KAAA,GAAQR,WAAY,CAAAQ,KAAA,IAAS,EAAC,CAAA;MACnC8H,MAAA,CAAAC,OAAA,CAAQ1F,MAAM,CAAE,CAAA2F,OAAA,CAAQ,UAAAC,KAAA,EAAqB;AAAA,QAAA,IAAAC,KAAA,GAAA1E,kCAAA,CAAAyE,KAAA,EAAA,CAAA,CAAA;AAAnBvM,UAAAA,MAAA,GAAAwM,KAAA,CAAA,CAAA,CAAA;AAAQjG,UAAAA,KAAK,GAAAiG,KAAA,CAAA,CAAA,CAAA,CAAA;AAC5C1I,QAAAA,WAAA,CAAYQ,MAAMtE,MAAU,CAAA,GAAAuG,KAAA,CAAA;AAC9B,OAAC,CAAA,CAAA;AACH,KAAA;IACA,OAAOzC,WAAY,CAAAQ,KAAA,CAAA;GACrB,CAAA;AAEA,EAAA,IAAMmI,2BAA2B,SAA3BA,2BAAiC;AAC/B,IAAA,IAAAvC,KAAA,GAAQC,WAAW,YAAM;AAAA,MAAA,IAAAuC,sBAAA,CAAA;AACZ/B,MAAAA,gBAAA,EAAA,CAAA;MACjB,IAAIpG,kBAAmB,CAAAD,KAAA,EAAO,OAAA;AAC9B,MAAA,IAAMoD,KAAQ,GAAA,CAAAgF,sBAAA,GAAAvJ,eAAA,CAAgBmB,KAAO,MAAAoI,IAAAA,IAAAA,sBAAA,uBAAvBA,sBAAA,CAAuB9D,aAAA,CAAc,OAAO,CAAA,CAAA;MAC1D,IAAI,CAAClB,KAAA,EAAO,OAAA;AACZwE,MAAAA,iBAAA,CAAkBxE,MAAM9B,QAAQ,CAAA,CAAA;MAChCyE,YAAA,CAAaH,KAAK,CAAA,CAAA;OACjB,CAAC,CAAA,CAAA;GACN,CAAA;AAEA,EAAA,IAAMyC,mBAAmB,SAAnBA,mBAAyB;AAC7B7I,IAAAA,WAAA,CAAYQ,QAAQ,EAAC,CAAA;GACvB,CAAA;AAEM,EAAA,IAAAsI,eAAA,GAAkB,SAAlBA,eAAAA,CAAmBC,CAAkB,EAAA;AAAA,IAAA,IAAAC,gBAAA,EAAAC,gBAAA,EAAAC,eAAA,CAAA;AACnC,IAAA,CAAAF,gBAAA,GAAA/K,KAAA,CAAAkL,SAAA,MAAA,IAAA,IAAAH,gBAAA,KAAA,KAAA,CAAA,IAAAA,gBAAA,CAAAlB,IAAA,CAAA7J,KAAA,EAAY;AAAE8K,MAAAA,CAAA,EAAAA,CAAAA;AAAE,KAAC,CAAA,CAAA;AACjB,IAAA,CAAAE,gBAAA,GAAAhL,KAAA,CAAAmL,SAAA,MAAA,IAAA,IAAAH,gBAAA,KAAA,KAAA,CAAA,IAAAA,gBAAA,CAAAnB,IAAA,CAAA7J,KAAA,EAAY;AAAE8K,MAAAA,CAAA,EAAAA,CAAAA;AAAE,KAAC,CAAA,CAAA;AACjB,IAAA,CAAAG,eAAA,GAAAjL,KAAA,CAAAoL,QAAA,MAAA,IAAA,IAAAH,eAAA,KAAA,KAAA,CAAA,IAAAA,eAAA,CAAApB,IAAA,CAAA7J,KAAA,EAAW;AAAE8K,MAAAA,CAAA,EAAAA,CAAAA;AAAE,KAAC,CAAA,CAAA;GACxB,CAAA;AAEM,EAAA,IAAAO,cAAA,GAAiB,SAAjBA,cAAAA,CAAkBzI,IAAmC,EAAA;IACzD,IAAIA,SAAS,WAAa,EAAA;AAAA,MAAA,IAAA0I,sBAAA,CAAA;MACxB,IAAM1G,MAAS,IAAA0G,sBAAA,GAAAlK,eAAA,CAAgBmB,KAAO,MAAA+I,IAAAA,IAAAA,sBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,sBAAA,GAAvBA,sBAAA,CAAuBzE,aAAA,CAAc,OAAO,CAAG,cAAAyE,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA/CA,sBAAA,CAA+CzH,QAAA,CAAA;MAC9D,OAAOoG,qBAAqBrF,MAAM,CAAA,CAAA;AACpC,KAAA;AACO,IAAA,OAAA7C,WAAA,CAAYQ,SAAS,EAAC,CAAA;GAC/B,CAAA;EAEAgJ,SAAA,CACE,CACEtK,IAAA,EACAX,OAAA,EACAQ,QAAA,EACAP,WAAA,EACAC,iBAAA,EACAa,aAAA,EACAC,eAAA,EACAU,aAAA,EACA7C,SAAA,EACAsB,YAAA,EACAC,WAAA,CACF,EACAuH,iBAAA,EACA;AAAEuD,IAAAA,WAAW,IAAA;AAAK,GACpB,CAAA,CAAA;AAEAD,EAAAA,SAAA,CACE,CAACvJ,eAAe1B,OAAO,CAAA,EACvB,YAAM;AACE,IAAA,IAAA6H,KAAA,GAAQC,WAAW,YAAM;MAC7B,IAAIpG,cAAcO,KAAO,EAAA;AACvByE,QAAAA,uBAAA,CAAwB5F,gBAAgBmB,KAAK,CAAA,CAAA;AAC/C,OAAA;MACA+F,YAAA,CAAaH,KAAK,CAAA,CAAA;OACjB,CAAC,CAAA,CAAA;AACN,GAAA,EACA;AAAEqD,IAAAA,WAAW,IAAA;AAAK,GACpB,CAAA,CAAA;AAEAD,EAAAA,SAAA,CACE,CAAC5K,SAAA,EAAWM,IAAM,EAAAX,OAAA,EAASQ,UAAUM,eAAe,CAAA,EACpD,YAAM;IACJ,IAAIA,gBAAgBmB,KAAO,EAAA;AAEPgG,MAAAA,iBAAA,EAAA,CAAA;AACpB,KAAA;AACF,GAAA,EACA;AAAEiD,IAAAA,WAAW,IAAA;AAAK,GACpB,CAAA,CAAA;EAEAD,SAAA,CAAMrL,cAAc,YAAM;AACP0K,IAAAA,gBAAA,EAAA,CAAA;AACnB,GAAC,CAAA,CAAA;AAGDW,EAAAA,SAAA,CACE,CAACtK,MAAMH,QAAU,EAAAP,WAAA,EAAapB,WAAWkC,aAAe,EAAAT,gBAAA,EAAkBC,qBAAqBL,iBAAiB,CAAA,EAChH,YAAM;AACE,IAAA,IAAA2H,KAAA,GAAQC,WAAW,YAAM;AACJsC,MAAAA,wBAAA,EAAA,CAAA;AACLxB,MAAAA,mBAAA,EAAA,CAAA;MACpBZ,YAAA,CAAaH,KAAK,CAAA,CAAA;OACjB,EAAE,CAAA,CAAA;AACP,GAAA,EACA;AAAEqD,IAAAA,WAAW,IAAA;AAAK,GACpB,CAAA,CAAA;EAEMD,SAAA,CAAA,CAACrL,YAAY,CAAG,EAAA,UAAAuL,KAAA,EAAAC,KAAA,EAAuC;AAAA,IAAA,IAAAC,KAAA,GAAA5F,kCAAA,CAAA0F,KAAA,EAAA,CAAA,CAAA;AAArCvL,MAAAA,aAAY,GAAAyL,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,IAAAC,KAAA,GAAA7F,kCAAA,CAAA2F,KAAA,EAAA,CAAA,CAAA;AAAIG,MAAAA,eAAe,GAAAD,KAAA,CAAA,CAAA,CAAA,CAAA;AACrD,IAAA,IAAME,eAAe5L,aAAa,CAAA8C,GAAA,CAAI,UAAC0E,CAAA,EAAA;MAAA,OAAMA,EAAEzJ,MAAM,CAAA;KAAA,CAAA,CAAA;AACrD,IAAA,IAAM8N,aAAaF,eAAgB,CAAA7I,GAAA,CAAI,UAAC0E,CAAA,EAAA;MAAA,OAAMA,EAAEzJ,MAAM,CAAA;KAAA,CAAA,CAAA;AAClD,IAAA,IAAA6N,YAAA,CAAazM,MAAS,GAAA0M,UAAA,CAAW1M,MAAQ,EAAA;AACrC,MAAA,IAAA2M,UAAA,GAAaC,2BAAQ,CAAAF,UAAA,EAAYD,YAAY,CAAA,CAAA;AAC7C/J,MAAAA,IAAAA,YAAAA,GAAcsJ,eAAe,WAAW,CAAA,CAAA;MAC9C,IAAIrC,WAAc,GAAA,CAAA,CAAA;AACPgD,MAAAA,UAAA,CAAAzB,OAAA,CAAQ,UAAC7G,GAAQ,EAAA;AAC1BsF,QAAAA,WAAA,IAAejH,YAAY,CAAA2B,GAAA,CAAA,CAAA;AAC7B,OAAC,CAAA,CAAA;AACK,MAAA,IAAAwI,eAAA,GAAkBC,wBAAKpK,CAAAA,YAAAA,EAAagK,UAAU,CAAA,CAAA;MAC9C,IAAAK,aAAA,GAAgB/B,MAAO,CAAAgC,MAAA,CAAOH,eAAe,CAAA,CAAEI,MAAO,CAAA,YAAA;AAAA,QAAA,IAACC,CAAI,GAAAtJ,SAAA,CAAA5D,MAAA,GAAA,CAAA,IAAA4D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;QAAA,IAAGuJ,CAAM,GAAAvJ,SAAA,CAAA5D,MAAA,GAAA4D,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;QAAA,OAAAqJ,CAAA,GAAIC,CAAC,CAAA;OAAA,CAAA,CAAA;AAGzE,MAAA,IAAAC,YAAA,GAAerL,gBAAgBmB,KAAM,CAAA+E,WAAA,CAAA;AAC3C,MAAA,IAAMoF,iBAAiBN,aAAgB,GAAApD,WAAA,CAAA;MACvCL,gBAAA,CAAiBgE,IAAK,CAAAC,GAAA,CAAIH,YAAc,EAAAC,cAAc,CAAC,CAAA,CAAA;AACzD,KAAA;AACF,GAAC,CAAA,CAAA;AAED,EAAA,IAAMG,eAA2D,SAA3DA,eAAiE;AAE5CnC,IAAAA,wBAAA,EAAA,CAAA;AACPnC,IAAAA,iBAAA,EAAA,CAAA;AACEW,IAAAA,mBAAA,EAAA,CAAA;AAEhB,IAAA,IAAAlH,aAAA,CAAcO,KAAS,IAAAlB,aAAA,CAAckB,KAAO,EAAA;AAC5B0F,MAAAA,iBAAA,EAAA,CAAA;AAClBjB,MAAAA,uBAAA,CAAwB5F,eAAgB,CAAAmB,KAAA,EAAO;AAAE6E,QAAAA,eAAA,EAAiB,IAAA;AAAK,OAAC,CAAA,CAAA;AAC1E,KAAA;GACF,CAAA;AAEM,EAAA,IAAA0F,QAAA,GAAWC,6BAAS,YAAM;AACjBF,IAAAA,YAAA,EAAA,CAAA;KACZ,EAAE,CAAA,CAAA;EAEL,IAAIG,cAAiC,GAAA,IAAA,CAAA;EACrC,SAASC,uBAAuBC,YAA8B,EAAA;AAC5D,IAAA,IAAI,OAAOC,MAAW,KAAA,WAAA,EAAa,OAAA;AAEnC,IAAA,IAAIC,oCAAa,EAAA,GAAI,EAAM,IAAA,OAAOD,OAAOE,cAAmB,KAAA,WAAA,EAAa,OAAA;AACrEC,IAAAA,aAAA,CAAAH,MAAA,EAAQ,UAAUL,QAAQ,CAAA,CAAA;AACbE,IAAAA,cAAA,GAAA,IAAIG,MAAO,CAAAE,cAAA,CAAe,YAAM;AACzC,MAAA,IAAAlF,KAAA,GAAQC,WAAW,YAAM;AAChByE,QAAAA,YAAA,EAAA,CAAA;QACbvE,YAAA,CAAaH,KAAK,CAAA,CAAA;SACjB,EAAE,CAAA,CAAA;AACP,KAAC,CAAA,CAAA;AACD6E,IAAAA,cAAA,CAAeO,QAAQL,YAAY,CAAA,CAAA;IACnC/L,QAAA,CAASoB,KAAQ,GAAA2K,YAAA,CAAA;AACnB,GAAA;AAEAM,EAAAA,aAAA,CAAU,YAAM;AACd,IAAA,IAAMjG,cAAckG,2DAAyB,EAAA,CAAA;IAC7CjM,cAAA,CAAee,KAAQ,GAAAgF,WAAA,CAAA;AACEmD,IAAAA,wBAAA,EAAA,CAAA;IACnB,IAAAgD,aAAA,GAAgB1L,aAAc,CAAAO,KAAA,IAASlB,aAAc,CAAAkB,KAAA,IAAS,CAACC,kBAAmB,CAAAD,KAAA,IAAS,CAACtB,IAAA,CAAKsB,KAAM,CAAAlD,MAAA,CAAA;AAEvG,IAAA,IAAAsO,SAAA,GAAY,OAAOR,MAAW,KAAA,WAAA,CAAA;IACpC,IAAMS,iBAAoB,GAAAD,SAAA,IAAa,OAAOR,MAAA,CAAOE,cAAmB,KAAA,WAAA,CAAA;IACxE,IAAKK,aAAiB,IAAAN,oCAAA,EAAiB,GAAA,EAAA,IAAO,CAACQ,iBAAmB,EAAA;AAC7DC,MAAAA,YAAA,CAAAV,MAAA,EAAQ,UAAUL,QAAQ,CAAA,CAAA;AAC/B,KAAA;AACF,GAAC,CAAA,CAAA;AAEDgB,EAAAA,mBAAA,CAAgB,YAAM;IAAA,IAAAC,eAAA,EAAAC,gBAAA,CAAA;AAChB,IAAA,IAAA,OAAOb,WAAW,WAAa,EAAA;AAC7BG,MAAAA,aAAA,CAAAH,MAAA,EAAQ,UAAUL,QAAQ,CAAA,CAAA;AAChC,KAAA;AACgB,IAAA,CAAAiB,eAAA,GAAAf,cAAA,MAAA,IAAA,IAAAe,eAAA,KAAA,KAAA,CAAA,IAAAA,eAAA,CAAAE,SAAA,CAAU9M,SAASoB,KAAK,CAAA,CAAA;IACxC,CAAAyL,gBAAA,GAAAhB,cAAA,MAAAgB,IAAAA,IAAAA,gBAAA,eAAAA,gBAAA,CAAgBE,UAAW,EAAA,CAAA;AAC7B,GAAC,CAAA,CAAA;AAEK,EAAA,IAAAC,OAAA,GAAU,SAAVA,OAAAA,CAAWC,UAA+B,EAAA;IAC9CnN,IAAA,CAAKsB,KAAQ,GAAA6L,UAAA,CAAA;GACf,CAAA;AAEA,EAAA,IAAMC,+BAA+B,SAA/BA,+BAAqC;AACvBpG,IAAAA,iBAAA,EAAA,CAAA;AACAM,IAAAA,iBAAA,EAAA,CAAA;GACpB,CAAA;EAEO,OAAA;AACL1G,IAAAA,UAAA,EAAAA,UAAA;AACAC,IAAAA,aAAA,EAAAA,aAAA;AACAC,IAAAA,WAAA,EAAAA,WAAA;AACAV,IAAAA,aAAA,EAAAA,aAAA;AACAC,IAAAA,eAAA,EAAAA,eAAA;AACAF,IAAAA,eAAA,EAAAA,eAAA;AACAY,IAAAA,aAAA,EAAAA,aAAA;AACAN,IAAAA,gBAAA,EAAAA,gBAAA;AACA7D,IAAAA,sBAAA,EAAAA,sBAAA;AACA+D,IAAAA,sBAAA,EAAAA,sBAAA;AACAJ,IAAAA,cAAA,EAAAA,cAAA;AACA2M,IAAAA,OAAA,EAAAA,OAAA;AACAtB,IAAAA,YAAA,EAAAA,YAAA;AACAlE,IAAAA,gBAAA,EAAAA,gBAAA;AACAkC,IAAAA,eAAA,EAAAA,eAAA;AACAH,IAAAA,wBAAA,EAAAA,wBAAA;AACA1D,IAAAA,uBAAA,EAAAA,uBAAA;AACAnE,IAAAA,sBAAA,EAAAA,sBAAA;AACAwI,IAAAA,cAAA,EAAAA,cAAA;AACAlB,IAAAA,iBAAA,EAAAA,iBAAA;AACA8C,IAAAA,sBAAA,EAAAA,sBAAA;AACAoB,IAAAA,4BAAA,EAAAA,4BAAAA;GACF,CAAA;AACF;;;;;;"}
|
|
1
|
+
{"version":3,"file":"useFixed.js","sources":["../../../src/table/hooks/useFixed.ts"],"sourcesContent":["import {\n ref,\n reactive,\n watch,\n toRefs,\n SetupContext,\n onMounted,\n computed,\n ComputedRef,\n onBeforeUnmount,\n Ref,\n} from 'vue';\nimport get from 'lodash/get';\nimport debounce from 'lodash/debounce';\nimport xorWith from 'lodash/xorWith';\nimport log from '../../_common/js/log';\nimport { ClassName, Styles } from '../../common';\nimport { BaseTableCol, BaseTableInstanceFunctions, TableRowData, TdBaseTableProps } from '../type';\nimport { getScrollbarWidthWithCSS } from '../../_common/js/utils/getScrollbarWidth';\nimport { on, off } from '../../utils/dom';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../interface';\nimport { getIEVersion } from '../../_common/js/utils/helper';\nimport pick from 'lodash/pick';\n\n// 固定列相关类名处理\nexport function getColumnFixedStyles(\n col: TdBaseTableProps['columns'][0],\n index: number,\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableColFixedClasses: TableColFixedClasses,\n): { style?: Styles; classes?: ClassName } {\n const fixedPos = rowAndColFixedPosition?.get(col.colKey || index);\n if (!fixedPos) return {};\n const thClasses = {\n [tableColFixedClasses.left]: col.fixed === 'left',\n [tableColFixedClasses.right]: col.fixed === 'right',\n [tableColFixedClasses.lastLeft]: col.fixed === 'left' && fixedPos.lastLeftFixedCol,\n [tableColFixedClasses.firstRight]: col.fixed === 'right' && fixedPos.firstRightFixedCol,\n };\n const thStyles = {\n left: col.fixed === 'left' ? `${fixedPos.left}px` : undefined,\n right: col.fixed === 'right' ? `${fixedPos.right}px` : undefined,\n };\n return {\n style: thStyles,\n classes: thClasses,\n };\n}\n\n// 固定行相关类名处理\nexport function getRowFixedStyles(\n rowId: string | number,\n rowIndex: number,\n rowLength: number,\n fixedRows: TdBaseTableProps['fixedRows'],\n rowAndColFixedPosition: RowAndColFixedPosition,\n tableRowFixedClasses: TableRowFixedClasses,\n): { style: Styles; classes: ClassName } {\n if (!fixedRows || !fixedRows.length) return { style: undefined, classes: undefined };\n const fixedTop = rowIndex < fixedRows[0];\n const fixedBottom = rowIndex > rowLength - 1 - fixedRows[1];\n const firstFixedBottomRow = rowLength - fixedRows[1];\n const fixedPos = rowAndColFixedPosition?.get(rowId) || {};\n const rowClasses = {\n [tableRowFixedClasses.top]: fixedTop,\n [tableRowFixedClasses.bottom]: fixedBottom,\n [tableRowFixedClasses.firstBottom]: rowIndex === firstFixedBottomRow,\n [tableRowFixedClasses.withoutBorderBottom]: rowIndex === firstFixedBottomRow - 1,\n };\n const rowStyles = {\n top: fixedTop ? `${fixedPos.top}px` : undefined,\n bottom: fixedBottom ? `${fixedPos.bottom}px` : undefined,\n };\n return {\n style: rowStyles,\n classes: rowClasses,\n };\n}\n\nexport default function useFixed(\n props: TdBaseTableProps,\n context: SetupContext,\n finalColumns: ComputedRef<BaseTableCol<TableRowData>[]>,\n affixRef: Record<string, Ref>,\n) {\n const {\n columns,\n tableLayout,\n tableContentWidth,\n fixedRows,\n firstFullRow,\n lastFullRow,\n maxHeight,\n headerAffixedTop,\n footerAffixedBottom,\n bordered,\n resizable,\n allowResizeColumnWidth,\n } = toRefs(props);\n const data = ref<TableRowData[]>([]);\n const tableRef = ref<HTMLDivElement>();\n const tableContentRef = ref<HTMLDivElement>();\n const isFixedHeader = ref(false);\n const isWidthOverflow = ref(false);\n const tableElmRef = ref<HTMLTableElement>();\n // CSS 样式设置了固定 6px\n const scrollbarWidth = ref(6);\n // 固定列、固定表头、固定表尾等内容的位置信息\n const rowAndColFixedPosition = ref<RowAndColFixedPosition>(new Map());\n const showColumnShadow = reactive({\n left: false,\n right: false,\n });\n // 虚拟滚动不能使用 CSS sticky 固定表头\n const virtualScrollHeaderPos = ref<{ left: number; top: number }>({ left: 0, top: 0 });\n const tableWidth = ref(0);\n const tableElmWidth = ref(0);\n const thWidthList = ref<{ [colKey: string]: number }>({});\n\n const isFixedColumn = ref(false);\n const isFixedRightColumn = ref(false);\n const isFixedLeftColumn = ref(false);\n\n const columnResizable = computed(() => allowResizeColumnWidth.value ?? resizable.value ?? false);\n\n // 没有表头吸顶,没有虚拟滚动,则不需要表头宽度计算\n const notNeedThWidthList = computed(\n () =>\n !(\n props.headerAffixedTop ||\n props.footerAffixedBottom ||\n props.horizontalScrollAffixedBottom ||\n props.scroll?.type === 'virtual'\n ),\n );\n\n function setUseFixedTableElmRef(val: HTMLTableElement) {\n tableElmRef.value = val;\n }\n\n function getColumnMap(\n columns: BaseTableCol[],\n map: RowAndColFixedPosition = new Map(),\n levelNodes: FixedColumnInfo[][] = [],\n level = 0,\n parent?: FixedColumnInfo,\n ) {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (['left', 'right'].includes(col.fixed)) {\n isFixedColumn.value = true;\n }\n if (col.fixed === 'right') {\n isFixedRightColumn.value = true;\n }\n if (col.fixed === 'left') {\n isFixedLeftColumn.value = true;\n }\n const key = col.colKey || i;\n const columnInfo: FixedColumnInfo = { col, parent, index: i };\n map.set(key, columnInfo);\n if (col.children?.length) {\n getColumnMap(col.children, map, levelNodes, level + 1, columnInfo);\n }\n if (levelNodes[level]) {\n levelNodes[level].push(columnInfo);\n } else {\n // eslint-disable-next-line no-param-reassign\n levelNodes[level] = [columnInfo];\n }\n }\n return {\n newColumnsMap: map,\n levelNodes,\n };\n }\n\n const setFixedLeftPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const col = columns[i];\n if (col.fixed === 'right') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i - 1;\n while (lastColIndex >= 0 && columns[lastColIndex].fixed !== 'left') {\n lastColIndex -= 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === 0 ? parent?.left || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i - 1);\n if (colInfo) {\n colInfo.left = (lastColInfo?.left || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedLeftPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n const setFixedRightPos = (\n columns: BaseTableCol[],\n initialColumnMap: RowAndColFixedPosition,\n parent: FixedColumnInfo = {},\n ) => {\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n if (col.fixed === 'left') return;\n const colInfo = initialColumnMap.get(col.colKey || i);\n let lastColIndex = i + 1;\n while (lastColIndex < columns.length && columns[lastColIndex].fixed !== 'right') {\n lastColIndex += 1;\n }\n const lastCol = columns[lastColIndex];\n // 多级表头,使用父元素作为初始基本位置\n const defaultWidth = i === columns.length - 1 ? parent?.right || 0 : 0;\n const lastColInfo = initialColumnMap.get(lastCol?.colKey || i + 1);\n if (colInfo) {\n colInfo.right = (lastColInfo?.right || defaultWidth) + (lastColInfo?.width || 0);\n }\n // 多级表头\n if (col.children?.length) {\n setFixedRightPos(col.children, initialColumnMap, colInfo);\n }\n }\n };\n\n // 获取固定列位置信息。先获取节点宽度,再计算\n const setFixedColPosition = (trList: HTMLCollection, initialColumnMap: RowAndColFixedPosition) => {\n if (!trList) return;\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n if (!colKey) {\n log.warn('TDesign Table', `${th.innerText} missing colKey. colKey is required for fixed column feature.`);\n }\n const obj = initialColumnMap.get(colKey || j);\n if (obj?.col?.fixed) {\n initialColumnMap.set(colKey, { ...obj, width: th.getBoundingClientRect().width });\n }\n }\n }\n setFixedLeftPos(columns.value, initialColumnMap);\n setFixedRightPos(columns.value, initialColumnMap);\n };\n\n // 设置固定行位置信息 top/bottom\n const setFixedRowPosition = (\n trList: HTMLCollection,\n initialColumnMap: RowAndColFixedPosition,\n thead: HTMLTableSectionElement,\n tfoot: HTMLTableSectionElement,\n ) => {\n const [fixedTopRows, fixedBottomRows] = fixedRows.value || [];\n const { data, rowKey = 'id' } = props;\n for (let i = 0; i < fixedTopRows; i++) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i - 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === 0) {\n defaultBottom = thead?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.top = (lastRowInfo.top || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n for (let i = data.length - 1; i >= data.length - fixedBottomRows; i--) {\n const tr = trList[i] as HTMLElement;\n const rowId = get(data[i], rowKey);\n const thisRowInfo = initialColumnMap.get(rowId) || {};\n const lastRowId = get(data[i + 1], rowKey);\n const lastRowInfo = initialColumnMap.get(lastRowId) || {};\n let defaultBottom = 0;\n if (i === data.length - 1) {\n defaultBottom = tfoot?.getBoundingClientRect().height || 0;\n }\n thisRowInfo.bottom = (lastRowInfo.bottom || defaultBottom) + (lastRowInfo.height || 0);\n initialColumnMap.set(rowId, { ...thisRowInfo, height: tr?.getBoundingClientRect().height || 0 });\n }\n };\n\n const updateRowAndColFixedPosition = (tableContentElm: HTMLElement, initialColumnMap: RowAndColFixedPosition) => {\n rowAndColFixedPosition.value.clear();\n if (!tableContentElm) return;\n const thead = tableContentElm.querySelector('thead');\n // 处理固定列\n thead && setFixedColPosition(thead.children, initialColumnMap);\n // 处理冻结行\n const tbody = tableContentElm.querySelector('tbody');\n const tfoot = tableContentElm.querySelector('tfoot');\n tbody && setFixedRowPosition(tbody.children, initialColumnMap, thead, tfoot);\n // 更新最终 Map\n rowAndColFixedPosition.value = initialColumnMap;\n };\n\n let shadowLastScrollLeft: number;\n const updateColumnFixedShadow = (target: HTMLElement, extra?: { skipScrollLimit?: boolean }) => {\n if (!isFixedColumn.value || !target) return;\n const { scrollLeft } = target;\n // 只有左右滚动,需要更新固定列阴影\n if (shadowLastScrollLeft === scrollLeft && (!extra || !extra.skipScrollLimit)) return;\n shadowLastScrollLeft = scrollLeft;\n const isShowRight = target.clientWidth + scrollLeft < target.scrollWidth;\n const isShowLeft = scrollLeft > 0;\n if (showColumnShadow.left === isShowLeft && showColumnShadow.right === isShowRight) return;\n showColumnShadow.left = isShowLeft && isFixedLeftColumn.value;\n showColumnShadow.right = isShowRight && isFixedRightColumn.value;\n };\n\n // 多级表头场景较为复杂:为了滚动的阴影效果,需要知道哪些列是边界列,左侧固定列的最后一列,右侧固定列的第一列,每一层表头都需要兼顾\n const setIsLastOrFirstFixedCol = (levelNodes: FixedColumnInfo[][]) => {\n for (let t = 0; t < levelNodes.length; t++) {\n const nodes = levelNodes[t];\n for (let i = 0, len = nodes.length; i < len; i++) {\n const colMapInfo = nodes[i];\n const nextColMapInfo = nodes[i + 1];\n const { parent } = colMapInfo;\n const isParentLastLeftFixedCol = !parent || parent?.lastLeftFixedCol;\n if (isParentLastLeftFixedCol && colMapInfo.col.fixed === 'left' && nextColMapInfo?.col.fixed !== 'left') {\n colMapInfo.lastLeftFixedCol = true;\n }\n const lastColMapInfo = nodes[i - 1];\n const isParentFirstRightFixedCol = !parent || parent?.firstRightFixedCol;\n if (isParentFirstRightFixedCol && colMapInfo.col.fixed === 'right' && lastColMapInfo?.col.fixed !== 'right') {\n colMapInfo.firstRightFixedCol = true;\n }\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const updateFixedStatus = () => {\n const { newColumnsMap, levelNodes } = getColumnMap(columns.value);\n setIsLastOrFirstFixedCol(levelNodes);\n const timer = setTimeout(() => {\n if (isFixedColumn.value || fixedRows.value?.length) {\n updateRowAndColFixedPosition(tableContentRef.value, newColumnsMap);\n }\n clearTimeout(timer);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n };\n\n const updateFixedHeader = () => {\n const timer = setTimeout(() => {\n if (!tableContentRef.value) return;\n isFixedHeader.value = tableContentRef.value.scrollHeight > tableContentRef.value.clientHeight;\n isWidthOverflow.value = tableContentRef.value.scrollWidth > tableContentRef.value.clientWidth;\n const pos = tableContentRef.value.getBoundingClientRect();\n virtualScrollHeaderPos.value = {\n top: pos.top,\n left: pos.left,\n };\n clearTimeout(timer);\n }, 0);\n };\n\n const setTableElmWidth = (width: number) => {\n if (tableElmWidth.value === width) return;\n tableElmWidth.value = width;\n };\n\n const updateTableWidth = () => {\n const rect = tableContentRef.value?.getBoundingClientRect();\n if (!rect) return;\n // 存在纵向滚动条,且固定表头时,需去除滚动条宽度\n const reduceWidth = isFixedHeader.value ? scrollbarWidth.value : 0;\n tableWidth.value = rect.width - reduceWidth - (props.bordered ? 1 : 0);\n const elmRect = tableElmRef?.value?.getBoundingClientRect();\n elmRect?.width && setTableElmWidth(elmRect.width);\n };\n\n const updateAffixPosition = () => {\n // 在表格高度变化的时候 需要手动调整affix的位置 因为affix本身无法监听到这些变化触发重新计算\n affixRef.paginationAffixRef.value?.handleScroll?.();\n affixRef.horizontalScrollAffixRef.value?.handleScroll?.();\n affixRef.headerTopAffixRef.value?.handleScroll?.();\n affixRef.footerBottomAffixRef.value?.handleScroll?.();\n };\n\n const calculateThWidthList = (trList: HTMLCollection) => {\n const widthMap: { [colKey: string]: number } = {};\n for (let i = 0, len = trList.length; i < len; i++) {\n const thList = trList[i].children;\n // second for used for multiple row header\n for (let j = 0, thLen = thList.length; j < thLen; j++) {\n const th = thList[j] as HTMLElement;\n const colKey = th.dataset.colkey;\n widthMap[colKey] = th.getBoundingClientRect().width;\n }\n }\n return widthMap;\n };\n\n const updateThWidthList = (trList: HTMLCollection | { [colKey: string]: number }) => {\n if (trList instanceof HTMLCollection) {\n if (columnResizable.value) return;\n thWidthList.value = calculateThWidthList(trList);\n } else {\n thWidthList.value = thWidthList.value || {};\n Object.entries(trList).forEach(([colKey, width]) => {\n thWidthList.value[colKey] = width;\n });\n }\n return thWidthList.value;\n };\n\n const updateThWidthListHandler = () => {\n const timer = setTimeout(() => {\n updateTableWidth();\n if (notNeedThWidthList.value) return;\n const thead = tableContentRef.value?.querySelector('thead');\n if (!thead) return;\n updateThWidthList(thead.children);\n clearTimeout(timer);\n }, 0);\n };\n\n const resetThWidthList = () => {\n thWidthList.value = {};\n };\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScrollX?.({ e });\n props.onScrollY?.({ e });\n props.onScroll?.({ e });\n };\n\n const getThWidthList = (type?: 'default' | 'calculate') => {\n if (type === 'calculate') {\n const trList = tableContentRef.value?.querySelector('thead')?.children;\n return calculateThWidthList(trList);\n }\n return thWidthList.value || {};\n };\n\n watch(\n [\n data,\n columns,\n bordered,\n tableLayout,\n tableContentWidth,\n isFixedHeader,\n isWidthOverflow,\n isFixedColumn,\n fixedRows,\n firstFullRow,\n lastFullRow,\n ],\n updateFixedStatus,\n { immediate: true },\n );\n\n watch(\n [isFixedColumn, columns],\n () => {\n const timer = setTimeout(() => {\n if (isFixedColumn.value) {\n updateColumnFixedShadow(tableContentRef.value);\n }\n clearTimeout(timer);\n }, 0);\n },\n { immediate: true },\n );\n\n watch(\n [maxHeight, data, columns, bordered, tableContentRef],\n () => {\n if (tableContentRef.value) {\n // 如果不监听元素的ref,会出现watch在ref还没ready的时候触发,此时没有触发这个判断的更新,导致表头消失\n updateFixedHeader();\n }\n },\n { immediate: true },\n );\n\n watch(finalColumns, () => {\n resetThWidthList();\n });\n\n // 影响表头宽度的元素\n watch(\n [data, bordered, tableLayout, fixedRows, isFixedHeader, headerAffixedTop, footerAffixedBottom, tableContentWidth],\n () => {\n const timer = setTimeout(() => {\n updateThWidthListHandler();\n updateAffixPosition();\n clearTimeout(timer);\n }, 60);\n },\n { immediate: true },\n );\n\n watch([finalColumns], ([finalColumns], [preFinalColumns]) => {\n const finalColKeys = finalColumns.map((t) => t.colKey);\n const preColKeys = preFinalColumns.map((t) => t.colKey);\n if (finalColKeys.length < preColKeys.length) {\n const reduceKeys = xorWith(preColKeys, finalColKeys);\n const thWidthList = getThWidthList('calculate');\n let reduceWidth = 0;\n reduceKeys.forEach((key) => {\n reduceWidth += thWidthList[key];\n });\n const rootThWidthList = pick(thWidthList, preColKeys);\n const oldTotalWidth = Object.values(rootThWidthList).reduce((r = 0, n) => r + n);\n // 保留原有可能编辑过的列宽度,但是当剩余列过小时,表头小于内容宽,需要缩放回内容宽度\n // 使用不包含滚动条的可视化区域宽度,意味着当不再溢出的时候,将宽度设置回完整宽度\n const contentWidth = tableContentRef.value.clientWidth;\n const widthToReserve = oldTotalWidth - reduceWidth;\n setTableElmWidth(Math.max(contentWidth, widthToReserve));\n }\n });\n\n const refreshTable: BaseTableInstanceFunctions['refreshTable'] = () => {\n // updateTableWidth();\n updateThWidthListHandler();\n updateFixedHeader();\n updateAffixPosition();\n\n if (isFixedColumn.value || isFixedHeader.value) {\n updateFixedStatus();\n updateColumnFixedShadow(tableContentRef.value, { skipScrollLimit: true });\n }\n };\n\n const onResize = debounce(() => {\n refreshTable();\n }, 30);\n\n let resizeObserver: ResizeObserver = null;\n function addTableResizeObserver(tableElement: HTMLDivElement) {\n if (typeof window === 'undefined') return;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n if (getIEVersion() < 11 || typeof window.ResizeObserver === 'undefined') return;\n off(window, 'resize', onResize);\n resizeObserver = new window.ResizeObserver(() => {\n const timer = setTimeout(() => {\n refreshTable();\n clearTimeout(timer);\n }, 200);\n });\n resizeObserver.observe(tableElement);\n tableRef.value = tableElement;\n }\n\n onMounted(() => {\n const scrollWidth = getScrollbarWidthWithCSS();\n scrollbarWidth.value = scrollWidth;\n updateThWidthListHandler();\n const isWatchResize = isFixedColumn.value || isFixedHeader.value || !notNeedThWidthList.value || !data.value.length;\n // IE 11 以下使用 window resize;IE 11 以上使用 ResizeObserver\n const hasWindow = typeof window !== 'undefined';\n const hasResizeObserver = hasWindow && typeof window.ResizeObserver !== 'undefined';\n if ((isWatchResize && getIEVersion() < 11) || !hasResizeObserver) {\n on(window, 'resize', onResize);\n }\n });\n\n onBeforeUnmount(() => {\n if (typeof window !== 'undefined') {\n off(window, 'resize', onResize);\n }\n resizeObserver?.unobserve(tableRef.value);\n resizeObserver?.disconnect();\n });\n\n const setData = (dataSource: TableRowData[]) => {\n data.value = dataSource;\n };\n\n const updateTableAfterColumnResize = () => {\n updateFixedStatus();\n updateFixedHeader();\n };\n\n return {\n tableWidth,\n tableElmWidth,\n thWidthList,\n isFixedHeader,\n isWidthOverflow,\n tableContentRef,\n isFixedColumn,\n showColumnShadow,\n rowAndColFixedPosition,\n virtualScrollHeaderPos,\n scrollbarWidth,\n setData,\n refreshTable,\n setTableElmWidth,\n emitScrollEvent,\n updateThWidthListHandler,\n updateColumnFixedShadow,\n setUseFixedTableElmRef,\n getThWidthList,\n updateThWidthList,\n addTableResizeObserver,\n updateTableAfterColumnResize,\n };\n}\n"],"names":["getColumnFixedStyles","col","index","rowAndColFixedPosition","tableColFixedClasses","fixedPos","get","colKey","thClasses","_defineProperty","left","fixed","right","lastLeft","lastLeftFixedCol","firstRight","firstRightFixedCol","thStyles","concat","style","classes","getRowFixedStyles","rowId","rowIndex","rowLength","fixedRows","tableRowFixedClasses","length","fixedTop","fixedBottom","firstFixedBottomRow","rowClasses","top","bottom","firstBottom","withoutBorderBottom","rowStyles","useFixed","props","context","finalColumns","affixRef","_toRefs","toRefs","columns","tableLayout","tableContentWidth","firstFullRow","lastFullRow","maxHeight","headerAffixedTop","footerAffixedBottom","bordered","resizable","allowResizeColumnWidth","data","ref","tableRef","tableContentRef","isFixedHeader","isWidthOverflow","tableElmRef","scrollbarWidth","Map","showColumnShadow","reactive","virtualScrollHeaderPos","tableWidth","tableElmWidth","thWidthList","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","computed","_ref","_allowResizeColumnWid","value","notNeedThWidthList","_props$scroll","horizontalScrollAffixedBottom","scroll","type","setUseFixedTableElmRef","val","getColumnMap","map","arguments","undefined","levelNodes","level","parent","i","len","_col$children","includes","key","columnInfo","set","children","push","newColumnsMap","setFixedLeftPos","initialColumnMap","_col$children2","colInfo","lastColIndex","lastCol","defaultWidth","lastColInfo","width","setFixedRightPos","_col$children3","setFixedColPosition","trList","thList","j","thLen","_obj$col","th","dataset","colkey","log","warn","innerText","obj","_objectSpread","getBoundingClientRect","setFixedRowPosition","thead","tfoot","_ref2","_ref3","_slicedToArray","fixedTopRows","fixedBottomRows","_props$rowKey","rowKey","tr","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","height","updateRowAndColFixedPosition","tableContentElm","clear","querySelector","tbody","shadowLastScrollLeft","updateColumnFixedShadow","target","extra","scrollLeft","skipScrollLimit","isShowRight","clientWidth","scrollWidth","isShowLeft","setIsLastOrFirstFixedCol","t","nodes","colMapInfo","nextColMapInfo","isParentLastLeftFixedCol","lastColMapInfo","isParentFirstRightFixedCol","updateFixedStatus","_getColumnMap","timer","setTimeout","_fixedRows$value","clearTimeout","updateFixedHeader","scrollHeight","clientHeight","pos","setTableElmWidth","updateTableWidth","_tableContentRef$valu","_tableElmRef$value","rect","reduceWidth","elmRect","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","handleScroll","call","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","updateThWidthList","HTMLCollection","Object","entries","forEach","_ref4","_ref5","updateThWidthListHandler","_tableContentRef$valu2","resetThWidthList","emitScrollEvent","e","_props$onScrollX","_props$onScrollY","_props$onScroll","onScrollX","onScrollY","onScroll","getThWidthList","_tableContentRef$valu3","watch","immediate","_ref6","_ref7","_ref8","_ref9","preFinalColumns","finalColKeys","preColKeys","reduceKeys","xorWith","rootThWidthList","pick","oldTotalWidth","values","reduce","r","n","contentWidth","widthToReserve","Math","max","refreshTable","onResize","debounce","resizeObserver","addTableResizeObserver","tableElement","window","getIEVersion","ResizeObserver","off","observe","onMounted","getScrollbarWidthWithCSS","isWatchResize","hasWindow","hasResizeObserver","on","onBeforeUnmount","_resizeObserver","_resizeObserver2","unobserve","disconnect","setData","dataSource","updateTableAfterColumnResize"],"mappings":"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"}
|
|
@@ -119,12 +119,12 @@ function useTreeDataExpand(props, params) {
|
|
|
119
119
|
store.value.foldTreeNode(removedList, data2, rowDataKeys.value);
|
|
120
120
|
return _toConsumableArray__default["default"](data2);
|
|
121
121
|
}
|
|
122
|
-
Vue.watch([tExpandedTreeNode], function (_ref, _ref2) {
|
|
122
|
+
Vue.watch([tExpandedTreeNode, data], function (_ref, _ref2) {
|
|
123
123
|
var _ref3 = _slicedToArray__default["default"](_ref, 1),
|
|
124
124
|
tExpandedTreeNode2 = _ref3[0];
|
|
125
125
|
var _ref4 = _slicedToArray__default["default"](_ref2, 1),
|
|
126
126
|
oldExpandedTreeNode = _ref4[0];
|
|
127
|
-
if (!store.value.treeDataMap.size) return;
|
|
127
|
+
if (!store.value.treeDataMap.size || !data.value.length) return;
|
|
128
128
|
if (changedExpandTreeNode.value.type === "user-reaction-change") {
|
|
129
129
|
var _ref5 = changedExpandTreeNode.value || {},
|
|
130
130
|
row = _ref5.row,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeDataExpand.js","sources":["../../../src/table/hooks/useTreeDataExpand.ts"],"sourcesContent":["import { ComputedRef, nextTick, ref, Ref, toRefs, watch } from 'vue';\nimport { TdEnhancedTableProps, TableRowData } from '../type';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport TableTreeStore, { diffExpandedTreeNode, getUniqueRowValue } from '../../_common/js/table/tree-store';\nimport { TableTreeExpandType } from '../interface';\n\nexport function useTreeDataExpand(\n props: TdEnhancedTableProps,\n params: {\n store: Ref<InstanceType<typeof TableTreeStore>>;\n dataSource: Ref<TdEnhancedTableProps['data']>;\n rowDataKeys: ComputedRef<{ rowKey: string; childrenKey: string }>;\n },\n) {\n const { store, dataSource, rowDataKeys } = params;\n const { data, expandedTreeNodes, tree } = toRefs(props);\n\n const isDefaultExpandAllExecute = ref(false);\n const isDefaultExpandedTreeNodesExecute = ref(false);\n const [tExpandedTreeNode, setTExpandedTreeNode] = useDefaultValue(\n expandedTreeNodes,\n props.defaultExpandedTreeNodes,\n props.onExpandedTreeNodesChange,\n 'expandedTreeNodes',\n );\n\n const changedExpandTreeNode = ref<{\n type?: TableTreeExpandType;\n row?: TableRowData;\n rowIndex?: number;\n }>({ type: 'props-change' });\n\n /**\n * 对外暴露的组件实例方法,展开所有节点\n */\n function expandAll(type: 'expand-all' | 'default-expand-all' = 'expand-all', list?: TableRowData[]) {\n const newData = list || data.value;\n dataSource.value = store.value.expandAll(newData, rowDataKeys.value);\n const expandedNode = dataSource.value.map((t) => getUniqueRowValue(t, rowDataKeys.value.rowKey));\n setTExpandedTreeNode(expandedNode, {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'expand',\n trigger: type,\n });\n changedExpandTreeNode.value.type = 'expand-all';\n }\n\n /**\n * 对外暴露的组件实例方法,收起所有节点\n */\n function foldAll() {\n dataSource.value = [...store.value.foldAll(dataSource.value, rowDataKeys.value)];\n setTExpandedTreeNode([], {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'fold',\n trigger: 'fold-all',\n });\n }\n\n function onExpandFoldIconClick(\n p: { row: TableRowData; rowIndex: number },\n trigger?: 'expand-fold-icon' | 'row-click',\n ) {\n const { row, rowIndex } = p;\n changedExpandTreeNode.value = {\n type: 'user-reaction-change',\n ...p,\n };\n const rowValue = getUniqueRowValue(row, rowDataKeys.value.rowKey);\n const rowState = store.value.treeDataMap.get(rowValue);\n let expandedNodes = [...tExpandedTreeNode.value];\n if (rowState.expanded) {\n const expandedChildrenKeys = store.value.getExpandedChildrenKeys([row], rowDataKeys.value);\n for (let i = 0, len = expandedNodes.length; i < len; i++) {\n const nodeValue = expandedNodes[i];\n if (expandedChildrenKeys.includes(nodeValue)) {\n expandedNodes[i] = undefined;\n }\n }\n expandedNodes = expandedNodes.filter(Boolean);\n } else {\n expandedNodes.push(rowValue);\n }\n const params = {\n row,\n rowIndex,\n rowState,\n trigger,\n };\n setTExpandedTreeNode(expandedNodes, {\n ...params,\n type: rowState.expanded ? 'fold' : 'expand',\n });\n props.onTreeExpandChange?.(params);\n }\n\n function updateExpandState(\n data: TableRowData[],\n tExpandedTreeNode: (string | number)[],\n oldExpandedTreeNode: (string | number)[] = [],\n ) {\n const { addedList, removedList } = diffExpandedTreeNode(tExpandedTreeNode, oldExpandedTreeNode);\n store.value.expandTreeNode(addedList, data, rowDataKeys.value);\n store.value.foldTreeNode(removedList, data, rowDataKeys.value);\n return [...data];\n }\n\n watch([tExpandedTreeNode], ([tExpandedTreeNode], [oldExpandedTreeNode]) => {\n if (!store.value.treeDataMap.size) return;\n if (changedExpandTreeNode.value.type === 'user-reaction-change') {\n const { row, rowIndex } = changedExpandTreeNode.value || {};\n dataSource.value = [...store.value.toggleExpandData({ row, rowIndex }, [...dataSource.value], rowDataKeys.value)];\n } else if (changedExpandTreeNode.value.type === 'props-change') {\n updateExpandState(dataSource.value, tExpandedTreeNode, oldExpandedTreeNode);\n }\n changedExpandTreeNode.value.type = 'props-change';\n });\n\n const updateExpandOnDataChange = (data: TableRowData[]) => {\n if (tree.value?.defaultExpandAll && !isDefaultExpandAllExecute.value) {\n expandAll('default-expand-all', [...data]);\n isDefaultExpandAllExecute.value = true;\n } else if (tExpandedTreeNode.value?.length) {\n nextTick(() => {\n dataSource.value = updateExpandState([...data], tExpandedTreeNode.value, []);\n });\n }\n };\n\n return {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n onExpandFoldIconClick,\n updateExpandOnDataChange,\n };\n}\n\nexport default useTreeDataExpand;\n"],"names":["useTreeDataExpand","props","params","store","dataSource","rowDataKeys","_toRefs","toRefs","data","expandedTreeNodes","tree","isDefaultExpandAllExecute","ref","isDefaultExpandedTreeNodesExecute","_useDefaultValue","useDefaultValue","defaultExpandedTreeNodes","onExpandedTreeNodesChange","_useDefaultValue2","_slicedToArray","tExpandedTreeNode","setTExpandedTreeNode","changedExpandTreeNode","type","expandAll","arguments","length","undefined","list","newData","value","expandedNode","map","t","getUniqueRowValue","rowKey","row","rowState","rowIndex","trigger","foldAll","_toConsumableArray","onExpandFoldIconClick","p","_props$onTreeExpandCh","_objectSpread","rowValue","treeDataMap","get","expandedNodes","expanded","expandedChildrenKeys","getExpandedChildrenKeys","i","len","nodeValue","includes","filter","Boolean","push","onTreeExpandChange","call","updateExpandState","oldExpandedTreeNode","_diffExpandedTreeNode","diffExpandedTreeNode","addedList","removedList","expandTreeNode","foldTreeNode","watch","_ref","_ref2","_ref3","_ref4","size","_ref5","toggleExpandData","updateExpandOnDataChange","_tree$value","_tExpandedTreeNode$va","defaultExpandAll","nextTick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTreeDataExpand.js","sources":["../../../src/table/hooks/useTreeDataExpand.ts"],"sourcesContent":["import { ComputedRef, nextTick, ref, Ref, toRefs, watch } from 'vue';\nimport { TdEnhancedTableProps, TableRowData } from '../type';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport TableTreeStore, { diffExpandedTreeNode, getUniqueRowValue } from '../../_common/js/table/tree-store';\nimport { TableTreeExpandType } from '../interface';\n\nexport function useTreeDataExpand(\n props: TdEnhancedTableProps,\n params: {\n store: Ref<InstanceType<typeof TableTreeStore>>;\n dataSource: Ref<TdEnhancedTableProps['data']>;\n rowDataKeys: ComputedRef<{ rowKey: string; childrenKey: string }>;\n },\n) {\n const { store, dataSource, rowDataKeys } = params;\n const { data, expandedTreeNodes, tree } = toRefs(props);\n\n const isDefaultExpandAllExecute = ref(false);\n const isDefaultExpandedTreeNodesExecute = ref(false);\n const [tExpandedTreeNode, setTExpandedTreeNode] = useDefaultValue(\n expandedTreeNodes,\n props.defaultExpandedTreeNodes,\n props.onExpandedTreeNodesChange,\n 'expandedTreeNodes',\n );\n\n const changedExpandTreeNode = ref<{\n type?: TableTreeExpandType;\n row?: TableRowData;\n rowIndex?: number;\n }>({ type: 'props-change' });\n\n /**\n * 对外暴露的组件实例方法,展开所有节点\n */\n function expandAll(type: 'expand-all' | 'default-expand-all' = 'expand-all', list?: TableRowData[]) {\n const newData = list || data.value;\n dataSource.value = store.value.expandAll(newData, rowDataKeys.value);\n const expandedNode = dataSource.value.map((t) => getUniqueRowValue(t, rowDataKeys.value.rowKey));\n setTExpandedTreeNode(expandedNode, {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'expand',\n trigger: type,\n });\n changedExpandTreeNode.value.type = 'expand-all';\n }\n\n /**\n * 对外暴露的组件实例方法,收起所有节点\n */\n function foldAll() {\n dataSource.value = [...store.value.foldAll(dataSource.value, rowDataKeys.value)];\n setTExpandedTreeNode([], {\n row: undefined,\n rowState: undefined,\n rowIndex: undefined,\n type: 'fold',\n trigger: 'fold-all',\n });\n }\n\n function onExpandFoldIconClick(\n p: { row: TableRowData; rowIndex: number },\n trigger?: 'expand-fold-icon' | 'row-click',\n ) {\n const { row, rowIndex } = p;\n changedExpandTreeNode.value = {\n type: 'user-reaction-change',\n ...p,\n };\n const rowValue = getUniqueRowValue(row, rowDataKeys.value.rowKey);\n const rowState = store.value.treeDataMap.get(rowValue);\n let expandedNodes = [...tExpandedTreeNode.value];\n if (rowState.expanded) {\n const expandedChildrenKeys = store.value.getExpandedChildrenKeys([row], rowDataKeys.value);\n for (let i = 0, len = expandedNodes.length; i < len; i++) {\n const nodeValue = expandedNodes[i];\n if (expandedChildrenKeys.includes(nodeValue)) {\n expandedNodes[i] = undefined;\n }\n }\n expandedNodes = expandedNodes.filter(Boolean);\n } else {\n expandedNodes.push(rowValue);\n }\n const params = {\n row,\n rowIndex,\n rowState,\n trigger,\n };\n setTExpandedTreeNode(expandedNodes, {\n ...params,\n type: rowState.expanded ? 'fold' : 'expand',\n });\n props.onTreeExpandChange?.(params);\n }\n\n function updateExpandState(\n data: TableRowData[],\n tExpandedTreeNode: (string | number)[],\n oldExpandedTreeNode: (string | number)[] = [],\n ) {\n const { addedList, removedList } = diffExpandedTreeNode(tExpandedTreeNode, oldExpandedTreeNode);\n store.value.expandTreeNode(addedList, data, rowDataKeys.value);\n store.value.foldTreeNode(removedList, data, rowDataKeys.value);\n return [...data];\n }\n\n watch([tExpandedTreeNode, data], ([tExpandedTreeNode], [oldExpandedTreeNode]) => {\n if (!store.value.treeDataMap.size || !data.value.length) return;\n if (changedExpandTreeNode.value.type === 'user-reaction-change') {\n const { row, rowIndex } = changedExpandTreeNode.value || {};\n dataSource.value = [...store.value.toggleExpandData({ row, rowIndex }, [...dataSource.value], rowDataKeys.value)];\n } else if (changedExpandTreeNode.value.type === 'props-change') {\n updateExpandState(dataSource.value, tExpandedTreeNode, oldExpandedTreeNode);\n }\n changedExpandTreeNode.value.type = 'props-change';\n });\n\n const updateExpandOnDataChange = (data: TableRowData[]) => {\n if (tree.value?.defaultExpandAll && !isDefaultExpandAllExecute.value) {\n expandAll('default-expand-all', [...data]);\n isDefaultExpandAllExecute.value = true;\n } else if (tExpandedTreeNode.value?.length) {\n nextTick(() => {\n dataSource.value = updateExpandState([...data], tExpandedTreeNode.value, []);\n });\n }\n };\n\n return {\n tExpandedTreeNode,\n isDefaultExpandAllExecute,\n isDefaultExpandedTreeNodesExecute,\n expandAll,\n foldAll,\n onExpandFoldIconClick,\n updateExpandOnDataChange,\n };\n}\n\nexport default useTreeDataExpand;\n"],"names":["useTreeDataExpand","props","params","store","dataSource","rowDataKeys","_toRefs","toRefs","data","expandedTreeNodes","tree","isDefaultExpandAllExecute","ref","isDefaultExpandedTreeNodesExecute","_useDefaultValue","useDefaultValue","defaultExpandedTreeNodes","onExpandedTreeNodesChange","_useDefaultValue2","_slicedToArray","tExpandedTreeNode","setTExpandedTreeNode","changedExpandTreeNode","type","expandAll","arguments","length","undefined","list","newData","value","expandedNode","map","t","getUniqueRowValue","rowKey","row","rowState","rowIndex","trigger","foldAll","_toConsumableArray","onExpandFoldIconClick","p","_props$onTreeExpandCh","_objectSpread","rowValue","treeDataMap","get","expandedNodes","expanded","expandedChildrenKeys","getExpandedChildrenKeys","i","len","nodeValue","includes","filter","Boolean","push","onTreeExpandChange","call","updateExpandState","oldExpandedTreeNode","_diffExpandedTreeNode","diffExpandedTreeNode","addedList","removedList","expandTreeNode","foldTreeNode","watch","_ref","_ref2","_ref3","_ref4","size","_ref5","toggleExpandData","updateExpandOnDataChange","_tree$value","_tExpandedTreeNode$va","defaultExpandAll","nextTick"],"mappings":"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"}
|
package/dist/tdesign.js
CHANGED
|
@@ -56759,7 +56759,7 @@
|
|
|
56759
56759
|
var timer = setTimeout(function () {
|
|
56760
56760
|
refreshTable();
|
|
56761
56761
|
clearTimeout(timer);
|
|
56762
|
-
},
|
|
56762
|
+
}, 200);
|
|
56763
56763
|
});
|
|
56764
56764
|
resizeObserver.observe(tableElement);
|
|
56765
56765
|
tableRef.value = tableElement;
|
|
@@ -58764,6 +58764,7 @@
|
|
|
58764
58764
|
_this$affixHeaderRef,
|
|
58765
58765
|
_this$footData,
|
|
58766
58766
|
_this$tableFootHeight,
|
|
58767
|
+
_this$tableFootHeight2,
|
|
58767
58768
|
_affixHeaderHeight$va,
|
|
58768
58769
|
_this$tableContentRef;
|
|
58769
58770
|
if (!this.showElement) {
|
|
@@ -58906,7 +58907,7 @@
|
|
|
58906
58907
|
"offsetBottom": marginScrollbarWidth || 0
|
|
58907
58908
|
}, getAffixProps(this.footerAffixedBottom), {
|
|
58908
58909
|
"style": {
|
|
58909
|
-
marginTop: "".concat(-1 * (this.tableFootHeight + marginScrollbarWidth), "px")
|
|
58910
|
+
marginTop: "".concat(-1 * (((_this$tableFootHeight = this.tableFootHeight) !== null && _this$tableFootHeight !== void 0 ? _this$tableFootHeight : 0) + marginScrollbarWidth), "px")
|
|
58910
58911
|
},
|
|
58911
58912
|
"ref": "footerBottomAffixRef"
|
|
58912
58913
|
}), {
|
|
@@ -58937,7 +58938,7 @@
|
|
|
58937
58938
|
}, _this.$slots)])])];
|
|
58938
58939
|
}
|
|
58939
58940
|
});
|
|
58940
|
-
var translate = "translate(0, ".concat(this.virtualConfig.scrollHeight.value + ((_this$
|
|
58941
|
+
var translate = "translate(0, ".concat(this.virtualConfig.scrollHeight.value + ((_this$tableFootHeight2 = this.tableFootHeight) !== null && _this$tableFootHeight2 !== void 0 ? _this$tableFootHeight2 : 0) + ((_affixHeaderHeight$va = affixHeaderHeight.value) !== null && _affixHeaderHeight$va !== void 0 ? _affixHeaderHeight$va : 0), "px)");
|
|
58941
58942
|
var virtualStyle = {
|
|
58942
58943
|
transform: translate,
|
|
58943
58944
|
"-ms-transform": translate,
|
|
@@ -65279,12 +65280,12 @@
|
|
|
65279
65280
|
store.value.foldTreeNode(removedList, data2, rowDataKeys.value);
|
|
65280
65281
|
return _toConsumableArray(data2);
|
|
65281
65282
|
}
|
|
65282
|
-
Vue.watch([tExpandedTreeNode], function (_ref, _ref2) {
|
|
65283
|
+
Vue.watch([tExpandedTreeNode, data], function (_ref, _ref2) {
|
|
65283
65284
|
var _ref3 = _slicedToArray(_ref, 1),
|
|
65284
65285
|
tExpandedTreeNode2 = _ref3[0];
|
|
65285
65286
|
var _ref4 = _slicedToArray(_ref2, 1),
|
|
65286
65287
|
oldExpandedTreeNode = _ref4[0];
|
|
65287
|
-
if (!store.value.treeDataMap.size) return;
|
|
65288
|
+
if (!store.value.treeDataMap.size || !data.value.length) return;
|
|
65288
65289
|
if (changedExpandTreeNode.value.type === "user-reaction-change") {
|
|
65289
65290
|
var _ref5 = changedExpandTreeNode.value || {},
|
|
65290
65291
|
row = _ref5.row,
|