{"version":3,"file":"dep-baff1c25.mjs","sources":["../../../shared/hooks/icon/index.tsx","../../../../node_modules/.pnpm/performance-now@2.1.0/node_modules/performance-now/lib/performance-now.js","../../../../node_modules/.pnpm/raf@3.4.1/node_modules/raf/index.js","../../../common/js/utils/easing.ts","../../../shared/utils/dom.ts","../../../shared/utils/withInstall.ts","../../../shared/utils/render-tnode.ts","../../../shared/utils/copy-to-clipboard.ts","../../../shared/utils/sanitize.ts","../../../shared/hooks/slot/index.ts","../../../common/js/utils/general.ts","../../../shared/hooks/tnode/index.ts","../../../shared/hooks/useCollapseAnimation/index.ts","../../../common/js/global-config/default-config.ts","../../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/dayjs.min.js","../../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/locale/zh-cn.js","../../../common/js/global-config/locale/zh_CN.ts","../../../components/config-provider/utils/context.ts","../../../common/js/global-config/t.ts","../../../components/config-provider/hooks/useConfig.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","../../../common/js/utils/observe.ts","../../../shared/hooks/useElementLazyRender/index.ts","../../../shared/hooks/useGlobalIcon/index.ts","../../../common/js/log/log.ts","../../../common/js/upload/utils.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/common.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","// Generated by CoffeeScript 1.12.2\n(function() {\n  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - nodeLoadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    moduleLoadTime = getNanoSeconds();\n    upTime = process.uptime() * 1e9;\n    nodeLoadTime = moduleLoadTime - upTime;\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n  , root = typeof window === 'undefined' ? global : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = root['request' + suffix]\n  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n  raf = root[vendors[i] + 'Request' + suffix]\n  caf = root[vendors[i] + 'Cancel' + suffix]\n      || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n  if (!object) {\n    object = root;\n  }\n  object.requestAnimationFrame = raf\n  object.cancelAnimationFrame = caf\n}\n","/**\n * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n  (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n  const change = end - start;\n  const offset = (change * current) / duration;\n  return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n  const change = (end - start) / 2;\n  let time = current / (duration / 2);\n  if (time < 1) {\n    return change * time * time * time + start;\n  }\n  time -= 2;\n  // eslint-disable-next-line no-return-assign\n  return change * (time * time * time + 2) + start;\n};\n","/**\n * Thanks to https://spothero.com/static/main/uniform/docs-js/module-DOMUtils.html\n */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-undef */\nimport { ComponentPublicInstance, VNode, isVNode, Comment } from 'vue';\nimport raf from 'raf';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../../components/common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n  if (!isServer && document.addEventListener) {\n    return (\n      element: Node,\n      event: string,\n      handler: EventListenerOrEventListenerObject,\n      options?: boolean | AddEventListenerOptions,\n    ): any => {\n      if (element && event && handler) {\n        element.addEventListener(event, handler, options);\n      }\n    };\n  }\n  return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n    if (element && event && handler) {\n      (element as any).attachEvent(`on${event}`, handler);\n    }\n  };\n})();\n\nexport const off = ((): any => {\n  if (!isServer && document.removeEventListener) {\n    return (\n      element: Node,\n      event: string,\n      handler: EventListenerOrEventListenerObject,\n      options?: boolean | AddEventListenerOptions,\n    ): any => {\n      if (element && event) {\n        element.removeEventListener(event, handler, options);\n      }\n    };\n  }\n  return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n    if (element && event) {\n      (element as any).detachEvent(`on${event}`, handler);\n    }\n  };\n})();\n\nexport function once(\n  element: Node,\n  event: string,\n  handler: EventListenerOrEventListenerObject,\n  options?: boolean | AddEventListenerOptions,\n) {\n  const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n  const callback = (evt: any) => {\n    handlerFn(evt);\n    off(element, event, callback, options);\n  };\n\n  on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n  if (!el || !cls) return false;\n  if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n  if (el.classList) {\n    return el.classList.contains(cls);\n  }\n  return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n  if (!el) return;\n  let curClass = el.className;\n  const classes = (cls || '').split(' ');\n\n  for (let i = 0, j = classes.length; i < j; i++) {\n    const clsName = classes[i];\n    if (!clsName) continue;\n\n    if (el.classList) {\n      el.classList.add(clsName);\n    } else if (!hasClass(el, clsName)) {\n      curClass += ` ${clsName}`;\n    }\n  }\n  if (!el.classList) {\n    el.className = curClass;\n  }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n  if (!el || !cls) return;\n  const classes = cls.split(' ');\n  let curClass = ` ${el.className} `;\n\n  for (let i = 0, j = classes.length; i < j; i++) {\n    const clsName = classes[i];\n    if (!clsName) continue;\n\n    if (el.classList) {\n      el.classList.remove(clsName);\n    } else if (hasClass(el, clsName)) {\n      curClass = curClass.replace(` ${clsName} `, ' ');\n    }\n  }\n  if (!el.classList) {\n    el.className = trim(curClass);\n  }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n  const attachNode = isFunction(node) ? node(triggerNode) : node;\n  if (!attachNode) {\n    return document.body;\n  }\n  if (isString(attachNode)) {\n    return document.querySelector(attachNode);\n  }\n  if (attachNode instanceof HTMLElement) {\n    return attachNode;\n  }\n  return document.body;\n};\n\n/**\n * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n  if (isString(container)) {\n    return document.querySelector(container) as HTMLElement;\n  }\n  if (isFunction(container)) {\n    return container();\n  }\n  return container;\n};\n\n/**\n * 返回是否window对象\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n  return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n * 获取滚动距离\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n  // node环境或者target为空\n  if (isServer || !target) {\n    return 0;\n  }\n  const method = isLeft ? 'scrollLeft' : 'scrollTop';\n  let result = 0;\n  if (isWindow(target)) {\n    result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n  } else if (target instanceof Document) {\n    result = target.documentElement[method];\n  } else if (target) {\n    result = (target as HTMLElement)[method];\n  }\n  return result;\n}\ninterface ScrollTopOptions {\n  container?: ScrollTarget;\n  duration?: number;\n  easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult<T = any> = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise<ScrollToResult> {\n  const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n  const scrollTop = getScroll(container);\n  const startTime = Date.now();\n  return new Promise((res) => {\n    const fnc = () => {\n      const timestamp = Date.now();\n      const time = timestamp - startTime;\n      const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n      if (isWindow(container)) {\n        (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n      } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n        (container as Document).documentElement.scrollTop = nextScrollTop;\n      } else {\n        (container as HTMLElement).scrollTop = nextScrollTop;\n      }\n      if (time < duration) {\n        raf(fnc);\n      } else {\n        // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n        // 此时应该在下一帧再执行res\n        raf(res);\n      }\n    };\n    raf(fnc);\n  });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable<any> | ArrayLike<any>, child: any): boolean {\n  if (parent && child) {\n    let pNode = child;\n    while (pNode) {\n      if (parent === pNode) {\n        return true;\n      }\n      const { parentNode } = pNode;\n      pNode = parentNode;\n    }\n  }\n  return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable<any> | ArrayLike<any>, cb: () => void): void => {\n  on(document, 'click', (event: { target: Element }) => {\n    if (isArray(els)) {\n      const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n      return isFlag && cb && cb();\n    }\n    if (containerDom(els, event.target)) {\n      return false;\n    }\n    return cb && cb();\n  });\n};\n\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\n  ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n  const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n  return scrollWidth > clientWidth;\n};\n\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n  // 服务端不处理\n  if (isServer) return;\n  // selected不存在或selected父元素不为parentEle则不处理\n  if (!selected || selected.offsetParent !== parentEle) {\n    parentEle.scrollTop = 0;\n    return;\n  }\n  const selectedTop = selected.offsetTop;\n  const selectedBottom = selectedTop + selected.offsetHeight;\n  const parentScrollTop = parentEle.scrollTop;\n  const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n  if (selectedTop < parentScrollTop) {\n    // selected元素滚动过了，则将其向下滚动到可视范围顶部\n    parentEle.scrollTop = selectedTop;\n  } else if (selectedBottom > parentViewBottom) {\n    // selected元素未滚动到，则将其向上滚动到可视范围底部\n    parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n  }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n  if (!(target instanceof HTMLFormElement)) {\n    throw new Error('target must be HTMLFormElement');\n  }\n  const submitter = document.createElement('input');\n  submitter.type = 'submit';\n  submitter.hidden = true;\n  target.appendChild(submitter);\n  submitter.click();\n  target.removeChild(submitter);\n};\n\n/**\n * 检查元素是否在父元素视图\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n  const rect = elm.getBoundingClientRect();\n  if (parent) {\n    const parentRect = parent.getBoundingClientRect();\n    return (\n      rect.top >= parentRect.top &&\n      rect.left >= parentRect.left &&\n      rect.bottom <= parentRect.bottom &&\n      rect.right <= parentRect.right\n    );\n  }\n  return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * 获取元素某个 css 对应的值\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n  let propValue = '';\n\n  if (document.defaultView && document.defaultView.getComputedStyle) {\n    propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n  }\n\n  if (propValue && propValue.toLowerCase) {\n    return propValue.toLowerCase();\n  }\n\n  return propValue;\n}\n\n/**\n * 判断元素是否处在 position fixed 中\n * @param element 元素\n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n  const p = element.parentNode as HTMLElement;\n\n  if (!p || p.nodeName === 'HTML') {\n    return false;\n  }\n\n  if (getElmCssPropValue(element, 'position') === 'fixed') {\n    return true;\n  }\n\n  return isFixed(p);\n}\n\n/**\n * 获取当前视图滑动的距离\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n  const { body } = document;\n  const docElm = document.documentElement;\n  const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n  const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n  return { scrollTop, scrollLeft };\n}\n\n/**\n * 获取当前视图的大小\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n  if (window.innerWidth !== undefined) {\n    return { width: window.innerWidth, height: window.innerHeight };\n  }\n  const doc = document.documentElement;\n  return { width: doc.clientWidth, height: doc.clientHeight };\n}\n\n/**\n * 判断一个 VNode 是否是注释节点（Comment）\n * Vue 3 中注释节点的 type 是 Comment\n *\n * @param node - 任意节点\n * @returns 是否为注释类型的 VNode\n */\nexport const isCommentVNode = (node: unknown): boolean => {\n  return isVNode(node) && node.type === Comment;\n};\n","import { App, Plugin, Component, Directive } from 'vue';\n\nexport function withInstall<T>(\n  comp: T,\n  alias?: string,\n  directive?: { name: string; comp: Directive<T & Plugin> },\n): T & Plugin {\n  const componentPlugin = comp as T & Component & Plugin;\n\n  componentPlugin.install = (app: App, name?: string) => {\n    app.component(alias || name || componentPlugin.name, comp);\n    directive && app.directive(directive.name, directive.comp);\n  };\n\n  return componentPlugin as T & Plugin;\n}\n","import { VNode, isVNode, Fragment, getCurrentInstance } from 'vue';\nimport { isArray, isString, isObject } from 'lodash-es';\n\n// TODO:PAOPAO move? i have no idea\nexport interface JSXRenderContext {\n  defaultNode?: VNode | string;\n  params?: Record<string, any>;\n  slotFirst?: boolean;\n  // 是否不打印 LOG\n  silent?: boolean;\n}\n\nexport type OptionsType = VNode | JSXRenderContext | string;\n\nexport function getDefaultNode(options?: OptionsType) {\n  let defaultNode;\n  if (isObject(options) && 'defaultNode' in options) {\n    defaultNode = options.defaultNode;\n  } else if (isVNode(options) || isString(options)) {\n    defaultNode = options;\n  }\n  return defaultNode;\n}\n\nexport function getChildren(content: VNode[]) {\n  const childList: VNode[] = [];\n  const innerGetChildren = (content: VNode[]) => {\n    if (!isArray(content)) return;\n    content.forEach((item: VNode) => {\n      if (item.children && isArray(item.children)) {\n        if (item.type !== Fragment) return;\n        innerGetChildren(item.children as VNode[]);\n      } else {\n        childList.push(item);\n      }\n    });\n    return childList;\n  };\n\n  return innerGetChildren(content);\n}\n\n// TODO:PAOPAO looks like a common util??\nexport function getParams(options?: OptionsType) {\n  // TODO:PAOPAO in ??? in my view, it is better to use hasOwnProperty instead of in if it is not necessary.\n  return isObject(options) && 'params' in options ? options.params : {};\n}\n\n// TODO:PAOPAO as above\n// and only hooks tnode import this one, so, can we move it to tnode hooks directly????\nexport function getSlotFirst(options?: OptionsType): boolean {\n  return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n\nexport function isPropsUsed(propsName?: string): boolean {\n  const { vnode, slots } = getCurrentInstance();\n  const vProps = vnode.props || {};\n\n  if (Object.prototype.hasOwnProperty.call(vProps, propsName)) return true;\n  if (slots && Object.prototype.hasOwnProperty.call(slots, propsName)) return true;\n  return false;\n}\n","interface Options {\n  message?: string;\n  format?: string; // MIME type\n  onCopy?: (clipboardData: object) => void;\n}\n\nconst defaultMessage = 'Copy to clipboard: #{key}, Enter';\n\nconst format = (message: string) => {\n  const copyKey = (/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl') + '+C';\n  return message.replace(/#{\\s*key\\s*}/g, copyKey);\n};\n\n// inspired by https://github.com/sudodoki/toggle-selection, refactor to esm\nconst deselectCurrent = () => {\n  const selection = document.getSelection();\n  if (!selection.rangeCount) {\n    return function () {};\n  }\n  let active = document.activeElement as any;\n\n  const ranges: Range[] = [];\n  for (let i = 0; i < selection.rangeCount; i++) {\n    ranges.push(selection.getRangeAt(i));\n  }\n\n  const tagName = active.tagName.toUpperCase(); // toUpperCase handles XHTML\n  switch (tagName) {\n    case 'INPUT':\n    case 'TEXTAREA':\n      active.blur();\n      break;\n\n    default:\n      active = null;\n      break;\n  }\n\n  selection.removeAllRanges();\n  return function () {\n    selection.type === 'Caret' && selection.removeAllRanges();\n\n    if (!selection.rangeCount) {\n      ranges.forEach(function (range) {\n        selection.addRange(range);\n      });\n    }\n\n    active && active.focus();\n  };\n};\n\nexport const copy = (text: string, options?: Options) => {\n  let message,\n    reselectPrevious,\n    range,\n    selection,\n    mark,\n    success = false;\n  if (!options) {\n    options = {};\n  }\n  try {\n    reselectPrevious = deselectCurrent();\n\n    range = document.createRange();\n    selection = document.getSelection();\n\n    mark = document.createElement('span');\n    mark.textContent = text;\n    // reset user styles for span element\n    mark.style.all = 'unset';\n    // prevents scrolling to the end of the page\n    mark.style.position = 'fixed';\n    mark.style.top = '0';\n    mark.style.clip = 'rect(0, 0, 0, 0)';\n    // used to preserve spaces and line breaks\n    mark.style.whiteSpace = 'pre';\n    // do not inherit user-select (it may be `none`)\n    mark.style.webkitUserSelect = 'text';\n    mark.style.userSelect = 'text';\n    mark.addEventListener('copy', function (e) {\n      e.stopPropagation();\n      if (options.format) {\n        e.preventDefault();\n        e.clipboardData.clearData();\n        e.clipboardData.setData(options.format, text);\n      }\n      if (options.onCopy) {\n        e.preventDefault();\n        options.onCopy(e.clipboardData);\n      }\n    });\n\n    document.body.appendChild(mark);\n\n    range.selectNodeContents(mark);\n    selection.addRange(range);\n\n    const successful = document.execCommand('copy');\n    if (!successful) {\n      throw new Error('copy command was unsuccessful');\n    }\n    success = true;\n  } catch (err) {\n    try {\n      (window as any).clipboardData.setData(options.format || 'text', text);\n      options.onCopy && options.onCopy((window as any).clipboardData);\n      success = true;\n    } catch (err) {\n      message = format('message' in options ? options.message : defaultMessage);\n      window.prompt(message, text);\n    }\n  } finally {\n    if (selection) {\n      if (typeof selection.removeRange == 'function') {\n        selection.removeRange(range);\n      } else {\n        selection.removeAllRanges();\n      }\n    }\n\n    if (mark) {\n      document.body.removeChild(mark);\n    }\n    reselectPrevious();\n  }\n\n  return success;\n};\n","/** 默认允许的 URL 协议白名单（用于 markdown link 等普通 href 场景） */\nexport const SAFE_URL_PROTOCOL_RE = /^(?:https?|mailto|tel|ftp|sms):/i;\n\n/** data: 协议中仅放行的图片类 MIME 白名单（避免 data:text/html 被滥用） */\nexport const SAFE_DATA_IMAGE_RE = /^data:image\\/(?:png|jpe?g|gif|webp|svg\\+xml|bmp|x-icon)[;,]/i;\n\n/** 危险脚本协议（javascript:/vbscript:） */\nexport const DANGEROUS_SCRIPT_PROTOCOL_RE = /^(?:javascript|vbscript):/i;\n\n/** 相对路径 / 锚点 / 协议相对（//xxx） */\nexport const RELATIVE_URL_RE = /^(?:[/?#]|\\.{1,2}\\/|\\/\\/)/;\n\n/** 任意\"协议:\"前缀（用于判断是否包含协议） */\nexport const ANY_PROTOCOL_RE = /^[a-z][a-z0-9+.-]*:/i;\n\n/** 危险标签：完全移除（含其内容） */\nexport const DANGEROUS_TAG_RE =\n  /<\\s*\\/?\\s*(script|iframe|frame|frameset|object|embed|applet|link|meta|style|base|form|input|button|textarea|select|option|svg|math|template|portal|noscript)\\b[^>]*>/gi;\n/** 容器型危险标签内的内容也要清除（如 <script>...</script>、<style>...</style>） */\nexport const DANGEROUS_BLOCK_RE =\n  /<\\s*(script|style|iframe|object|embed|noscript|template|svg|math)\\b[^>]*>[\\s\\S]*?<\\s*\\/\\s*\\1\\s*>/gi;\n/** 事件属性：onxxx= */\nexport const ON_EVENT_ATTR_RE = /\\s+on[a-z]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s>]+)/gi;\n/** 含 javascript: / vbscript: / data: 协议的危险属性 */\nexport const DANGEROUS_URL_ATTR_RE =\n  /\\s+(href|src|xlink:href|formaction|action|poster|background|data|cite|longdesc|ping|srcdoc)\\s*=\\s*(?:\"\\s*(?:javascript|vbscript|data)\\s*:[^\"]*\"|'\\s*(?:javascript|vbscript|data)\\s*:[^']*'|\\s*(?:javascript|vbscript|data)\\s*:[^\\s>]*)/gi;\n/** srcdoc 属性（允许 iframe 内嵌任意 HTML）一律去除 */\nexport const SRCDOC_ATTR_RE = /\\s+srcdoc\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s>]+)/gi;\n\n/**\n * 剥离 URL/属性值中的控制字符（含 NUL、Tab、换行等），用于挡住\n * `java&#9;script:` / `java\\tscript:` 之类的协议黑名单绕过。\n */\nexport const stripCtrlChars = (value: string): string => (value || '').replace(/[\\u0000-\\u001F\\u007F]+/g, '');\n\nconst normalizeUrlInput = (rawHref: string | null | undefined): string => {\n  if (rawHref == null) return '';\n  return stripCtrlChars(String(rawHref)).trim();\n};\n\n/**\n * 判定一个 URL 字符串是否含有危险协议（javascript:/vbscript:/非图片 data:）。\n * 在判定前会自动剥离控制字符。\n */\nexport const isDangerousUrl = (rawValue: string): boolean => {\n  const value = normalizeUrlInput(rawValue);\n  if (!value) return false;\n  if (DANGEROUS_SCRIPT_PROTOCOL_RE.test(value)) return true;\n  if (/^data:/i.test(value) && !SAFE_DATA_IMAGE_RE.test(value)) return true;\n  return false;\n};\n\n/**\n * 判定 style 属性值是否含有危险表达式（IE expression / 协议跳转 / @import）。\n */\nexport const isDangerousStyle = (rawValue: string): boolean => {\n  const value = stripCtrlChars(rawValue || '');\n  return /expression\\s*\\(|javascript\\s*:|vbscript\\s*:|@import/i.test(value);\n};\n\n/**\n * 通用 URL 清洗：放行 http(s)/mailto/tel/ftp/sms 与相对路径/锚点/协议相对，\n * 否则返回空串。适用于 markdown link 等纯链接场景。\n */\nexport function sanitizeUrl(rawHref: string | null | undefined): string {\n  const href = normalizeUrlInput(rawHref);\n  if (!href) return '';\n  // 相对路径、锚点、协议相对一律放行\n  if (RELATIVE_URL_RE.test(href)) return href;\n  // 不带协议的纯文本，按相对路径处理\n  if (!ANY_PROTOCOL_RE.test(href)) return href;\n  if (SAFE_URL_PROTOCOL_RE.test(href)) return href;\n  return '';\n}\n\n/**\n * 图片 URL 清洗：在 sanitizeUrl 基础上额外允许安全的 data:image/* 协议。\n * 适用于 markdown img src 等场景。\n */\nexport function sanitizeImageUrl(rawHref: string | null | undefined): string {\n  const href = normalizeUrlInput(rawHref);\n  if (!href) return '';\n  if (RELATIVE_URL_RE.test(href)) return href;\n  if (!ANY_PROTOCOL_RE.test(href)) return href;\n  if (SAFE_URL_PROTOCOL_RE.test(href)) return href;\n  if (SAFE_DATA_IMAGE_RE.test(href)) return href;\n  return '';\n}\n\n/**\n * 基于正则的 HTML 清洗：移除危险标签/属性，适用于 Markdown 渲染后的 XSS 过滤。\n */\nexport function sanitizeHtml(html: string): string {\n  if (!html) return '';\n  return html\n    .replace(DANGEROUS_BLOCK_RE, '')\n    .replace(DANGEROUS_TAG_RE, '')\n    .replace(ON_EVENT_ATTR_RE, '')\n    .replace(SRCDOC_ATTR_RE, '')\n    .replace(DANGEROUS_URL_ATTR_RE, '');\n}\n\n// ---------------------------------------------------------------------------\n// SVG 结构化清洗\n// ---------------------------------------------------------------------------\n\n/** 需要整体剔除（连同其子节点）的危险标签 */\nconst SVG_DANGEROUS_TAGS = new Set<string>([\n  'script',\n  'foreignobject',\n  'iframe',\n  'frame',\n  'frameset',\n  'object',\n  'embed',\n  'link',\n  'meta',\n  'base',\n  'style',\n  'form',\n  'input',\n  'button',\n  'textarea',\n  'select',\n  'option',\n  'audio',\n  'video',\n  'source',\n  'track',\n  'portal',\n  'noscript',\n  'template',\n  'handler',\n  'listener',\n  'set',\n]);\n\n/** 可能承载危险 URL 的属性名（覆盖常见 SVG / HTML 用法） */\nconst SVG_URL_ATTR_NAMES = new Set<string>([\n  'href',\n  'xlink:href',\n  'src',\n  'action',\n  'formaction',\n  'background',\n  'poster',\n  'ping',\n  'longdesc',\n  'cite',\n  'data',\n  'srcdoc',\n]);\n\nconst sanitizeElementAttributes = (el: Element): void => {\n  for (const attr of Array.from(el.attributes)) {\n    const name = attr.name.toLowerCase();\n    // 1) 所有 on* 事件属性一律删除\n    if (name.startsWith('on')) {\n      el.removeAttribute(attr.name);\n      continue;\n    }\n    // 2) URL 类属性中含危险协议则删除该属性\n    if (SVG_URL_ATTR_NAMES.has(name) && isDangerousUrl(attr.value)) {\n      el.removeAttribute(attr.name);\n      continue;\n    }\n    // 3) style 中的 expression / javascript: / @import 等\n    if (name === 'style' && isDangerousStyle(attr.value)) {\n      el.removeAttribute(attr.name);\n    }\n  }\n};\n\nconst sanitizeElementTree = (node: Element): void => {\n  // 先做快照避免在迭代过程中删除节点导致集合变化\n  for (const child of Array.from(node.children)) {\n    const tag = child.localName?.toLowerCase?.() ?? '';\n    if (SVG_DANGEROUS_TAGS.has(tag)) {\n      child.remove();\n      continue;\n    }\n    sanitizeElementAttributes(child);\n    sanitizeElementTree(child);\n  }\n};\n\nexport const sanitizeSvg = (svgText: string): string => {\n  if (!svgText || typeof svgText !== 'string') return '';\n  if (typeof DOMParser === 'undefined' || typeof XMLSerializer === 'undefined') return '';\n\n  let doc: Document;\n  try {\n    doc = new DOMParser().parseFromString(svgText, 'image/svg+xml');\n  } catch {\n    return '';\n  }\n\n  // XML 解析失败时浏览器会插入 <parsererror>\n  if (doc.querySelector('parsererror')) return '';\n\n  const root = doc.documentElement;\n  if (!root || root.localName?.toLowerCase() !== 'svg') return '';\n\n  sanitizeElementAttributes(root);\n  sanitizeElementTree(root);\n\n  try {\n    return new XMLSerializer().serializeToString(root);\n  } catch {\n    return '';\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","export type AnimationType = 'ripple' | 'expand' | 'fade';\n\nexport default {\n  classPrefix: 't',\n  animation: {\n    include: ['ripple', 'expand', 'fade'],\n    exclude: [],\n  } as Record<'include' | 'exclude', Array<AnimationType>>,\n  attach: null,\n  calendar: {\n    firstDayOfWeek: 1,\n    fillWithZero: true,\n    controllerConfig: undefined,\n  },\n  icon: {},\n  input: {\n    autocomplete: '',\n  },\n  dialog: {\n    closeOnEscKeydown: true,\n    closeOnOverlayClick: true,\n    placement: 'top',\n    confirmBtnTheme: {\n      default: 'primary',\n      info: 'primary',\n      warning: 'primary',\n      danger: 'primary',\n      success: 'primary',\n    },\n  },\n  loading: {\n    size: 'medium',\n    delay: 0,\n    showOverlay: true,\n    inheritColor: false,\n    preventScrollThrough: true,\n  },\n  message: {},\n  popconfirm: {\n    confirmBtnTheme: {\n      default: 'primary',\n      warning: 'primary',\n      danger: 'primary',\n    },\n  },\n  table: {\n    // 展开和收起图标（使用收起图标）\n    expandIcon: undefined,\n    // 排序图标（使用降序图标）\n    sortIcon: undefined,\n    // 过滤图标\n    filterIcon: undefined,\n    // 树形结构展开图标\n    treeExpandAndFoldIcon: undefined,\n    // 是否隐藏排序图标的文本提示\n    hideSortTips: false,\n    // 全局表格尺寸配置\n    size: 'medium',\n  },\n  select: {\n    // 清除按钮\n    clearIcon: undefined,\n    filterable: false,\n  },\n  drawer: {\n    closeOnEscKeydown: true,\n    closeOnOverlayClick: true,\n    size: 'small',\n  },\n  tree: {\n    // 目录层级图标\n    folderIcon: undefined,\n  },\n  datePicker: {\n    firstDayOfWeek: 1,\n  },\n  steps: {\n    checkIcon: undefined,\n    errorIcon: undefined,\n  },\n  tag: {\n    closeIcon: undefined,\n  },\n  form: {\n    requiredMark: undefined,\n  },\n  empty: {\n    titleText: {\n      maintenance: undefined,\n      success: undefined,\n      fail: undefined,\n      empty: undefined,\n      networkError: undefined,\n    },\n    image: {\n      maintenance: undefined,\n      success: undefined,\n      fail: undefined,\n      empty: undefined,\n      networkError: undefined,\n    },\n  },\n} as const;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","/* eslint-disable no-template-curly-in-string */\n// 文件有效，为国际化做准备\nimport 'dayjs/locale/zh-cn';\n\nexport default {\n  autoComplete: {\n    empty: '暂无数据',\n  },\n  pagination: {\n    itemsPerPage: '{size} 条/页',\n    jumpTo: '跳至',\n    page: '页',\n    total: '共 {count} 条数据',\n  },\n  cascader: {\n    empty: '暂无数据',\n    loadingText: '加载中',\n    placeholder: '请选择',\n  },\n  calendar: {\n    yearSelection: '{year} 年',\n    monthSelection: '{month} 月',\n    yearRadio: '年',\n    monthRadio: '月',\n    hideWeekend: '隐藏周末',\n    showWeekend: '显示周末',\n    today: '今天',\n    thisMonth: '本月',\n    week: '一,二,三,四,五,六,日',\n    cellMonth: '1 月,2 月,3 月,4 月,5 月,6 月,7 月,8 月,9 月,10 月,11 月,12 月',\n  },\n  transfer: {\n    title: '{checked} / {total} 项',\n    empty: '暂无数据',\n    placeholder: '请输入关键词搜索',\n  },\n  timePicker: {\n    dayjsLocale: 'zh-cn',\n    now: '此刻',\n    confirm: '确定',\n    anteMeridiem: '上午',\n    postMeridiem: '下午',\n    placeholder: '选择时间',\n  },\n  dialog: {\n    confirm: '确认',\n    cancel: '取消',\n  },\n  drawer: {\n    confirm: '确认',\n    cancel: '取消',\n  },\n  popconfirm: {\n    confirm: {\n      content: '确定',\n    },\n    cancel: {\n      content: '取消',\n    },\n  },\n  table: {\n    empty: '暂无数据',\n    loadingText: '正在加载中，请稍后',\n    loadingMoreText: '点击加载更多',\n    filterInputPlaceholder: '请输入内容（无默认值）',\n    sortAscendingOperationText: '点击升序',\n    sortCancelOperationText: '点击取消排序',\n    sortDescendingOperationText: '点击降序',\n    clearFilterResultButtonText: '清空筛选',\n    columnConfigButtonText: '列配置',\n    columnConfigTitleText: '表格列配置',\n    columnConfigDescriptionText: '请选择需要在表格中显示的数据列',\n    confirmText: '确认',\n    cancelText: '取消',\n    resetText: '重置',\n    selectAllText: '全选',\n    searchResultText: '搜索“{result}”，找到 {count} 条结果',\n  },\n  select: {\n    empty: '暂无数据',\n    loadingText: '加载中',\n    placeholder: '请选择',\n  },\n  tree: {\n    empty: '暂无数据',\n  },\n  treeSelect: {\n    empty: '暂无数据',\n    loadingText: '加载中',\n    placeholder: '请选择',\n  },\n  datePicker: {\n    dayjsLocale: 'zh-cn',\n    placeholder: {\n      date: '请选择日期',\n      month: '请选择月份',\n      year: '请选择年份',\n      quarter: '请选择季度',\n      week: '请选择周',\n    },\n    weekdays: ['一', '二', '三', '四', '五', '六', '日'],\n    months: ['1 月', '2 月', '3 月', '4 月', '5 月', '6 月', '7 月', '8 月', '9 月', '10 月', '11 月', '12 月'],\n    quarters: ['一季度', '二季度', '三季度', '四季度'],\n    rangeSeparator: ' - ',\n    direction: 'ltr',\n    format: 'YYYY-MM-DD',\n    dayAriaLabel: '日',\n    weekAbbreviation: '周',\n    yearAriaLabel: '年',\n    monthAriaLabel: '月',\n    confirm: '确定',\n    selectTime: '选择时间',\n    selectDate: '选择日期',\n    nextYear: '下一年',\n    preYear: '上一年',\n    nextMonth: '下个月',\n    preMonth: '上个月',\n    preDecade: '上个十年',\n    nextDecade: '下个十年',\n    now: '当前',\n  },\n  upload: {\n    sizeLimitMessage: '文件大小不能超过 {sizeLimit}',\n    cancelUploadText: '取消上传',\n    triggerUploadText: {\n      fileInput: '选择文件',\n      image: '点击上传图片',\n      normal: '点击上传',\n      // 选择文件和上传文件是 2 个步骤，文本需明确步骤\n      reupload: '重新选择',\n      continueUpload: '继续选择',\n      delete: '删除',\n      uploading: '上传中',\n    },\n    dragger: {\n      dragDropText: '释放鼠标',\n      draggingText: '拖拽到此区域',\n      clickAndDragText: '点击上方“选择文件”或将文件拖拽到此区域',\n    },\n    file: {\n      fileNameText: '文件名',\n      fileSizeText: '文件大小',\n      fileStatusText: '状态',\n      fileOperationText: '操作',\n      fileOperationDateText: '上传日期',\n    },\n    progress: {\n      uploadingText: '上传中',\n      waitingText: '待上传',\n      failText: '上传失败',\n      successText: '上传成功',\n    },\n  },\n  form: {\n    errorMessage: {\n      date: '请输入正确的${name}',\n      url: '请输入正确的${name}',\n      required: '${name}必填',\n      whitespace: '${name}不能为空',\n      max: '${name}字符长度不能超过 ${validate} 个字符，一个中文等于两个字符',\n      min: '${name}字符长度不能少于 ${validate} 个字符，一个中文等于两个字符',\n      len: '${name}字符长度必须是 ${validate}',\n      enum: '${name}只能是${validate}等',\n      idcard: '请输入正确的${name}',\n      telnumber: '请输入正确的${name}',\n      pattern: '请输入正确的${name}',\n      validator: '${name}不符合要求',\n      boolean: '${name}数据类型必须是布尔类型',\n      number: '${name}必须是数字',\n      email: '请输入正确的${name}',\n    },\n    colonText: '：',\n  },\n  input: {\n    placeholder: '请输入',\n  },\n  list: {\n    loadingText: '正在加载中，请稍等',\n    loadingMoreText: '点击加载更多',\n  },\n  alert: {\n    expandText: '展开更多',\n    collapseText: '收起',\n  },\n  anchor: {\n    copySuccessText: '链接复制成功',\n    copyText: '复制链接',\n  },\n  colorPicker: {\n    swatchColorTitle: '系统预设颜色',\n    recentColorTitle: '最近使用颜色',\n    clearConfirmText: '确定清空最近使用的颜色吗？',\n    singleColor: '单色',\n    gradientColor: '渐变',\n  },\n  guide: {\n    finishButtonProps: {\n      content: '完成',\n      theme: 'primary',\n    },\n    nextButtonProps: {\n      content: '下一步',\n      theme: 'primary',\n    },\n    skipButtonProps: {\n      content: '跳过',\n      theme: 'default',\n    },\n    prevButtonProps: {\n      content: '上一步',\n      theme: 'default',\n    },\n  },\n  image: {\n    errorText: '图片无法显示',\n    loadingText: '图片加载中',\n  },\n  imageViewer: {\n    errorText: '图片加载失败，可尝试重新加载',\n    mirrorTipText: '镜像',\n    rotateTipText: '旋转',\n    originalSizeTipText: '原始大小',\n    previewText: '预览',\n  },\n  typography: {\n    expandText: '展开',\n    collapseText: '收起',\n    copiedText: '复制成功',\n  },\n  rate: {\n    rateText: ['极差', '失望', '一般', '满意', '惊喜'],\n  },\n  empty: {\n    titleText: {\n      maintenance: '建设中',\n      success: '成功',\n      fail: '失败',\n      empty: '暂无数据',\n      networkError: '网络错误',\n    },\n  },\n  descriptions: {\n    colonText: '：',\n  },\n  chat: {\n    placeholder: '请输入消息...',\n    stopBtnText: '中止',\n    refreshTipText: '重新生成',\n    copyTipText: '复制',\n    likeTipText: '点赞',\n    dislikeTipText: '点踩',\n    copyCodeBtnText: '复制代码',\n    copyCodeSuccessText: '已复制',\n    clearHistoryBtnText: '清空历史记录',\n    copyTextSuccess: '已成功复制到剪贴板',\n    copyTextFail: '复制到剪贴板失败',\n    confirmClearHistory: '确定要清空所有的消息吗？',\n    loadingText: '思考中...',\n    loadingEndText: '已深度思考',\n    uploadImageText: '上传图片',\n    uploadAttachmentText: '上传附件',\n    shareTipText: '分享',\n  },\n  qrcode: {\n    expiredText: '二维码过期',\n    refreshText: '点击刷新',\n    scannedText: '已扫描',\n  },\n} as const;\n","import { InjectionKey, ComputedRef } from 'vue';\nimport { mergeWith as _mergeWith, merge, isArray } from 'lodash-es';\nimport defaultConfig from '@tdesign/common-js/global-config/default-config';\nimport defaultZhLocale from '@tdesign/common-js/global-config/locale/zh_CN';\nimport { GlobalConfigProvider } from '../type';\n\nexport enum EAnimationType {\n  ripple = 'ripple',\n  expand = 'expand',\n  fade = 'fade',\n}\n\nexport const defaultGlobalConfig = merge(defaultConfig, defaultZhLocale);\n\nexport type Locale = typeof defaultZhLocale;\n\nexport const configProviderInjectKey: InjectionKey<ComputedRef<GlobalConfigProvider>> = Symbol('configProvide');\n\nexport const mergeWith = (defaultGlobalConfig: GlobalConfigProvider, injectConfig: GlobalConfigProvider) =>\n  _mergeWith(defaultGlobalConfig, injectConfig, (objValue, srcValue) => {\n    if (isArray(objValue)) {\n      return srcValue;\n    }\n  });\n","import { isString } from 'lodash-es';\n\n/**\n * 复数规则判断函数\n * @param count 数量\n * @returns 返回复数形式的索引 (0: zero/none, 1: one, 2: other/many)\n */\nfunction getPluralIndex(count: number): number {\n  if (count === 0) return 0; // no items\n  if (count === 1) return 1; // one item\n  return 2; // multiple items\n}\n\n/**\n * @see https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/config-provider/hooks/useConfig.ts#L48\n * 自定义 t function 可能依赖特定库函数，例如 tdesign-vue-next 中使用了 vue 的 h 函数\n * 因此交由各个类库自行实现\n */\n\n/**\n * 国际化函数，支持复数处理和变量替换\n *\n * 示例用法：\n * 1. 基本变量替换：\n *    t('Hello {name}', { name: 'World' }) // => 'Hello World'\n *\n * 2. 复数处理（传入数字）：\n *    t('no apples | one apple | {count} apples', 0) // => 'no apples'\n *    t('no apples | one apple | {count} apples', 1) // => 'one apple'\n *    t('no apples | one apple | {count} apples', 5) // => '5 apples'\n *\n * 3. 复合使用：\n *    t('no items found | found {count} item | found {count} items', 3, { count: 3 }) // => 'found 3 items'\n */\n\n// 类型重载定义\nexport function t(pattern: string): string;\nexport function t(pattern: string, data: Record<string, any>): string;\nexport function t(pattern: string, count: number): string;\nexport function t(pattern: string, count: number, data: Record<string, any>): string;\nexport function t<T>(pattern: T): string;\n\n/**\n * @param pattern 文本模式，可以是字符串、函数或其他类型\n * @param args 参数列表，支持 (count: number) 或 (count: number, data: object) 或 (data: object)\n * @returns 处理后的文本\n */\nexport function t<T>(pattern: T, ...args: any[]): string {\n  if (isString(pattern)) {\n    let text = pattern as string;\n    let count: number | undefined;\n    let data: Record<string, any> = {};\n\n    // 解析参数\n    if (args.length > 0) {\n      const [firstArg, secondArg] = args;\n\n      if (typeof firstArg === 'number') {\n        // 第一个参数是数字，表示 count\n        count = firstArg;\n        if (secondArg && typeof secondArg === 'object') {\n          // 第二个参数是对象，表示额外的数据\n          data = secondArg;\n        } else {\n          data.count = count; // 若没有提供第二个参数，则将 count 添加到数据中\n        }\n      } else if (typeof firstArg === 'object' && firstArg !== null) {\n        // 第一个参数是对象，表示数据\n        data = firstArg;\n      }\n    }\n\n    // 处理复数形式：支持 \"no items | one item | {count} items\" 格式\n    if (text.includes('|')) {\n      const pluralParts = text.split('|').map((part) => part.trim());\n\n      // 优先使用显式传入的 count（数字参数），其次从 data.count 取值\n      // 兼容 t(pattern, { count: 5 }) 这种对象传参方式\n      let effectiveCount: number | undefined;\n      if (typeof count === 'number') {\n        effectiveCount = count;\n      } else if (typeof data?.count === 'number') {\n        effectiveCount = data.count;\n      }\n\n      if (typeof effectiveCount === 'number') {\n        // 使用 count 进行复数处理\n        const pluralIndex = getPluralIndex(effectiveCount);\n\n        // 根据复数索引选择对应的文本\n        if (pluralIndex < pluralParts.length) {\n          text = pluralParts[pluralIndex];\n        } else {\n          // 如果索引超出范围，使用最后一个选项\n          text = pluralParts[pluralParts.length - 1];\n        }\n      } else {\n        // 如果没有 count，默认使用第一个选项\n        const [firstPart] = pluralParts;\n        text = firstPart;\n      }\n    }\n\n    // 处理变量替换：{key} 格式\n    if (data && Object.keys(data).length > 0) {\n      const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n      text = text.replace(regular, (match, key) => {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n          return String(data[key]);\n        }\n        return match; // 如果找不到对应的键，保留原始占位符\n      });\n    }\n\n    return text as any;\n  }\n\n  // 如果不是字符串或函数，返回空字符串\n  return '';\n}\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\nimport { t as commonT } from '@tdesign/common-js/global-config/t';\n\n// 这是为了解决在非component里调用useConfig hook时发出的警告\n// https://github.com/Tencent/tdesign-vue-next/issues/2025\nconst globalConfigCopy = ref<GlobalConfigProvider>();\n\nexport * from '../type';\n\n/**\n * component globalConfig\n * @param componentName\n * @returns {t, globalConfig}\n * useConfig('pagination')\n */\nexport function useConfig<T extends keyof GlobalConfigProvider>(\n  componentName: T = undefined,\n  componentLocale?: GlobalConfigProvider[T],\n) {\n  let injectGlobalConfig = null;\n  if (getCurrentInstance()) {\n    injectGlobalConfig = inject(configProviderInjectKey, null);\n    if (!injectGlobalConfig) {\n      // This handles cases where the component is created outside the ConfigProvider\n      // (e.g., LoadingPlugin, MessagePlugin, DialogPlugin, etc.)\n      injectGlobalConfig = globalConfigCopy;\n    }\n  } else {\n    injectGlobalConfig = globalConfigCopy;\n  }\n  const mergedGlobalConfig = computed(() => injectGlobalConfig?.value || defaultGlobalConfig);\n  const globalConfig = computed(() => Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale));\n\n  const classPrefix = computed(() => {\n    return mergedGlobalConfig.value.classPrefix;\n  });\n\n  // 处理正则表达式\n  const t = function <T>(pattern: T, ...args: any[]) {\n    if (isFunction(pattern)) {\n      // 重要：组件的渲染必须存在参数 h，不能移除\n      if (!args.length) return pattern(h);\n      return pattern(...args);\n    }\n    // 使用公共翻译函数，以支持复数处理\n    // @ts-expect-error be passed to rest parameter\n    return commonT(pattern, ...args);\n  };\n\n  return {\n    t,\n    global: globalConfig,\n    globalConfig,\n    classPrefix,\n  };\n}\n\n/**\n * provide globalConfig\n * @param {TdConfigProviderProps} props\n * @returns {ComputedRef<GlobalConfigProvider>}\n */\nexport const provideConfig = (props: TdConfigProviderProps) => {\n  const defaultData = cloneDeep(defaultGlobalConfig);\n  const mergedGlobalConfig = computed(() =>\n    Object.assign({}, mergeWith(defaultData as unknown as GlobalConfigProvider, props.globalConfig)),\n  );\n\n  provide(configProviderInjectKey, mergedGlobalConfig);\n\n  if (!globalConfigCopy.value) {\n    globalConfigCopy.value = mergedGlobalConfig.value;\n  }\n\n  return mergedGlobalConfig;\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","export default function observe(\n  element: HTMLElement,\n  root: HTMLElement,\n  callback: Function,\n  marginBottom: number\n): IntersectionObserver {\n  if (typeof window === 'undefined') return null;\n  if (!window || !window.IntersectionObserver) {\n    callback();\n    return null;\n  }\n  let io: IntersectionObserver = null;\n  try {\n    io = new window.IntersectionObserver(\n      (entries) => {\n        const entry = entries[0];\n        if (entry.isIntersecting) {\n          callback();\n          io.unobserve(element);\n        }\n      },\n      {\n        rootMargin: `0px 0px ${marginBottom}px 0px`,\n        root,\n      }\n    );\n    io.observe(element);\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n    callback();\n  }\n  return io;\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","/* eslint-disable no-console */\nimport { Log } from './types';\n\nconst logSet = new Set();\n\nconst log: Log = {\n  warn(componentName, message): void {\n    console.warn(`TDesign ${componentName} Warn: ${message}`);\n  },\n  warnOnce(componentName, message): void {\n    const msgContent = `TDesign ${componentName} Warn: ${message}`;\n    if (logSet.has(msgContent)) return;\n    logSet.add(msgContent);\n    console.warn(msgContent);\n  },\n  error(componentName, message): void {\n    console.error(`TDesign ${componentName} Error: ${message}`);\n  },\n  errorOnce(componentName, message): void {\n    const msgContent = `TDesign ${componentName} Error: ${message}`;\n    if (logSet.has(msgContent)) return;\n    logSet.add(msgContent);\n    console.error(msgContent);\n  },\n  info(componentName, message): void {\n    console.info(`TDesign ${componentName} Info: ${message}`);\n  },\n};\n\nexport default log;\n","import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.heic|.heif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP =\n  /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.heic|.heif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n  'audio/*': AUDIO_REGEXP,\n  'video/*': VIDEO_REGEXP,\n  'image/*': IMAGE_ALL_REGEXP,\n  '.jpg': /image\\/jpeg|\\.jpg$/i,\n  '.heic': /image\\/heic|image\\/heic-sequence|\\.heic$/i,\n  '.heif': /image\\/heif|image\\/heif-sequence|\\.heif$/i,\n  '.ico': /image\\/vnd.microsoft.icon/i,\n  '.doc': /application\\/msword/i,\n  '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n  '.xls': /application\\/vnd.ms-excel/i,\n  '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n  '.ppt': /application\\/vnd.ms-powerpoint/i,\n  '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n  '.vsd': /application\\/vnd.visio/i,\n  '.txt': /text\\/plain/i,\n  '.abw': /application\\/x-abiword/i,\n  '.avi': /video\\/x-msvideo/i,\n  '.azw': /application\\/vnd.amazon.ebook/i,\n  '.bin': /application\\/octet-stream/i,\n  '.cda': /application\\/x-cdf/i,\n  '.mpkg': /application\\/vnd.apple.installer+xml/i,\n  '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n  '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n  '.odt': /application\\/vnd.oasis.opendocument.text/i,\n  '.oga': /audio\\/ogg/i,\n  '.ogv': /video\\/ogg/i,\n  '.ogx': /application\\/ogg/i,\n  '.ai': /application\\/postscript/i,\n  '.eps': /application\\/postscript/i,\n  '.ps': /application\\/postscript/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit      位              b     0 or 1\n * [*] byte     字节            B     8 bits\n * [x] kilobit  千位            kb    1000 bites\n * [*] kilobyte 千字节(二进制)   KB    1024 bytes\n * [x] kilobyte 千字节(十进制)   KB    1000 bytes\n * [x] Megabite 百万位          Mb    1000 kilobits\n * [*] Megabyte 兆字节(二进制)   KB    1024 kilobytes\n * [*] Megabyte 兆字节(十进制)   KB    1000 kilobytes\n * [x] Gigabit  万亿位          Gb    1000 Megabite\n * [*] Gigabyte 吉字节(二进制)   GB    1024 Megabytes\n * [x] Gigabyte 吉字节(十进制)   GB    1000 Megabytes\n */\nexport const SIZE_MAP = {\n  B: 1,\n  KB: 1024,\n  MB: 1048576, // 1024 * 1024\n  GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n  if (number < SIZE_MAP.KB) {\n    return `${number} Bytes`;\n  }\n  if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n    return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n  }\n  if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n    return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n  }\n\n  if (number >= SIZE_MAP.GB) {\n    return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n  }\n  return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n  const d = new Date();\n  let month: string | number = d.getMonth() + 1;\n  month = month < 10 ? `0${month}` : month;\n  const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n  const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n  if (needTime) return [date, time].join(' ');\n  return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(inputName: string, leftCount = 5, rightCount = 7): string {\n  const name = inputName;\n  let leftLength = 0;\n  let rightLength = 0;\n  if (!name) return '';\n  for (let i = 0; i < name.length; i++) {\n    const w = name[i];\n    const isCn = escape(w).indexOf('%u') === 0;\n    if (i < leftCount * 2 && leftLength < leftCount) {\n      // eslint-disable-next-line no-unused-expressions\n      isCn ? (leftLength += 1) : (leftLength += 2);\n    } else if (i > i - rightCount && rightLength < rightCount) {\n      // eslint-disable-next-line no-unused-expressions\n      isCn ? (rightLength += 1) : (rightLength += 2);\n    }\n  }\n  return name.replace(new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`), '$1…$3');\n}\n\nexport function getFileSizeText(number: number) {\n  if (number < 1024) {\n    return `${number} Bytes`;\n  }\n  if (number >= 1024 && number < 1048576) {\n    return `${(number / 1024).toFixed(1)} KB`;\n  }\n  if (number >= 1048576) {\n    return `${(number / 1048576).toFixed(1)} MB`;\n  }\n  return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小，单位：B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(fileSize: number, sizeLimit: number, unit: SizeUnit) {\n  const units = ['B', 'KB', 'MB', 'GB'];\n  const KBIndex = 1;\n  let index = units.indexOf(unit);\n  if (index === -1) {\n    log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n    index = KBIndex;\n  }\n  const num = SIZE_MAP[unit];\n  return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(fileSize: number, sizeLimit: number, unit: SizeUnit) {\n  // 以 KB 为单位进行比较\n  const units = ['B', 'KB', 'MB', 'GB'];\n  // 各个单位和 KB 的关系\n\n  const KBIndex = 1;\n  let index = units.indexOf(unit);\n  if (index === -1) {\n    // eslint-disable-next-line no-console\n    console.warn(`TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n    index = KBIndex;\n  }\n  const num = SIZE_MAP[unit];\n  const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n  return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise<string> {\n  return new Promise((resolve) => {\n    if (!fileRaw) {\n      resolve('');\n      return;\n    }\n    const reader = new FileReader();\n    reader.readAsDataURL(fileRaw);\n    reader.onload = (event: ProgressEvent<FileReader>) => {\n      resolve(event.target?.result as string);\n    };\n  });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n  const tmpFileType = fileType || fileName;\n  if (!accept) return true;\n\n  if (!tmpFileType) return false;\n\n  const acceptList = accept.split(',').map((v) => v.trim());\n  for (let i = 0, len = acceptList.length; i < len; i++) {\n    const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n    if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n      return true;\n    }\n    const regExp = new RegExp(oneRule, 'i');\n    if (regExp.test(tmpFileType)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n  const fileList: File[] = [];\n  for (let i = 0; i < files.length; i++) {\n    if (validateFileType(accept, files[i].type, files[i].name)) {\n      fileList.push(files[i]);\n    }\n  }\n  return fileList;\n}\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 rippleExtraWidth = 20;\nconst rippleSkew = 'skewX(-8deg)';\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\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: '100%',\n      // 使用百分比尺寸与位移，让 ripple 在 loading icon 插入导致按钮变宽时仍覆盖完整按钮\n      width: `calc(100% + ${rippleExtraWidth}px)`,\n      height: '100%',\n      transition: `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${period * 2}ms linear`,\n      transform: rippleSkew,\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(calc(100% - ${rippleExtraWidth}px)) ${rippleSkew}`;\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","export type PlainObject = { [key: string]: any };\n\nexport type OptionData = {\n  label?: string;\n  value?: string | number;\n} & PlainObject;\n\nexport type TreeOptionData<T = string | number> = {\n  children?: Array<TreeOptionData<T>> | boolean;\n  /** option label content */\n  label?: any;\n  /** option search text */\n  text?: string;\n  /** option value */\n  value?: T;\n} & PlainObject;\n\nexport type SizeEnum = 'small' | 'medium' | 'large';\n\nexport type HorizontalAlignEnum = 'left' | 'center' | 'right';\n\nexport type VerticalAlignEnum = 'top' | 'middle' | 'bottom';\n\nexport type ClassName = { [className: string]: any } | ClassName[] | string;\n\nexport type CSSSelector = string;\n\nexport interface Styles {\n  [css: string]: string | number;\n}\n\nexport enum EKeyboardDirection {\n  left = 37,\n  up = 38,\n  right = 39,\n  down = 40,\n}\n\nexport const ARROW_DOWN_REG = /^ArrowDown$/i;\nexport const ARROW_UP_REG = /^ArrowUp$/i;\nexport const ARROW_LEFT_REG = /^ArrowLeft$/i;\nexport const ARROW_RIGHT_REG = /^ArrowRight$/i;\nexport const ESCAPE_REG = /^Escape$/i;\nexport const SPACE_REG = /^Space$/i;\nexport const ENTER_REG = /^Enter$/i;\nexport const SHIFT_REG = /^(Shift|ShiftLeft|ShiftRight)$/i;\nexport const CLEAR_REG = /^KeyC$/i;\nexport const ALL_REG = /^(KeyA|KeyL)$/i;\nexport const CHECKED_CODE_REG = /^(Enter|Space)$/i;\n\nexport const THEME_MODE = 'theme-mode';\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","process","hrtime","performanceNowModule","exports","getNanoSeconds","nodeLoadTime","hr","moduleLoadTime","upTime","Date","now","loadTime","require$$0","root","window","global","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","_loop","cancelled","e","round","push","handle","rafModule","fn","call","cancel","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","linear","current","start","end","duration","change","offset","easeInOutCubic","time","isServer","trim","str","replace","on","document","addEventListener","element","event","handler","options","attachEvent","concat","off","removeEventListener","detachEvent","once","handlerFn","handleEvent","evt","hasClass","el","cls","indexOf","Error","classList","contains","className","addClass","curClass","classes","split","j","clsName","add","removeClass","remove","getAttach","node","triggerNode","attachNode","body","isString","querySelector","HTMLElement","getScrollContainer","container","undefined","isWindow","obj","getScroll","target","isLeft","method","result","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","Promise","res","fnc","timestamp","nextScrollTop","min","pageXOffset","constructor","name","containerDom","parent","child","pNode","_pNode","parentNode","clickOut","els","cb","isArray","isFlag","Array","from","every","item","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","scrollSelectedIntoView","parentEle","selected","offsetParent","selectedTop","offsetTop","selectedBottom","offsetHeight","parentScrollTop","parentViewBottom","clientHeight","requestSubmit","HTMLFormElement","submitter","createElement","type","hidden","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getComputedStyle","getPropertyValue","toLowerCase","isFixed","p","nodeName","getWindowScroll","_document","docElm","pageYOffset","scrollLeft","getWindowSize","width","height","doc","isCommentVNode","isVNode","Comment","withInstall","comp","alias","directive","componentPlugin","install","app","component","getDefaultNode","defaultNode","isObject","getChildren","content","childList","innerGetChildren","forEach","children","Fragment","getParams","params","getSlotFirst","slotFirst","isPropsUsed","propsName","_getCurrentInstance","vnode","vProps","Object","prototype","hasOwnProperty","defaultMessage","format","message","copyKey","test","navigator","userAgent","deselectCurrent","selection","getSelection","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","removeAllRanges","range","addRange","focus","copy","text","reselectPrevious","mark","success","createRange","textContent","style","all","position","clip","whiteSpace","webkitUserSelect","userSelect","stopPropagation","preventDefault","clipboardData","clearData","setData","onCopy","selectNodeContents","successful","execCommand","err","prompt","removeRange","SAFE_URL_PROTOCOL_RE","SAFE_DATA_IMAGE_RE","DANGEROUS_SCRIPT_PROTOCOL_RE","RELATIVE_URL_RE","ANY_PROTOCOL_RE","DANGEROUS_TAG_RE","DANGEROUS_BLOCK_RE","ON_EVENT_ATTR_RE","DANGEROUS_URL_ATTR_RE","SRCDOC_ATTR_RE","stripCtrlChars","value","normalizeUrlInput","rawHref","String","isDangerousUrl","rawValue","isDangerousStyle","sanitizeUrl","href","sanitizeImageUrl","sanitizeHtml","html","SVG_DANGEROUS_TAGS","Set","SVG_URL_ATTR_NAMES","sanitizeElementAttributes","_i","_Array$from","attributes","attr","startsWith","removeAttribute","has","sanitizeElementTree","_i2","_Array$from2","_child$localName$toLo","_child$localName","_child$localName$toLo2","tag","localName","sanitizeSvg","svgText","_root$localName","DOMParser","XMLSerializer","parseFromString","_unused","serializeToString","_unused2","useChildComponentSlots","childComponentName","_slots","_slots$default","filter","_item$type$name","endsWith","useChildSlots","_slots$default2","_typeof","map","flat","useFlatChildrenSlots","getFlatChildren","_toConsumableArray","Teleport","some","vNode","hasOwn","val","key","getPropertyValFromObj","objectToString","toString","toTypeString","isPlainObject","isPromise","then","handleSlots","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","camelCase","t","kebabCase","isEmptyNode","includes","innerNodes","r","_node2$type","isPropExplicitlySet","useTNodeJSX","renderParams","isSlotFirst","renderSlot","_instance$type$props$","propsNode","types","Boolean","Function","isPropsEmpty","useTNodeDefault","renderTNodeJSX","useContent","name1","name2","toParams","node1","node2","filterCommentNode","nodes","getTextFromVNode","VNodes","join","values","useCollapseAnimation","beforeEnter","dataset","oldPaddingTop","paddingTop","oldPaddingBottom","paddingBottom","enter","oldOverflow","overflow","scrollHeight","afterEnter","beforeLeave","leave","afterLeave","classPrefix","animation","include","exclude","attach","calendar","firstDayOfWeek","fillWithZero","controllerConfig","icon","input","autocomplete","dialog","closeOnEscKeydown","closeOnOverlayClick","placement","confirmBtnTheme","info","warning","danger","loading","size","delay","showOverlay","inheritColor","preventScrollThrough","popconfirm","table","expandIcon","sortIcon","filterIcon","treeExpandAndFoldIcon","hideSortTips","select","clearIcon","filterable","drawer","tree","folderIcon","datePicker","steps","checkIcon","errorIcon","closeIcon","form","requiredMark","empty","titleText","maintenance","fail","networkError","image","module","define","amd","globalThis","self","dayjs","this","n","s","u","a","o","c","f","d","l","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","floor","date","year","month","clone","ceil","w","D","ms","Q","g","S","_","O","args","b","locale","$L","utc","$u","x","$x","$offset","parse","$d","NaN","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","$locale","weekStart","$set","daysInMonth","get","Number","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","extend","$i","isDayjs","en","Ls","dayjs_locale_zh_cn","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","ll","lll","llll","relativeTime","future","past","mm","hh","dd","MM","yy","autoComplete","pagination","itemsPerPage","jumpTo","page","total","cascader","loadingText","placeholder","yearSelection","monthSelection","yearRadio","monthRadio","hideWeekend","showWeekend","today","thisMonth","week","cellMonth","transfer","title","timePicker","dayjsLocale","confirm","anteMeridiem","postMeridiem","loadingMoreText","filterInputPlaceholder","sortAscendingOperationText","sortCancelOperationText","sortDescendingOperationText","clearFilterResultButtonText","columnConfigButtonText","columnConfigTitleText","columnConfigDescriptionText","confirmText","cancelText","resetText","selectAllText","searchResultText","treeSelect","quarter","quarters","rangeSeparator","direction","dayAriaLabel","weekAbbreviation","yearAriaLabel","monthAriaLabel","selectTime","selectDate","nextYear","preYear","nextMonth","preMonth","preDecade","nextDecade","upload","sizeLimitMessage","cancelUploadText","triggerUploadText","fileInput","normal","reupload","continueUpload","uploading","dragger","dragDropText","draggingText","clickAndDragText","file","fileNameText","fileSizeText","fileStatusText","fileOperationText","fileOperationDateText","progress","uploadingText","waitingText","failText","successText","errorMessage","url","required","whitespace","len","idcard","telnumber","pattern","validator","number","email","colonText","list","alert","expandText","collapseText","anchor","copySuccessText","copyText","colorPicker","swatchColorTitle","recentColorTitle","clearConfirmText","singleColor","gradientColor","guide","finishButtonProps","nextButtonProps","skipButtonProps","prevButtonProps","errorText","imageViewer","mirrorTipText","rotateTipText","originalSizeTipText","previewText","typography","copiedText","rate","rateText","descriptions","chat","stopBtnText","refreshTipText","copyTipText","likeTipText","dislikeTipText","copyCodeBtnText","copyCodeSuccessText","clearHistoryBtnText","copyTextSuccess","copyTextFail","confirmClearHistory","loadingEndText","uploadImageText","uploadAttachmentText","shareTipText","qrcode","expiredText","refreshText","scannedText","EAnimationType","defaultGlobalConfig","merge","defaultConfig","defaultZhLocale","configProviderInjectKey","Symbol","mergeWith","injectConfig","_mergeWith","objValue","srcValue","getPluralIndex","count","data","_len","_key","firstArg","secondArg","_data","pluralParts","part","effectiveCount","pluralIndex","_pluralParts","_slicedToArray","firstPart","keys","regular","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","inject","mergedGlobalConfig","computed","_injectGlobalConfig","globalConfig","assign","commonT","provideConfig","defaultData","cloneDeep","provide","usePrefixClass","_useConfig","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loadMore","disabled","focused","error","checked","visible","expanded","indeterminate","useDefaultValue","defaultValue","onChange","emit","internalValue","isVMP","newValue","_len2","_key2","TDisplayNoneElementRefresh","useDestroyOnClose","refresh","onUpdated","useDisabled","context","currentInstance","componentDisabled","formDisabled","create","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","isBoolean","beforeDisabled","afterDisabled","traversalTabNavs","tabNavs","HTMLDivElement","getAttribute","handleTarget","resultTarget","itemNode","Node","useDragSort","navsWrap","dragged","enterTargets","dragstart","opacity","dt","dataTransfer","effectAllowed","dragend","dragover","dropEffect","draggable","dragenter","firstChild","newStyle","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","currentIndex","endIndex","onDragSort","panels","setNavsWrap","onUnmounted","observe","marginBottom","IntersectionObserver","io","entries","entry","isIntersecting","unobserve","rootMargin","console","useElementLazyRender","labelRef","lazyLoad","ioObserver","showElement","handleLazyLoad","onMounted","watch","onBeforeUnmount","_ioObserver$value","_ioObserver$value$uno","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","logSet","log","warn","warnOnce","msgContent","errorOnce","IMAGE_REGEXP","IMAGE_ALL_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","AUDIO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","returnFileSize","toFixed","getCurrentDate","needTime","abridgeName","inputName","leftCount","rightCount","leftLength","rightLength","isCn","escape","RegExp","getFileSizeText","isOverSizeLimit","fileSize","sizeLimit","unit","units","KBIndex","index","num","isOverSizeLimit1","limit","urlCreator","webkitURL","URL","getFileUrlByFileRaw","fileRaw","resolve","reader","FileReader","readAsDataURL","onload","_event$target","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","oneRule","regExp","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","_ref","_ref2","_ref3","_ref4","preImgUrl","immediate","expand","ripple","fade","useKeepAnimation","keepAnimation","_animationConfig$excl","_animationConfig$incl","animationConfig","keepExpand","keepRipple","keepFade","useLazyLoad","containerRef","childRef","tRowHeight","rowHeight","isInit","hasLazyLoadHolder","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","popupStack","pop","zIndex","getNextZIndex","zIndexStack","splice","popupType","_this$popupStack$popu","lastZIndex","popupManager","usePopupManager","runOnMounted","open","close","isTopInteractivePopup","readonly","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useResizeObserver","isSupport","containerObserver","cleanupObserver","addObserver","flush","setStyle","styles","period","rippleExtraWidth","rippleSkew","elementTransitionPeriod","noneRippleBg","defaultRippleColor","getRippleColor","fixedRippleColor","_el$dataset","rippleColor","Element","cssVariable","useRipple","rippleContainer","_useKeepAnimation","handleAddRipple","dom","button","elStyle","elBorder","parseInt","borderWidth","border","borderRadius","pointerEvents","marginTop","marginLeft","transition","transform","backgroundColor","elMap","WeakMap","initPosition","insertBefore","cleared","classChangeObserver","handleClearRipple","MutationObserver","attributeFilter","_el$value","useTeleport","to","innerTriggerNode","getElement","useVModel","modelValue","isVM","_len3","_key3","useVirtualScroll","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","threshold","state","reactive","visibleData","cachedHeight","cachedScrollY","isVirtual","updateId","trs","Map","visibleCount","beforeScrollTop","reset","$index","maxScrollY","reduce","sum","average","translateY","firstRow","updateVisibleData","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","distance","_container$value","handleScroll","lastIndex","_container$value2","handleRowMounted","clear","mounted","refreshContainer","ob","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","_trHeightList$i","shift","startIndex","stickyHeight","throttle","_getVisibleRangeConfi","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","rowData","_rowData$ref$value","trHeight","rowIndex","VIRTUAL_SCROLL_INDEX","refreshVirtualScroll","contentRect","preventResizeRefresh","maxScrollbarWidth","addIndexToData","updateScrollTop","_ref3$top","behavior","scrollToElement","_p$time","timer","clearTimeout","initHeightList","fill","DEFAULT_OPTIONS","debounceTime","config","characterData","subtree","useMutationObservable","targetEl","mergedOptions","initObserver","_observer","_mergedOptions$value","_mergedOptions$value$","_mergedOptions$value$2","debounce","newOptions","isEqual","deep","_observer2","EKeyboardDirection","ARROW_DOWN_REG","ARROW_UP_REG","ARROW_LEFT_REG","ARROW_RIGHT_REG","ESCAPE_REG","SPACE_REG","ENTER_REG","SHIFT_REG","CLEAR_REG","ALL_REG","CHECKED_CODE_REG","THEME_MODE","getColorTokenColor","token","_styles$getPropertyVa","targetElement","useVariables","variables","varName","mutationsList","mutation","attributeName","_ref5","_ref6","useEventForward","componentsProps","internalHandlers","merged","selfDefinedHandler","internalHandler"],"mappings":"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"}