{"version":3,"file":"dep-9ce910b6.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, isString, isObject } 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\n/**\n * 从 VNode 中提取文本内容。\n *\n * @param VNodes - VNode 或字符串\n * @returns 提取的文本内容，多个会以空格分隔。\n */\nexport function getTextFromVNode(VNodes?: VNode[] | VNode | string): string {\n  if (!VNodes) return '';\n\n  // 如果是字符串，直接返回\n  if (isString(VNodes)) return VNodes;\n\n  // 如果是数组，递归获取文本内容并连接成字符串\n  if (Array.isArray(VNodes)) {\n    return filterCommentNode(VNodes)\n      .map((node) => getTextFromVNode(node))\n      .filter(Boolean)\n      .join(' ');\n  }\n\n  // 注释节点返回空字符串\n  if (isCommentVNode(VNodes)) return '';\n\n  // 子节点是字符串，直接返回\n  if (isString(VNodes.children)) {\n    return VNodes.children;\n  }\n\n  // 递归获取子节点的文本内容并连接成字符串\n  if (Array.isArray(VNodes.children)) {\n    return filterCommentNode(VNodes.children as VNode[])\n      .map((node) => getTextFromVNode(node))\n      .filter(Boolean)\n      .join(' ');\n  }\n\n  // 子节点是对象，获取对象的值并连接成字符串\n  if (VNodes.children && isObject(VNodes.children)) {\n    return Object.values(VNodes.children as Record<string, unknown>)\n      .map((child) => {\n        if (!child || isFunction(child)) return '';\n        return getTextFromVNode(child as VNode[] | VNode | string);\n      })\n      .filter(Boolean)\n      .join(' ');\n  }\n\n  return '';\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;\n// 元素自身 background 等属性的过渡时长（与 less 变量 @anim-duration-base 对齐）\n// 用于在元素切换为 loading / disabled 时，让 ripple 背景过渡与元素自身同步收尾，避免视觉割裂\nconst elementTransitionPeriod = 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\n    if (rippleContainer.value.parentNode === null) {\n      setStyle(rippleContainer.value, {\n        position: 'absolute',\n        left: `${0 - border}px`,\n        top: `${0 - border}px`,\n        // 使用百分比尺寸，避免点击后元素尺寸（如 loading 状态新增 icon）发生变化时，\n        // 容器无法跟随元素撑开，导致右侧露出元素自身的过渡背景从而出现\"左右割裂\"\n        width: `calc(100% + ${border * 2}px)`,\n        height: `calc(100% + ${border * 2}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    // 标记 ripple 是否已经清理过，避免多次重复触发\n    let cleared = false;\n    // 监听元素 class 变化的 observer，在 handleClearRipple 中会被断开\n    let classChangeObserver: MutationObserver | null = null;\n    // 清除动画节点 clear ripple container\n    const handleClearRipple = () => {\n      if (cleared) return;\n      cleared = true;\n      ripple.style.backgroundColor = noneRippleBg;\n\n      if (classChangeObserver) {\n        classChangeObserver.disconnect();\n        classChangeObserver = null;\n      }\n\n      if (el.value) {\n        el.value.removeEventListener('pointerup', handleClearRipple, false);\n        el.value.removeEventListener('pointerleave', handleClearRipple, false);\n      }\n\n      setTimeout(() => {\n        ripple.remove();\n        if (rippleContainer.value.children.length === 0) rippleContainer.value.remove();\n      }, period * 2 + 100);\n    };\n\n    // 监听元素 class 变化：当元素在 ripple 动画期间被切换为 loading / disabled / active / checked\n    // 状态时（例如 click 回调中将按钮置为 loading），由于元素自身 background 的过渡时长\n    // (@anim-duration-base) 远短于 ripple 的 background 过渡时长 (period * 2)，会出现元素已经\n    // 变成新背景色、而 ripple 还在缓慢淡出的视觉割裂。\n    // 此处一旦检测到状态切换，立即将 ripple 的 background 过渡缩短到与元素自身一致，并触发清理，\n    // 让两者同步结束褪色。\n    if (typeof MutationObserver !== 'undefined') {\n      classChangeObserver = new MutationObserver(() => {\n        if (!dom || !(dom instanceof Element)) return;\n        const cls = dom.classList;\n        if (\n          cls.contains(`${classPrefix.value}-is-loading`) ||\n          cls.contains(`${classPrefix.value}-is-disabled`) ||\n          cls.contains(`${classPrefix.value}-is-active`) ||\n          cls.contains(`${classPrefix.value}-is-checked`)\n        ) {\n          // 将 background 过渡时长同步为元素自身的过渡时长，保留 transform 的原节奏\n          ripple.style.transition = `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${elementTransitionPeriod}ms linear`;\n          handleClearRipple();\n        }\n      });\n      classChangeObserver.observe(dom, { attributes: true, attributeFilter: ['class'] });\n    }\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 { nextTick, ref } from 'vue';\nimport type { Ref } from 'vue';\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\n  // 初始化 ref\n  Object.entries(variables).forEach(([key]) => {\n    values[key as keyof T] = ref('');\n  });\n\n  // 等待 DOM 更新后获取具体变量的值\n  nextTick(() => {\n    Object.entries(variables).forEach(([key, varName]) => {\n      values[key].value = getColorTokenColor(varName);\n    });\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        Object.entries(variables).forEach(([key, varName]) => {\n          values[key].value = getColorTokenColor(varName);\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","getTextFromVNode","VNodes","isString","join","values","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","elementTransitionPeriod","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","position","left","top","borderRadius","pointerEvents","appendChild","createElement","marginTop","marginLeft","right","transition","transform","backgroundColor","elMap","WeakMap","n","i","set","initPosition","insertBefore","cleared","classChangeObserver","handleClearRipple","remove","MutationObserver","cls","attributes","attributeFilter","_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","offsetHeight","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","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","childList","characterData","subtree","useMutationObservable","targetEl","mergedOptions","initObserver","_observer","_mergedOptions$value","_mergedOptions$value$","_mergedOptions$value$2","handler","debounce","newOptions","isEqual","deep","_observer2","getColorTokenColor","token","_document","_styles$getPropertyVa","targetElement","documentElement","trim","useVariables","variables","varName","mutationsList","mutation","attributeName","THEME_MODE","_ref5","_ref6","useEventForward","componentsProps","internalHandlers","merged","selfDefinedHandler","internalHandler","console","warn","String"],"mappings":"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"}