{"version":3,"file":"dep-9c4aef07.mjs","sources":["../../../hooks/icon/index.tsx","../../../hooks/slot/index.ts","../../../common/js/utils/general.ts","../../../hooks/tnode/index.ts","../../../hooks/useCollapseAnimation/index.ts","../../../hooks/useConfig/index.ts","../../../hooks/useCommonClassName/index.ts","../../../hooks/useDefaultValue/index.ts","../../../hooks/useDestroyOnClose/index.ts","../../../hooks/useDisabled/index.ts","../../../hooks/useDragSort/index.ts","../../../hooks/useElementLazyRender/index.ts","../../../hooks/useGlobalIcon/index.ts","../../../hooks/useImagePreviewUrl/index.ts","../../../hooks/useKeepAnimation/index.ts","../../../hooks/useLazyLoad/index.ts","../../../hooks/useListener/index.ts","../../../hooks/usePopupManager/index.ts","../../../hooks/useReadonly/index.ts","../../../hooks/useResizeObserver/index.ts","../../../common/js/utils/setStyle.ts","../../../hooks/useRipple/index.ts","../../../hooks/useTeleport/index.ts","../../../hooks/useVModel/index.ts","../../../hooks/useVirtualScroll/index.ts","../../../hooks/useVirtualScrollNew/index.ts"],"sourcesContent":["import { isFunction } from 'lodash-es';\nimport { getCurrentInstance, h } from 'vue';\n\n/**\n * 渲染icon，用于icon、close等渲染图标的场景\n * @example const renderIconTNode = useIcon();\n * @returns renderIconTNode\n * @param iconType 要渲染的icon元素\n * @param defaultIcons 默认icon集合\n */\nexport function useIcon() {\n  const instance = getCurrentInstance();\n  return function renderIconTNode(iconType: string, defaultIcons?: Record<string, any>) {\n    let iconContent;\n    // 传入的是渲染函数\n    if (isFunction(instance.props[iconType])) {\n      iconContent = instance.props[iconType](h);\n    } else if (instance.slots[iconType]) {\n      // 插槽slot\n      iconContent = instance.slots[iconType] && instance.slots[iconType](null)[0];\n    } else if (defaultIcons) {\n      const Component = defaultIcons[instance.props.theme as string];\n      iconContent = <Component></Component>;\n    }\n    return iconContent;\n  };\n}\n","import {\n  Slots,\n  VNode,\n  Component,\n  getCurrentInstance,\n  Fragment,\n  Comment,\n  RendererNode,\n  VNodeArrayChildren,\n  RendererElement,\n  VNodeChild,\n  isVNode,\n  Teleport,\n} from 'vue';\nimport { isArray } from 'lodash-es';\n// TODO need refactor\nimport { getChildren } from '../../components/utils/render-tnode';\n\n/**\n * 渲染default slot，获取子组件VNode。处理多种子组件创建场景\n * 使用场景：<t-steps> <t-steps-item /> </t-steps>, <t-steps> <t-steps-item v-for=\"(item, index)\" :key=\"index\" /> </t-steps>\n * @returns {function(childComponentName: string, slots: Slots): VNode[]}\n * @param childComponentName\n * @param slots\n * @example const getChildByName = useChildComponentSlots()\n * @example getChildComponentByName('TStepItem')\n */\nexport function useChildComponentSlots() {\n  const instance = getCurrentInstance();\n  return (childComponentName: string, slots?: Slots): VNode[] => {\n    if (!slots) {\n      slots = instance.slots;\n    }\n    const content = slots?.default?.() || [];\n\n    return getChildren(content).filter((item: VNode) =>\n      (item.type as Component).name?.endsWith(childComponentName),\n    ) as VNode[];\n  };\n}\n\n/**\n * 渲染default slot，获取slot child\n * @param childComponentName\n * @param slots\n * @example const getChildSlots = useChildSlots()\n * @example getChildSlots()\n */\nexport function useChildSlots(): () => (\n  | VNode<\n      RendererNode,\n      RendererElement,\n      {\n        [key: string]: any;\n      }\n    >\n  | VNodeArrayChildren\n  | VNodeChild\n)[] {\n  const instance = getCurrentInstance();\n  return () => {\n    const { slots } = instance;\n    const content = slots?.default?.() || [];\n\n    return content\n      .filter((item) => {\n        if (typeof item.type === 'symbol' && !item.children) {\n          return false;\n        }\n        return item.type !== Comment;\n      })\n      .map((item) => {\n        if (item.children && isArray(item.children) && item.type === Fragment) return item.children;\n        return item;\n      })\n      .flat();\n  };\n}\n\n/**\n * 递归展开所有 Fragment，并跳过 Comment 节点，返回一维 VNodeChild 数组\n * @example const useFlatChildrenSlots = useFlatChildrenSlotsHook()\n * @example useFlatChildrenSlots(children)\n */\nexport function useFlatChildrenSlots() {\n  function getFlatChildren(children: VNodeChild[]): VNodeChild[] {\n    const result: VNodeChild[] = [];\n    children.forEach((child) => {\n      if (isVNode(child) && child.type === Fragment && Array.isArray(child.children)) {\n        result.push(...getFlatChildren(child.children as VNodeChild[]));\n      } else if (isVNode(child) && [Teleport, Comment].some((vNode) => vNode === child.type)) {\n        // skip Teleport and Comment\n      } else {\n        result.push(child);\n      }\n    });\n    return result;\n  }\n  return getFlatChildren;\n}\n","import { isFunction, isObject } from 'lodash-es';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport const hasOwn = <T extends object>(val: T, key: string | symbol | number): key is keyof T => hasOwnProperty.call(val, key);\nexport const getPropertyValFromObj = <T extends object>(\n  val: T,\n  key: string | symbol | number,\n): T[keyof T] | undefined => (hasOwn(val, key) ? val[key] : undefined);\n\nconst objectToString: typeof Object.prototype.toString = Object.prototype.toString;\nconst toTypeString = (value: unknown): string => objectToString.call(value);\nexport const isPlainObject = <T extends object>(val: unknown): val is T => toTypeString(val) === '[object Object]';\nexport const isPromise = <T = any>(val: unknown): val is Promise<T> => (isObject(val) || isFunction(val))\n  && isFunction((val as any).then)\n  && isFunction((val as any).catch);\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { camelCase, kebabCase, isFunction } from 'lodash-es';\n\n// TODO need refactor\nimport {\n  getDefaultNode,\n  getParams,\n  OptionsType,\n  JSXRenderContext,\n  getSlotFirst,\n} from '../../components/utils/render-tnode';\nimport { hasOwn } from '@tdesign/common-js/utils/general';\n\n// 兼容处理插槽名称，同时支持驼峰命名和中划线命名，示例：value-display 和 valueDisplay\nfunction handleSlots(instance: ComponentInternalInstance, name: string, params: Record<string, any>) {\n  // 2023-08 new Function 触发部分使用场景安全策略问题（Chrome插件/eletron等）\n  // // 每个 slots 需要单独的 h 函数 否则直接assign会重复把不同 slots 的 params 都注入\n  // const finalParams = new Function('return ' + h.toString())();\n  // if (params) {\n  //   Object.assign(finalParams, params);\n  // }\n\n  // 检查是否存在 驼峰命名 的插槽（过滤注释节点）\n  let node = instance.slots[camelCase(name)]?.(params);\n  if (node && node.filter((t) => t.type.toString?.() !== 'Symbol(v-cmt)').length) return node;\n  // 检查是否存在 中划线命名 的插槽\n  node = instance.slots[kebabCase(name)]?.(params);\n  if (node && node.filter((t) => t.type.toString?.() !== 'Symbol(v-cmt)').length) return node;\n  return null;\n}\n\n/**\n * 是否为空节点，需要过滤掉注释节点。注释节点也会被认为是空节点\n */\nfunction isEmptyNode(node: any) {\n  if ([undefined, null, ''].includes(node)) return true;\n  const innerNodes = node instanceof Array ? node : [node];\n  const r = innerNodes.filter((node) => node?.type?.toString() !== 'Symbol(Comment)');\n  return !r.length;\n}\n\n// TODO 可以把这里移动到 utils 中\n/**\n * 检查用户是否有主动传 prop\n * @param instance 组件实例\n * @param propName prop 名称\n * @returns boolean\n */\nfunction isPropExplicitlySet(instance: ComponentInternalInstance, propName: string) {\n  const vProps = instance?.vnode.props || {};\n  return hasOwn(vProps, camelCase(propName)) || hasOwn(vProps, kebabCase(propName));\n}\n\n/**\n/**\n * 通过 JSX 的方式渲染 TNode，props 和 插槽同时处理，也能处理默认值为 true 则渲染默认节点的情况\n * 优先级：用户注入的 props 值 > slot > 默认 props 值\n * 如果 props 值为 true ，则使用插槽渲染。如果也没有插槽的情况下，则使用 defaultNode 渲染\n * @example const renderTNodeJSX = useTNodeJSX()\n * @return () => {}\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点，也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX('closeBtn')  优先级 props function 大于 插槽\n * @example renderTNodeJSX('closeBtn', <close-icon />)。 当属性值为 true 时则渲染 <close-icon />\n * @example renderTNodeJSX('closeBtn', { defaultNode: <close-icon />, params })。 params 为渲染节点时所需的参数\n */\nexport const useTNodeJSX = () => {\n  const instance = getCurrentInstance();\n  return function (name: string, options?: OptionsType) {\n    // 渲染节点时所需的参数\n    const renderParams = getParams(options);\n    // 默认渲染节点\n    // TODO 这里需要讨论，这里的默认节点规则是什么呢？ pp test:unit image-viewer pp test:unit Collapse\n    const defaultNode = getDefaultNode(options);\n    // 是否显示设置 slot 优先\n    const isSlotFirst = getSlotFirst(options);\n    // 插槽\n    const renderSlot = instance.slots[camelCase(name)] || instance.slots[kebabCase(name)];\n\n    if (isSlotFirst && renderSlot) {\n      // 1. 如果显示设置了 slot 优先，并且存在 slot，那么优先使用 slot\n      return handleSlots(instance, name, renderParams);\n    } else {\n      // 2. 否者按照 用户主动传入的 props 值 > slot > 默认 props 值\n      // 2.1 处理主动传入的 prop\n      if (isPropExplicitlySet(instance, name)) {\n        // 2.1.1 如果有传，那么优先使用 prop 的值\n        const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n        // 如果该属性的类型有多种且包含 Boolean 和 Slot 的情况下，处理 boolean casting true 的场景\n        // https://vuejs.org/guide/components/props.html#boolean-casting\n        const types = instance.type.props[name]?.type;\n        if (types?.length > 1) {\n          if (types.includes(Boolean) && types.includes(Function)) {\n            if (propsNode === '' && !renderSlot) return defaultNode;\n          }\n        }\n        // 2.1.2 如果 prop 的值为 false 或者 null，那么直接不渲染\n        if (propsNode === false || propsNode === null) return;\n        // 2.1.3 如果 prop 的值为 true，那么使用 slot 渲染\n        if (propsNode === true) {\n          return handleSlots(instance, name, renderParams) || defaultNode;\n        }\n        // 2.1.4 如果 prop 的值为函数，那么执行函数\n        if (isFunction(propsNode)) return propsNode(h, renderParams);\n        // 2.1.5 如果 prop 的值为 undefined、''，那么使用插槽渲染\n        const isPropsEmpty = [undefined, ''].includes(propsNode as any);\n        if (isPropsEmpty && renderSlot) {\n          return handleSlots(instance, name, renderParams);\n        }\n        // 2.1.6 如果 prop 的值为其他值，那么直接返回\n        return propsNode;\n      }\n      // 2.2 如果未主动传入 prop，那么渲染 slot，当然前提是存在 slot\n      if (renderSlot) {\n        return handleSlots(instance, name, renderParams);\n      }\n      // 2.3 如果未主动传入 prop，也没有 slot，那么就走 prop\n      const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n      if (propsNode === false || propsNode === null) return;\n      if (propsNode === true) {\n        return defaultNode;\n      }\n      if (isFunction(propsNode)) return propsNode(h, renderParams);\n      return propsNode;\n    }\n  };\n};\n\n/**\n * 在setup中，通过JSX的方式 TNode，props 和 插槽同时处理。与 renderTNodeJSX 区别在于属性值为 undefined 时会渲染默认节点\n * @example const renderTNodeJSXDefault = useTNodeDefault()\n * @return () => {}\n * @param name 插槽和属性名称\n * @example renderTNodeJSXDefault('closeBtn')\n * @example renderTNodeJSXDefault('closeBtn', <close-icon />) closeBtn 为空时，则兜底渲染 <close-icon />\n * @example renderTNodeJSXDefault('closeBtn', { defaultNode: <close-icon />, params }) 。params 为渲染节点时所需的参数\n */\nexport const useTNodeDefault = () => {\n  const renderTNodeJSX = useTNodeJSX();\n  return function (name: string, options?: VNode | JSXRenderContext) {\n    const defaultNode = getDefaultNode(options);\n    return renderTNodeJSX(name, options) || defaultNode;\n  };\n};\n\n/**\n * 在setup中，用于处理相同名称的 TNode 渲染\n * @example const renderContent = useContent()\n * @return () => {}\n * @param name1 第一个名称，优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容：当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent('default', 'content')\n * @example renderContent('default', 'content', '我是默认内容')\n * @example renderContent('default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const useContent = () => {\n  const renderTNodeJSX = useTNodeJSX();\n  return function (name1: string, name2: string, options?: VNode | JSXRenderContext) {\n    // assemble params && defaultNode\n    const params = getParams(options);\n    const defaultNode = getDefaultNode(options);\n\n    const toParams = params ? { params } : undefined;\n\n    const node1 = renderTNodeJSX(name1, toParams);\n    const node2 = renderTNodeJSX(name2, toParams);\n\n    const res = isEmptyNode(node1) ? node2 : node1;\n    return isEmptyNode(res) ? defaultNode : res;\n  };\n};\n","export function useCollapseAnimation() {\n  const beforeEnter = (el: HTMLElement) => {\n    el.dataset.oldPaddingTop = el.style.paddingTop;\n    el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n    el.style.height = '0';\n    el.style.paddingTop = '0';\n    el.style.paddingBottom = '0';\n  };\n  const enter = (el: HTMLElement) => {\n    el.dataset.oldOverflow = el.style.overflow;\n    el.style.height = `${el.scrollHeight}px`;\n    el.style.paddingTop = el.dataset.oldPaddingTop;\n    el.style.paddingBottom = el.dataset.oldPaddingBottom;\n    el.style.overflow = 'hidden';\n  };\n  const afterEnter = (el: HTMLElement) => {\n    el.style.height = '';\n    el.style.overflow = el.dataset.oldOverflow;\n  };\n  const beforeLeave = (el: HTMLElement) => {\n    el.dataset.oldPaddingTop = el.style.paddingTop;\n    el.dataset.oldPaddingBottom = el.style.paddingBottom;\n    el.dataset.oldOverflow = el.style.overflow;\n\n    el.style.height = `${el.scrollHeight}px`;\n    el.style.overflow = 'hidden';\n  };\n  const leave = (el: HTMLElement) => {\n    if (el.scrollHeight !== 0) {\n      el.style.height = '0';\n      el.style.paddingTop = '0';\n      el.style.paddingBottom = '0';\n    }\n  };\n  const afterLeave = (el: HTMLElement) => {\n    el.style.height = '';\n    el.style.overflow = el.dataset.oldOverflow;\n    el.style.paddingTop = el.dataset.oldPaddingTop;\n    el.style.paddingBottom = el.dataset.oldPaddingBottom;\n  };\n\n  return {\n    beforeEnter,\n    enter,\n    afterEnter,\n    beforeLeave,\n    leave,\n    afterLeave,\n  };\n}\n","import { computed } from 'vue';\n// TODO need refactor\nimport { useConfig } from '../../components/config-provider/hooks/useConfig';\n\nexport function usePrefixClass(componentName?: string) {\n  const { classPrefix } = useConfig('classPrefix');\n  return computed(() => {\n    return componentName ? `${classPrefix.value}-${componentName}` : classPrefix.value;\n  });\n}\n\nexport { useConfig };\n","import { computed } from 'vue';\nimport { useConfig } from '../useConfig';\n\nexport function useCommonClassName() {\n  const { classPrefix } = useConfig('classPrefix');\n\n  return {\n    classPrefix,\n    SIZE: computed(() => ({\n      small: `${classPrefix.value}-size-s`,\n      medium: `${classPrefix.value}-size-m`,\n      large: `${classPrefix.value}-size-l`,\n      default: '',\n      xs: `${classPrefix.value}-size-xs`,\n      xl: `${classPrefix.value}-size-xl`,\n      block: `${classPrefix.value}-size-full-width`,\n    })),\n    STATUS: computed(() => ({\n      loading: `${classPrefix.value}-is-loading`,\n      loadMore: `${classPrefix.value}-is-load-more`,\n      disabled: `${classPrefix.value}-is-disabled`,\n      focused: `${classPrefix.value}-is-focused`,\n      success: `${classPrefix.value}-is-success`,\n      error: `${classPrefix.value}-is-error`,\n      warning: `${classPrefix.value}-is-warning`,\n      selected: `${classPrefix.value}-is-selected`,\n      active: `${classPrefix.value}-is-active`,\n      checked: `${classPrefix.value}-is-checked`,\n      current: `${classPrefix.value}-is-current`,\n      hidden: `${classPrefix.value}-is-hidden`,\n      visible: `${classPrefix.value}-is-visible`,\n      expanded: `${classPrefix.value}-is-expanded`,\n      indeterminate: `${classPrefix.value}-is-indeterminate`,\n    })),\n  };\n}\n\nexport type CommonClassNameType = ReturnType<typeof useCommonClassName>;\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\nimport { ChangeHandler } from '../useVModel';\n\nexport function useDefaultValue<T, P extends any[]>(\n  value: Ref<T>,\n  defaultValue: T,\n  onChange: ChangeHandler<T, P>,\n  propsName: string,\n): [Ref<T>, ChangeHandler<T, P>] {\n  const { emit, vnode } = getCurrentInstance();\n  const internalValue: Ref<T> = ref();\n\n  const vProps = vnode.props || {};\n  const isVMP =\n    Object.prototype.hasOwnProperty.call(vProps, propsName) ||\n    Object.prototype.hasOwnProperty.call(vProps, kebabCase(propsName));\n\n  if (isVMP) {\n    return [\n      value,\n      (newValue, ...args) => {\n        emit(`update:${propsName}`, newValue);\n        onChange?.(newValue, ...args);\n      },\n    ];\n  }\n\n  internalValue.value = defaultValue;\n  return [\n    internalValue,\n    (newValue, ...args) => {\n      internalValue.value = newValue;\n      onChange?.(newValue, ...args);\n    },\n  ];\n}\n","import { ref, provide, onUpdated } from 'vue';\n\nexport const TDisplayNoneElementRefresh = 't-display-none-element-refresh';\n\n// destroyOnClose=false 时，父元素为 display: none，此时的子元素无法获取到自身元素的任何宽度\n// 因此，需在父元素 display: none 发生变化时主动更新子元素\nexport function useDestroyOnClose() {\n  const refresh = ref(0);\n  provide(TDisplayNoneElementRefresh, refresh);\n  onUpdated(() => {\n    refresh.value += 1;\n  });\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO: need refator\nimport { TdFormProps } from '../../components/form/type';\n\nexport interface FormDisabledProvider {\n  disabled: Ref<TdFormProps['disabled']>;\n}\n\nexport interface DisabledContext {\n  beforeDisabled?: Ref<boolean>;\n  afterDisabled?: Ref<boolean>;\n}\n\n/**\n * 用于实现组件全局禁用状态的hook\n * 优先级:(beforeDisabled) > Component.disabled > ComponentGroup.disabled(afterDisabled) > Form.disabled\n * @returns\n */\nexport function useDisabled(context?: DisabledContext) {\n  const currentInstance = getCurrentInstance();\n  const componentDisabled = computed(() => currentInstance.props.disabled as boolean);\n\n  const formDisabled = inject<FormDisabledProvider>('formDisabled', Object.create(null));\n\n  return computed(() => {\n    if (isBoolean(context?.beforeDisabled?.value)) return context.beforeDisabled.value;\n    // Component\n    if (isBoolean(componentDisabled.value)) return componentDisabled.value;\n    // ComponentGroup\n    if (isBoolean(context?.afterDisabled?.value)) return context.afterDisabled.value;\n    // Form\n    if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value;\n\n    return false;\n  });\n}\n","import { onUnmounted } from 'vue';\n\nconst traversalTabNavs = (tabNavs: HTMLCollection, fn: { (itemNode: any): void; (tabNav: HTMLDivElement): void }) => {\n  for (const itemNode of tabNavs) {\n    if (itemNode.getAttribute('draggable')) {\n      fn(itemNode);\n    }\n  }\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): any => {\n  let resultTarget;\n  traversalTabNavs(tabNavs, (itemNode) => {\n    if (itemNode.contains(target)) {\n      resultTarget = itemNode;\n    }\n  });\n  return resultTarget;\n};\n\nexport function useDragSort(props: any) {\n  let navsWrap: HTMLDivElement = null;\n\n  // 获取当前正在拖动的tabNav节点\n  let dragged: HTMLDivElement;\n  const enterTargets: HTMLDivElement[] = [];\n\n  const dragstart = (event: DragEvent) => {\n    const target = event.target as HTMLDivElement;\n    // const { target } = event;\n    // 保存拖动元素的引用(ref.)\n    dragged = target;\n    // 使其半透明\n    target.style.opacity = '0.5';\n  };\n  const dragend = (event: DragEvent) => {\n    // 重置透明度\n    (event.target as HTMLDivElement).style.opacity = '';\n  };\n  /* 放置目标元素时触发事件 */\n  const dragover = (event: DragEvent) => {\n    // 阻止默认动作以启用drop\n    event.preventDefault();\n  };\n  // 当可拖动的元素进入可放置的目标时\n  const dragenter = (event: DragEvent) => {\n    // 高亮目标节点\n    const target = handleTarget(event.target, navsWrap.children);\n    if (target && target !== dragged && target.draggable) {\n      target.firstChild.style.outline = '1px dashed #0052d9';\n      // 进入的节点全部记录下来\n      if (!enterTargets.includes(target)) {\n        enterTargets.push(target);\n      }\n    }\n  };\n  // 当拖动元素离开可放置目标节点\n  const dragleave = (event: DragEvent) => {\n    const target = event.target as HTMLDivElement;\n    // 重置其边框\n    // const { target } = event;\n    for (const enterTarget of enterTargets) {\n      // 目标不在需要放入的节点内，则重置边框\n      if (!enterTarget.contains(target)) {\n        // 记录过的节点全部重置边框\n        (enterTarget.firstChild as HTMLDivElement).style.outline = 'none';\n      }\n    }\n  };\n  const drop = (event: DragEvent) => {\n    // 阻止默认动作（如打开一些元素的链接）\n    event.preventDefault();\n\n    traversalTabNavs(navsWrap.children, (tabNav) => {\n      tabNav.firstChild.style.outline = 'none';\n    });\n    // 将拖动的元素到所选择的放置目标节点中\n    let target = handleTarget(event.target, navsWrap.children);\n    if (target && target.parentNode !== dragged && target.draggable) {\n      // 获取拖拽元素index\n      const dragIndex = [].indexOf.call(navsWrap.children, dragged);\n      // 获取放入元素index\n      const targetIndex = [].indexOf.call(navsWrap.children, target);\n      if (targetIndex > dragIndex) {\n        target = navsWrap.children[targetIndex + 1];\n      }\n\n      // 当props.theme === \"normal\" 会多出一个指示条为第一个dom节点，所以需要减1\n      const currentIndex = props.theme === 'card' ? dragIndex : dragIndex - 1;\n      const endIndex = props.theme === 'card' ? targetIndex : targetIndex - 1;\n      props.onDragSort?.({\n        currentIndex,\n        current: props.panels[currentIndex].value,\n        targetIndex: endIndex,\n        target: props.panels[endIndex].value,\n      });\n    }\n  };\n  function setNavsWrap(val: HTMLDivElement) {\n    navsWrap = val;\n    navsWrap.addEventListener('dragstart', dragstart, false);\n    navsWrap.addEventListener('dragend', dragend, false);\n    navsWrap.addEventListener('dragover', dragover, false);\n    navsWrap.addEventListener('dragenter', dragenter, false);\n    document.addEventListener('dragleave', dragleave, false);\n    document.addEventListener('mousemove', dragleave, false);\n    navsWrap.addEventListener('drop', drop, false);\n  }\n\n  onUnmounted(() => {\n    if (navsWrap) {\n      navsWrap.removeEventListener('dragstart', dragstart);\n      navsWrap.removeEventListener('dragend', dragend);\n      navsWrap.removeEventListener('dragover', dragover);\n      navsWrap.removeEventListener('dragenter', dragenter);\n      document.removeEventListener('dragleave', dragleave);\n      document.removeEventListener('mousemove', dragleave);\n      navsWrap.removeEventListener('drop', drop);\n    }\n  });\n  return { setNavsWrap };\n}\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useElementLazyRender(labelRef: Ref<HTMLElement>, lazyLoad: Ref<boolean>) {\n  const ioObserver = ref<IntersectionObserver>();\n  const showElement = ref(true);\n\n  const handleLazyLoad = () => {\n    if (!lazyLoad.value || !labelRef.value || ioObserver.value) return;\n    showElement.value = false;\n    const io = observe(\n      labelRef.value,\n      null,\n      () => {\n        showElement.value = true;\n      },\n      10,\n    );\n    ioObserver.value = io;\n  };\n\n  onMounted(handleLazyLoad);\n\n  lazyLoad.value && watch([lazyLoad, labelRef], handleLazyLoad);\n\n  onBeforeUnmount(() => {\n    if (!lazyLoad.value) return;\n    ioObserver.value?.unobserve?.(labelRef.value);\n  });\n\n  return {\n    showElement,\n  };\n}\n\nexport default useElementLazyRender;\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { IconConfig } from '../../components/config-provider/type';\n\n// 从 globalConfig 获取 icon 配置用于覆盖组件内置 icon\nexport function useGlobalIcon(tdIcon: object) {\n  const { globalConfig } = useConfig('icon');\n\n  const resultIcon: IconConfig = {};\n\n  Object.keys(tdIcon).forEach((key: keyof typeof tdIcon) => {\n    resultIcon[key] = globalConfig.value?.[key] || tdIcon[key];\n  });\n\n  return resultIcon;\n}\n\nexport default useGlobalIcon;\n","import { ComputedRef, ref, Ref, watch } from 'vue';\nimport { getFileUrlByFileRaw } from '@tdesign/common-js/upload/utils';\n\nexport function useImagePreviewUrl(imgUrl: Ref<string | File> | ComputedRef<string | File>) {\n  const previewUrl = ref('');\n\n  watch(\n    [imgUrl],\n    ([imgUrl], [preImgUrl]) => {\n      if (preImgUrl === imgUrl) return;\n      if (typeof imgUrl === 'string') {\n        previewUrl.value = imgUrl;\n        return;\n      }\n      getFileUrlByFileRaw(imgUrl).then((url) => {\n        previewUrl.value = url;\n      });\n    },\n    { immediate: true },\n  );\n\n  return { previewUrl };\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { EAnimationType } from '../../components/config-provider/utils/context';\n\nconst { expand, ripple, fade } = EAnimationType;\n\nexport function useKeepAnimation() {\n  const { globalConfig } = useConfig('animation');\n\n  const keepAnimation = (type: EAnimationType) => {\n    const animationConfig = globalConfig.value;\n    return animationConfig && !animationConfig.exclude?.includes(type) && animationConfig.include?.includes(type);\n  };\n  return {\n    keepExpand: keepAnimation(expand),\n    keepRipple: keepAnimation(ripple),\n    keepFade: keepAnimation(fade),\n  };\n}\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n// TODO need refactor\nimport { isServer } from '../../components/utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n  type: 'lazy' | 'virtual';\n  rowHeight?: number;\n  bufferSize?: number;\n}>;\n\nexport function useLazyLoad(containerRef: Ref<HTMLElement>, childRef: Ref<HTMLElement>, params: UseLazyLoadParams) {\n  const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n  const isInit = ref(false);\n  const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n  const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n  const init = () => {\n    if (!isInit.value) {\n      requestAnimationFrame(() => {\n        isInit.value = true;\n      });\n    }\n  };\n\n  onMounted(() => {\n    if (params?.type !== 'lazy') return;\n    nextTick(() => {\n      const bufferSize = Math.max(10, params.bufferSize || 10);\n      const height = tRowHeight.value * bufferSize;\n      observe(childRef.value, containerRef.value, init, height);\n    });\n  });\n\n  return {\n    hasLazyLoadHolder,\n    tRowHeight,\n  };\n}\n","import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * 用于订阅Listener事件\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n  onMounted(() => {\n    window.addEventListener(type, listener);\n  });\n\n  onBeforeUnmount(() => {\n    window.removeEventListener(type, listener);\n  });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n  useListener('resize', listener);\n\n  let resizeObserver: ResizeObserver = null;\n\n  onMounted(() => {\n    if (!window.ResizeObserver || !observer) return;\n    resizeObserver = new window.ResizeObserver(listener);\n    resizeObserver.observe(observer);\n  });\n\n  onBeforeUnmount(() => {\n    resizeObserver?.disconnect();\n  });\n}\n","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message' | 'drawer';\n\nconst popupStackType = ['dialog', 'drawer'];\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n  private popupStack = {\n    popup: new Set<number>(),\n    dialog: new Set<number>(),\n    message: new Set<number>(),\n    drawer: new Set<number>(),\n  };\n\n  private zIndexStack: number[] = [];\n\n  private getNextZIndex = (type: PopupType) => {\n    const current =\n      type === 'message'\n        ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n        : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n    return current + Z_INDEX_STEP;\n  };\n\n  public add = (type: PopupType) => {\n    const zIndex = this.getNextZIndex(type);\n    this.popupStack[type].add(zIndex);\n    if (popupStackType.includes(type)) {\n      this.popupStack.popup.add(zIndex);\n    }\n    this.zIndexStack.push(zIndex);\n    return zIndex;\n  };\n\n  public delete = (zIndex: number, type: PopupType) => {\n    this.popupStack[type].delete(zIndex);\n    if (popupStackType.includes(type)) {\n      this.popupStack.popup.delete(zIndex);\n    }\n    const index = this.zIndexStack.indexOf(zIndex);\n    if (index !== -1) {\n      this.zIndexStack.splice(index, 1);\n    }\n  };\n\n  // 最顶层的交互式弹窗（指Dialog和Drawer）\n  public isTopInteractivePopup = (popupType: PopupType, zIndex: number) => {\n    if (popupStackType.includes(popupType)) {\n      const lastZIndex = this.zIndexStack[this.zIndexStack.length - 1];\n      return zIndex === lastZIndex;\n    }\n\n    if (this.popupStack[popupType]?.size > 1) {\n      return zIndex === Array.from(this.popupStack[popupType]).pop();\n    }\n\n    return true;\n  };\n\n  public getLastZIndex = () => {\n    return this.zIndexStack[this.zIndexStack.length - 1];\n  };\n}\n\nconst popupManager = new PopupManager();\n\nexport function usePopupManager(\n  type: PopupType,\n  {\n    visible,\n    runOnMounted,\n  }: {\n    visible?: Ref<boolean>;\n    runOnMounted?: boolean;\n  } = {},\n) {\n  const zIndex = ref(0);\n\n  const open = () => {\n    zIndex.value = popupManager.add(type);\n  };\n\n  const close = () => {\n    popupManager.delete(zIndex.value, type);\n  };\n\n  const isTopInteractivePopup = () => {\n    if (popupStackType.includes(type)) {\n      return popupManager.isTopInteractivePopup(type, zIndex.value);\n    }\n    return false;\n  };\n\n  watch(\n    () => visible?.value,\n    (visible) => {\n      if (visible) {\n        open();\n      } else {\n        close();\n      }\n    },\n    {\n      immediate: true,\n    },\n  );\n\n  if (runOnMounted) {\n    onMounted(() => {\n      open();\n    });\n\n    onBeforeUnmount(() => {\n      close();\n    });\n  }\n\n  return {\n    zIndex: readonly(zIndex),\n    open,\n    close,\n    isTopInteractivePopup,\n  };\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO need refactor\nimport { TdFormProps } from '../../components/form/type';\n\nexport interface FormReadonlyProvider {\n  readonly: Ref<TdFormProps['readonly']>;\n}\n\nexport interface ReadonlyContext {\n  beforeReadonly?: Ref<boolean>;\n  afterReadonly?: Ref<boolean>;\n}\n\n/**\n * 用于实现组件全局只读状态的hook\n * 优先级:(beforeReadonly) > Component.readonly > ComponentGroup.readonly(afterReadonly) > Form.readonly\n * @returns\n */\nexport function useReadonly(context?: ReadonlyContext) {\n  const currentInstance = getCurrentInstance();\n  const componentReadonly = computed(() => currentInstance.props.readonly as boolean);\n\n  const formReadonly = inject<FormReadonlyProvider>('formReadonly', Object.create(null));\n\n  return computed(() => {\n    if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value;\n    // Component\n    if (isBoolean(componentReadonly?.value)) return componentReadonly.value;\n    // ComponentGroup\n    if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value;\n    // Form\n    if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value;\n\n    return false;\n  });\n}\n","import { Ref, watch, onBeforeUnmount } from 'vue';\n\nexport function useResizeObserver(container: Ref<HTMLElement>, callback: (data: ResizeObserverEntry[]) => void) {\n  if (typeof window === 'undefined') return;\n\n  const isSupport = window && (window as Window & typeof globalThis).ResizeObserver;\n  // unit tests do not need any warn console; too many warns influence focusing on more important log info\n  if (!isSupport) return;\n\n  let containerObserver: ResizeObserver = null;\n\n  const cleanupObserver = () => {\n    if (!containerObserver || !container.value) return;\n    containerObserver.unobserve(container.value);\n    containerObserver.disconnect();\n    containerObserver = null;\n  };\n\n  const addObserver = (el: HTMLElement) => {\n    containerObserver = new ResizeObserver(callback);\n    containerObserver.observe(el);\n  };\n\n  // can not use container.value to judge\n  container &&\n    watch(\n      container,\n      (el) => {\n        cleanupObserver();\n        el && addObserver(el);\n      },\n      { immediate: true, flush: 'post' },\n    );\n\n  onBeforeUnmount(() => {\n    cleanupObserver();\n  });\n}\n","import { Styles } from '../common';\n\n/**\n * 用于为节点增加styles\n * @param el HTMLElement\n * @param style Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n  const keys = Object.keys(styles);\n  keys.forEach((key) => {\n    // @ts-ignore\n    // eslint-disable-next-line no-param-reassign\n    el.style[key] = styles[key];\n  });\n  // TODO: 这个怎么样\n  // Object.assign(el.style, styles);\n}\n\nexport default setStyle;\n","import { ref, onMounted, onUnmounted, Ref } from 'vue';\nimport { useKeepAnimation } from '../useKeepAnimation';\nimport { usePrefixClass } from '../useConfig';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nconst period = 200;\nconst noneRippleBg = 'rgba(0, 0, 0, 0)';\nconst defaultRippleColor = 'rgba(0, 0, 0, 0.35)';\n\n// 设置动画颜色 get the ripple animation color\nconst getRippleColor = (el: HTMLElement, fixedRippleColor?: string) => {\n  // get fixed color from params\n  if (fixedRippleColor) {\n    return fixedRippleColor;\n  }\n  // get dynamic color from the dataset\n  if (el?.dataset?.ripple) {\n    const rippleColor = el.dataset.ripple;\n    return rippleColor;\n  }\n  // use css variable\n  const cssVariable = getComputedStyle(el).getPropertyValue('--ripple-color');\n  if (cssVariable) {\n    return cssVariable;\n  }\n  return defaultRippleColor;\n};\n\n/**\n * 斜八角动画hooks 支持三种方式使用\n * 1. fixedRippleColor 固定色值 useRipple(ref,fixedRippleColor);\n * 2. dynamicColor 动态色值 data.ripple=\"rippleColor\" useRipple(ref)\n * 3. CSS variables（recommended） 配合节点对应CSS设置 --ripple-color useRipple(ref)\n * @param ref 需要使用斜八角动画的DOM\n * @param fixedRippleColor 斜八角的动画颜色\n */\nexport function useRipple(el: Ref<HTMLElement>, fixedRippleColor?: Ref<string>) {\n  const rippleContainer = ref(null);\n  const classPrefix = usePrefixClass();\n\n  // 全局配置ripple\n  const { keepRipple } = useKeepAnimation();\n\n  // 为节点添加斜八角动画 add ripple to the DOM and set up the animation\n  const handleAddRipple = (e: MouseEvent) => {\n    const dom = el.value;\n    const rippleColor = getRippleColor(dom, fixedRippleColor?.value);\n    if (e.button !== 0 || !el || !keepRipple) return;\n\n    if (\n      dom.classList.contains(`${classPrefix.value}-is-active`) ||\n      dom.classList.contains(`${classPrefix.value}-is-disabled`) ||\n      dom.classList.contains(`${classPrefix.value}-is-checked`) ||\n      dom.classList.contains(`${classPrefix.value}-is-loading`)\n    )\n      return;\n\n    const elStyle = getComputedStyle(dom);\n\n    const elBorder = parseInt(elStyle.borderWidth, 10);\n    const border = elBorder > 0 ? elBorder : 0;\n    const width = dom.offsetWidth;\n    const height = dom.offsetHeight;\n\n    if (rippleContainer.value.parentNode === null) {\n      setStyle(rippleContainer.value, {\n        position: 'absolute',\n        left: `${0 - border}px`,\n        top: `${0 - border}px`,\n        width: `${width}px`,\n        height: `${height}px`,\n        borderRadius: elStyle.borderRadius,\n        pointerEvents: 'none',\n        overflow: 'hidden',\n      });\n      dom.appendChild(rippleContainer.value);\n    }\n    // 新增一个ripple\n    const ripple = document.createElement('div');\n\n    setStyle(ripple, {\n      marginTop: '0',\n      marginLeft: '0',\n      right: `${width}px`,\n      width: `${width + 20}px`,\n      height: '100%',\n      transition: `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${period * 2}ms linear`,\n      transform: 'skewX(-8deg)',\n      pointerEvents: 'none',\n      position: 'absolute',\n      zIndex: 0,\n      backgroundColor: rippleColor,\n      opacity: '0.9',\n    });\n\n    // fix zIndex：避免遮盖内部元素\n    const elMap = new WeakMap();\n    for (let n = dom.children.length, i = 0; i < n; ++i) {\n      const child = dom.children[i];\n      if ((child as HTMLElement).style.zIndex === '' && child !== rippleContainer.value) {\n        (child as HTMLElement).style.zIndex = '1';\n        elMap.set(child, true);\n      }\n    }\n\n    // fix position\n    const initPosition = dom.style.position ? dom.style.position : getComputedStyle(dom).position;\n    if (initPosition === '' || initPosition === 'static') {\n      // eslint-disable-next-line no-param-reassign\n      dom.style.position = 'relative';\n    }\n    rippleContainer.value.insertBefore(ripple, rippleContainer.value.firstChild);\n\n    setTimeout(() => {\n      ripple.style.transform = `translateX(${width}px)`;\n    }, 0);\n    // 清除动画节点 clear ripple container\n    const handleClearRipple = () => {\n      ripple.style.backgroundColor = noneRippleBg;\n\n      if (!el.value) return;\n\n      el.value.removeEventListener('pointerup', handleClearRipple, false);\n      el.value.removeEventListener('pointerleave', handleClearRipple, false);\n\n      setTimeout(() => {\n        ripple.remove();\n        if (rippleContainer.value.children.length === 0) rippleContainer.value.remove();\n      }, period * 2 + 100);\n    };\n    el.value.addEventListener('pointerup', handleClearRipple, false);\n    el.value.addEventListener('pointerleave', handleClearRipple, false);\n  };\n\n  onMounted(() => {\n    const dom = el?.value;\n    if (!dom) return;\n\n    rippleContainer.value = document.createElement('div');\n\n    dom.addEventListener('pointerdown', handleAddRipple, false);\n  });\n\n  onUnmounted(() => {\n    el?.value?.removeEventListener('pointerdown', handleAddRipple, false);\n  });\n}\n","// TODO need refactor\nimport { getAttach } from '../../components/utils/dom';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\n// TODO need refactor\nimport { AttachNode } from '../../components/common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nexport function useTeleport(\n  attach: (() => AttachNode) | Ref<AttachNode>,\n  triggerNode?: (() => any) | Ref<any>,\n): Ref<string | Element> {\n  // 如果是函数, 则使用computed包裹 否则直接使用ref\n  const to = isFunction(attach) ? computed(attach) : ref(attach);\n  const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n  const element = ref<string | Element>();\n\n  const getElement = () => {\n    element.value = getAttach(to.value, innerTriggerNode.value);\n  };\n\n  onMounted(() => getElement());\n\n  watch([to, innerTriggerNode], () => getElement());\n\n  return element;\n}\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\n\nexport type ChangeHandler<T, P extends any[]> = (value: T, ...args: P) => void;\n\nexport function useVModel<T, P extends any[]>(\n  value: Ref<T>,\n  modelValue: Ref<T>,\n  defaultValue: T,\n  onChange: ChangeHandler<T, P>,\n  propName = 'value',\n): [Ref<T>, ChangeHandler<T, P>] {\n  const { emit, vnode } = getCurrentInstance();\n  const internalValue: Ref<T> = ref();\n\n  const vProps = vnode.props || {};\n  const isVM =\n    Object.prototype.hasOwnProperty.call(vProps, 'modelValue') ||\n    Object.prototype.hasOwnProperty.call(vProps, 'model-value');\n  const isVMP =\n    Object.prototype.hasOwnProperty.call(vProps, propName) ||\n    Object.prototype.hasOwnProperty.call(vProps, kebabCase(propName));\n\n  if (isVM) {\n    return [\n      modelValue,\n      (newValue, ...args) => {\n        emit('update:modelValue', newValue);\n        onChange?.(newValue, ...args);\n      },\n    ];\n  }\n\n  if (isVMP) {\n    return [\n      value,\n      (newValue, ...args) => {\n        emit(`update:${propName}`, newValue);\n        onChange?.(newValue, ...args);\n      },\n    ];\n  }\n\n  internalValue.value = defaultValue;\n  return [\n    internalValue,\n    (newValue, ...args) => {\n      internalValue.value = newValue;\n      onChange?.(newValue, ...args);\n    },\n  ];\n}\n","/* eslint-disable */\n/**\n * 当前虚拟滚动存在的问题\n * 1. 反复拖动滚动条，底部会出现奇怪的高度\n * 2. 表格高度发生变化时，底部也会出现奇怪的高度\n * 3. 无法直接定位滚动到某个元素，进而无法实现 Select 组件直接滚动到选中项\n */\nimport { ref, toRefs, reactive, onMounted, computed, watch, nextTick } from 'vue';\n\n// 虚拟滚动Hooks的完整实现，只所以封装成hooks，主要是为了方便跟其他组件搭配使用，比如说表格或者下拉框\nexport function useVirtualScroll({\n  data,\n  container,\n  fixedHeight = false,\n  lineHeight = 30,\n  bufferSize = 20,\n  threshold = 100,\n}: {\n  data: any;\n  container: any;\n  fixedHeight: boolean;\n  lineHeight: number;\n  bufferSize: number;\n  threshold: number;\n}) {\n  const state = reactive({\n    visibleData: [],\n    cachedHeight: [],\n    cachedScrollY: [],\n  });\n  const isVirtual = computed(() => data.value.length > threshold);\n  const updateId = ref(0);\n  const trs = new Map(); // 当前展示的行元素和数据\n\n  let visibleCount = 0; // 可见的节点数量\n  let beforeScrollTop = 0; // 上一次的滚动条位置\n  let index = 0; // 偏移行数\n  let offset = 0; // 少于一行行高的偏移量\n  let start = 0; // 第一条显示的行\n  let last = 0; // 最后一条显示的行\n  // let revising = false; // 是否正在修正滚动条\n\n  const reset = () => {\n    data.value.forEach((item: any, i: number) => {\n      item.$index = i;\n      if (fixedHeight) {\n        state.cachedScrollY[i] = i * lineHeight;\n      }\n    });\n    if (!fixedHeight) {\n      state.cachedScrollY[data.value.length - 1] = undefined; // 初始化cachedScrollY数组的长度\n    }\n  };\n  reset();\n\n  // 计算虚拟滚动列表总高度，需要动态修正\n  const scrollHeight = computed(() => {\n    const { cachedHeight } = state;\n    const { length } = cachedHeight;\n    if (length) {\n      const maxScrollY = cachedHeight.reduce((sum, v) => sum + v || lineHeight, 0); // 当前总高度\n      if (cachedHeight.length === data.value.length) {\n        return maxScrollY;\n      }\n      const average = maxScrollY / cachedHeight.length; // 平均高度\n      return maxScrollY + (data.value.length - cachedHeight.length) * average; // 预估总高度\n    }\n    return isVirtual.value ? data.value.length * lineHeight : 0;\n  });\n  const translateY = computed(() => {\n    const { visibleData } = state;\n    const firstRow = visibleData[0];\n    if (firstRow) {\n      // 修复只有一个元素时存在偏移的问题\n      return visibleData.length === 1 ? 0 : state.cachedScrollY[firstRow.$index];\n    }\n    return 0;\n  });\n\n  // 更新可视区域的节点数据\n  const updateVisibleData = () => {\n    last = Math.min(start + visibleCount + bufferSize * 2, data.value.length);\n    state.visibleData = data.value.slice(start, last);\n  };\n  // 计算每行对应的scrollTop值\n  const calculateScrollY = () => {\n    const anchorDom = trs.get(index); // 获取锚点元素\n    if (!anchorDom) {\n      return; // 快速调整高度时，新的元素可能来不及加载，暂时跳过更新\n    }\n    const anchorDomHeight = anchorDom?.getBoundingClientRect()?.height; // 获取锚点元素的高\n    state.cachedScrollY[index] = container.value.scrollTop - offset; // 锚点元素scrollY= 容器滚动高度 - 锚点元素的offset\n    state.cachedHeight[index] = anchorDomHeight;\n\n    for (let i = index + 1; i <= state.visibleData[state.visibleData.length - 1]?.$index; i++) {\n      // 计算锚点后面的元素scrollY\n      const tr = trs.get(i);\n      const { height } = tr?.getBoundingClientRect() || {};\n      state.cachedHeight[i] = height;\n      const scrollY = state.cachedScrollY[i - 1] + state.cachedHeight[i - 1]; // 当前元素的y 是前一个元素的y+前一个元素高度\n      // state.cachedScrollY[i] = scrollY;\n      state.cachedScrollY.splice(i, 1, scrollY); // 兼容vue2的composition api\n    }\n\n    for (let i = index - 1; i >= state.visibleData[0]?.$index; i--) {\n      const tr = trs.get(i);\n      const { height } = tr?.getBoundingClientRect() || {};\n      state.cachedHeight[i] = height;\n      const scrollY = state.cachedScrollY[i + 1] - state.cachedHeight[i]; // 当前元素的y是下一个元素y - 当前元素高度\n      // state.cachedScrollY[i] = scrollY;\n      state.cachedScrollY.splice(i, 1, scrollY);\n    }\n    if (state.cachedScrollY[0] > 0) {\n      // 修正滚动过快时，滚动到顶部时，滚动条多余的问题\n      // revising = true;\n      const distance = state.cachedScrollY[0]; // 第一个元素scrollY即为多出的量\n      const length = Math.min(last, data.value.length);\n      for (let i = 0; i < length; i++) {\n        // state.cachedScrollY[i] -= distance;\n        state.cachedScrollY.splice(i, 1, state.cachedScrollY[i] - distance);\n      }\n\n      const scrollTop = state.cachedScrollY[index - 1] ? state.cachedScrollY[index - 1] + offset : offset;\n      container.value.scrollTop = scrollTop;\n      beforeScrollTop = scrollTop;\n      // revising = false;\n    }\n    // 修正拖动过快时，滚动到顶端时，滚动条不足的偏差\n    if (state.cachedScrollY[start] < 0) {\n      // revising = true;\n      const s = state.cachedHeight.slice(0, Math.max(0, index)).reduce((sum, v) => sum + v, 0) + offset;\n      container.value.scrollTop = s;\n      beforeScrollTop = s;\n      if (s === 0) {\n        index = 0;\n        offset = 0;\n      }\n      // revising = false;\n    }\n    nextTick(() => {\n      // setTimeout是为了保证快速拖动到底部时，以下逻辑能够正常执行\n      const { scrollTop, scrollHeight, clientHeight } = container.value;\n      if (scrollTop + clientHeight === scrollHeight) {\n        // 滚动到底部时，修正底部有空余的问题\n        // revising = true;\n        for (let i = last - 1; i >= start; i--) {\n          if (i === last - 1) {\n            // state.cachedScrollY[i] = scrollHeight.value - state.cachedHeight[i];\n            state.cachedScrollY.splice(i, 1, scrollHeight.value - state.cachedHeight[i]);\n          } else {\n            // state.cachedScrollY[i] = state.cachedScrollY[i + 1] - state.cachedHeight[i];\n            state.cachedScrollY.splice(i, 1, state.cachedScrollY[i + 1] - state.cachedHeight[i]);\n          }\n        }\n        // revising = false;\n      }\n    });\n  };\n\n  // 滚动时动态计算和渲染\n  const handleScroll = () => {\n    if (!isVirtual.value) return;\n    // if (revising) {\n    //   return false; // 修正滚动条时，暂停滚动逻辑\n    // }\n    const { scrollTop } = container.value;\n    let distance = scrollTop - beforeScrollTop; // 滚动差值\n    beforeScrollTop = scrollTop;\n    distance += offset;\n    let lastIndex = index;\n    // !disatance 可能为横向滚动，不做任何计算\n    if (!distance) return;\n    if (distance >= 0) {\n      // 向下滚动\n      while (lastIndex < data.value.length && distance > (state.cachedHeight[lastIndex] || lineHeight)) {\n        if (!state.cachedHeight[lastIndex]) {\n          state.cachedHeight[lastIndex] = lineHeight;\n        }\n        distance -= state.cachedHeight[lastIndex];\n        lastIndex++;\n      }\n      if (lastIndex >= data.value.length) {\n        index = data.value.length - 1;\n        offset = 0;\n      } else {\n        index = lastIndex;\n        offset = distance;\n      }\n      const { clientHeight, scrollHeight } = container.value;\n      if (scrollTop + clientHeight === scrollHeight) {\n        // 滚动条到底了\n        index = data.value.length - visibleCount + 1;\n        // calculateScrollY();\n      }\n      if (start <= index - bufferSize) {\n        // 计算第一个挂载元素\n        start = Math.min(data.value.length - visibleCount, index - bufferSize);\n        if (start < 0) {\n          start = 0;\n        }\n      }\n    } else {\n      // 向上滚动\n      while (distance < 0) {\n        lastIndex--;\n        if (!state.cachedHeight[lastIndex]) {\n          state.cachedHeight[lastIndex] = lineHeight;\n        }\n        distance += state.cachedHeight[lastIndex];\n      }\n      if (lastIndex < 0) {\n        index = 0;\n        offset = 0;\n      } else {\n        index = lastIndex;\n        offset = distance;\n      }\n      calculateScrollY();\n      if (start > index - bufferSize) {\n        // 计算第一个挂载元素\n        start = Math.max(0, index - bufferSize);\n      }\n    }\n    updateVisibleData();\n  };\n\n  !fixedHeight && watch(updateId, calculateScrollY, { flush: 'post' });\n  const handleRowMounted = () => {\n    if (!isVirtual.value) return;\n    updateId.value++;\n  };\n  watch(data, () => {\n    reset();\n    state.visibleData = [];\n    state.cachedScrollY = [];\n    state.cachedHeight = [];\n    beforeScrollTop = 0;\n    index = 0;\n    offset = 0;\n    start = 0;\n    // revising = false;\n    trs.clear();\n    if (data.value.length <= threshold) {\n      state.visibleData = data.value;\n    } else {\n      updateVisibleData();\n    }\n\n    container.value && (container.value.scrollTop = 0);\n  });\n  let mounted = false;\n  const refreshContainer = () => {\n    if (mounted) {\n      visibleCount = Math.ceil(container.value.offsetHeight / lineHeight);\n      updateVisibleData();\n    }\n  };\n  onMounted(() => {\n    if (!window || !window.IntersectionObserver) {\n      return;\n    }\n    const ob = new window.IntersectionObserver((entries) => {\n      const entry = entries[0];\n      if (entry.isIntersecting || entry.intersectionRatio) {\n        mounted = true;\n        isVirtual.value && refreshContainer();\n        ob.unobserve(container.value);\n      }\n    });\n    container.value && ob.observe(container.value);\n  });\n  return {\n    trs,\n    scrollHeight,\n    ...toRefs(state),\n    translateY,\n    handleScroll,\n    handleRowMounted,\n    refreshContainer,\n    fixedHeight,\n    calculateScrollY,\n  };\n}\n","/**\n * 基于原作者（@louiszhai）的思路二次开发，为保证其他组件暂不受影响，单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素，方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置，方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\n// TODO need refactor\nimport { TScroll } from '../../components/common';\nimport { useResizeObserver } from '../useResizeObserver';\nimport { max, min, sum, throttle } from 'lodash-es';\n\nexport type UseVirtualScrollParams = Ref<{\n  /** 列数据 */\n  data: { [key: string]: any }[];\n  scroll: TScroll & {\n    /** 固定行（冻结行），示例：[M, N]，表示冻结头 M 行和尾 N 行。M 和 N 值为 0 时，表示不冻结行 */\n    fixedRows?: Array<number>;\n  };\n  preventResizeRefresh?: boolean;\n}>;\n\nexport interface ScrollToElementParams {\n  /** 跳转元素下标 */\n  index: number;\n  /** 跳转元素距离顶部的距离 */\n  top?: number;\n  /** 单个元素高度非固定场景下，即 isFixedRowHeight = false。延迟设置元素位置，一般用于依赖不同高度异步渲染等场景，单位：毫秒 */\n  time?: number;\n  behavior?: 'auto' | 'smooth';\n}\n\nexport function useVirtualScrollNew(container: Ref<HTMLElement | null>, params: UseVirtualScrollParams) {\n  /** 注意测试：数据长度为空；数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n  const visibleData = ref<any[]>([]);\n  // 用于显示表格列\n  const translateY = ref((params.value.data?.length || 0) * (params.value.scroll?.rowHeight || 50));\n  // 滚动高度，用于显示滚动条\n  const scrollHeight = ref(0);\n  // 已经通过节点渲染计算出来的各自行高\n  // 不要使用响应式，数据量大时会产生卡顿\n  let trHeightList: number[] = [];\n  const containerHeight = ref(0);\n  const containerWidth = ref(0);\n  const startAndEndIndex = ref<[number, number]>([0, 15]);\n\n  // 设置初始值\n  const tScroll = computed(() => {\n    const { scroll } = params.value;\n    if (!scroll) return {};\n    return {\n      bufferSize: scroll.bufferSize || 10,\n      isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n      rowHeight: scroll.rowHeight || 47,\n      threshold: scroll.threshold || 100,\n      type: scroll.type,\n      fixedRows: scroll.fixedRows ?? [0, 0],\n    };\n  });\n\n  // 当前场景是否满足开启虚拟滚动的条件\n  const isVirtualScroll = computed(() => {\n    const { data } = params.value;\n    return tScroll.value.type === 'virtual' && tScroll.value.threshold < data.length;\n  });\n\n  // 一次循环遍历中计算可视范围的相关信息，减少大数据量时的遍历开销\n  function getVisibleRangeConfig() {\n    const scrollTop = container.value?.scrollTop ?? 0;\n    const fixedStart = tScroll.value.fixedRows[0];\n\n    // 记录前置 buffer 的高度\n    const prevBufferHeightList: number[] = [];\n    // 没有被渲染的行的高度，用于设定容器的 translateY\n    let hiddenHeight = 0;\n\n    let visibleStart = -1;\n    let visibleEnd = -1;\n\n    let totalHeight = 0;\n\n    for (let i = 0, len = params.value.data.length; i < len; i++) {\n      const rowHeight = trHeightList[i] ?? tScroll.value.rowHeight;\n      totalHeight = totalHeight + rowHeight;\n      // 获取第一个可视范围内的元素\n      if (totalHeight > scrollTop && visibleStart === -1) {\n        visibleStart = i;\n        if (visibleStart - tScroll.value.bufferSize > 0) {\n          hiddenHeight = totalHeight - rowHeight - sum(prevBufferHeightList);\n        }\n      }\n      if (visibleStart === -1) {\n        prevBufferHeightList.push(rowHeight);\n        if (prevBufferHeightList.length > tScroll.value.bufferSize) {\n          prevBufferHeightList.shift();\n        }\n      }\n      // 获取最后一个可视范围内的元素\n      if (\n        visibleEnd === -1 &&\n        (totalHeight > containerHeight.value + scrollTop || i === params.value.data.length - 1)\n      ) {\n        visibleEnd = i;\n      }\n\n      if (visibleStart !== -1 && visibleEnd !== -1) {\n        // 不再统计高度\n        break;\n      }\n    }\n\n    // 前后偏移 buffer\n    const startIndex = max([visibleStart - tScroll.value.bufferSize, 0]);\n    const endIndex = min([visibleEnd + tScroll.value.bufferSize, params.value.data.length]);\n\n    // 以 sticky 定位渲染的固定行，会占据高度，影响整体高度\n    const stickyHeight = sum(trHeightList.slice(0, Math.min(startIndex, fixedStart)));\n\n    return {\n      startIndex,\n      endIndex,\n      translateY: hiddenHeight - stickyHeight,\n    };\n  }\n\n  const updateVisibleData = throttle(() => {\n    // 计算前后的buffer偏移后的渲染数据\n    const { startIndex, endIndex, translateY: translateYValue } = getVisibleRangeConfig();\n\n    // 需要考虑固定行的情况\n    const fixedRows = tScroll.value.fixedRows;\n    const [fixedStart, fixedEnd] = fixedRows;\n    let fixedStartData = fixedStart ? params.value.data.slice(0, fixedStart) : [];\n    if (fixedStart && startIndex < fixedStart) {\n      fixedStartData = fixedStartData.slice(0, startIndex);\n    }\n    let fixedEndData = fixedEnd ? params.value.data.slice(params.value.data.length - fixedEnd) : [];\n    const bottomStartIndex = endIndex - params.value.data.length + 1 + (fixedEnd ?? 0);\n    if (fixedEnd && bottomStartIndex > 0) {\n      fixedEndData = fixedEndData.slice(bottomStartIndex);\n    }\n\n    if (startAndEndIndex.value.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n      translateY.value = translateYValue;\n      visibleData.value = fixedStartData.concat(params.value.data.slice(startIndex, endIndex), fixedEndData);\n      startAndEndIndex.value = [startIndex, endIndex];\n    }\n  }, 100);\n\n  // 固定高度场景，不需要通过行渲染获取高度（仅非固定高度场景需要）\n  const handleRowMounted = (rowData: any) => {\n    if (!isVirtualScroll.value || !rowData || tScroll.value.isFixedRowHeight || !container.value) return;\n    const trHeight = rowData.ref.value?.getBoundingClientRect().height || tScroll.value.rowHeight;\n    const rowIndex = rowData.data.VIRTUAL_SCROLL_INDEX;\n\n    if (trHeightList[rowIndex] !== trHeight) {\n      const diff = trHeight - trHeightList[rowIndex];\n      trHeightList[rowIndex] = trHeight;\n      // 采用 diff 的方式更新，不再遍历数组\n      scrollHeight.value = scrollHeight.value + diff;\n    }\n  };\n\n  const handleScroll = () => {\n    if (!isVirtualScroll.value) return;\n    updateVisibleData();\n  };\n\n  const refreshVirtualScroll = ([{ contentRect }]: [ResizeObserverEntry]) => {\n    // 如果宽度发生变化，重置滚动位置\n    if (params.value.preventResizeRefresh) return;\n    const maxScrollbarWidth = 16;\n    if (Math.abs(contentRect.width - containerWidth.value) > maxScrollbarWidth && !!container.value) {\n      container.value.scrollTop = 0;\n      translateY.value = 0;\n    }\n    containerWidth.value = contentRect.width;\n    // 高度更新后，由 height 独立的 watch 触发可视区域的更新\n    containerHeight.value = contentRect.height;\n  };\n\n  const addIndexToData = (data: any[]) => {\n    data.forEach((item, index) => {\n      // eslint-disable-next-line\n      item['VIRTUAL_SCROLL_INDEX'] = index;\n    });\n  };\n\n  const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n    const scrollTop = sum(trHeightList.slice(0, index + 1)) - top;\n\n    container.value.scrollTo({\n      top: scrollTop,\n      behavior: behavior || 'auto',\n    });\n  };\n\n  /**\n   * 滚动到指定元素（对外暴露的方法，谨慎修改）\n   */\n  const scrollToElement = (p: ScrollToElementParams) => {\n    updateScrollTop(p);\n    // 不同行高的表格需要异步计算\n    if (!tScroll.value.isFixedRowHeight) {\n      const duration = p.time ?? 60;\n      const timer = setTimeout(() => {\n        updateScrollTop(p);\n        clearTimeout(timer);\n      }, duration);\n    }\n  };\n\n  // 如果初始化时 isVirtualScroll 为 false，undefined 的 ref 会导致无法监听元素高度变化\n  useResizeObserver(\n    computed(() => (isVirtualScroll.value ? container.value : undefined)),\n    refreshVirtualScroll,\n  );\n\n  // 固定高度场景，可直接通过数据长度计算出最大滚动高度\n  watch(\n    () => [[...params.value.data], tScroll.value, isVirtualScroll.value, container.value],\n    () => {\n      if (!isVirtualScroll.value || !container.value) return;\n      const { data } = params.value;\n      addIndexToData(data);\n\n      // 有可能初始化时，resize 监听没触发，尝试设置初始化容器高度\n      containerHeight.value = container.value.getBoundingClientRect().height;\n\n      if (trHeightList.length !== params.value.data.length) {\n        // 暂时对于 table 和 tree 场景，信任之前缓存的行高\n        // 后续优化可能提供一个参数，进行监听从而清除记录的行高会更好\n        const initHeightList: number[] = Array.from(trHeightList);\n        // 数据长度如果发生变化，裁剪高度记录的数组，避免算出异常的总高度\n        initHeightList.length = params.value.data.length;\n        initHeightList.fill(tScroll.value.rowHeight || 47);\n        trHeightList = initHeightList;\n      }\n\n      scrollHeight.value = sum(trHeightList);\n\n      // 清除记录的滚动顺序\n      startAndEndIndex.value = [0, 0];\n      updateVisibleData();\n    },\n    { immediate: true },\n  );\n\n  // 当容器高度变化后，重新计算可视区域数据\n  watch(\n    () => containerHeight.value,\n    () => {\n      updateVisibleData();\n    },\n  );\n\n  return {\n    visibleData,\n    translateY,\n    scrollHeight,\n    isVirtualScroll,\n    handleScroll,\n    handleRowMounted,\n    scrollToElement,\n  };\n}\n\nexport type VirtualScrollConfig = ReturnType<typeof useVirtualScrollNew>;\n"],"names":["useIcon","instance","getCurrentInstance","renderIconTNode","iconType","defaultIcons","iconContent","isFunction","props","h","slots","Component","theme","_createVNode","useChildComponentSlots","childComponentName","_slots","_slots$default","content","call","getChildren","filter","item","_item$type$name","type","name","endsWith","useChildSlots","_slots$default2","_typeof","children","Comment","map","isArray","Fragment","flat","useFlatChildrenSlots","getFlatChildren","result","forEach","child","isVNode","Array","push","apply","_toConsumableArray","Teleport","some","vNode","hasOwnProperty","Object","prototype","hasOwn","val","key","getPropertyValFromObj","objectToString","toString","toTypeString","value","isPlainObject","isPromise","isObject","then","handleSlots","params","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","node","camelCase","t","_t$type$toString","_t$type","length","kebabCase","_t$type$toString2","_t$type2","isEmptyNode","includes","innerNodes","r","_node2$type","isPropExplicitlySet","propName","vProps","vnode","useTNodeJSX","options","renderParams","getParams","defaultNode","getDefaultNode","isSlotFirst","getSlotFirst","renderSlot","_instance$type$props$","propsNode","types","Boolean","Function","isPropsEmpty","useTNodeDefault","renderTNodeJSX","useContent","name1","name2","toParams","node1","node2","res","useCollapseAnimation","beforeEnter","el","dataset","oldPaddingTop","style","paddingTop","oldPaddingBottom","paddingBottom","height","enter","oldOverflow","overflow","concat","scrollHeight","afterEnter","beforeLeave","leave","afterLeave","usePrefixClass","componentName","_useConfig","useConfig","classPrefix","computed","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","success","error","warning","selected","active","checked","current","hidden","visible","expanded","indeterminate","useDefaultValue","defaultValue","onChange","propsName","_getCurrentInstance","emit","internalValue","ref","isVMP","newValue","_len","arguments","args","_key","_len2","_key2","TDisplayNoneElementRefresh","useDestroyOnClose","refresh","provide","onUpdated","useDisabled","context","currentInstance","componentDisabled","formDisabled","inject","create","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","isBoolean","beforeDisabled","afterDisabled","traversalTabNavs","tabNavs","fn","_iterator","_createForOfIteratorHelper","_step","s","n","done","itemNode","getAttribute","err","e","f","handleTarget","target","resultTarget","contains","useDragSort","navsWrap","dragged","enterTargets","dragstart","event","opacity","dragend","dragover","preventDefault","dragenter","draggable","firstChild","outline","dragleave","_i","_enterTargets","enterTarget","drop","tabNav","parentNode","_props$onDragSort","dragIndex","indexOf","targetIndex","currentIndex","endIndex","onDragSort","panels","setNavsWrap","addEventListener","document","onUnmounted","removeEventListener","useElementLazyRender","labelRef","lazyLoad","ioObserver","showElement","handleLazyLoad","io","observe","onMounted","watch","onBeforeUnmount","_ioObserver$value","_ioObserver$value$uno","unobserve","useGlobalIcon","tdIcon","globalConfig","resultIcon","keys","_globalConfig$value","useImagePreviewUrl","imgUrl","previewUrl","_ref","_ref2","_ref3","_slicedToArray","_ref4","preImgUrl","getFileUrlByFileRaw","url","immediate","expand","EAnimationType","ripple","fade","useKeepAnimation","keepAnimation","_animationConfig$excl","_animationConfig$incl","animationConfig","exclude","include","keepExpand","keepRipple","keepFade","useLazyLoad","containerRef","childRef","tRowHeight","Math","max","rowHeight","isInit","hasLazyLoadHolder","requestAnimationFrame","isServer","window","cb","setTimeout","init","nextTick","bufferSize","useListener","listener","useResize","observer","resizeObserver","ResizeObserver","_resizeObserver","disconnect","popupStackType","POPUP_BASE_Z_INDEX","MESSAGE_BASE_Z_INDEX","Z_INDEX_STEP","PopupManager","_createClass","_this","_classCallCheck","_defineProperty","popup","Set","dialog","message","drawer","from","popupStack","pop","zIndex","getNextZIndex","add","zIndexStack","index","splice","popupType","_this$popupStack$popu","lastZIndex","size","popupManager","usePopupManager","undefined","runOnMounted","open","close","isTopInteractivePopup","readonly","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useResizeObserver","container","callback","isSupport","containerObserver","cleanupObserver","addObserver","flush","setStyle","styles","period","noneRippleBg","defaultRippleColor","getRippleColor","fixedRippleColor","_el$dataset","rippleColor","cssVariable","getComputedStyle","getPropertyValue","useRipple","rippleContainer","_useKeepAnimation","handleAddRipple","dom","button","classList","elStyle","elBorder","parseInt","borderWidth","border","width","offsetWidth","offsetHeight","position","left","top","borderRadius","pointerEvents","appendChild","createElement","marginTop","marginLeft","right","transition","transform","backgroundColor","elMap","WeakMap","i","set","initPosition","insertBefore","handleClearRipple","remove","_el$value","useTeleport","attach","triggerNode","to","innerTriggerNode","element","getElement","getAttach","useVModel","modelValue","isVM","_len3","_key3","useVirtualScroll","data","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","threshold","state","reactive","visibleData","cachedHeight","cachedScrollY","isVirtual","updateId","trs","Map","visibleCount","beforeScrollTop","offset","start","last","reset","$index","maxScrollY","reduce","sum","v","average","translateY","firstRow","updateVisibleData","min","slice","calculateScrollY","_anchorDom$getBoundin","anchorDom","get","anchorDomHeight","getBoundingClientRect","scrollTop","_state$visibleData","tr","scrollY","_state$visibleData$","distance","_container$value","clientHeight","handleScroll","lastIndex","_container$value2","handleRowMounted","clear","mounted","refreshContainer","ceil","IntersectionObserver","ob","entries","entry","isIntersecting","intersectionRatio","_objectSpread","toRefs","useVirtualScrollNew","_params$value$data","_params$value$scroll","scroll","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","isFixedRowHeight","fixedRows","isVirtualScroll","getVisibleRangeConfig","_container$value$scro","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","len","_trHeightList$i","shift","startIndex","stickyHeight","throttle","_getVisibleRangeConfi","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","join","rowData","_rowData$ref$value","trHeight","rowIndex","VIRTUAL_SCROLL_INDEX","diff","refreshVirtualScroll","contentRect","preventResizeRefresh","maxScrollbarWidth","abs","addIndexToData","updateScrollTop","_ref3$top","behavior","scrollTo","scrollToElement","p","_p$time","duration","time","timer","clearTimeout","initHeightList","fill"],"mappings":"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"}