{"version":3,"file":"dep-0a8677c1.mjs","sources":["../../../shared/hooks/icon/index.tsx","../../../shared/hooks/slot/index.ts","../../../common/js/utils/general.ts","../../../shared/hooks/tnode/index.ts","../../../shared/hooks/useCollapseAnimation/index.ts","../../../shared/hooks/useConfig/index.ts","../../../shared/hooks/useCommonClassName/index.ts","../../../shared/hooks/useDefaultValue/index.ts","../../../shared/hooks/useDestroyOnClose/index.ts","../../../shared/hooks/useDisabled/index.ts","../../../shared/hooks/useDragSort/index.ts","../../../shared/hooks/useElementLazyRender/index.ts","../../../shared/hooks/useGlobalIcon/index.ts","../../../shared/hooks/useImagePreviewUrl/index.ts","../../../shared/hooks/useKeepAnimation/index.ts","../../../shared/hooks/useLazyLoad/index.ts","../../../shared/hooks/useListener/index.ts","../../../shared/hooks/usePopupManager/index.ts","../../../shared/hooks/useReadonly/index.ts","../../../shared/hooks/useResizeObserver/index.ts","../../../common/js/utils/setStyle.ts","../../../shared/hooks/useRipple/index.ts","../../../shared/hooks/useTeleport/index.ts","../../../shared/hooks/useVModel/index.ts","../../../shared/hooks/useVirtualScroll/index.ts","../../../shared/hooks/useVirtualScrollNew/index.ts","../../../shared/hooks/useMutationObservable/index.ts","../../../common/js/utils/getColorTokenColor.ts","../../../shared/hooks/useVariables/index.ts","../../../shared/hooks/useEventForward/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';\nimport { getChildren } from '@tdesign/shared-utils';\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 =>\n  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> =>\n  (isObject(val) || isFunction(val)) && isFunction((val as any).then) && isFunction((val as any).catch);\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { camelCase, kebabCase, isFunction } from 'lodash-es';\n\nimport {\n  getDefaultNode,\n  getParams,\n  OptionsType,\n  JSXRenderContext,\n  getSlotFirst,\n  isCommentVNode,\n} from '@tdesign/shared-utils';\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插件/electron等）\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) => !isCommentVNode(t)).length) return node;\n  // 检查是否存在 中划线命名 的插槽\n  node = instance.slots[kebabCase(name)]?.(params);\n  if (node && node.filter((t) => !isCommentVNode(t)).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\n/**\n * 过滤掉注释节点。\n *\n * @param nodes - VNode 数组\n * @returns 去除注释节点后的 VNode 数组。\n */\nexport const filterCommentNode = (nodes: VNode[]): VNode[] => {\n  return nodes.filter((node) => !isCommentVNode(node));\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 { isArray, 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 | [boolean, boolean]);\n\n  const formDisabled = inject<FormDisabledProvider>('formDisabled', Object.create(null));\n\n  return computed(() => {\n    if (isArray(componentDisabled.value) && componentDisabled.value.length === 2) return componentDisabled.value;\n\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: (tabNav: HTMLDivElement) => void) => {\n  Array.from(tabNavs)\n    .filter((node): node is HTMLDivElement => node instanceof HTMLDivElement && !!node.getAttribute('draggable'))\n    .forEach(fn);\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): HTMLDivElement | undefined => {\n  let resultTarget: HTMLDivElement | undefined;\n\n  traversalTabNavs(tabNavs, (itemNode) => {\n    if (target instanceof Node && itemNode.contains(target)) {\n      resultTarget = itemNode;\n    }\n  });\n\n  return resultTarget;\n};\n\nexport function useDragSort(props: any) {\n  let navsWrap: HTMLDivElement | null = 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    // 指定允许的拖拽操作为 move，且兼容 Firefox（需要 setData）\n    const dt = event.dataTransfer;\n    if (dt) {\n      dt.effectAllowed = 'copy';\n      try {\n        dt.setData('text/plain', '');\n      } catch (e) {\n        // 某些环境下可能抛错，忽略\n      }\n    }\n  };\n\n  const dragend = (event: DragEvent) => {\n    // 重置透明度\n    (event.target as HTMLDivElement).style.opacity = '';\n  };\n  /* 放置目标元素时触发事件 */\n  const dragover = (event: DragEvent) => {\n    if (!navsWrap) return;\n    const target = handleTarget(event.target, navsWrap.children);\n    const dt = event.dataTransfer;\n    if (dt) {\n      // 不可放置目标显示禁止状态\n      dt.dropEffect = target?.draggable ? 'copy' : 'none';\n    }\n    if (target?.draggable) {\n      // 阻止默认动作以启用drop\n      event.preventDefault();\n    }\n  };\n  // 当可拖动的元素进入可放置的目标时\n  const dragenter = (event: DragEvent) => {\n    // 高亮目标节点\n    const target = handleTarget(event.target, navsWrap.children);\n    if (target && target !== dragged && target.draggable) {\n      const { firstChild } = target;\n      if (firstChild instanceof HTMLElement) {\n        const newStyle = { outline: '1px dashed #0052d9' };\n        Object.assign(firstChild.style, newStyle);\n      }\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      const firstChild = tabNav.firstChild as HTMLElement;\n      if (firstChild) {\n        firstChild.style.outline = 'none';\n      }\n    });\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] as HTMLDivElement | null;\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 '@tdesign/components/config-provider/type';\n\n// 从 globalConfig 获取 icon 配置用于覆盖组件内置 icon\n// TODO\nexport function useGlobalIcon(tdIcon: object): Record<string, any> {\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';\nimport { isServer } from '@tdesign/shared-utils';\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 styles Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n  if (!el) return;\n\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, check if element is valid before calling getComputedStyle\n  if (el instanceof Element) {\n    const cssVariable = getComputedStyle(el).getPropertyValue('--ripple-color');\n    if (cssVariable) {\n      return cssVariable;\n    }\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    // Early return if element is not valid or not attached to DOM\n    if (!dom || !(dom instanceof Element)) return;\n\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    // Check again if element is still valid before calling getComputedStyle\n    if (!(dom instanceof Element)) return;\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    let initPosition = dom.style.position;\n    if (!initPosition && dom instanceof Element) {\n      initPosition = getComputedStyle(dom).position;\n    }\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","import { getAttach } from '@tdesign/shared-utils';\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","import { onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport { debounce, isEqual } from 'lodash-es';\n\nexport interface MutationCallback {\n  (mutations: MutationRecord[]): void;\n}\n\ninterface Options {\n  debounceTime?: number;\n  config?: MutationObserverInit;\n}\n\nconst DEFAULT_OPTIONS: Options = {\n  debounceTime: 0,\n  config: {\n    attributes: true,\n    childList: true,\n    characterData: true,\n    subtree: true,\n  },\n};\n\n/**\n * useMutationObservable\n * @param targetEl 监听对象\n * @param callback 回调方法\n * @param options 配置项\n */\nexport function useMutationObservable(\n  targetEl: HTMLElement | null,\n  callback: MutationCallback,\n  options: Options = DEFAULT_OPTIONS,\n) {\n  const mergedOptions = ref<Options>({ ...DEFAULT_OPTIONS, ...options });\n  let observer: MutationObserver | null = null;\n\n  const initObserver = () => {\n    if (!targetEl) return;\n\n    const { debounceTime = 0, config = DEFAULT_OPTIONS.config } = mergedOptions.value;\n    const handler: MutationCallback = (...args) => {\n      callback?.(...args);\n    };\n\n    observer?.disconnect();\n    observer = new MutationObserver(debounceTime > 0 ? debounce(handler, debounceTime) : handler);\n    observer.observe(targetEl, config);\n  };\n\n  watch(\n    () => options,\n    (newOptions) => {\n      if (!isEqual(newOptions, mergedOptions.value)) {\n        mergedOptions.value = { ...DEFAULT_OPTIONS, ...newOptions };\n        initObserver();\n      }\n    },\n    { deep: true },\n  );\n\n  onMounted(initObserver);\n  onBeforeUnmount(() => observer?.disconnect());\n}\n\nexport default useMutationObservable;\n","/**\n * 获取颜色token的色值\n * @example getColorTokenColor('--td-brand-color')\n * @returns string\n */\nexport const getColorTokenColor = (token: string): string => {\n  if (typeof window === 'undefined') return '';\n  const targetElement = document?.documentElement;\n  const styles = getComputedStyle(targetElement);\n  return styles.getPropertyValue(token).trim() ?? '';\n};\n\nexport default getColorTokenColor;\n","import { ref } from 'vue';\nimport type { Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { THEME_MODE } from '@tdesign/common-js/common';\nimport getColorTokenColor from '@tdesign/common-js/utils/getColorTokenColor';\nimport useMutationObservable from '../useMutationObservable';\n\n/**\n * useVariables\n * @param variable CSS 变量名\n * @example\n *   const { textColor, brandColor } = useVariables({\n *      textColor: '--td-color-primary',\n *      brandColor: '--td-brand-color',\n *   });\n */\nexport function useVariables<T extends Record<string, string>>(variables: T): Record<keyof T, Ref<string>> {\n  const values = {} as Record<keyof T, Ref<string>>;\n  let varsArray: string[] = [];\n\n  varsArray = Object.values(variables);\n  Object.entries(variables).forEach(([key, varName]) => {\n    values[key as keyof T] = ref(getColorTokenColor(varName));\n  });\n\n  varsArray.forEach((varName) => {\n    values[varName as keyof T] = ref(getColorTokenColor(varName));\n  });\n\n  const targetElement = document?.documentElement;\n  useMutationObservable(targetElement, (mutationsList) => {\n    mutationsList.some((mutation) => {\n      if (mutation.type === 'attributes' && mutation.attributeName === THEME_MODE) {\n        if (isString(variables) || Array.isArray(variables)) {\n          varsArray.forEach((varName) => {\n            values[varName].value = getColorTokenColor(varName);\n          });\n        } else {\n          Object.entries(variables).forEach(([key, varName]) => {\n            values[key].value = getColorTokenColor(varName);\n          });\n        }\n        return true;\n      }\n      return false;\n    });\n  });\n\n  return values;\n}\n","import { computed, ComputedRef } from 'vue';\n\n/**\n * 合并组件 props 中的透传事件与组件的回调\n * 先执行封装组件回调，再执行用户回调\n *\n * @param componentsProps 用户传入的 componentsProps\n * @param internalHandlers 组件使用的回调\n * @returns 合并后的 props\n *\n * @example\n * const internalHandlers = {\n *   onChange: () => innerChange(),\n *   onClick: () => innerClick(),\n * };\n * const events = useEventForward(componentsProps, internalHandlers);\n *\n * <Component {...events.value} />\n */\nexport function useEventForward<T extends Record<string, any>>(\n  componentsProps: T,\n  internalHandlers?: Partial<{\n    [K in keyof T]: T[K] extends (...args: any[]) => void ? T[K] : never;\n  }>,\n): ComputedRef<T> {\n  return computed(() => {\n    const merged = { ...componentsProps };\n\n    (Object.keys(internalHandlers ?? {}) as Array<keyof T>).forEach((key) => {\n      // 用户自定义的事件回调\n      const selfDefinedHandler = componentsProps?.[key];\n      // 组件内部已存在的事件回调\n      const internalHandler = internalHandlers?.[key];\n\n      if (typeof selfDefinedHandler === 'function' && typeof internalHandler === 'function') {\n        merged[key] = ((...args: any[]) => {\n          try {\n            internalHandler(...args);\n          } catch (error) {\n            console.warn(`[useEventForward]: Error in component callback for ${String(key)}:`, error);\n          }\n          try {\n            selfDefinedHandler(...args);\n          } catch (error) {\n            console.warn(`[useEventForward]: Error in self defined callback for ${String(key)}:`, error);\n          }\n        }) as T[keyof T];\n      } else if (typeof internalHandler === 'function') {\n        // 用户无回调，只用组件回调\n        merged[key] = internalHandler;\n      }\n      // 封装组件无回调(或保留不是方法的参数)，保留用户传入内容\n    });\n\n    return merged;\n  });\n}\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","isCommentVNode","length","kebabCase","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","filterCommentNode","nodes","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","from","HTMLDivElement","getAttribute","handleTarget","target","resultTarget","itemNode","Node","contains","useDragSort","navsWrap","dragged","enterTargets","dragstart","event","opacity","dt","dataTransfer","effectAllowed","setData","e","dragend","dragover","dropEffect","draggable","preventDefault","dragenter","firstChild","HTMLElement","newStyle","outline","assign","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","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","Element","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","n","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","s","_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","DEFAULT_OPTIONS","debounceTime","config","attributes","childList","characterData","subtree","useMutationObservable","targetEl","mergedOptions","initObserver","_observer","_mergedOptions$value","_mergedOptions$value$","_mergedOptions$value$2","handler","MutationObserver","debounce","newOptions","isEqual","deep","_observer2","getColorTokenColor","token","_document","_styles$getPropertyVa","targetElement","documentElement","trim","useVariables","variables","values","varsArray","varName","mutationsList","mutation","attributeName","THEME_MODE","isString","useEventForward","componentsProps","internalHandlers","merged","selfDefinedHandler","internalHandler","console","warn","String"],"mappings":"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"}