{"version":3,"file":"index.cdn.mjs","sources":["../../../packages/utils/is.ts","../../../packages/utils/vue-utils.ts","../../../packages/utils/global-config.ts","../../../packages/shared/utils.ts","../../../packages/components/icon/base/arrow-down.vue","../../../packages/components/icon/base/arrow-left.vue","../../../packages/components/icon/base/arrow-right.vue","../../../packages/components/icon/base/arrow-up.vue","../../../packages/components/icon/base/calendar.vue","../../../packages/components/icon/base/caret-fill.vue","../../../packages/components/icon/base/caret.vue","../../../packages/components/icon/base/check-fill.vue","../../../packages/components/icon/base/check.vue","../../../packages/components/icon/base/clock.vue","../../../packages/components/icon/base/close-fill.vue","../../../packages/components/icon/base/close.vue","../../../packages/components/icon/base/delete.vue","../../../packages/components/icon/base/document.vue","../../../packages/components/icon/base/empty.vue","../../../packages/components/icon/base/folder-open.vue","../../../packages/components/icon/base/folder.vue","../../../packages/components/icon/base/hide.vue","../../../packages/components/icon/base/loading.vue","../../../packages/components/icon/base/minus.vue","../../../packages/components/icon/base/more-fill.vue","../../../packages/components/icon/base/plus.vue","../../../packages/components/icon/base/prompt.vue","../../../packages/components/icon/base/search.vue","../../../packages/components/icon/base/setting.vue","../../../packages/components/icon/base/super-arrow-left.vue","../../../packages/components/icon/base/super-arrow-right.vue","../../../packages/components/icon/base/view.vue","../../../packages/components/icon/base/warning-fill.vue","../../../packages/components/icon/base/warning.vue","../../../packages/components/icon/app/app-bi.vue","../../../packages/components/icon/app/app-building.vue","../../../packages/components/icon/app/app-cleat.vue","../../../packages/components/icon/app/app-customer.vue","../../../packages/components/icon/app/app-home.vue","../../../packages/components/icon/app/app-market.vue","../../../packages/components/icon/app/app-money.vue","../../../packages/components/icon/app/app-oa.vue","../../../packages/components/icon/app/app-pie.vue","../../../packages/components/icon/app/app-sem.vue","../../../packages/components/icon/bus/app-address.vue","../../../packages/components/icon/bus/app-arrow-up.vue","../../../packages/components/icon/bus/app-call-up.vue","../../../packages/components/icon/bus/app-call.vue","../../../packages/components/icon/bus/app-copy.vue","../../../packages/components/icon/bus/app-download.vue","../../../packages/components/icon/bus/app-drag.vue","../../../packages/components/icon/bus/app-edit.vue","../../../packages/components/icon/bus/app-enterprise.vue","../../../packages/components/icon/bus/app-exclamation-point.vue","../../../packages/components/icon/bus/app-fax.vue","../../../packages/components/icon/bus/app-iphone.vue","../../../packages/components/icon/bus/app-letter.vue","../../../packages/components/icon/bus/app-love-2.vue","../../../packages/components/icon/bus/app-love.vue","../../../packages/components/icon/bus/app-minus.vue","../../../packages/components/icon/bus/app-new-page.vue","../../../packages/components/icon/bus/app-oa-birthday.vue","../../../packages/components/icon/bus/app-oa-circle.vue","../../../packages/components/icon/bus/app-oa-location.vue","../../../packages/components/icon/bus/app-oa-send.vue","../../../packages/components/icon/bus/app-oa-telephone.vue","../../../packages/components/icon/bus/app-overview.vue","../../../packages/components/icon/bus/app-pc-2.vue","../../../packages/components/icon/bus/app-pc.vue","../../../packages/components/icon/bus/app-plus.vue","../../../packages/components/icon/bus/app-qq.vue","../../../packages/components/icon/bus/app-query.vue","../../../packages/components/icon/bus/app-question.vue","../../../packages/components/icon/bus/app-search-2.vue","../../../packages/components/icon/bus/app-search.vue","../../../packages/components/icon/bus/app-setting.vue","../../../packages/components/icon/bus/app-todo.vue","../../../packages/components/icon/bus/app-wechat.vue","../../../packages/components/icon/index.ts","../../../packages/components/button/src/LoadingIcon.tsx","../../../packages/components/button/src/button.vue","../../../packages/components/button/index.ts","../../../packages/components/button/src/button-group.vue","../../../packages/components/button-group/index.ts","../../../packages/components/form/src/constants.ts","../../../packages/components/form/src/hooks/use-form-item.ts","../../../packages/components/checkbox/src/constant.ts","../../../packages/components/checkbox/src/props.ts","../../../packages/components/checkbox/src/icon.tsx","../../../packages/components/checkbox/src/checkbox.vue","../../../packages/components/checkbox/index.ts","../../../packages/components/checkbox/src/checkbox-group.vue","../../../packages/components/checkbox-group/index.ts","../../../packages/components/radio/src/constant.ts","../../../packages/components/radio/src/radio.vue","../../../packages/components/radio/index.ts","../../../packages/components/radio/src/radio-group.vue","../../../packages/components/radio-group/index.ts","../../../packages/utils/browser.ts","../../../packages/components/input/src/props.ts","../../../packages/components/input/src/utils.ts","../../../packages/components/input/src/input.vue","../../../packages/components/input/index.ts","../../../packages/components/space/src/space.vue","../../../packages/components/space/index.ts","../../../packages/components/switch/src/props.ts","../../../packages/components/switch/src/switch.vue","../../../packages/components/switch/index.ts","../../../packages/components/form/src/form.ts","../../../packages/components/form/src/utils.ts","../../../packages/components/form/src/form.vue","../../../packages/components/form/index.ts","../../../node_modules/.pnpm/async-validator@4.2.5/node_modules/async-validator/dist-web/index.js","../../../packages/components/form/src/form-item.ts","../../../packages/components/form/src/validators/regExps.ts","../../../packages/components/form/src/validators/index.ts","../../../packages/components/form/src/form-item.vue","../../../packages/components/form-item/index.ts","../../../packages/hooks/use-popup-manager.ts","../../../packages/hooks/use-first-element.ts","../../../node_modules/.pnpm/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../../packages/hooks/use-resize-observer.ts","../../../packages/utils/convert-case.ts","../../../packages/utils/dom.ts","../../../packages/shared/resize-observer.tsx","../../../packages/utils/throttle-debounce.ts","../../../packages/shared/parent-scroll-observer.tsx","../../../packages/components/trigger/src/_trigger.ts","../../../packages/components/trigger/src/constant.ts","../../../packages/components/trigger/src/utils.ts","../../../packages/components/trigger/src/trigger.tsx","../../../packages/components/trigger/index.ts","../../../packages/components/common/select-trigger.vue","../../../packages/components/scrollbar/src/scrollbar.ts","../../../packages/components/scrollbar/src/constant.ts","../../../packages/components/scrollbar/src/thumb.ts","../../../packages/components/scrollbar/src/thumb.vue","../../../packages/components/scrollbar/src/scrollbar.vue","../../../packages/components/scrollbar/index.ts","../../../packages/components/empty/src/empty.vue","../../../packages/components/empty/index.ts","../../../packages/components/select/src/context.ts","../../../packages/components/select/src/menu.vue","../../../packages/components/select/src/props.ts","../../../packages/components/select/src/options-extract.tsx","../../../packages/components/select/src/options-render.tsx","../../../packages/components/select/src/select.vue","../../../packages/components/select/index.ts","../../../packages/components/select/src/option.vue","../../../packages/components/select-option/index.ts","../../../packages/components/pagination/src/props.ts","../../../packages/components/pagination/src/layout/total.vue","../../../packages/components/pagination/src/layout/pager.vue","../../../packages/components/pagination/src/layout/next.vue","../../../packages/components/pagination/src/layout/prev.vue","../../../packages/components/pagination/src/layout/sizes.vue","../../../packages/components/pagination/src/layout/jumper.vue","../../../packages/components/pagination/src/pagination.tsx","../../../packages/components/pagination/index.ts","../../../packages/hooks/use-overflow.ts","../../../packages/utils/keyboard.ts","../../../packages/components/dialog/src/props.ts","../../../packages/components/dialog/src/dialog.vue","../../../packages/components/dialog/index.ts","../../../packages/components/tooltip/src/popup.vue","../../../packages/components/tooltip/src/props.ts","../../../packages/components/tooltip/src/tooltip.tsx","../../../packages/components/tooltip/index.ts","../../../packages/components/drawer/src/props.ts","../../../packages/components/drawer/src/drawer.vue","../../../packages/components/drawer/index.ts","../../../packages/components/table/src/table-props.ts","../../../packages/components/table/src/layout/table-tbody.tsx","../../../packages/components/table/src/layout/table-tr.tsx","../../../packages/components/table/src/types.ts","../../../packages/components/table/src/context.ts","../../../packages/components/table/src/hooks/use-column-fixed.ts","../../../packages/components/table/src/layout/table-td.tsx","../../../packages/components/table/src/layout/table-sorter-popup.tsx","../../../packages/components/table/src/layout/table-th.tsx","../../../packages/components/table/src/layout/table-thead.tsx","../../../packages/components/table/src/layout/table-col-group.tsx","../../../packages/components/table/src/layout/table-setting-popup.tsx","../../../packages/components/table/src/layout/table-setting-icon.tsx","../../../packages/components/table/src/layout/table-loading.tsx","../../../packages/components/table/src/utils.ts","../../../packages/components/table/src/hooks/use-selection.ts","../../../packages/components/table/src/hooks/use-column-resize.ts","../../../packages/components/table/src/hooks/use-scroll.ts","../../../packages/components/table/src/hooks/use-sorter.ts","../../../packages/components/table/src/table.tsx","../../../packages/components/table/index.ts","../../../packages/components/tabs/src/props.ts","../../../packages/components/tabs/src/context.ts","../../../packages/components/tabs/src/tab-navs.tsx","../../../packages/components/tabs/src/tabs.tsx","../../../packages/components/tabs/index.ts","../../../packages/components/tabs/src/tab-pane.vue","../../../packages/components/tab-pane/index.ts","../../../packages/components/popconfirm/src/popup.vue","../../../packages/components/popconfirm/src/props.ts","../../../packages/components/popconfirm/src/popconfirm.tsx","../../../packages/components/popconfirm/index.ts","../../../packages/components/loading/src/loading.tsx","../../../packages/components/loading/src/directive.ts","../../../packages/components/loading/src/open.ts","../../../packages/components/loading/index.ts","../../../packages/components/progress/src/line.vue","../../../packages/components/progress/src/circle.vue","../../../packages/components/progress/src/props.ts","../../../packages/components/progress/src/progress.tsx","../../../packages/components/progress/index.ts","../../../packages/components/tag/src/props.ts","../../../packages/components/tag/src/tag.vue","../../../packages/components/tag/index.ts","../../../packages/components/badge/src/props.ts","../../../packages/components/badge/src/badge.vue","../../../packages/components/badge/index.ts","../../../packages/components/cascader/src/context.ts","../../../packages/components/cascader/src/utils.ts","../../../packages/components/cascader/src/option.tsx","../../../packages/components/cascader/src/base-panel.tsx","../../../packages/components/cascader/src/props.ts","../../../packages/components/cascader/src/use-selected-path.ts","../../../packages/components/cascader/src/query-panel.vue","../../../packages/components/cascader/src/cascader.vue","../../../packages/components/cascader/index.ts","../../../packages/components/descriptions/src/context.ts","../../../packages/components/descriptions/src/descriptions-item.tsx","../../../packages/components/descriptions/src/descriptions.tsx","../../../packages/components/descriptions/index.tsx","../../../packages/components/descriptions-item/index.ts","../../../packages/components/popup/src/popup.vue","../../../packages/components/popup/index.ts","../../../packages/components/dropdown/src/context.ts","../../../packages/components/dropdown/src/dropdown.tsx","../../../packages/components/dropdown/index.ts","../../../packages/components/dropdown/src/dropdown-item.vue","../../../packages/components/dropdown-item/index.ts","../../../packages/components/common/date-trigger.vue","../../../packages/components/date-picker/src/props.ts","../../../packages/components/date-picker/src/utils.ts","../../../packages/components/date-picker/src/hooks/use-date-rows.ts","../../../packages/components/date-picker/src/panels/layout/body.vue","../../../packages/components/date-picker/src/panels/layout/header.vue","../../../packages/components/date-picker/src/panels/layout/week.vue","../../../packages/components/date-picker/src/panels/date-panel.vue","../../../packages/components/date-picker/src/panels/date-range-panel.vue","../../../packages/components/date-picker/src/hooks/use-month-rows.ts","../../../packages/components/date-picker/src/panels/month-panel.vue","../../../packages/components/date-picker/src/panels/month-range-panel.vue","../../../packages/components/date-picker/src/panels/week-panel.vue","../../../packages/components/date-picker/src/date-picker.tsx","../../../packages/components/date-picker/index.ts","../../../packages/components/tree/src/props.ts","../../../packages/components/tree/src/context.ts","../../../packages/components/common/render-slot-function.tsx","../../../packages/utils/tree-traverse.ts","../../../packages/components/tree/src/utils.ts","../../../packages/components/tree/src/layout/node.vue","../../../packages/components/tree/src/hooks/use-render-flatten-nodes.ts","../../../packages/components/tree/src/hooks/use-selected.ts","../../../packages/components/tree/src/hooks/use-checked.ts","../../../packages/components/tree/src/tree.tsx","../../../packages/components/tree/index.ts","../../../packages/components/tree-select/src/props.ts","../../../packages/components/tree-select/src/tree-select.vue","../../../packages/components/tree-select/index.ts","../../../packages/components/timeline/src/props.ts","../../../packages/components/timeline/src/context.ts","../../../packages/components/timeline/src/timeline.tsx","../../../packages/components/timeline/index.ts","../../../packages/hooks/use-index.ts","../../../packages/components/timeline/src/timeline-item.vue","../../../packages/components/timeline-item/index.ts","../../../packages/components/steps/src/props.ts","../../../packages/components/steps/src/context.ts","../../../packages/components/steps/src/steps.tsx","../../../packages/components/steps/index.ts","../../../packages/components/steps/src/step.vue","../../../packages/components/step/index.ts","../../../packages/components/message/src/types.ts","../../../packages/components/message/src/message.vue","../../../packages/components/message/src/message.ts","../../../packages/components/message/index.ts","../../../packages/components/message-box/src/types.ts","../../../packages/components/message-box/src/message-box.tsx","../../../packages/components/message-box/index.ts","../../../packages/components/notification/src/props.ts","../../../packages/components/notification/src/notification.vue","../../../packages/components/notification/src/notification.ts","../../../packages/components/notification/index.ts","../../../packages/installer.ts"],"sourcesContent":["import type { ComponentPublicInstance, VNodeNormalizedChildren, VNode } from 'vue'\n\nconst opt = Object.prototype.toString\n\nexport function isArray(obj: any): obj is any[] {\n  return opt.call(obj) === '[object Array]'\n}\n\nexport function isNull(obj: any): obj is null {\n  return opt.call(obj) === '[object Null]'\n}\n\nexport function isBoolean(obj: unknown): obj is boolean {\n  return opt.call(obj) === '[object Boolean]'\n}\n\nexport function isObject(obj: any): obj is Record<string, unknown> {\n  return opt.call(obj) === '[object Object]'\n}\n\nexport const isPromise = <T>(obj: unknown): obj is Promise<T> => {\n  return opt.call(obj) === '[object Promise]'\n}\n\nexport function isString(obj: any): obj is string {\n  return opt.call(obj) === '[object String]'\n}\n\nexport function isNumber(obj: any): obj is number {\n  return opt.call(obj) === '[object Number]' && obj === obj\n}\n\nexport function isRegExp(obj: any) {\n  return opt.call(obj) === '[object RegExp]'\n}\n\nexport function isDate(obj: any) {\n  return opt.call(obj) === '[object Date]'\n}\n\nfunction isHex(color: any) {\n  return /^#[a-fA-F0-9]{3}$|#[a-fA-F0-9]{6}$/.test(color)\n}\n\nfunction isRgb(color: any) {\n  return /^rgb\\((\\s*\\d+\\s*,?){3}\\)$/.test(color)\n}\n\nfunction isRgba(color: any) {\n  return /^rgba\\((\\s*\\d+\\s*,\\s*){3}\\s*\\d(\\.\\d+)?\\s*\\)$/.test(color)\n}\n\nexport function isColor(color: any): boolean {\n  return isHex(color) || isRgb(color) || isRgba(color)\n}\n\nexport function isUndefined(obj: any): obj is undefined {\n  return obj === undefined\n}\n\nexport function isFunction(obj: any): obj is (...args: any[]) => any {\n  return typeof obj === 'function'\n}\n\nexport function isEmptyObject(obj: any): boolean {\n  return isObject(obj) && Object.keys(obj).length === 0\n}\n\nexport function isExist(obj: any): boolean {\n  return obj || obj === 0\n}\n\nexport function isWindow(el: any): el is Window {\n  return el === window\n}\n\nexport const isComponentInstance = (value: any): value is ComponentPublicInstance => {\n  return value?.$ !== undefined\n}\n\nexport const isArrayChildren = (children: VNodeNormalizedChildren): children is VNode[] => {\n  return isArray(children)\n}\n\nexport const isElement = (element: any) => {\n  return element && element.nodeType === 1\n}\n\nexport const isSameArray = (a: any[], b: any[]) => {\n  if (a.length !== b.length) return false\n  for (let i = 0; i < a.length; i++) {\n    if (a[i] !== b[i]) return false\n  }\n  return true\n}\n","import { cloneVNode } from 'vue'\nimport type { VNodeTypes, VNode, PropType, Component, Slots, App } from 'vue'\nimport type { SFCWithInstall, Data, SFCInstallWithContext } from './types'\nimport { isArray, isFunction } from './is'\n\nexport enum ShapeFlags {\n  ELEMENT = 1,\n  FUNCTIONAL_COMPONENT = 1 << 1,\n  STATEFUL_COMPONENT = 1 << 2,\n  COMPONENT = ShapeFlags.STATEFUL_COMPONENT | ShapeFlags.FUNCTIONAL_COMPONENT,\n  TEXT_CHILDREN = 1 << 3,\n  ARRAY_CHILDREN = 1 << 4,\n  SLOTS_CHILDREN = 1 << 5,\n  TELEPORT = 1 << 6,\n  SUSPENSE = 1 << 7,\n  COMPONENT_SHOULD_KEEP_ALIVE = 1 << 8,\n  COMPONENT_KEPT_ALIVE = 1 << 9\n}\n\nexport const isElement = (vn: VNode) => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.ELEMENT)\n}\n\nexport const isComponent = (vn: VNode, type?: VNodeTypes): type is Component => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.COMPONENT)\n}\n\nexport const isNamedComponent = (child: VNode, name: string) => {\n  return isComponent(child, child.type) && child.type.name === name\n}\n\nexport const isTextChildren = (child: VNode, children: VNode['children']): children is string => {\n  return Boolean(child && child.shapeFlag & 8)\n}\n\nexport const isArrayChildren = (vn: VNode, children: VNode['children']): children is VNode[] => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.ARRAY_CHILDREN)\n}\n\nexport const isSlotsChildren = (vn: VNode, children: VNode['children']): children is Slots => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.SLOTS_CHILDREN)\n}\n\nexport const getFirstComponent = (children: VNode[] | undefined): VNode | undefined => {\n  if (!children) {\n    return undefined\n  }\n\n  for (const child of children) {\n    if (isElement(child) || isComponent(child)) {\n      return child\n    }\n    if (isArrayChildren(child, child.children)) {\n      const result = getFirstComponent(child.children)\n      if (result) return result\n    } else if (isSlotsChildren(child, child.children)) {\n      const children = child.children.default?.()\n      if (children) {\n        const result = getFirstComponent(children)\n        if (result) return result\n      }\n    } else if (isArray(child)) {\n      const result = getFirstComponent(child)\n      if (result) return result\n    }\n  }\n\n  return undefined\n}\n\nexport const getAllElements = (children: VNode[] | undefined, includeText = false) => {\n  const results: VNode[] = []\n  for (const item of children ?? []) {\n    if (\n      isElement(item) ||\n      isComponent(item) ||\n      (includeText && isTextChildren(item, item.children))\n    ) {\n      results.push(item)\n    } else if (isArrayChildren(item, item.children)) {\n      results.push(...getAllElements(item.children, includeText))\n    } else if (isSlotsChildren(item, item.children)) {\n      results.push(...getAllElements(item.children.default?.(), includeText))\n    } else if (isArray(item)) {\n      results.push(...getAllElements(item, includeText))\n    }\n  }\n  return results\n}\n\nexport const getChildrenArray = (vn: VNode): VNode[] | undefined => {\n  if (isArrayChildren(vn, vn.children)) {\n    return vn.children\n  }\n  if (isArray(vn)) {\n    return vn\n  }\n  return undefined\n}\n\nexport const getFirstElementFromVNode = (vn: VNode): HTMLElement | undefined => {\n  if (isElement(vn)) {\n    return vn.el as HTMLElement\n  }\n  if (isComponent(vn)) {\n    if ((vn.el as Node)?.nodeType === 1) {\n      return vn.el as HTMLElement\n    }\n    if (vn.component?.subTree) {\n      const ele = getFirstElementFromVNode(vn.component.subTree)\n      if (ele) return ele\n    }\n  } else {\n    const children = getChildrenArray(vn)\n    return getFirstElementFromChildren(children)\n  }\n  return undefined\n}\n\nexport const getFirstElementFromChildren = (\n  children: VNode[] | undefined\n): HTMLElement | undefined => {\n  if (children && children.length > 0) {\n    for (const child of children) {\n      const element = getFirstElementFromVNode(child)\n      if (element) return element\n    }\n  }\n  return undefined\n}\n\nexport const mergeFirstChild = (\n  children: VNode[] | undefined,\n  extraProps: Data | ((vn: VNode) => Data)\n): boolean => {\n  if (children && children.length > 0) {\n    for (let i = 0; i < children.length; i++) {\n      const child = children[i]\n      if (isElement(child) || isComponent(child)) {\n        const props = isFunction(extraProps) ? extraProps(child) : extraProps\n        children[i] = cloneVNode(child, props, true)\n        return true\n      }\n      const _children = getChildrenArray(child)\n      if (_children && _children.length > 0) {\n        const result = mergeFirstChild(_children, extraProps)\n        if (result) return true\n      }\n    }\n  }\n  return false\n}\n\nexport const getFirstElement = (vn: VNode | VNode[]): HTMLElement | null => {\n  if (isArray(vn)) {\n    for (const child of vn) {\n      const result = getFirstElement(child)\n      if (result) return result\n    }\n  } else if (isElement(vn)) {\n    return vn.el as HTMLElement\n  } else if (isComponent(vn)) {\n    if ((vn.el as Node).nodeType === 1) {\n      return vn.el as HTMLElement\n    }\n    if (vn.component) {\n      const result = getFirstElement(vn.component.subTree)\n      if (result) return result\n    }\n  } else if (isArrayChildren(vn, vn.children)) {\n    for (const child of vn.children) {\n      const result = getFirstElement(child)\n      if (result) return result\n    }\n  }\n  return null\n}\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E) => {\n  ;(main as SFCWithInstall<T>).install = (app): void => {\n    for (const comp of [main, ...Object.values(extra ?? {})]) {\n      app.component(comp.name, comp)\n    }\n  }\n\n  if (extra) {\n    for (const [key, comp] of Object.entries(extra)) {\n      ;(main as any)[key] = comp\n    }\n  }\n  return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n  ;(fn as SFCWithInstall<T>).install = (app: App) => {\n    ;(fn as SFCInstallWithContext<T>)._context = app._context\n    app.config.globalProperties[name] = fn\n  }\n\n  return fn as SFCInstallWithContext<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n  ;(component as SFCWithInstall<T>).install = () => {}\n\n  return component as SFCWithInstall<T>\n}\n\nexport const definePropType = <T>(val: any): PropType<T> => val\n\nexport const getComponentsFromVNode = (vn: VNode, name: string) => {\n  const components: number[] = []\n\n  if (isComponent(vn, vn.type)) {\n    if (vn.type.name === name) {\n      if (vn.component) {\n        components.push(vn.component.uid)\n      }\n    } else if (vn.component?.subTree) {\n      components.push(...getComponentsFromVNode(vn.component.subTree, name))\n    }\n  } else {\n    const children = getChildrenArray(vn)\n    if (children) {\n      components.push(...getComponentsFromChildren(children, name))\n    }\n  }\n\n  return components\n}\n\nexport const getComponentsFromChildren = (children: VNode[] | undefined, name: string) => {\n  const components: number[] = []\n\n  if (children && children.length > 0) {\n    for (const child of children) {\n      components.push(...getComponentsFromVNode(child, name))\n    }\n  }\n\n  return components\n}\n","const COMPONENT_PREFIX = 'Bn'\nconst NAMESPACE_PREFIX = 'bn'\n\nexport const COMPONENT_INSTALLED_KEY = Symbol('COMPONENT_INSTALLED_KEY')\n\nexport const getNamespace = (name?: string): string => {\n  return name ? NAMESPACE_PREFIX + '-' + name : name || ''\n}\n\nexport const getComponentNamespace = (name: string): string => {\n  return COMPONENT_PREFIX + name\n}\n","// @eslint-disabled\nexport const getProp = (target: any, path: any, defVal?: any) => {\n  let result\n  try {\n    path = path.replace(/\\[(\\w+)\\]/g, '.$1')\n    result = path\n      .split('.')\n      .filter((f: string) => f !== '')\n      .reduce((a: any, v: string) => {\n        return a[v]\n      }, target)\n    if (result === undefined) {\n      result = defVal\n    }\n  } catch (e) {\n    result = defVal\n  }\n  return result\n}\n\nexport const setProp = (target: any, path: any, value: any) => {\n  if (!path) return path\n  path = path.replace(/\\[(\\w+)\\]/g, `.$1`)\n  const paths = path.split('.')\n  paths.reduce((a: any, v: any, i: number) => {\n    if (!a[v]) {\n      a[v] = {}\n    }\n    if (i === paths.length - 1) {\n      a[v] = value\n    }\n    return a[v]\n  }, target)\n  return target\n}\n\nexport const deepClone = (obj: any, set?: any) => {\n  if (!obj) return obj\n  if (typeof obj !== 'object' || obj === null) return obj\n  set = set || new Set()\n  if (set.has(obj)) {\n    return obj\n  }\n  set.add(obj)\n  const Ctor = obj.constructor\n  const newObj = new Ctor()\n  for (const key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      newObj[key] = obj[key] instanceof Object ? deepClone(obj[key], set) : obj[key]\n    }\n  }\n  return newObj\n}\n\nexport const NOOP = () => {}\n\nconst unitArr = ['px', '%', 'vh', 'vw', 'calc']\n\nexport const addUnit = (value: string | number | undefined, unit = 'px'): string => {\n  if (value === void 0) return ''\n  const str = String(value)\n  if (unitArr.some((u) => str.includes(u))) {\n    return str\n  }\n  return str + unit\n}\n\nexport const upperFirstChar = (text: string) => {\n  text = text.trim()\n  if (!text) return\n  return text.slice(0, 1).toUpperCase() + text.slice(1)\n}\n\nexport const compose = <T>(...fns: ((...v: T[]) => T)[]) => {\n  return fns.reduce(\n    (a, v) =>\n      (...args: any[]) =>\n        a(v(...args))\n  )\n}\n\nexport const pipe = <T>(...fns: ((...v: T[]) => T)[]) => {\n  return fns.reduceRight(\n    (a, v) =>\n      (...args: any[]) =>\n        a(v(...args))\n  )\n}\n\nexport const findLastIndex = (\n  arr = [],\n  callback: (item: any, i: number, origin: any[]) => boolean\n) => {\n  let lastIndex = -1\n  for (let i = arr.length - 1; i >= 0; i--) {\n    if (callback(arr[i], i, arr)) {\n      lastIndex = i\n      break\n    }\n  }\n  return lastIndex\n}\n\nconst getRandom = (start = 0, end = 1) => {\n  return Math.floor(Math.random() * (end - start)) + start\n}\n\nexport const getUniqueId = (size = 6) => {\n  const code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n  let ret = ''\n  for (let i = 1; i <= size; i++) {\n    ret += code[getRandom(0, 25)]\n  }\n  return ret\n}\n\nexport const genMatrix = (list: any[], row: number) => {\n  if (!row) return list\n  let offset = 0\n  const rows: any[][] = []\n  while (offset < list.length - 1) {\n    rows.push(list.slice(offset, (offset = offset + row)))\n  }\n  return rows\n}\n\nexport const sleep = (delay = 0) => new Promise((resolve) => setTimeout(resolve, delay))\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconArrowDown',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconArrowLeft',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconArrowRight',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconArrowUp',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconCalendar',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64H128zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0v32zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconCaretFill',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      viewBox=\"0 0 48 48\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      stroke=\"currentColor\"\n      stroke-width=\"4\"\n      stroke-linecap=\"butt\"\n      stroke-linejoin=\"miter\"\n    >\n      <path\n        d=\"M24.938 34.829a1.2 1.2 0 0 1-1.875 0L9.56 17.949c-.628-.785-.069-1.949.937-1.949h27.007c1.006 0 1.565 1.164.937 1.95L24.937 34.829Z\"\n        fill=\"currentColor\"\n        stroke=\"none\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconCaret',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconCheckFill',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 60 60\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n      <circle fill=\"currentColor\" cx=\"30\" cy=\"30\" r=\"30\"></circle>\n      <path\n        d=\"M17.6470588,30.4585821 L19.3914264,28.8222085 L27.4170184,35.4674424 C27.4170184,35.4674424 33.3805761,30.0895888 44.296687,21.1764706 L45,22.8905447 C45,22.8905447 35.9008019,31.4608541 27.3730535,40.5882353 L17.6470588,30.4585821 Z\"\n        fill=\"#FFFFFF\"\n        fill-rule=\"nonzero\"\n        transform=\"translate(31.323529, 30.882353) rotate(-5.000000) translate(-31.323529, -30.882353) \"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconCheck',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconClock',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z\"\n      ></path>\n      <path\n        fill=\"currentColor\"\n        d=\"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z\"\n      ></path>\n      <path fill=\"currentColor\" d=\"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32z\"></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconCloseFill',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n      <g transform=\"translate(-340.000000, -3150.000000)\">\n        <g transform=\"translate(340.000000, 3150.000000)\">\n          <path\n            d=\"M8,0 C12.418278,-8.11624501e-16 16,3.581722 16,8 C16,12.418278 12.418278,16 8,16 C3.581722,16 5.41083001e-16,12.418278 0,8 C-5.41083001e-16,3.581722 3.581722,8.11624501e-16 8,0 Z M11.6781485,3.64644661 L8.032,7.293 L4.38525533,3.64644661 L3.67814855,4.35355339 L7.325,8 L3.67814855,11.6464466 L4.38525533,12.3535534 L8.032,8.707 L11.6781485,12.3535534 L12.3852553,11.6464466 L8.739,8 L12.3852553,4.35355339 L11.6781485,3.64644661 Z\"\n            fill=\"currentColor\"\n          ></path>\n          <g transform=\"translate(3.678149, 3.646447)\"></g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconClose',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconDelete',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconDocument',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconEmpty',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      viewBox=\"0 0 48 48\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      stroke=\"currentColor\"\n      stroke-width=\"4\"\n      stroke-linecap=\"butt\"\n      stroke-linejoin=\"miter\"\n    >\n      <path\n        fill=\"none\"\n        d=\"M24 5v6m7 1 4-4m-18 4-4-4m28.5 22H28s-1 3-4 3-4-3-4-3H6.5M40 41H8a2 2 0 0 1-2-2v-8.46a2 2 0 0 1 .272-1.007l6.15-10.54A2 2 0 0 1 14.148 18H33.85a2 2 0 0 1 1.728.992l6.149 10.541A2 2 0 0 1 42 30.541V39a2 2 0 0 1-2 2Z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconFolderOpen',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M878.08 448H241.92l-96 384h636.16l96-384zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384H832zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconFolder',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconHide',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        d=\"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z\"\n        fill=\"currentColor\"\n      ></path>\n      <path\n        d=\"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z\"\n        fill=\"currentColor\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconLoading',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: true\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\n      <path\n        fill=\"currentColor\"\n        d=\"M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3c22.2 52.4 53.9 99.5 94.3 139.9c40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6c52.4-22.2 99.5-53.9 139.9-94.3c40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9a437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7c26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7c-63.1 26.8-130.2 40.3-199.3 40.3z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconMinus',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path fill=\"currentColor\" d=\"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64z\"></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconMoreFill',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconPlus',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" version=\"1.1\">\n      <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g transform=\"translate(-156.000000, -1120.000000)\" fill=\"currentColor\">\n          <g transform=\"translate(60.000000, 1104.000000)\">\n            <g transform=\"translate(96.000000, 16.000000)\">\n              <rect x=\"3\" y=\"8\" width=\"11\" height=\"1\"></rect>\n              <rect x=\"8\" y=\"3\" width=\"1\" height=\"11\"></rect>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconPrompt',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        d=\"M9,0 C4.02991071,0 0,4.02991071 0,9 C0,13.9700893 4.02991071,18 9,18 C13.9700893,18 18,13.9700893 18,9 C18,4.02991071 13.9700893,0 9,0 Z M10.6875,6.89263393 L8.93973214,12.9475446 C8.84330357,13.2930804 8.79508929,13.5220982 8.79508929,13.6285714 C8.79508929,13.6908482 8.82120536,13.7491071 8.87142857,13.8033482 C8.92165179,13.8575893 8.97589286,13.8837054 9.03415179,13.8837054 C9.13058036,13.8837054 9.22700893,13.8415179 9.3234375,13.7551339 C9.57857143,13.5441964 9.8859375,13.1645089 10.2435268,12.6140625 L10.5328125,12.7848214 C9.675,14.2794643 8.76495536,15.0267857 7.79866071,15.0267857 C7.42901786,15.0267857 7.13571429,14.9223214 6.91674107,14.7154018 C6.69776786,14.5084821 6.58928571,14.2453125 6.58928571,13.9279018 C6.58928571,13.7169643 6.6375,13.4517857 6.73392857,13.1263393 L7.9171875,9.05424107 C8.03169643,8.6625 8.08794643,8.3671875 8.08794643,8.16830357 C8.08794643,8.04375 8.03370536,7.93325893 7.92522321,7.83683036 C7.81674107,7.74040179 7.67008929,7.6921875 7.48325893,7.6921875 C7.39888393,7.6921875 7.29642857,7.69419643 7.17589286,7.70022321 L7.28638393,7.35870536 L10.1732143,6.890625 L10.6875,6.890625 L10.6875,6.89263393 Z M11.0450893,5.11071429 C10.8,5.35580357 10.5046875,5.47633929 10.1591518,5.47633929 C9.81763393,5.47633929 9.52633929,5.35379464 9.28125,5.11071429 C9.03616071,4.865625 8.915625,4.5703125 8.915625,4.22477679 C8.915625,3.87924107 9.03616071,3.58392857 9.27723214,3.33883929 C9.51830357,3.09575893 9.81160714,2.97321429 10.1591518,2.97321429 C10.5107143,2.97321429 10.8080357,3.09575893 11.0491071,3.33883929 C11.2901786,3.58392857 11.4107143,3.87924107 11.4107143,4.22477679 C11.4107143,4.5703125 11.2881696,4.865625 11.0450893,5.11071429 L11.0450893,5.11071429 Z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconSearch',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 20 20\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        d=\"M9,2 C12.8659932,2 16,5.13400675 16,9 C16,12.8659932 12.8659932,16 9,16 C5.13400675,16 2,12.8659932 2,9 C2,5.13400675 5.13400675,2 9,2 Z M9,3.6 C6.01766235,3.6 3.6,6.01766235 3.6,9 C3.6,11.9823376 6.01766235,14.4 9,14.4 C11.9823376,14.4 14.4,11.9823376 14.4,9 C14.4,6.01766235 11.9823376,3.6 9,3.6 Z\"\n      ></path>\n      <polygon\n        points=\"14.141134 12.4343146 18.5544172 16.8475978 17.4230464 17.9789687 13.0097632 13.5656854\"\n      ></polygon>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconSetting',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconSuperArrowLeft',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconSuperArrowRight',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        fill=\"currentColor\"\n        d=\"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688zm-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconView',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconWarningFill',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 60 60\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n      <circle fill=\"currentColor\" cx=\"30\" cy=\"30\" r=\"30\"></circle>\n      <polygon fill=\"#FFFFFF\" points=\"28 16 32 16 31.2 36 28.8 36\"></polygon>\n      <circle fill=\"#FFFFFF\" cx=\"30\" cy=\"42\" r=\"2\"></circle>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconWarning',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" data-v-ea893728=\"\">\n      <path\n        fill=\"currentColor\"\n        d=\"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z\"\n      ></path>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppBi',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-1267.000000, -203.000000)\">\n          <g id=\"一级-BI分析中心\" transform=\"translate(1245.000000, 189.000000)\">\n            <g id=\"BI分析中心\" transform=\"translate(22.000000, 14.000000)\">\n              <path\n                id=\"形状结合\"\n                d=\"M18.444301,3.1 C19.8560372,3.1 21,4.24447927 21,5.65670913 L21,14.9198552 C21,16.3305698 19.8555323,17.4755542 18.444301,17.4755542 L5.55670913,17.4755542 C4.14548954,17.4755542 3,16.3305813 3,14.9198552 L3,5.65670913 C3,4.24446777 4.14498423,3.1 5.55670913,3.1 Z M18.444301,5.12031539 L5.55670913,5.12031539 C5.26056962,5.12031539 5.02031539,5.36046125 5.02031539,5.65670913 L5.02031539,14.9198552 C5.02031539,15.2145879 5.26107493,15.4552388 5.55670913,15.4552388 L7.415,15.455 L7.41590437,10.7960884 L9.43621977,10.7960884 L9.436,15.455 L10.99,15.455 L10.9904484,8.22624726 L13.0107638,8.22624726 L13.01,15.455 L14.564,15.455 L14.5649924,12.3517313 L16.5853078,12.3517313 L16.585,15.455 L18.444301,15.4552388 C18.710015,15.4552388 18.9311045,15.2606328 18.9726653,15.0065624 L18.9796846,14.9198552 L18.9796846,5.65670913 C18.9796846,5.36006457 18.7400436,5.12031539 18.444301,5.12031539 Z M17.7722431,18.8743195 L17.7722431,20.8946349 L6.22917111,20.8946349 L6.22917111,18.8743195 L17.7722431,18.8743195 Z\"\n                fill=\"#272636\"\n                fill-rule=\"nonzero\"\n              ></path>\n              <g id=\"编组\" transform=\"translate(3.000000, 3.100000)\"></g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppBuilding',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-859.000000, -203.000000)\" fill=\"#242934\">\n          <g id=\"一级-生产中心\" transform=\"translate(837.000000, 189.000000)\">\n            <g id=\"生产中心\" transform=\"translate(22.000000, 14.000000)\">\n              <path\n                id=\"形状结合\"\n                d=\"M3,20.8995854 L21,20.8995854 L21,18.9356991 L3,18.9356991 L3,20.8995854 Z M16.3628716,17.4776117 L14.3734548,17.4776117 L12.3398505,5.06388631 L7.72668158,5.06388631 L5.86688124,17.4776117 L3.88237412,17.4776117 L6.03479352,3.1 L14.0081719,3.1 L14.763,7.712 L18.5187278,7.71257978 L20.1183132,17.4780045 L18.1288964,17.4780045 L16.8504064,9.6764661 L15.085,9.676 L16.3628716,17.4776117 Z M12.0751187,14.5159729 L12.0751187,16.4798593 L7.86061862,16.4798593 L7.86061862,14.5159729 L12.0751187,14.5159729 Z M11.7461677,11.3511701 L11.7461677,13.3150565 L8.18956958,13.3150565 L8.18956958,11.3511701 L11.7461677,11.3511701 Z M11.2993836,8.1873493 L11.2993836,10.1512356 L8.63733566,10.1512356 L8.63733566,8.1873493 L11.2993836,8.1873493 Z\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppCleat',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"图标1\"\n          transform=\"translate(-1133.000000, -203.000000)\"\n          fill=\"#272636\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"一级-羊只管理系统\" transform=\"translate(1111.000000, 189.000000)\">\n            <g id=\"羊只管理系统\" transform=\"translate(22.000000, 14.000000)\">\n              <path\n                id=\"形状结合\"\n                d=\"M17.242824,4.85 C19.4559946,4.85 21.25,6.64400543 21.25,8.85717595 C21.25,11.0011849 19.566368,12.7518172 17.4490388,12.859138 L17.242824,12.8643519 L17.242824,10.8087963 C18.3207426,10.8087963 19.1944444,9.93509449 19.1944444,8.85717595 C19.1944444,7.77925741 18.3207426,6.90555556 17.242824,6.90555556 C16.216235,6.90555556 15.3748764,7.6980289 15.2970749,8.70464911 L15.2912037,8.85717595 L15.2912037,13.7452224 C15.2912037,16.6303904 13.9985889,19.1045868 12,19.1045868 C10.0601932,19.1045868 8.78544322,16.7737911 8.71213596,13.9986771 L8.70879635,13.7452224 L8.70879635,8.85717595 C8.70879635,7.77925741 7.83509449,6.90555556 6.75717595,6.90555556 C5.67925741,6.90555556 4.80555556,7.77925741 4.80555556,8.85717595 C4.80555556,9.88376503 5.5980289,10.7251236 6.60464911,10.8029251 L6.75717595,10.8087963 L6.75717595,12.8643519 C4.54400543,12.8643519 2.75,11.0703465 2.75,8.85717595 C2.75,6.64400543 4.54400543,4.85 6.75717595,4.85 C8.9011849,4.85 10.6518172,6.53363205 10.759138,8.65096119 L10.7643519,8.85717595 L10.7643519,13.7452224 C10.7643519,15.6444339 11.4981673,17.0490312 12,17.0490312 C12.4817594,17.0490312 13.177314,15.7545543 13.2321876,13.9706954 L13.2356481,13.7452224 L13.2356481,8.85717595 C13.2356481,6.64400543 15.0296535,4.85 17.242824,4.85 Z\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppCustomer',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>客户管理</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"图标1\"\n          transform=\"translate(-460.000000, -203.000000)\"\n          stroke=\"#242934\"\n          stroke-width=\"2\"\n        >\n          <g id=\"一级-客户管理\" transform=\"translate(438.000000, 189.000000)\">\n            <g id=\"客户管理\" transform=\"translate(22.000000, 14.000000)\">\n              <circle id=\"椭圆形\" cx=\"10.5\" cy=\"8.5\" r=\"3.5\"></circle>\n              <path\n                id=\"路径\"\n                d=\"M4,21 L4,18 C4,16.3431458 5.34314575,15 7,15 L14,15 C15.6568542,15 17,16.3431458 17,18 L17,21\"\n              ></path>\n              <path\n                id=\"路径\"\n                d=\"M15.5,12 C17.4329966,12 19,10.4329966 19,8.5 C19,6.56700338 17.4329966,5 15.5,5\"\n              ></path>\n              <path\n                id=\"路径\"\n                d=\"M18.0069596,15 C18.7847374,15 19.1157509,15 19,15 C20.6568542,15 22,16.3431458 22,18 L22,21\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppHome',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>首页</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-194.000000, -203.000000)\">\n          <g id=\"一级-首页\" transform=\"translate(172.000000, 189.000000)\">\n            <g id=\"首页\" transform=\"translate(22.000000, 14.000000)\">\n              <path\n                id=\"矩形\"\n                d=\"M13.1469247,3.80284728 L20.1469247,8.70284728 C20.681578,9.07710463 21,9.68868353 21,10.3413111 L21,19 C21,20.1045695 20.1045695,21 19,21 L5,21 C3.8954305,21 3,20.1045695 3,19 L3,10.3413111 C3,9.68868353 3.31842196,9.07710463 3.85307531,8.70284728 L10.8530753,3.80284728 C11.5417156,3.32079907 12.4582844,3.32079907 13.1469247,3.80284728 Z M19,10.3413111 L12,5.44131112 L5,10.3413111 L5,19 L19,19 L19,10.3413111 Z\"\n                fill=\"#242934\"\n                fill-rule=\"nonzero\"\n              ></path>\n              <rect id=\"矩形\" fill=\"#212325\" x=\"11\" y=\"15\" width=\"2\" height=\"3\"></rect>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppMarket',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>服务市场</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-1388.000000, -203.000000)\">\n          <g id=\"编组-21\" transform=\"translate(1388.000000, 203.000000)\">\n            <path\n              id=\"矩形\"\n              d=\"M18.1080271,4 C18.3733939,4 18.6156491,4.10365335 18.7952425,4.27354628 C18.9748359,4.4434392 19.0917675,4.6795717 19.1064874,4.94452998 L19.8842652,18.94453 C19.8995828,19.2202472 19.8016938,19.476071 19.6310462,19.6667949 C19.465143,19.8522161 19.2304706,19.976107 18.9641963,19.9969279 L5.11419515,20 C4.83805278,20 4.58805278,19.8880712 4.40708837,19.7071068 C4.23115566,19.5311741 4.12047286,19.2899914 4.11445383,19.0229728 L4.89351258,4.94452998 C4.90823248,4.6795717 5.02516414,4.4434392 5.20475754,4.27354628 C5.38435094,4.10365335 5.62660608,4 5.89197293,4 Z\"\n              stroke=\"#242934\"\n              stroke-width=\"2\"\n            ></path>\n            <path\n              id=\"形状结合\"\n              d=\"M12,10 C13.1045695,10 14,9.1045695 14,8 L16,8 C16,10.209139 14.209139,12 12,12 C9.790861,12 8,10.209139 8,8 L10,8 C10,9.1045695 10.8954305,10 12,10 Z\"\n              fill=\"#242934\"\n            ></path>\n            <g id=\"消息icon\" transform=\"translate(8.000000, 7.000000)\"></g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppMoney',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>财务中心</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"图标1\"\n          transform=\"translate(-992.000000, -203.000000)\"\n          fill=\"#242934\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"一级-财务中心\" transform=\"translate(970.000000, 189.000000)\">\n            <g id=\"财务中心\" transform=\"translate(22.000000, 14.000000)\">\n              <g id=\"编组\" transform=\"translate(2.000000, 2.000000)\">\n                <path\n                  id=\"形状结合\"\n                  d=\"M12.1905124,4.6 L13.5609966,5.97048411 L11.289,8.241 L13.5474229,8.24161016 L13.5474229,10.1797674 L10.969,10.179 L10.969,11.384 L13.5474229,11.3840414 L13.5474229,13.3221986 L10.969,13.322 L10.9692862,15.4 L9.03112895,15.4 L9.031,13.322 L6.45279841,13.3221986 L6.45279841,11.3840414 L9.031,11.384 L9.031,10.179 L6.45279841,10.1797674 L6.45279841,8.24161016 L8.711,8.241 L6.44,5.97048411 L7.81048411,4.6 L10.0002076,6.7899304 L12.1905124,4.6 Z\"\n                ></path>\n                <path\n                  id=\"Stroke-5\"\n                  d=\"M10,0 C4.47738705,0 0,4.47704343 0,10 C0,15.5222847 4.47771525,20 10,20 C15.5229566,20 20,15.522613 20,10 C20,4.47671525 15.5232847,0 10,0 Z M10,2 C14.4187153,2 18,5.58128475 18,10 C18,14.4180778 14.4183527,18 10,18 C5.58228475,18 2,14.4177153 2,10 C2,5.58164729 5.58192219,2 10,2 Z\"\n                ></path>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOa',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>协同办公</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-327.000000, -203.000000)\" fill=\"#242934\">\n          <g id=\"一级-协同办公\" transform=\"translate(305.000000, 189.000000)\">\n            <g id=\"协同办公\" transform=\"translate(22.000000, 14.000000)\">\n              <g id=\"编组-7\" transform=\"translate(3.000000, 3.000000)\">\n                <path\n                  id=\"矩形\"\n                  d=\"M16,4 C17.1045695,4 18,4.8954305 18,6 L18,16 C18,17.1045695 17.1045695,18 16,18 L2,18 C0.8954305,18 0,17.1045695 0,16 L0,6 C0,4.8954305 0.8954305,4 2,4 L16,4 Z M16,6 L2,6 L2,16 L16,16 L16,6 Z\"\n                  fill-rule=\"nonzero\"\n                ></path>\n                <path\n                  id=\"矩形\"\n                  d=\"M9,0 C12.2383969,0 14.8775718,2.56557489 14.9958615,5.77506174 L15,6 L3,6 C3,2.6862915 5.6862915,0 9,0 Z M9,2 C7.60475432,2 6.37635637,2.71436007 5.66060341,3.79728294 L5.535,4 L12.464,4 L12.3707485,3.84495359 C11.6927317,2.78715834 10.53039,2.07078389 9.20067321,2.00495638 L9,2 Z\"\n                  fill-rule=\"nonzero\"\n                ></path>\n                <rect id=\"矩形\" x=\"8\" y=\"7\" width=\"2\" height=\"4\"></rect>\n                <polygon\n                  id=\"矩形\"\n                  points=\"1.67379174 8 16.2885112 8 16.2885112 10 1.67379174 10\"\n                ></polygon>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppPie',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>营销中心</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-593.000000, -203.000000)\" fill=\"#242934\">\n          <g id=\"一级-营销中心\" transform=\"translate(571.000000, 189.000000)\">\n            <g id=\"营销中心\" transform=\"translate(22.000000, 14.000000)\">\n              <g id=\"编组-3\" transform=\"translate(3.000000, 3.000000)\">\n                <path\n                  id=\"路径\"\n                  d=\"M9,0 C13.9705627,0 18,4.02943725 18,9 C18,13.9705627 13.9705627,18 9,18 C4.02943725,18 0,13.9705627 0,9 C0,4.02943725 4.02943725,0 9,0 Z M9,2 C5.13400675,2 2,5.13400675 2,9 C2,12.8659932 5.13400675,16 9,16 C12.8659932,16 16,12.8659932 16,9 C16,5.13400675 12.8659932,2 9,2 Z\"\n                  fill-rule=\"nonzero\"\n                ></path>\n                <rect id=\"矩形\" x=\"8\" y=\"8\" width=\"9\" height=\"2\"></rect>\n                <polygon\n                  id=\"矩形\"\n                  transform=\"translate(9.000000, 4.584926) scale(-1, 1) translate(-9.000000, -4.584926) \"\n                  points=\"8 0.169851496 10 0.169851496 10 9 8 9\"\n                ></polygon>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppSem',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>销售中心</title>\n      <g id=\"图标\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"图标1\" transform=\"translate(-726.000000, -203.000000)\" fill=\"#242934\">\n          <g id=\"一级-销售中心\" transform=\"translate(704.000000, 189.000000)\">\n            <g id=\"销售中心\" transform=\"translate(22.000000, 14.000000)\">\n              <path\n                id=\"形状结合\"\n                d=\"M14,5 L14,7 L5,7 L5,19 L18,19 L18,11 L20,11 L20,19 C20,20.1045695 19.1045695,21 18,21 L5,21 C3.8954305,21 3,20.1045695 3,19 L3,7 C3,5.8954305 3.8954305,5 5,5 L14,5 Z\"\n              ></path>\n              <rect id=\"矩形\" x=\"8\" y=\"12\" width=\"2\" height=\"4\"></rect>\n              <rect id=\"矩形\" x=\"12\" y=\"10\" width=\"2\" height=\"6\"></rect>\n              <rect id=\"矩形\" x=\"18\" y=\"3\" width=\"2\" height=\"6\"></rect>\n              <rect id=\"矩形\" x=\"16\" y=\"5\" width=\"6\" height=\"2\"></rect>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppAddress',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -412.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 412.000000)\">\n            <path\n              id=\"椭圆形\"\n              d=\"M11.5,7 C13.4329966,7 15,8.56700338 15,10.5 C15,12.4329966 13.4329966,14 11.5,14 C9.56700338,14 8,12.4329966 8,10.5 C8,8.56700338 9.56700338,7 11.5,7 Z M11.5,8.6 C10.450659,8.6 9.6,9.45065898 9.6,10.5 C9.6,11.549341 10.450659,12.4 11.5,12.4 C12.549341,12.4 13.4,11.549341 13.4,10.5 C13.4,9.45065898 12.549341,8.6 11.5,8.6 Z\"\n            ></path>\n            <path\n              id=\"椭圆形\"\n              d=\"M11.5,3 C15.6421356,3 19,6.28663695 19,10.3409091 C19,12.5808143 17.2830565,15.8624569 13.8491696,20.1858371 C13.7070026,20.3648301 13.5448443,20.5269885 13.3658513,20.6691554 C12.1183419,21.660002 10.3256051,21.4980477 9.27345432,20.3307314 L9.15083334,20.1858372 L8.8522972,19.8070673 C5.6174324,15.670321 4,12.5149349 4,10.3409091 C4,6.28663695 7.35786438,3 11.5,3 Z M11.5,4.6 C8.23393295,4.6 5.6,7.17806164 5.6,10.3409091 C5.6,11.9500511 6.90882548,14.6009116 9.57575292,18.1239251 L10.1089043,18.8166438 L10.4037239,19.1907165 C10.8846144,19.7961738 11.7652733,19.8971553 12.3707306,19.4162648 C12.4542606,19.3499203 12.5299345,19.2742465 12.596279,19.1907165 C13.1650872,18.4745676 13.6827365,17.7907244 14.1495691,17.1403553 L14.5994755,16.5011875 C16.475778,13.7801871 17.4,11.6950695 17.4,10.3409091 C17.4,7.17806164 14.7660671,4.6 11.5,4.6 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppArrowUp',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"25px\"\n      height=\"24px\"\n      viewBox=\"0 0 25 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>下拉</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"条件查询-已设置过行业信息\"\n          transform=\"translate(-1146.000000, -701.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-8\" transform=\"translate(431.000000, 172.000000)\">\n            <g id=\"下拉\" transform=\"translate(716.000000, 529.000000)\">\n              <polygon\n                id=\"路径-12\"\n                transform=\"translate(12.000000, 12.676777) scale(1, -1) translate(-12.000000, -12.676777) \"\n                points=\"16.6464466 9.64644661 17.3535534 10.3535534 12 15.7071068 6.64644661 10.3535534 7.35355339 9.64644661 12 14.293\"\n              ></polygon>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppCallUp',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"44px\"\n      height=\"44px\"\n      viewBox=\"0 0 44 44\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>电话</title>\n      <g id=\"CRM\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"线索管理-拨打电话\"\n          transform=\"translate(-1340.000000, -758.000000)\"\n          fill=\"#FFFFFF\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-21\" transform=\"translate(1316.000000, 737.000000)\">\n            <g id=\"电话\" transform=\"translate(24.000000, 21.000000)\">\n              <path\n                id=\"形状\"\n                d=\"M35.8447882,32.0216868 C36.6488441,32.8276514 36.6488441,34.1323549 35.8447882,34.9383195 L34.386343,36.3967648 C33.3086868,37.4744211 31.8912337,38.1308116 30.1731712,38.3481476 C29.7471123,38.4013936 29.3181219,38.4277427 28.8887494,38.427052 C27.6383588,38.427052 26.289226,38.2158898 24.8612026,37.7959132 C20.9849918,36.6566398 16.9082028,34.0872805 13.3851951,30.5632415 C9.86218738,27.0392025 7.29179681,22.9637027 6.15252341,19.087234 C5.58533591,17.1559606 5.39867969,15.3688045 5.60028905,13.7762966 C5.81762498,12.0582342 6.47401557,10.6407811 7.55167181,9.56312491 L9.01011711,8.10467961 C9.81608174,7.30062378 11.1207852,7.30062378 11.9267498,8.10467961 L18.3439606,14.5216326 C19.1480461,15.3276856 19.1480461,16.6324701 18.3439606,17.4385231 L16.8855153,18.8959371 C16.0605153,19.7209371 16.8816481,22.3923902 19.2189762,24.7294604 C21.5563042,27.0665307 24.2264683,27.8889525 25.0524995,27.0629213 L26.5109447,25.604476 C27.3169978,24.8003905 28.6217823,24.8003905 29.4278353,25.604476 L35.8447882,32.0216868 Z M25.2355463,17.0628903 C26.1464039,17.0638849 26.8845517,17.8020328 26.8855463,18.7128903 C26.8855463,19.1685252 27.2549114,19.5378903 27.7105463,19.5378903 C28.1661812,19.5378903 28.5355463,19.1685252 28.5355463,18.7128903 C28.533557,16.8911753 27.0572614,15.4148796 25.2355463,15.4128903 C24.7799114,15.4128903 24.4105464,15.7822554 24.4105464,16.2378903 C24.4105464,16.6935252 24.7799114,17.0628903 25.2355463,17.0628903 L25.2355463,17.0628903 Z M37.3978507,13.5746873 C35.334639,8.68546637 30.5422692,5.50883885 25.2355463,5.51288674 C24.7799114,5.51288674 24.4105464,5.88225569 24.4105464,6.3378906 C24.4105464,6.79352551 24.7799114,7.16289058 25.2355463,7.16289058 C31.6035149,7.16289058 36.785546,12.3449217 36.785546,18.7128903 C36.785546,19.1685252 37.1549111,19.5378903 37.610546,19.5378903 C38.0661809,19.5378903 38.43557,19.1685252 38.43557,18.7128903 C38.4389222,16.9477785 38.0859758,15.2001457 37.3978507,13.5746873 L37.3978507,13.5746873 Z M25.2355463,12.1128904 C28.8748275,12.1128904 31.8355462,15.0736091 31.8355462,18.7128903 C31.8355462,19.1685252 32.2049113,19.5378903 32.6605462,19.5378903 C33.1161811,19.5378903 33.4855461,19.1685252 33.4855461,18.7128903 C33.4855461,16.5248543 32.6163522,14.4264346 31.0691772,12.8792595 C29.5220021,11.3320844 27.4235823,10.4628905 25.2355463,10.4628905 C24.7799114,10.4628905 24.4105464,10.8322556 24.4105464,11.2878905 C24.4105464,11.7435254 24.7799114,12.1128904 25.2355463,12.1128904 L25.2355463,12.1128904 Z\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppCall',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 12</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"企业详情-联系方式-解锁\"\n          transform=\"translate(-274.000000, -746.000000)\"\n          fill-rule=\"nonzero\"\n          stroke=\"#242934\"\n        >\n          <g id=\"编组-20\" transform=\"translate(242.000000, 565.000000)\">\n            <g id=\"编组-5\" transform=\"translate(0.000000, 160.000000)\">\n              <g id=\"编组-12\" transform=\"translate(32.000000, 21.000000)\">\n                <path\n                  id=\"路径\"\n                  d=\"M4.34376846,1.5112107 C4.62477068,1.48304266 4.83681673,1.529413 4.99756913,1.59763392 C6.09775768,2.90971367 6.8822862,4.51892394 6.9368557,5.11428714 C6.79344978,5.80888179 6.4842566,6.05263495 6.20712364,6.24668024 C6.00566431,6.53249387 6.2352548,6.86679005 7.37848767,8.03789306 L7.37848767,8.03789306 L7.96244518,8.63498473 C9.09954664,9.75815622 9.44606017,9.97323419 9.53842796,9.98924806 C9.94379549,9.51192992 10.2044168,9.21756118 10.6395242,9.10755669 C11.5022233,9.16834358 13.0935774,9.9739722 14.0151548,10.6123022 C14.152676,10.6990732 14.3546318,10.871457 14.450836,11.2022788 C14.5026825,11.3805657 14.5259122,11.6164343 14.45808,11.9322569 C14.3440401,12.4445544 13.9681916,13.1197505 13.4535255,13.6417826 C12.9950647,14.106805 12.4340433,14.4380337 11.8785215,14.4906279 C10.1887178,14.5647512 7.88145128,13.3196007 5.64175758,11.0560164 L5.64175758,11.0560164 L4.86103033,10.2720973 C2.61239881,8.00289593 1.40724675,5.69840336 1.50617292,4.11943531 C1.54563554,3.52386967 1.91660275,2.92330508 2.44520161,2.4488781 C3.03229512,1.92195113 3.79098274,1.56561805 4.34376846,1.5112107 Z\"\n                ></path>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppCopy',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -586.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 586.000000)\">\n            <path\n              id=\"矩形\"\n              d=\"M19,7 C20.1045695,7 21,7.8954305 21,9 L21,19 C21,20.1045695 20.1045695,21 19,21 L9,21 C7.8954305,21 7,20.1045695 7,19 L7,9 C7,7.8954305 7.8954305,7 9,7 L19,7 Z M19,8.6 L9,8.6 C8.80670034,8.6 8.64542508,8.7371128 8.60812658,8.91938605 L8.6,9 L8.6,19 C8.6,19.1932997 8.7371128,19.3545749 8.91938605,19.3918734 L9,19.4 L19,19.4 C19.1932997,19.4 19.3545749,19.2628872 19.3918734,19.080614 L19.4,19 L19.4,9 C19.4,8.80670034 19.2628872,8.64542508 19.080614,8.60812658 L19,8.6 Z\"\n            ></path>\n            <polygon id=\"路径-3\" points=\"15.896472 11.7 15.896472 13.3 12 13.3 12 11.7\"></polygon>\n            <polygon id=\"路径-3\" points=\"15.896472 14.7 15.896472 16.3 12 16.3 12 14.7\"></polygon>\n            <path\n              id=\"形状结合\"\n              d=\"M4,16 L4,6 C4,4.8954305 4.8954305,4 6,4 L16,4 C17.1045695,4 18,4.8954305 18,6 L16.4,6 C16.4,5.80670034 16.2628872,5.64542508 16.080614,5.60812658 L16,5.6 L6,5.6 C5.80670034,5.6 5.64542508,5.7371128 5.60812658,5.91938605 L5.6,6 L5.6,16 C5.6,16.1932997 5.7371128,16.3545749 5.91938605,16.3918734 L6,16.4 L6,18 C4.8954305,18 4,17.1045695 4,16 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppDownload',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"17px\"\n      height=\"16px\"\n      viewBox=\"0 0 17 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 3</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"空号检测\" transform=\"translate(-1849.000000, -120.000000)\" stroke=\"#FFFFFF\">\n          <g id=\"编组-3\" transform=\"translate(1754.000000, 104.000000)\">\n            <g transform=\"translate(96.000000, 16.000000)\">\n              <path\n                id=\"路径\"\n                d=\"M14,9 L14,11 C14,12.1045695 13.1045695,13 12,13 L4,13 C2.8954305,13 2,12.1045695 2,11 L2,9\"\n              ></path>\n              <line id=\"路径-6\" x1=\"8\" y1=\"1.5\" x2=\"8\" y2=\"9.5\"></line>\n              <polyline\n                id=\"路径-12\"\n                points=\"3.9881208 6 7.9999998 10.011879 12.0118788 6\"\n              ></polyline>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppDrag',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 3备份</title>\n      <g\n        id=\"图标\"\n        stroke=\"none\"\n        stroke-width=\"1\"\n        fill=\"none\"\n        fill-rule=\"evenodd\"\n        opacity=\"0.600000024\"\n      >\n        <g id=\"图标1\" transform=\"translate(-231.000000, -5573.000000)\" fill=\"#9CA6B9\">\n          <g id=\"编组-3备份\" transform=\"translate(231.000000, 5573.000000)\">\n            <rect id=\"矩形\" x=\"2\" y=\"4\" width=\"12\" height=\"1\"></rect>\n            <rect id=\"矩形\" x=\"2\" y=\"7\" width=\"12\" height=\"1\"></rect>\n            <rect id=\"矩形\" x=\"2\" y=\"10\" width=\"12\" height=\"1\"></rect>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppEdit',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"25px\"\n      height=\"24px\"\n      viewBox=\"0 0 25 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 14</title>\n      <defs>\n        <filter id=\"filter-1\">\n          <feColorMatrix\n            in=\"SourceGraphic\"\n            type=\"matrix\"\n            values=\"0 0 0 0 0.612817 0 0 0 0 0.649587 0 0 0 0 0.725459 0 0 0 1.000000 0\"\n          ></feColorMatrix>\n        </filter>\n      </defs>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"编组-14\" transform=\"translate(-762.000000, -297.000000)\" filter=\"url(#filter-1)\">\n          <g transform=\"translate(763.000000, 297.000000)\">\n            <g\n              id=\"编组-18\"\n              transform=\"translate(11.544639, 11.161329) rotate(40.000000) translate(-11.544639, -11.161329) translate(8.544639, 4.161329)\"\n              stroke=\"#646B7A\"\n            >\n              <path\n                id=\"矩形\"\n                d=\"M5.5,0.5 L5.5,11.1481159 L3,13.3356159 L0.5,11.1481159 L0.5,0.5 L5.5,0.5 Z\"\n              ></path>\n              <rect id=\"矩形\" x=\"0.5\" y=\"0.5\" width=\"5\" height=\"3\"></rect>\n            </g>\n            <rect id=\"矩形\" fill=\"#0056FF\" x=\"6\" y=\"18\" width=\"10\" height=\"1\"></rect>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppEnterprise',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"菜单图标\" transform=\"translate(-200.000000, -280.000000)\" fill=\"#9CA6B9\">\n          <g id=\"编组-16\" transform=\"translate(200.000000, 280.000000)\">\n            <path\n              id=\"矩形\"\n              d=\"M14.8795868,5.17191386 C14.9592489,5.39098444 15,5.62229495 15,5.85539998 L15,20 C15,20.5522847 14.5522847,21 14,21 L5,21 C4.44771525,21 4,20.5522847 4,20 L4,8.40085453 C4,7.55984165 4.5261355,6.808678 5.31651387,6.52126768 L12.3165139,3.97581314 C13.354581,3.59833417 14.5021079,4.13384671 14.8795868,5.17191386 Z M13.3759174,5.71870276 C13.3098586,5.53704101 13.1258861,5.43233293 12.9418404,5.45957066 L12.8633028,5.47948261 L5.86330277,8.02493716 C5.73157305,8.07283888 5.63654372,8.18515078 5.60852643,8.31859694 L5.6,8.40085453 L5.6,19.4 L13.4,19.4 L13.4,5.85539998 C13.4,5.83208948 13.3979624,5.8088687 13.3939333,5.78599879 L13.3759174,5.71870276 Z\"\n              fill-rule=\"nonzero\"\n            ></path>\n            <path\n              id=\"路径-10\"\n              d=\"M14.495944,7.29275252 L19.3716356,9.87037886 C20.0749876,10.2422192 20.5325603,10.9486655 20.590444,11.7342562 L20.5966739,11.9037154 L20.5966739,19.704503 C20.5966739,20.3776 20.0851242,20.9312183 19.4295913,20.9977912 L19.2966739,21.004503 L13.1183129,21.004503 L13.1183129,19.404503 L18.996,19.404 L18.9966739,11.9037154 C18.9966739,11.6813445 18.8912572,11.474605 18.7167054,11.3437177 L18.6238361,11.2848738 L13.7481446,8.70724748 L14.495944,7.29275252 Z\"\n              fill-rule=\"nonzero\"\n            ></path>\n            <rect id=\"矩形\" x=\"8\" y=\"11\" width=\"3\" height=\"1.6\"></rect>\n            <rect id=\"矩形\" x=\"8\" y=\"15\" width=\"3\" height=\"1.6\"></rect>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppExclamationPoint',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -674.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 674.000000)\">\n            <path\n              id=\"椭圆形\"\n              d=\"M12.5,4 C17.1944204,4 21,7.80557963 21,12.5 C21,17.1944204 17.1944204,21 12.5,21 C7.80557963,21 4,17.1944204 4,12.5 C4,7.80557963 7.80557963,4 12.5,4 Z M12.5,5.6 C8.68923523,5.6 5.6,8.68923523 5.6,12.5 C5.6,16.3107648 8.68923523,19.4 12.5,19.4 C16.3107648,19.4 19.4,16.3107648 19.4,12.5 C19.4,8.68923523 16.3107648,5.6 12.5,5.6 Z\"\n            ></path>\n            <polygon\n              id=\"路径-8\"\n              points=\"13.3 11.2250897 13.3 16.4361333 11.7 16.4361333 11.7 11.2250897\"\n            ></polygon>\n            <polygon\n              id=\"路径-8\"\n              points=\"13.3 8.22508968 13.3 10.2250897 11.7 10.2250897 11.7 8.22508968\"\n            ></polygon>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppFax',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 12</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"企业详情-联系方式-解锁\"\n          transform=\"translate(-274.000000, -1146.000000)\"\n          stroke=\"#242934\"\n        >\n          <g id=\"编组-20\" transform=\"translate(242.000000, 565.000000)\">\n            <g id=\"编组-5\" transform=\"translate(0.000000, 560.000000)\">\n              <g id=\"编组-12\" transform=\"translate(32.000000, 21.000000)\">\n                <path\n                  id=\"矩形\"\n                  d=\"M5,2 L11,2 C11.5522847,2 12,2.44771525 12,3 L12,5 L12,5 L4,5 L4,3 C4,2.44771525 4.44771525,2 5,2 Z\"\n                ></path>\n                <path\n                  id=\"路径\"\n                  d=\"M4,11 L3,11 C2.44771525,11 2,10.5522847 2,10 L2,6 C2,5.44771525 2.44771525,5 3,5 L13,5 C13.5522847,5 14,5.44771525 14,6 L14,10 C14,10.5522847 13.5522847,11 13,11 L12,11\"\n                ></path>\n                <rect id=\"矩形\" x=\"4\" y=\"8\" width=\"8\" height=\"6\" rx=\"1\"></rect>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppIphone',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 12</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"企业详情-联系方式-解锁\" transform=\"translate(-274.000000, -666.000000)\">\n          <g id=\"编组-20\" transform=\"translate(242.000000, 565.000000)\">\n            <g id=\"编组-5\" transform=\"translate(0.000000, 80.000000)\">\n              <g id=\"编组-12\" transform=\"translate(32.000000, 21.000000)\">\n                <rect\n                  id=\"矩形\"\n                  stroke=\"#242934\"\n                  x=\"3.5\"\n                  y=\"1.5\"\n                  width=\"9\"\n                  height=\"13\"\n                  rx=\"2\"\n                ></rect>\n                <circle id=\"椭圆形\" fill=\"#242934\" cx=\"8\" cy=\"12\" r=\"1\"></circle>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppLetter',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 12</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"企业详情-联系方式-解锁\"\n          transform=\"translate(-274.000000, -906.000000)\"\n          stroke=\"#242934\"\n        >\n          <g id=\"编组-20\" transform=\"translate(242.000000, 565.000000)\">\n            <g id=\"编组-5\" transform=\"translate(0.000000, 320.000000)\">\n              <g id=\"编组-12\" transform=\"translate(32.000000, 21.000000)\">\n                <rect id=\"矩形\" x=\"2.5\" y=\"2.5\" width=\"11\" height=\"10\" rx=\"2\"></rect>\n                <path\n                  id=\"路径-13\"\n                  d=\"M4.34040827,5.31301533 L7.3486393,7.89541426 C7.72331949,8.21705636 8.27668006,8.21705636 8.65136025,7.89541426 L11.6595913,5.31301533 L11.6595913,5.31301533\"\n                  stroke-linecap=\"round\"\n                ></path>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppLove2',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"27px\"\n      height=\"26px\"\n      viewBox=\"0 0 27 26\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 22</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"条件查询-查看企业信息-弹窗\"\n          transform=\"translate(-1819.000000, -21.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"头部\" transform=\"translate(720.000000, 0.000000)\">\n            <g id=\"编组-22\" transform=\"translate(1100.000000, 21.000000)\">\n              <path\n                id=\"路径\"\n                d=\"M16.940707,5 C15.391106,5 13.95439,5.79263804 13,7.09631902 C12.0558723,5.79263804 10.608894,5 9.05929304,5 C6.26795895,5 4,7.52392638 4,10.6214724 C4,12.4674847 4.81071836,13.7711656 5.46750285,14.8141104 C7.36602052,17.8490798 12.1482326,21.6141104 12.3534778,21.7705521 C12.5484607,21.9269939 12.7742303,22 13,22 C13.2257697,22 13.4515393,21.9269939 13.6465222,21.7705521 C13.8517674,21.6141104 18.6237172,17.8386503 20.5324971,14.8141104 C21.1892816,13.7711656 22,12.4674847 22,10.6214724 C22,7.52392638 19.732041,5 16.940707,5 Z\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppLove',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -630.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 630.000000)\">\n            <path\n              id=\"路径\"\n              d=\"M15.5423645,4.20631117 C14.4193819,4.26505161 13.3601267,4.73153417 12.5199947,5.50941257 L12.501,5.527 L12.4866227,5.51242253 C11.5890125,4.67814667 10.4309311,4.2 9.21607754,4.2 C6.43150296,4.2 4.2,6.65148393 4.2,9.62944785 C4.2,11.0739249 4.5956587,12.0172407 5.54825697,13.5121285 C6.23608648,14.5987626 7.35417717,15.8264023 8.75516223,17.1265505 L9.2735322,17.5993743 L9.84146642,18.1000461 L10.383264,18.5630765 L11.0149184,19.0846799 L11.2725374,19.290082 L11.4799028,19.4500443 C11.7644024,19.6759373 12.1264647,19.8 12.5,19.8 C12.8735353,19.8 13.2355976,19.6759373 13.5358046,19.4379043 L13.7317409,19.2864551 L14.1253965,18.9692236 L14.6100882,18.5655479 L15.1535678,18.0997561 L15.7235872,17.5961762 L15.9139176,17.4241237 C17.4661347,16.0120145 18.7060734,14.6797727 19.4513231,13.5127868 C20.4043413,12.0172407 20.8,11.0739249 20.8,9.62944785 C20.8,6.65148393 18.568497,4.2 15.7839225,4.2 L15.5423645,4.20631117 Z M15.7839225,5.8 C17.6495237,5.8 19.2,7.5033218 19.2,9.62944785 C19.2,10.6883423 18.9035913,11.3950296 18.1024189,12.6522887 C17.4516123,13.6713856 16.2931284,14.916109 14.8372226,16.2406002 L14.2877363,16.7315229 L13.5842961,17.337544 L12.9826523,17.8364826 L12.6431209,18.1065474 L12.5574398,18.1720416 C12.5266184,18.1961655 12.5154279,18.2 12.5,18.2 C12.4845721,18.2 12.4733816,18.1961655 12.4582675,18.1841816 L12.1162589,17.9170286 L11.4903936,17.4034088 L11.1278087,17.0963313 L10.5507937,16.5943758 L10.1590247,16.243325 C8.70252218,14.9207429 7.54573914,13.676237 6.89887779,12.6543304 C6.09640868,11.3950296 5.8,10.6883423 5.8,9.62944785 C5.8,7.5033218 7.35047626,5.8 9.21607754,5.8 C10.2339051,5.8 11.2073121,6.31581466 11.854719,7.1992571 L12.4965186,8.07504794 L13.1428311,7.20258219 C13.8013445,6.31364625 14.7688131,5.8 15.7839225,5.8 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppMinus',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"23px\"\n      height=\"22px\"\n      viewBox=\"0 0 23 22\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>删除条件 2</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"条件查询-已设置过行业信息\"\n          transform=\"translate(-1134.000000, -1068.000000)\"\n          stroke=\"#0056FF\"\n        >\n          <g id=\"编组-2\" transform=\"translate(471.000000, 945.000000)\">\n            <g id=\"删除条件-2\" transform=\"translate(664.000000, 123.000000)\">\n              <g id=\"编组-8\" transform=\"translate(1.000000, 1.000000)\">\n                <circle id=\"椭圆形\" cx=\"10\" cy=\"10\" r=\"9.5\"></circle>\n                <line\n                  id=\"路径-8\"\n                  x1=\"10.000351\"\n                  y1=\"6\"\n                  x2=\"10.000351\"\n                  y2=\"14\"\n                  transform=\"translate(10.000351, 10.000000) rotate(-90.000000) translate(-10.000351, -10.000000) \"\n                ></line>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppNewPage',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"27px\"\n      height=\"26px\"\n      viewBox=\"0 0 27 26\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 22</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"条件查询-查看企业信息-弹窗\"\n          transform=\"translate(-1773.000000, -21.000000)\"\n          fill=\"#9CA6B9\"\n        >\n          <g id=\"头部\" transform=\"translate(720.000000, 0.000000)\">\n            <g id=\"编组-22\" transform=\"translate(1054.000000, 21.000000)\">\n              <path\n                id=\"形状结合\"\n                d=\"M21,5 C21.5522847,5 22,5.44771525 22,6 L22,17 C22,17.5522847 21.5522847,18 21,18 L15,18 L15,13 C15,12.4871642 14.6139598,12.0644928 14.1166211,12.0067277 L14,12 L6,12 L6,6 C6,5.44771525 6.44771525,5 7,5 L21,5 Z\"\n              ></path>\n              <rect id=\"矩形\" x=\"3\" y=\"13\" width=\"11\" height=\"9\" rx=\"1\"></rect>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOaBirthday',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>生日</title>\n      <g id=\"组件库\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"icon\"\n          transform=\"translate(-329.000000, -205.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"生日\" transform=\"translate(329.000000, 205.000000)\">\n            <path\n              id=\"形状\"\n              d=\"M7.500034,13.9373437 C8.34745878,13.9373437 9.09313276,13.5399949 9.54502805,12.935296 C10.0874724,13.5400131 10.9831209,13.9373437 12,13.9373437 C13.0168791,13.9373437 13.9118817,13.5399949 14.454394,12.935296 C14.9068673,13.5400131 15.6531022,13.9373437 16.500034,13.9373437 C17.8799762,13.9373437 18.999983,12.8880094 18.999983,11.5933578 C18.999983,10.4400402 18.109332,9.48665702 16.9394016,9.29134601 C16.7962604,9.26463852 16.6500085,9.24931751 16.500017,9.24931751 L12.999983,9.24931753 L12.999983,7.1666408 L11,7.1666408 L11,9.25000651 L7.500034,9.25000651 C7.34997451,9.25000651 7.20312766,9.26465664 7.06064933,9.29203501 C5.8899881,9.48665702 5,10.4400402 5,11.5939924 C5,12.8880094 6.11874894,13.9373437 7.500034,13.9373437 L7.500034,13.9373437 Z M12,6.64601695 C12.5518953,6.64601695 13.0006289,6.17931575 13.0006289,5.60398958 C13.0006289,5.02866342 12,3 12,3 C12,3 11,5.02864527 11,5.60398958 C11,6.17931575 11.4481047,6.64601695 12,6.64601695 L12,6.64601695 Z M14.4331633,13.8886791 C13.8887642,14.5466299 13.0050144,14.9793892 12,14.9793892 C10.9949856,14.9793892 10.1112358,14.547337 9.56692163,13.8886791 C9.07876934,14.5419883 8.22624512,14.9793892 7.24943057,14.9793892 C6.31750809,14.9793892 5.49755227,14.5820404 5.00001701,13.9780123 L5.00001701,16.3960104 C5.00001701,17.8340085 6.11874894,19 7.50005101,19 L16.500051,19 C17.8799932,19 19,17.8340085 19,16.3960104 L19,13.9766343 C18.5025327,14.5813514 17.681863,14.979371 16.7493796,14.979371 C15.7731089,14.979371 14.9206017,14.5419701 14.4331633,13.8886791 L14.4331633,13.8886791 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOaCircle',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>圆</title>\n      <g id=\"组件库\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"icon\" transform=\"translate(-329.000000, -67.000000)\" fill=\"#9CA6B9\">\n          <g id=\"圆\" transform=\"translate(329.000000, 67.000000)\">\n            <path\n              id=\"形状结合\"\n              d=\"M12,6 C15.3137085,6 18,8.6862915 18,12 C18,15.3137085 15.3137085,18 12,18 C8.6862915,18 6,15.3137085 6,12 C6,8.6862915 8.6862915,6 12,6 Z M12,7 C9.23857625,7 7,9.23857625 7,12 C7,14.7614237 9.23857625,17 12,17 C14.7614237,17 17,14.7614237 17,12 C17,9.23857625 14.7614237,7 12,7 Z\"\n            ></path>\n            <rect id=\"矩形\" x=\"9\" y=\"9\" width=\"6\" height=\"6\" rx=\"3\"></rect>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOaLocation',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>定位</title>\n      <g id=\"组件库\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"icon\" transform=\"translate(-329.000000, -113.000000)\" fill=\"#9CA6B9\">\n          <g id=\"定位\" transform=\"translate(329.000000, 113.000000)\">\n            <path\n              id=\"形状结合\"\n              d=\"M12,5 C15.3137085,5 18,7.6862915 18,11 C18,13.0760695 16.2336869,15.850593 12.7010608,19.3235706 C12.3119614,19.7061001 11.6880455,19.7061001 11.2989461,19.3235707 L11.2989461,19.3235707 L10.9826605,19.0097728 C7.66088685,15.6830832 6,13.013159 6,11 C6,7.6862915 8.6862915,5 12,5 Z M12,8 C10.8954305,8 10,8.8954305 10,10 C10,11.1045695 10.8954305,12 12,12 C13.1045695,12 14,11.1045695 14,10 C14,8.8954305 13.1045695,8 12,8 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOaSend',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>发送</title>\n      <g id=\"组件库\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"icon\"\n          transform=\"translate(-329.000000, -251.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"发送\" transform=\"translate(329.000000, 251.000000)\">\n            <g id=\"编组-3\" transform=\"translate(5.000000, 6.000000)\">\n              <path\n                id=\"形状\"\n                d=\"M4.83676073,7.29403748 L9.27330729,3.47870639 L3.40780597,6.16962965 L0.182663486,3.63181725 C0.0379868013,3.5180476 -0.0288442478,3.32781504 0.011678672,3.14511413 C0.0522015918,2.96241322 0.192617824,2.82088095 0.370928507,2.78300896 L13.4416343,0.00978861395 C13.5972179,-0.0230962203 13.7583446,0.0280590885 13.8688987,0.145438624 C13.9794528,0.26281816 14.02413,0.430172698 13.9873705,0.589217487 L11.4260365,11.6323379 C11.3895871,11.789951 11.2781231,11.9178717 11.1298499,11.9722537 C10.9815768,12.0266357 10.8166389,12.000017 10.6915704,11.9017172 L4.83676073,7.29403748 L4.83676073,7.29403748 Z M3.61884875,11.1074547 L4.25802011,8.02801265 L6.76357188,10.0189322 L4.32170483,11.6112851 C4.16358615,11.7143831 3.96081717,11.7098123 3.80723519,11.599688 C3.65365321,11.4895637 3.57922085,11.2953702 3.61838389,11.1069762 L3.61884875,11.1074547 Z\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOaTelephone',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>电话</title>\n      <g id=\"组件库\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"icon\" transform=\"translate(-329.000000, -159.000000)\" fill=\"#9CA6B9\">\n          <g id=\"电话\" transform=\"translate(329.000000, 159.000000)\">\n            <path\n              id=\"路径\"\n              d=\"M18.7270085,16.1002777 C19.0909972,16.4651396 19.0909972,17.0557816 18.7270085,17.4206435 L18.0667839,18.0808847 C17.5789389,18.568742 16.9372711,18.8658914 16.1595202,18.9642798 C15.9666473,18.9883844 15.7724473,19.0003127 15.5780743,19 C15.0120341,19 14.4012943,18.9044064 13.7548413,18.7142822 C12.0001167,18.1985307 10.1545922,17.0353763 8.55975929,15.4400365 C6.96492642,13.8446966 5.80133447,11.9997093 5.28559598,10.2448238 C5.02883547,9.37053227 4.94433793,8.5614829 5.03560462,7.84055127 C5.13399057,7.06278078 5.4311325,6.4210968 5.91897747,5.93323957 L6.57920211,5.27299832 C6.94405482,4.90900056 7.53468196,4.90900056 7.89953467,5.27299832 L10.8045464,8.17796642 C11.1685484,8.54286831 11.1685484,9.133547 10.8045464,9.49844889 L10.1443217,10.1582233 C9.77085192,10.5317025 10.1425711,11.7410749 11.2006578,12.7990715 C12.2587445,13.8570682 13.467503,14.2293803 13.8414396,13.8554342 L14.5016643,13.1951929 C14.866557,12.8311817 15.4572208,12.8311817 15.8221135,13.1951929 L18.7270085,16.1002777 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppOverview',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <defs>\n        <filter id=\"filter-1\">\n          <feColorMatrix\n            in=\"SourceGraphic\"\n            type=\"matrix\"\n            values=\"0 0 0 0 0.612817 0 0 0 0 0.649587 0 0 0 0 0.725459 0 0 0 1.000000 0\"\n          ></feColorMatrix>\n        </filter>\n      </defs>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"菜单图标\" transform=\"translate(-200.000000, -150.000000)\">\n          <g id=\"编组-16\" transform=\"translate(200.000000, 150.000000)\" filter=\"url(#filter-1)\">\n            <g>\n              <path\n                id=\"矩形\"\n                d=\"M9,13 C10.1045695,13 11,13.8954305 11,15 L11,18 C11,19.1045695 10.1045695,20 9,20 L6,20 C4.8954305,20 4,19.1045695 4,18 L4,15 C4,13.8954305 4.8954305,13 6,13 L9,13 Z M9,14.6 L6,14.6 C5.80670034,14.6 5.64542508,14.7371128 5.60812658,14.919386 L5.6,15 L5.6,18 C5.6,18.1932997 5.7371128,18.3545749 5.91938605,18.3918734 L6,18.4 L9,18.4 C9.19329966,18.4 9.35457492,18.2628872 9.39187342,18.080614 L9.4,18 L9.4,15 C9.4,14.8067003 9.2628872,14.6454251 9.08061395,14.6081266 L9,14.6 Z\"\n                fill=\"#9CA6B9\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(7.500000, 16.500000) scale(1, -1) translate(-7.500000, -16.500000) \"\n              ></path>\n              <path\n                id=\"矩形\"\n                d=\"M18,13 C19.1045695,13 20,13.8954305 20,15 L20,18 C20,19.1045695 19.1045695,20 18,20 L15,20 C13.8954305,20 13,19.1045695 13,18 L13,15 C13,13.8954305 13.8954305,13 15,13 L18,13 Z M18,14.6 L15,14.6 C14.8067003,14.6 14.6454251,14.7371128 14.6081266,14.919386 L14.6,15 L14.6,18 C14.6,18.1932997 14.7371128,18.3545749 14.919386,18.3918734 L15,18.4 L18,18.4 C18.1932997,18.4 18.3545749,18.2628872 18.3918734,18.080614 L18.4,18 L18.4,15 C18.4,14.8067003 18.2628872,14.6454251 18.080614,14.6081266 L18,14.6 Z\"\n                fill=\"#9CA6B9\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(16.500000, 16.500000) scale(-1, -1) translate(-16.500000, -16.500000) \"\n              ></path>\n              <path\n                id=\"矩形\"\n                d=\"M9,4 C10.1045695,4 11,4.8954305 11,6 L11,9 C11,10.1045695 10.1045695,11 9,11 L6,11 C4.8954305,11 4,10.1045695 4,9 L4,6 C4,4.8954305 4.8954305,4 6,4 L9,4 Z M9,5.6 L6,5.6 C5.80670034,5.6 5.64542508,5.7371128 5.60812658,5.91938605 L5.6,6 L5.6,9 C5.6,9.19329966 5.7371128,9.35457492 5.91938605,9.39187342 L6,9.4 L9,9.4 C9.19329966,9.4 9.35457492,9.2628872 9.39187342,9.08061395 L9.4,9 L9.4,6 C9.4,5.80670034 9.2628872,5.64542508 9.08061395,5.60812658 L9,5.6 Z\"\n                fill=\"#9CA6B9\"\n                fill-rule=\"nonzero\"\n              ></path>\n              <path\n                id=\"矩形\"\n                d=\"M16.5,4 C18.4329966,4 20,5.56700338 20,7.5 C20,9.43299662 18.4329966,11 16.5,11 C14.5670034,11 13,9.43299662 13,7.5 C13,5.56700338 14.5670034,4 16.5,4 Z M16.5,5.6 C15.450659,5.6 14.6,6.45065898 14.6,7.5 C14.6,8.54934102 15.450659,9.4 16.5,9.4 C17.549341,9.4 18.4,8.54934102 18.4,7.5 C18.4,6.45065898 17.549341,5.6 16.5,5.6 Z\"\n                fill=\"#9CA6B9\"\n                fill-rule=\"nonzero\"\n                transform=\"translate(16.500000, 7.500000) scale(-1, 1) translate(-16.500000, -7.500000) \"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppPc2',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <defs>\n        <filter id=\"filter-1\">\n          <feColorMatrix\n            in=\"SourceGraphic\"\n            type=\"matrix\"\n            values=\"0 0 0 0 0.141176 0 0 0 0 0.160784 0 0 0 0 0.203922 0 0 0 1.000000 0\"\n          ></feColorMatrix>\n        </filter>\n      </defs>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"查企业\" transform=\"translate(-1282.000000, -588.000000)\">\n          <g id=\"编组-16\" transform=\"translate(1241.000000, 588.000000)\" filter=\"url(#filter-1)\">\n            <g transform=\"translate(41.000000, 0.000000)\">\n              <rect\n                id=\"矩形\"\n                stroke=\"#9CA6B9\"\n                stroke-width=\"1.6\"\n                x=\"4.8\"\n                y=\"4.8\"\n                width=\"14.4\"\n                height=\"11.4\"\n                rx=\"2\"\n              ></rect>\n              <line\n                id=\"路径-3\"\n                x1=\"14.0657196\"\n                y1=\"7.83174595\"\n                x2=\"16.0657196\"\n                y2=\"7.83174595\"\n                stroke=\"#9CA6B9\"\n                stroke-width=\"1.6\"\n                transform=\"translate(15.065720, 7.831746) rotate(-0.000000) translate(-15.065720, -7.831746) \"\n              ></line>\n              <line\n                id=\"路径-3\"\n                x1=\"4\"\n                y1=\"19.5\"\n                x2=\"20\"\n                y2=\"19.5\"\n                stroke=\"#9CA6B9\"\n                stroke-width=\"1.6\"\n              ></line>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppPc',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -368.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 368.000000)\">\n            <path\n              id=\"矩形\"\n              d=\"M18,4 C19.1045695,4 20,4.8954305 20,6 L20,15 C20,16.1045695 19.1045695,17 18,17 L6,17 C4.8954305,17 4,16.1045695 4,15 L4,6 C4,4.8954305 4.8954305,4 6,4 L18,4 Z M18,5.6 L6,5.6 C5.80670034,5.6 5.64542508,5.7371128 5.60812658,5.91938605 L5.6,6 L5.6,15 C5.6,15.1932997 5.7371128,15.3545749 5.91938605,15.3918734 L6,15.4 L18,15.4 C18.1932997,15.4 18.3545749,15.2628872 18.3918734,15.080614 L18.4,15 L18.4,6 C18.4,5.80670034 18.2628872,5.64542508 18.080614,5.60812658 L18,5.6 Z\"\n            ></path>\n            <polygon\n              id=\"路径-3\"\n              transform=\"translate(15.065720, 7.831746) rotate(-0.000000) translate(-15.065720, -7.831746) \"\n              points=\"16.0657196 7.03174595 16.0657196 8.63174595 14.0657196 8.63174595 14.0657196 7.03174595\"\n            ></polygon>\n            <polygon id=\"路径-3\" points=\"20 18.7 20 20.3 4 20.3 4 18.7\"></polygon>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppPlus',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"17px\"\n      height=\"16px\"\n      viewBox=\"0 0 17 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 3</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"帐号设置\" transform=\"translate(-1861.000000, -120.000000)\" fill=\"#FFFFFF\">\n          <g id=\"编组-3\" transform=\"translate(1766.000000, 104.000000)\">\n            <g id=\"矩形\" transform=\"translate(96.000000, 16.000000)\">\n              <rect x=\"3\" y=\"8\" width=\"11\" height=\"1\"></rect>\n              <rect x=\"8\" y=\"3\" width=\"1\" height=\"11\"></rect>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppQq',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 12</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"企业详情-联系方式-解锁\"\n          transform=\"translate(-274.000000, -1066.000000)\"\n          fill-rule=\"nonzero\"\n          stroke=\"#242934\"\n        >\n          <g id=\"编组-20\" transform=\"translate(242.000000, 565.000000)\">\n            <g id=\"编组-5\" transform=\"translate(0.000000, 480.000000)\">\n              <g id=\"编组-12\" transform=\"translate(32.000000, 21.000000)\">\n                <path\n                  id=\"路径\"\n                  d=\"M7.99743689,1.5 C9.31324236,1.5 10.2847679,2.00606408 10.930042,2.85477539 C11.6868194,3.85014376 12.003919,5.28197898 11.9653037,6.86406606 C12.0974636,7.29955851 12.1866532,7.51706961 12.2704252,7.7213668 C12.6229115,8.58098568 12.8781521,9.20184616 13.1059107,9.92028694 C13.3343207,10.6366579 13.4447442,11.1858803 13.4834554,11.5892387 C13.2257791,11.6227297 12.9638266,10.8219914 12.9638266,10.8219914 L12.9638266,10.8219914 L12.2151834,8.53353336 L12.0957539,11.0293687 C12.0506129,11.9727229 11.6006526,12.8516592 10.8601173,13.4451528 L10.8601173,13.4451528 L10.1243122,14.0348554 L11.0252907,14.3130568 C11.1988178,14.366638 11.4690844,14.4544969 11.7016448,14.5680981 C11.523966,14.678501 11.0456476,14.5445665 11.0456476,14.5445665 C9.86635866,14.5145021 8.58789048,14.4508953 8.05643895,14.3920378 C7.39063695,14.4531753 6.01458908,14.5201306 4.95586005,14.4939268 C4.69842482,14.4035546 4.85845101,14.3490474 4.97463881,14.3139345 L4.97463881,14.3139345 L5.88630202,14.038422 L5.14182251,13.4444631 C4.3994562,12.8521901 3.94791179,11.9731059 3.90227959,11.0291253 L3.90227959,11.0291253 L3.82544668,9.43970397 L2.97972378,10.7868964 C2.97972378,10.7868964 2.79290215,11.0844935 2.5621263,11.4013013 L2.533,11.44 L2.53401393,11.4297879 C2.57673962,11.0996788 2.66268834,10.6860768 2.8113212,10.1798769 L2.8909514,9.9190184 C3.12553997,9.17644559 3.38852392,8.5394717 3.75931373,7.6389795 C3.83338271,7.45909717 3.91169606,7.26890603 3.9948732,7.06557748 C3.98959981,5.29803113 4.30102785,3.85807737 5.06315962,2.85513247 C5.70554488,2.00977077 6.67512476,1.5 7.99743689,1.5 Z\"\n                ></path>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppQuery',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -324.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 324.000000)\">\n            <path\n              id=\"路径\"\n              d=\"M17,4.2 C18.4891233,4.2 19.7067389,5.36246286 19.79489,6.82943181 L19.8,7 L19.8,12 L18.2,12 L18.2,7 C18.2,6.37867966 17.7278003,5.86764746 17.122693,5.80619546 L17,5.8 L7,5.8 C6.37867966,5.8 5.86764746,6.27219968 5.80619546,6.87730697 L5.8,7 L5.8,17 C5.8,17.6213203 6.27219968,18.1323525 6.87730697,18.1938045 L7,18.2 L12,18.2 L12,19.8 L7,19.8 C5.51087667,19.8 4.2932611,18.6375371 4.20511004,17.1705682 L4.2,17 L4.2,7 C4.2,5.51087667 5.36246286,4.2932611 6.82943181,4.20511004 L7,4.2 L17,4.2 Z\"\n            ></path>\n            <path\n              id=\"椭圆形\"\n              d=\"M12,8 C14.209139,8 16,9.790861 16,12 C16,14.209139 14.209139,16 12,16 C9.790861,16 8,14.209139 8,12 C8,9.790861 9.790861,8 12,8 Z M12,9.6 C10.6745166,9.6 9.6,10.6745166 9.6,12 C9.6,13.3254834 10.6745166,14.4 12,14.4 C13.3254834,14.4 14.4,13.3254834 14.4,12 C14.4,10.6745166 13.3254834,9.6 12,9.6 Z\"\n            ></path>\n            <polygon\n              id=\"路径-5\"\n              points=\"14.5665033 13.4220936 19.0665033 17.9351336 17.9334967 19.0648664 13.4334967 14.5518264\"\n            ></polygon>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppQuestion',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"21px\"\n      height=\"20px\"\n      viewBox=\"0 0 21 20\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"行业查询-个人模版-编辑提示弹窗-文字提示\"\n          transform=\"translate(-685.000000, -311.000000)\"\n        >\n          <g id=\"编组-2\" transform=\"translate(610.000000, 234.000000)\">\n            <g id=\"编组-20\" transform=\"translate(76.000000, 77.000000)\">\n              <path\n                id=\"矩形\"\n                d=\"M10,0.5 C12.6233526,0.5 14.9983526,1.56332372 16.7175144,3.28248558 C18.4366763,5.00164744 19.5,7.37664744 19.5,10 C19.5,12.6233526 18.4366763,14.9983526 16.7175144,16.7175144 C14.9983526,18.4366763 12.6233526,19.5 10,19.5 C7.37664744,19.5 5.00164744,18.4366763 3.28248558,16.7175144 C1.56332372,14.9983526 0.5,12.6233526 0.5,10 C0.5,7.37664744 1.56332372,5.00164744 3.28248558,3.28248558 C5.00164744,1.56332372 7.37664744,0.5 10,0.5 Z\"\n                stroke=\"#9CA6B9\"\n              ></path>\n              <path\n                id=\"?\"\n                d=\"M10.444,12.392 L10.444,11.748 C10.444,11.552 10.451,11.3863333 10.465,11.251 C10.479,11.1156667 10.5093333,10.992 10.556,10.88 C10.6026667,10.768 10.6703333,10.6606667 10.759,10.558 C10.8476667,10.4553333 10.9666667,10.334 11.116,10.194 C11.3213333,9.998 11.522,9.80433333 11.718,9.613 C11.914,9.42166667 12.0843333,9.221 12.229,9.011 C12.3736667,8.801 12.4903333,8.57233333 12.579,8.325 C12.6676667,8.07766667 12.712,7.8 12.712,7.492 C12.712,7.09066667 12.642,6.73366667 12.502,6.421 C12.362,6.10833333 12.1683333,5.847 11.921,5.637 C11.6736667,5.427 11.3843333,5.26833333 11.053,5.161 C10.7216667,5.05366667 10.3646667,5 9.982,5 C9.59933333,5 9.24,5.05366667 8.904,5.161 C8.568,5.26833333 8.26933333,5.42233333 8.008,5.623 C7.74666667,5.82366667 7.52966667,6.07333333 7.357,6.372 C7.18433333,6.67066667 7.06533333,7.01133333 7,7.394 L7,7.394 L8.26,7.534 C8.33466667,7.07666667 8.519,6.708 8.813,6.428 C9.107,6.148 9.492,6.008 9.968,6.008 C10.4346667,6.008 10.7986667,6.15033333 11.06,6.435 C11.3213333,6.71966667 11.452,7.086 11.452,7.534 C11.452,7.758 11.4146667,7.95866667 11.34,8.136 C11.2653333,8.31333333 11.1696667,8.48133333 11.053,8.64 C10.9363333,8.79866667 10.8056667,8.95033333 10.661,9.095 C10.5163333,9.23966667 10.374,9.38666667 10.234,9.536 C10.0473333,9.72266667 9.89333333,9.88133333 9.772,10.012 C9.65066667,10.1426667 9.55266667,10.2756667 9.478,10.411 C9.40333333,10.5463333 9.34966667,10.698 9.317,10.866 C9.28433333,11.034 9.268,11.2486667 9.268,11.51 L9.268,11.51 L9.268,12.392 L10.444,12.392 Z M9.856,15.248 C10.0706667,15.248 10.2643333,15.1663333 10.437,15.003 C10.6096667,14.8396667 10.696,14.6413333 10.696,14.408 C10.696,14.1746667 10.6143333,13.9763333 10.451,13.813 C10.2876667,13.6496667 10.0893333,13.568 9.856,13.568 C9.62266667,13.568 9.42433333,13.6496667 9.261,13.813 C9.09766667,13.9763333 9.016,14.1746667 9.016,14.408 C9.016,14.6413333 9.10233333,14.8396667 9.275,15.003 C9.44766667,15.1663333 9.64133333,15.248 9.856,15.248 Z\"\n                fill=\"#9CA6B9\"\n                fill-rule=\"nonzero\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppSearch2',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <defs>\n        <filter id=\"filter-1\">\n          <feColorMatrix\n            in=\"SourceGraphic\"\n            type=\"matrix\"\n            values=\"0 0 0 0 0.141176 0 0 0 0 0.160784 0 0 0 0 0.203922 0 0 0 1.000000 0\"\n          ></feColorMatrix>\n        </filter>\n      </defs>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"查企业\" transform=\"translate(-953.000000, -588.000000)\">\n          <g id=\"编组-16\" transform=\"translate(919.000000, 588.000000)\" filter=\"url(#filter-1)\">\n            <g transform=\"translate(34.000000, 0.000000)\">\n              <path\n                id=\"路径\"\n                d=\"M12,19 L7,19 C5.8954305,19 5,18.1045695 5,17 L5,7 C5,5.8954305 5.8954305,5 7,5 L17,5 C18.1045695,5 19,5.8954305 19,7 L19,12\"\n                stroke=\"#9CA6B9\"\n                stroke-width=\"1.6\"\n              ></path>\n              <circle\n                id=\"椭圆形\"\n                stroke=\"#9CA6B9\"\n                stroke-width=\"1.6\"\n                cx=\"12\"\n                cy=\"12\"\n                r=\"3.2\"\n              ></circle>\n              <line\n                id=\"路径-5\"\n                x1=\"14\"\n                y1=\"13.98696\"\n                x2=\"18.5\"\n                y2=\"18.5\"\n                stroke=\"#9CA6B9\"\n                stroke-width=\"1.6\"\n              ></line>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppSearch',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -456.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 456.000000)\">\n            <path\n              id=\"椭圆形\"\n              d=\"M11,4 C14.8659932,4 18,7.13400675 18,11 C18,14.8659932 14.8659932,18 11,18 C7.13400675,18 4,14.8659932 4,11 C4,7.13400675 7.13400675,4 11,4 Z M11,5.6 C8.01766235,5.6 5.6,8.01766235 5.6,11 C5.6,13.9823376 8.01766235,16.4 11,16.4 C13.9823376,16.4 16.4,13.9823376 16.4,11 C16.4,8.01766235 13.9823376,5.6 11,5.6 Z\"\n            ></path>\n            <polygon\n              id=\"路径-5\"\n              points=\"15.5665033 14.4220936 20.0665033 18.9351336 18.9334967 20.0648664 14.4334967 15.5518264\"\n            ></polygon>\n            <path\n              id=\"路径-7\"\n              d=\"M9.42406643,7.3698722 C11.4001889,6.69681945 13.5445891,7.6823839 14.3343673,9.58930703 L14.4359786,9.85975398 L12.9280031,10.394553 L12.9007979,10.3178423 C12.491128,9.16269401 11.2659137,8.52794861 10.0986468,8.8364764 L9.93991529,8.88443482 L9.42406643,7.3698722 Z\"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppSetting',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 16</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g\n          id=\"菜单图标\"\n          transform=\"translate(-200.000000, -804.000000)\"\n          fill=\"#9CA6B9\"\n          fill-rule=\"nonzero\"\n        >\n          <g id=\"编组-16\" transform=\"translate(200.000000, 804.000000)\">\n            <path\n              id=\"椭圆形\"\n              d=\"M12,9 C13.6568542,9 15,10.3431458 15,12 C15,13.6568542 13.6568542,15 12,15 C10.3431458,15 9,13.6568542 9,12 C9,10.3431458 10.3431458,9 12,9 Z M12,10.6 C11.2268014,10.6 10.6,11.2268014 10.6,12 C10.6,12.7731986 11.2268014,13.4 12,13.4 C12.7731986,13.4 13.4,12.7731986 13.4,12 C13.4,11.2268014 12.7731986,10.6 12,10.6 Z\"\n            ></path>\n            <path\n              id=\"多边形\"\n              d=\"M12,4 L18.9282032,8 L18.9282032,16 L12,20 L5.07179677,16 L5.07179677,8 L12,4 Z M12,5.847 L6.671,8.923 L6.671,15.076 L12,18.152 L17.328,15.076 L17.328,8.923 L12,5.847 Z\"\n              transform=\"translate(12.000000, 12.000000) rotate(90.000000) translate(-12.000000, -12.000000) \"\n            ></path>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppTodo',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"24px\"\n      height=\"24px\"\n      viewBox=\"0 0 24 24\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>钉住</title>\n      <g id=\"CRM\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"线索管理-拨打电话\" transform=\"translate(-1689.000000, -631.000000)\" fill=\"#9CA6B9\">\n          <g id=\"编组-21\" transform=\"translate(1316.000000, 615.000000)\">\n            <g id=\"编组-33\" transform=\"translate(340.000000, 0.000000)\">\n              <g id=\"钉住\" transform=\"translate(33.000000, 16.000000)\">\n                <g id=\"编组-35\" transform=\"translate(3.000000, 3.000000)\">\n                  <path\n                    id=\"形状结合\"\n                    d=\"M14,4.08562073e-14 C15.1045695,4.06533012e-14 16,0.8954305 16,2 L16.000576,7.49840358 C15.2308293,7.17731659 14.3861219,7 13.5,7 C9.91014913,7 7,9.91014913 7,13.5 C7,15.2469007 7.68912635,16.8328473 8.81035876,18.0008195 L2,18 C0.8954305,18 -6.94420253e-13,17.1045695 -6.94555524e-13,16 L-6.94555524e-13,2 C-6.94690795e-13,0.8954305 0.8954305,4.10591134e-14 2,4.08562073e-14 L14,4.08562073e-14 Z M6,6 L2,6 L2,7.5 L6,7.5 L6,6 Z M8,3 L2,3 L2,4.5 L8,4.5 L8,3 Z\"\n                  ></path>\n                  <path\n                    id=\"形状结合\"\n                    d=\"M13.5,8 C16.5375661,8 19,10.4624339 19,13.5 C19,16.5375661 16.5375661,19 13.5,19 C10.4624339,19 8,16.5375661 8,13.5 C8,10.4624339 10.4624339,8 13.5,8 Z M14.25,11.0001995 L12.75,11.0001995 L12.75,15.0077747 L15.721457,16.1963575 L16.278543,14.8036425 L14.25,13.992 L14.25,11.0001995 Z\"\n                  ></path>\n                </g>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { defineComponent, computed } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n\n  export default defineComponent({\n    name: 'BnIconAppWechat',\n    props: {\n      size: {\n        type: [Number, String],\n        default: undefined\n      },\n      rotate: {\n        type: Number,\n        default: undefined\n      },\n      spin: {\n        type: Boolean,\n        default: false\n      },\n      color: {\n        type: String,\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('icon')\n\n      const styles = computed(() => {\n        const styles: StyleValue = {}\n        if (props.size) {\n          styles.fontSize = addUnit(props.size)\n        }\n\n        if (props.rotate) {\n          styles.transform = `rotate(${props.rotate}deg)`\n        }\n\n        if (props.color) {\n          styles.color = props.color\n        }\n        return styles\n      })\n\n      const cls = computed(() => [\n        ns,\n        {\n          [`${ns}-loading`]: props.spin\n        }\n      ])\n\n      return {\n        cls,\n        styles\n      }\n    }\n  })\n</script>\n\n<template>\n  <i :class=\"cls\" :style=\"styles\">\n    <svg\n      width=\"17px\"\n      height=\"16px\"\n      viewBox=\"0 0 17 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <title>编组 12</title>\n      <g id=\"抓潜拓客\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g id=\"企业详情-联系方式-解锁\" transform=\"translate(-274.000000, -986.000000)\">\n          <g id=\"编组-20\" transform=\"translate(242.000000, 565.000000)\">\n            <g id=\"编组-5\" transform=\"translate(0.000000, 400.000000)\">\n              <g id=\"编组-12\" transform=\"translate(32.000000, 21.000000)\">\n                <g id=\"编组-14\" transform=\"translate(1.000000, 2.000000)\">\n                  <path\n                    id=\"路径\"\n                    d=\"M10,3.75 L9.73381454,3.04750895 C9.06254682,1.27494799 7.19670678,0 5,0 C2.23857625,0 0,2.01471863 0,4.5 C0,5.74264069 0.559644063,6.86764069 1.46446609,7.68198052 C1.88960377,8.06460443 2.39094513,8.37864503 2.94624385,8.60408064 C3.2644115,8.73324773 2.14141157,10.1730081 2.49082211,10.2402327 C2.82948156,10.3053888 4.63973172,9 5,9 C5.72971094,9 6.42291199,8.85931428 7.04794378,8.60643626\"\n                    stroke=\"#242934\"\n                  ></path>\n                  <circle id=\"椭圆形\" fill=\"#242934\" cx=\"2.75\" cy=\"3.75\" r=\"1\"></circle>\n                  <circle id=\"椭圆形\" fill=\"#242934\" cx=\"6.75\" cy=\"3.75\" r=\"1\"></circle>\n                </g>\n                <g\n                  id=\"编组-14\"\n                  transform=\"translate(12.000000, 10.000000) scale(-1, 1) translate(-12.000000, -10.000000) translate(8.000000, 6.000000)\"\n                >\n                  <path\n                    id=\"椭圆形\"\n                    d=\"M4,7.02946992 C6.209139,7.02946992 8,5.45586948 8,3.51473496 C8,1.57360044 6.209139,0 4,0 C1.790861,0 0,1.57360044 0,3.51473496 C0,4.48530222 0.44771525,5.36398596 1.17157288,6.00002788 C1.51168302,6.29887713 1.9127561,6.54415924 2.35699508,6.72023623 C2.6115292,6.82112247 1.71312926,7.94565046 1.99265769,7.9981564 C2.26358525,8.04904676 3.71178538,7.02946992 4,7.02946992 Z\"\n                    stroke=\"#242934\"\n                  ></path>\n                  <circle id=\"椭圆形\" fill=\"#242934\" cx=\"2.65\" cy=\"2.65\" r=\"1\"></circle>\n                  <circle id=\"椭圆形\" fill=\"#242934\" cx=\"5.65\" cy=\"2.65\" r=\"1\"></circle>\n                </g>\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  </i>\n</template>\n","import type { App } from 'vue'\nimport BnIconArrowDown from './base/arrow-down.vue'\nimport BnIconArrowLeft from './base/arrow-left.vue'\nimport BnIconArrowRight from './base/arrow-right.vue'\nimport BnIconArrowUp from './base/arrow-up.vue'\nimport BnIconCalendar from './base/calendar.vue'\nimport BnIconCaretFill from './base/caret-fill.vue'\nimport BnIconCaret from './base/caret.vue'\nimport BnIconCheckFill from './base/check-fill.vue'\nimport BnIconCheck from './base/check.vue'\nimport BnIconClock from './base/clock.vue'\nimport BnIconCloseFill from './base/close-fill.vue'\nimport BnIconClose from './base/close.vue'\nimport BnIconDelete from './base/delete.vue'\nimport BnIconDocument from './base/document.vue'\nimport BnIconEmpty from './base/empty.vue'\nimport BnIconFolderOpen from './base/folder-open.vue'\nimport BnIconFolder from './base/folder.vue'\nimport BnIconHide from './base/hide.vue'\nimport BnIconLoading from './base/loading.vue'\nimport BnIconMinus from './base/minus.vue'\nimport BnIconMoreFill from './base/more-fill.vue'\nimport BnIconPlus from './base/plus.vue'\nimport BnIconPrompt from './base/prompt.vue'\nimport BnIconSearch from './base/search.vue'\nimport BnIconSetting from './base/setting.vue'\nimport BnIconSuperArrowLeft from './base/super-arrow-left.vue'\nimport BnIconSuperArrowRight from './base/super-arrow-right.vue'\nimport BnIconView from './base/view.vue'\nimport BnIconWarningFill from './base/warning-fill.vue'\nimport BnIconWarning from './base/warning.vue'\nimport BnIconAppBi from './app/app-bi.vue'\nimport BnIconAppBuilding from './app/app-building.vue'\nimport BnIconAppCleat from './app/app-cleat.vue'\nimport BnIconAppCustomer from './app/app-customer.vue'\nimport BnIconAppHome from './app/app-home.vue'\nimport BnIconAppMarket from './app/app-market.vue'\nimport BnIconAppMoney from './app/app-money.vue'\nimport BnIconAppOa from './app/app-oa.vue'\nimport BnIconAppPie from './app/app-pie.vue'\nimport BnIconAppSem from './app/app-sem.vue'\nimport BnIconAppAddress from './bus/app-address.vue'\nimport BnIconAppArrowUp from './bus/app-arrow-up.vue'\nimport BnIconAppCallUp from './bus/app-call-up.vue'\nimport BnIconAppCall from './bus/app-call.vue'\nimport BnIconAppCopy from './bus/app-copy.vue'\nimport BnIconAppDownload from './bus/app-download.vue'\nimport BnIconAppDrag from './bus/app-drag.vue'\nimport BnIconAppEdit from './bus/app-edit.vue'\nimport BnIconAppEnterprise from './bus/app-enterprise.vue'\nimport BnIconAppExclamationPoint from './bus/app-exclamation-point.vue'\nimport BnIconAppFax from './bus/app-fax.vue'\nimport BnIconAppIphone from './bus/app-iphone.vue'\nimport BnIconAppLetter from './bus/app-letter.vue'\nimport BnIconAppLove2 from './bus/app-love-2.vue'\nimport BnIconAppLove from './bus/app-love.vue'\nimport BnIconAppMinus from './bus/app-minus.vue'\nimport BnIconAppNewPage from './bus/app-new-page.vue'\nimport BnIconAppOaBirthday from './bus/app-oa-birthday.vue'\nimport BnIconAppOaCircle from './bus/app-oa-circle.vue'\nimport BnIconAppOaLocation from './bus/app-oa-location.vue'\nimport BnIconAppOaSend from './bus/app-oa-send.vue'\nimport BnIconAppOaTelephone from './bus/app-oa-telephone.vue'\nimport BnIconAppOverview from './bus/app-overview.vue'\nimport BnIconAppPc2 from './bus/app-pc-2.vue'\nimport BnIconAppPc from './bus/app-pc.vue'\nimport BnIconAppPlus from './bus/app-plus.vue'\nimport BnIconAppQq from './bus/app-qq.vue'\nimport BnIconAppQuery from './bus/app-query.vue'\nimport BnIconAppQuestion from './bus/app-question.vue'\nimport BnIconAppSearch2 from './bus/app-search-2.vue'\nimport BnIconAppSearch from './bus/app-search.vue'\nimport BnIconAppSetting from './bus/app-setting.vue'\nimport BnIconAppTodo from './bus/app-todo.vue'\nimport BnIconAppWechat from './bus/app-wechat.vue'\n\nconst components = [\n  BnIconArrowDown,\n  BnIconArrowLeft,\n  BnIconArrowRight,\n  BnIconArrowUp,\n  BnIconCalendar,\n  BnIconCaretFill,\n  BnIconCaret,\n  BnIconCheckFill,\n  BnIconCheck,\n  BnIconClock,\n  BnIconCloseFill,\n  BnIconClose,\n  BnIconDelete,\n  BnIconDocument,\n  BnIconEmpty,\n  BnIconFolderOpen,\n  BnIconFolder,\n  BnIconHide,\n  BnIconLoading,\n  BnIconMinus,\n  BnIconMoreFill,\n  BnIconPlus,\n  BnIconPrompt,\n  BnIconSearch,\n  BnIconSetting,\n  BnIconSuperArrowLeft,\n  BnIconSuperArrowRight,\n  BnIconView,\n  BnIconWarningFill,\n  BnIconWarning,\n  BnIconAppBi,\n  BnIconAppBuilding,\n  BnIconAppCleat,\n  BnIconAppCustomer,\n  BnIconAppHome,\n  BnIconAppMarket,\n  BnIconAppMoney,\n  BnIconAppOa,\n  BnIconAppPie,\n  BnIconAppSem,\n  BnIconAppAddress,\n  BnIconAppArrowUp,\n  BnIconAppCallUp,\n  BnIconAppCall,\n  BnIconAppCopy,\n  BnIconAppDownload,\n  BnIconAppDrag,\n  BnIconAppEdit,\n  BnIconAppEnterprise,\n  BnIconAppExclamationPoint,\n  BnIconAppFax,\n  BnIconAppIphone,\n  BnIconAppLetter,\n  BnIconAppLove2,\n  BnIconAppLove,\n  BnIconAppMinus,\n  BnIconAppNewPage,\n  BnIconAppOaBirthday,\n  BnIconAppOaCircle,\n  BnIconAppOaLocation,\n  BnIconAppOaSend,\n  BnIconAppOaTelephone,\n  BnIconAppOverview,\n  BnIconAppPc2,\n  BnIconAppPc,\n  BnIconAppPlus,\n  BnIconAppQq,\n  BnIconAppQuery,\n  BnIconAppQuestion,\n  BnIconAppSearch2,\n  BnIconAppSearch,\n  BnIconAppSetting,\n  BnIconAppTodo,\n  BnIconAppWechat\n]\n\nconst install = (app: App) => {\n  components.forEach((component) => {\n    app.component(component.name, component)\n  })\n}\n\nexport default {\n  install\n}\n\nexport {\n  BnIconArrowDown,\n  BnIconArrowLeft,\n  BnIconArrowRight,\n  BnIconArrowUp,\n  BnIconCalendar,\n  BnIconCaretFill,\n  BnIconCaret,\n  BnIconCheckFill,\n  BnIconCheck,\n  BnIconClock,\n  BnIconCloseFill,\n  BnIconClose,\n  BnIconDelete,\n  BnIconDocument,\n  BnIconEmpty,\n  BnIconFolderOpen,\n  BnIconFolder,\n  BnIconHide,\n  BnIconLoading,\n  BnIconMinus,\n  BnIconMoreFill,\n  BnIconPlus,\n  BnIconPrompt,\n  BnIconSearch,\n  BnIconSetting,\n  BnIconSuperArrowLeft,\n  BnIconSuperArrowRight,\n  BnIconView,\n  BnIconWarningFill,\n  BnIconWarning,\n  BnIconAppBi,\n  BnIconAppBuilding,\n  BnIconAppCleat,\n  BnIconAppCustomer,\n  BnIconAppHome,\n  BnIconAppMarket,\n  BnIconAppMoney,\n  BnIconAppOa,\n  BnIconAppPie,\n  BnIconAppSem,\n  BnIconAppAddress,\n  BnIconAppArrowUp,\n  BnIconAppCallUp,\n  BnIconAppCall,\n  BnIconAppCopy,\n  BnIconAppDownload,\n  BnIconAppDrag,\n  BnIconAppEdit,\n  BnIconAppEnterprise,\n  BnIconAppExclamationPoint,\n  BnIconAppFax,\n  BnIconAppIphone,\n  BnIconAppLetter,\n  BnIconAppLove2,\n  BnIconAppLove,\n  BnIconAppMinus,\n  BnIconAppNewPage,\n  BnIconAppOaBirthday,\n  BnIconAppOaCircle,\n  BnIconAppOaLocation,\n  BnIconAppOaSend,\n  BnIconAppOaTelephone,\n  BnIconAppOverview,\n  BnIconAppPc2,\n  BnIconAppPc,\n  BnIconAppPlus,\n  BnIconAppQq,\n  BnIconAppQuery,\n  BnIconAppQuestion,\n  BnIconAppSearch2,\n  BnIconAppSearch,\n  BnIconAppSetting,\n  BnIconAppTodo,\n  BnIconAppWechat\n}\n","import { defineComponent, nextTick, Transition } from 'vue'\nimport { BnIconLoading } from '../../icon'\n\nconst getCollapsedWidth = (node: HTMLSpanElement) => {\n  if (node) {\n    node.style.width = '0px'\n    node.style.opacity = '0'\n    node.style.transform = 'scale(0)'\n  }\n}\nconst getRealWidth = (node: HTMLSpanElement) => {\n  nextTick(() => {\n    if (node) {\n      node.style.transition = 'all 0.15s'\n      node.style.width = `${node.scrollWidth}px`\n      node.style.opacity = '1'\n      node.style.transform = 'scale(1)'\n    }\n  })\n}\nconst resetStyle = (node: HTMLSpanElement) => {\n  if (node && node.style) {\n    node.style.width = ''\n    node.style.opacity = ''\n    node.style.transform = ''\n  }\n}\nexport default defineComponent({\n  name: 'LoadingIcon',\n  props: {\n    loading: Boolean,\n    // eslint-disable-next-line vue/require-default-prop\n    ns: String\n  },\n  setup(props) {\n    return () => {\n      return (\n        <Transition\n          onBeforeEnter={getCollapsedWidth}\n          onEnter={getRealWidth}\n          onBeforeLeave={getRealWidth}\n          onAfterEnter={resetStyle}\n          onLeave={(node: HTMLSpanElement) => {\n            setTimeout(() => {\n              getCollapsedWidth(node)\n            }, 16)\n          }}\n          onAfterLeave={resetStyle}\n        >\n          {props.loading ? (\n            <span class={`${props.ns}__loading`}>\n              <BnIconLoading />\n            </span>\n          ) : null}\n        </Transition>\n      )\n    }\n  }\n})\n","<script lang=\"ts\">\n  import { getCurrentInstance, reactive, computed, defineComponent } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { isArray, isFunction, isPromise } from '../../../utils/is'\n  import { definePropType } from '../../../utils/vue-utils'\n\n  // 方便添加动画\n  import LoadingIcon from './LoadingIcon'\n\n  export default defineComponent({\n    name: getComponentNamespace('Button'),\n    components: {\n      LoadingIcon\n    },\n    props: {\n      disabled: Boolean,\n      block: Boolean,\n      loading: Boolean,\n      loadingFill: {\n        type: Boolean,\n        default: false\n      },\n      shape: {\n        type: definePropType<'circle' | 'round'>(String),\n        default: undefined\n      },\n      link: {\n        type: Boolean,\n        default: false\n      },\n      type: {\n        type: definePropType<'primary' | 'success' | 'danger' | 'warning' | 'strong' | 'card'>(\n          String\n        ),\n        default: undefined\n      },\n      plain: {\n        type: Boolean,\n        default: false\n      },\n      size: {\n        type: definePropType<'mini' | 'small' | 'large' | 'normal'>(String),\n        default: 'normal'\n      },\n      border: {\n        type: Boolean,\n        default: true\n      }\n    },\n    emits: ['click'],\n    setup(props) {\n      const state = reactive({\n        clicked: false\n      })\n\n      const ns = getNamespace('button')\n      const cls = computed(() => {\n        const _cls = [\n          ns,\n          props.type && `${ns}--${props.type}`,\n          props.disabled && `is-disabled`,\n          props.block && `is-block`,\n          props.plain && 'is-plain',\n          props.shape && `is-${props.shape}`,\n          props.link && `is-link`,\n          props.size && `is-${props.size}`,\n          !props.border && `is-hide-border`,\n          isLoading.value && `is-loading`\n        ]\n\n        return _cls\n      })\n\n      const isLoading = computed(() => {\n        return props.loading || state.clicked\n      })\n\n      const instance = getCurrentInstance()\n\n      const execFn = (fn: Function, event: PointerEvent) => {\n        const ret = fn(event)\n        if (isPromise(ret)) {\n          state.clicked = true\n          ret.finally(() => {\n            state.clicked = false\n          })\n        }\n      }\n\n      const handleClick = async (event: PointerEvent) => {\n        // 为了兼容打开弹出层，按下entry键会重复激活弹出层\n        ;(event.target as HTMLElement).blur?.()\n\n        if (isLoading.value) return\n        const clickFn = instance?.vnode?.props?.onClick\n        // 外部注入事件，此时按钮又绑定事件。那么这里就是一个数组。\n        if (isArray(clickFn)) {\n          clickFn.forEach((fn) => execFn(fn, event))\n        } else if (isFunction(clickFn)) {\n          execFn(clickFn, event)\n        }\n      }\n      return {\n        ns,\n        cls,\n        handleClick,\n        isLoading\n      }\n    }\n  })\n</script>\n\n<template>\n  <button :class=\"cls\" type=\"button\" :disabled=\"disabled\" :hover=\"!disabled\" @click=\"handleClick\">\n    <slot></slot>\n    <LoadingIcon :loading=\"isLoading\" :ns=\"ns\" />\n  </button>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Button from './src/button.vue'\n\nexport const Button = withInstall(_Button)\nexport type ButtonInstance = InstanceType<typeof _Button>\nexport default Button\n","<script lang=\"ts\">\n  import { defineComponent } from 'vue'\n  import { getComponentNamespace } from '../../../utils/global-config'\n\n  export default defineComponent({\n    name: getComponentNamespace('ButtonGroup')\n  })\n</script>\n\n<template>\n  <div class=\"bn-button-group\">\n    <slot></slot>\n  </div>\n</template>\n","import _ButtonGroup from '../button/src/button-group.vue'\nimport { withInstall } from '../../utils/vue-utils'\n\nexport const ButtonGroup = withInstall(_ButtonGroup)\n\nexport type ButtonGroupInstance = InstanceType<typeof _ButtonGroup>\nexport default ButtonGroup\n","import type { InjectionKey } from 'vue'\n\nimport type { FormContext, FormItemContext } from './types'\n\nexport const formContextKey: InjectionKey<FormContext> = Symbol('formContextKey')\n\nexport const formItemContextKey: InjectionKey<FormItemContext> = Symbol('formItemContextKey')\n","import { inject } from 'vue'\nimport { formContextKey, formItemContextKey } from '../constants'\nexport const useFormItem = () => {\n  const form = inject(formContextKey, undefined)\n  const formItem = inject(formItemContextKey, undefined)\n  return {\n    form,\n    formItem\n  }\n}\n","import type { InjectionKey } from 'vue'\nimport type { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContextKey: InjectionKey<CheckboxGroupContext> = Symbol('radioGroupKey')\n","import type { ExtractPropTypes } from 'vue'\n\nexport const checkboxProps = {\n  indeterminate: Boolean,\n  checked: Boolean,\n  disabled: Boolean,\n  label: {\n    type: [String, Number, Boolean],\n    default: ''\n  },\n  modelValue: [String, Number, Boolean],\n  // native\n  name: {\n    type: String\n  },\n  //form表单验证相关\n  validateEvent: {\n    type: Boolean,\n    default: true\n  }\n}\n\nexport type CheckboxProps = ExtractPropTypes<typeof checkboxProps>\n","import { defineComponent } from 'vue'\n\nexport default defineComponent({\n  name: 'CheckboxIcon',\n  props: {\n    isChecked: Boolean,\n    indeterminate: Boolean\n  },\n  setup(props) {\n    return () => {\n      if (props.indeterminate) {\n        return <span class=\"bn-checkbox__icon bn-checkbox__icon--half\"></span>\n      }\n      if (props.isChecked) {\n        return <span class=\"bn-checkbox__icon bn-checkbox__icon--checked\"></span>\n      }\n      return <span class=\"bn-checkbox__icon bn-checkbox__icon--square\"></span>\n    }\n  }\n})\n","<script lang=\"ts\">\n  import { defineComponent, inject, computed, ref, watch } from 'vue'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { NOOP } from '../../../shared/utils'\n  import { checkboxGroupContextKey } from './constant'\n  import { checkboxProps } from './props'\n  import RenderIcon from './icon'\n\n  import type { CheckboxGroupContext } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Checkbox'),\n    components: {\n      RenderIcon\n    },\n    props: checkboxProps,\n    emits: ['update:modelValue', 'change'],\n    setup(props, { emit, slots }) {\n      const ns = getNamespace('checkbox')\n      const checkboxGroup = inject<CheckboxGroupContext | null>(checkboxGroupContextKey, null)\n      const isGroup = computed(() => !!checkboxGroup)\n      const selfModel = ref<boolean>(false)\n\n      const model = computed({\n        get() {\n          return isGroup.value\n            ? checkboxGroup?.modelValue?.value\n            : props.modelValue ?? selfModel.value\n        },\n        set(val) {\n          if (isGroup.value) {\n            checkboxGroup?.changeEvent?.(val)\n          } else {\n            emit('update:modelValue', val)\n            selfModel.value = val\n          }\n        }\n      })\n\n      const isChecked = computed(() => {\n        const value = model.value\n        if (Array.isArray(value)) {\n          return value.includes(props.label)\n        }\n        return value\n      })\n\n      const isFocused = ref(false)\n\n      const { formItem } = useFormItem()\n\n      const cls = computed(() => {\n        const cls = [ns]\n        props.disabled && cls.push('is-disabled')\n        if (isGroup.value) {\n          isChecked.value && cls.push('is-checked')\n        } else {\n          props.modelValue && cls.push('is-checked')\n        }\n\n        if (props.indeterminate && !props.modelValue) {\n          cls.push('is-indeterminate')\n        }\n\n        if (isFocused.value) {\n          cls.push('is-focus')\n        }\n\n        return cls\n      })\n\n      const isShowLabel = computed(() => slots['default'] || props.label)\n\n      const handleChange = (e: InputEvent) => {\n        const target = e.target as HTMLInputElement\n        const changeValue = target.checked\n        emit('change', changeValue)\n      }\n\n      const validateEvent = computed(() => checkboxGroup?.validateEvent || props.validateEvent)\n\n      // 接入form-item的表单验证\n      watch(\n        () => props.modelValue,\n        () => {\n          if (validateEvent.value) {\n            formItem?.validate('change').catch(NOOP)\n          }\n        }\n      )\n\n      return {\n        ns,\n        cls,\n        handleChange,\n        model,\n        isChecked,\n        isFocused,\n        isShowLabel\n      }\n    }\n  })\n</script>\n\n<template>\n  <label :class=\"cls\">\n    <slot name=\"icon\" :checked=\"isChecked\" :indeterminate=\"indeterminate\">\n      <RenderIcon :is-checked=\"isChecked\" :indeterminate=\"indeterminate\" />\n    </slot>\n    <span :class=\"[`${ns}__input`]\">\n      <input\n        v-model=\"model\"\n        :class=\"[`${ns}__origin`]\"\n        type=\"checkbox\"\n        :name=\"name\"\n        :disabled=\"disabled\"\n        :checked=\"isChecked\"\n        :indeterminate=\"indeterminate\"\n        :value=\"label\"\n        @change=\"handleChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"isFocused = false\"\n      />\n    </span>\n    <span v-if=\"isShowLabel\" :class=\"[`${ns}__label`]\">\n      <slot>{{ label }}</slot>\n    </span>\n  </label>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Checkbox from './src/checkbox.vue'\nexport const Checkbox = withInstall(_Checkbox)\n\nexport type CheckboxInstance = InstanceType<typeof _Checkbox>\nexport default Checkbox\n","<script lang=\"ts\">\n  import { defineComponent, computed, provide, watch } from 'vue'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { NOOP } from '../../../shared/utils'\n  import { checkboxGroupContextKey } from './constant'\n\n  export default defineComponent({\n    name: getComponentNamespace('CheckboxGroup'),\n    props: {\n      // eslint-disable-next-line vue/require-default-prop\n      modelValue: Array,\n      validateEvent: {\n        type: Boolean,\n        default: true\n      }\n    },\n    emits: ['change', 'update:modelValue'],\n    setup(props, ctx) {\n      const modelValue = computed(() => props.modelValue)\n      const changeEvent = (val: any) => {\n        ctx.emit('update:modelValue', val)\n        ctx.emit('change', val)\n      }\n\n      const ns = getNamespace('checkbox-group')\n\n      const cls = computed(() => {\n        return [ns]\n      })\n\n      const { formItem } = useFormItem()\n\n      provide(checkboxGroupContextKey, {\n        modelValue,\n        changeEvent\n      })\n\n      watch(\n        () => props.modelValue,\n        () => {\n          if (props.validateEvent) {\n            formItem?.validate('change').catch(NOOP)\n          }\n        }\n      )\n\n      return {\n        cls\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <slot></slot>\n  </div>\n</template>\n","import _CheckboxGroup from '../checkbox/src/checkbox-group.vue'\nimport { withInstall } from '../../utils/vue-utils'\n\nexport const CheckboxGroup = withInstall(_CheckboxGroup)\n\nexport type CheckboxGroupInstance = InstanceType<typeof _CheckboxGroup>\nexport default CheckboxGroup\n","import type { InjectionKey } from 'vue'\nimport type { RadioGroupContext } from './types'\n\nexport const radioGroupKey: InjectionKey<RadioGroupContext> = Symbol('radioGroupKey')\n","<script lang=\"ts\">\n  import { computed, defineComponent, inject, nextTick, ref, shallowRef } from 'vue'\n  import type { PropType } from 'vue'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { radioGroupKey } from './constant'\n\n  import type { RadioGroupContext } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Radio'),\n    props: {\n      modelValue: {\n        type: [Boolean, Number, String] as PropType<boolean | number | string>,\n        default: ''\n      },\n      label: {\n        type: [Boolean, Number, String] as PropType<boolean | number | string>,\n        default: ''\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      },\n      // native\n      name: {\n        type: String,\n        default: ''\n      }\n    },\n    emits: ['update:modelValue', 'change', 'focus', 'blur'],\n    setup(props, { emit }) {\n      const ns = getNamespace('radio')\n      const radioGroup = inject<RadioGroupContext | null>(radioGroupKey, null)\n      const isGroup = computed(() => !!radioGroup)\n\n      const radioRef = shallowRef<HTMLInputElement>()\n      const model = computed({\n        get() {\n          const store = radioGroup ? radioGroup.modelValue?.value : props.modelValue\n          return isGroup.value ? store : props.modelValue\n        },\n        set(val) {\n          if (isGroup.value) {\n            radioGroup?.changeEvent?.(val)\n          } else {\n            emit('update:modelValue', val)\n          }\n          // 同步原生radio input checked的状态\n          radioRef.value!.checked = props.modelValue === props.label\n        }\n      })\n\n      const isChecked = computed(() => {\n        return model.value === props.label\n      })\n\n      const isFocused = ref(false)\n\n      const cls = computed(() => [\n        ns,\n        isChecked.value && 'is-checked',\n        props.disabled && 'is-disabled',\n        isFocused.value && 'is-focus'\n      ])\n\n      // evt\n      const handleChange = () => {\n        nextTick(() => emit('change', model.value))\n      }\n\n      return {\n        cls,\n        model,\n        handleChange,\n        isChecked,\n        isFocused,\n        radioRef\n      }\n    }\n  })\n</script>\n\n<template>\n  <label :class=\"cls\">\n    <span\n      class=\"bn-radio__input\"\n      :class=\"{\n        'is-checked': isChecked,\n        'is-disabled': disabled\n      }\"\n    >\n      <slot name=\"icon\" :checked=\"isChecked\" :disabled=\"disabled\">\n        <span class=\"bn-radio__inner\"></span>\n      </slot>\n      <input\n        ref=\"radioRef\"\n        v-model=\"model\"\n        class=\"bn-radio__origin\"\n        type=\"radio\"\n        :name=\"name\"\n        :value=\"label\"\n        :disabled=\"disabled\"\n        @change=\"handleChange\"\n        @focus=\"isFocused = true\"\n        @blur=\"isFocused = false\"\n      />\n    </span>\n    <span class=\"bn-radio__label\">\n      <slot>{{ label }}</slot>\n    </span>\n  </label>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Radio from './src/radio.vue'\n\nexport const Radio = withInstall(_Radio)\nexport type RadioInstance = InstanceType<typeof _Radio>\nexport default Radio\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { defineComponent, computed, provide, watch } from 'vue'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { NOOP } from '../../../shared/utils'\n  import { radioGroupKey } from './constant'\n\n  export default defineComponent({\n    name: getComponentNamespace('RadioGroup'),\n    props: {\n      modelValue: {\n        type: [Number, String] as PropType<number | string>,\n        default: ''\n      },\n      validateEvent: {\n        type: Boolean,\n        default: true\n      }\n    },\n    emits: ['change', 'update:modelValue'],\n    setup(props, ctx) {\n      const modelValue = computed(() => props.modelValue)\n      const changeEvent = (val: any) => {\n        ctx.emit('change', val)\n        ctx.emit('update:modelValue', val)\n      }\n\n      const ns = getNamespace('radio-group')\n\n      const cls = computed(() => {\n        return [ns]\n      })\n\n      const { formItem } = useFormItem()\n\n      watch(\n        () => props.modelValue,\n        () => {\n          if (props.validateEvent) {\n            formItem?.validate('change').catch(NOOP)\n          }\n        }\n      )\n\n      provide(radioGroupKey, {\n        modelValue,\n        changeEvent\n      })\n\n      return {\n        cls\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <slot></slot>\n  </div>\n</template>\n","import _RadioGroup from '../radio/src/radio-group.vue'\nimport { withInstall } from '../../utils/vue-utils'\n\nexport const RadioGroup = withInstall(_RadioGroup)\n\nexport type RadioGroupInstance = InstanceType<typeof _RadioGroup>\nexport default RadioGroup\n","export const isClient = typeof window !== 'undefined'\n\nexport const isFirefox = (): boolean => isClient && /firefox/i.test(window.navigator.userAgent)\n","import type { ExtractPropTypes } from 'vue'\nimport { definePropType } from '../../../utils/vue-utils'\n\nconst nativeProps = {\n  autocomplete: {\n    type: definePropType<'off' | 'on'>(String),\n    default: 'off'\n  },\n  name: {\n    type: String,\n    default: ''\n  },\n  readonly: {\n    type: Boolean,\n    default: false\n  },\n  autofocus: {\n    type: Boolean,\n    default: false\n  },\n  form: {\n    type: String,\n    default: undefined\n  }\n}\n\nexport const inputProps = {\n  modelValue: {\n    type: [String, Number],\n    default: undefined\n  },\n  type: {\n    type: definePropType<'text' | 'textarea'>(String),\n    default: 'text'\n  },\n  placeholder: {\n    type: String,\n    default: '请输入'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: definePropType<'small' | 'default' | 'large'>(String),\n    default: 'default'\n  },\n  showPassword: {\n    type: Boolean,\n    default: false\n  },\n  resize: {\n    type: Boolean,\n    default: false\n  },\n  prefixIcon: {\n    type: String,\n    default: ''\n  },\n  suffixIcon: {\n    type: String,\n    default: ''\n  },\n  autosize: {\n    type: definePropType<{ minRows: number; maxRows: number } | boolean>([Object, Boolean]),\n    default: false\n  },\n  // 过滤器\n  formatter: {\n    type: Function,\n    default: undefined\n  },\n  //form表单验证相关\n  validateEvent: {\n    type: Boolean,\n    default: true\n  },\n  clearable: {\n    type: Boolean,\n    default: false\n  },\n  card: {\n    type: Boolean,\n    default: false\n  },\n  maxlength: {\n    type: [String, Number],\n    default: undefined\n  },\n  showWordLimit: {\n    type: Boolean,\n    default: false\n  },\n  valueType: {\n    type: definePropType<'string' | 'number'>(String),\n    default: 'string'\n  },\n  // 原生input属性\n  ...nativeProps\n}\n\nexport type InputProps = ExtractPropTypes<typeof inputProps>\n","import { isNumber } from '../../../utils/is'\nimport { isFirefox } from '../../../utils/browser'\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined = undefined\n\nconst HIDDEN_STYLE = `\n  height:0 !important;\n  visibility:hidden !important;\n  ${isFirefox() ? '' : 'overflow:hidden !important;'}\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important;\n`\n\nconst CONTEXT_STYLE = [\n  'letter-spacing',\n  'line-height',\n  'padding-top',\n  'padding-bottom',\n  'font-family',\n  'font-weight',\n  'font-size',\n  'text-rendering',\n  'text-transform',\n  'width',\n  'text-indent',\n  'padding-left',\n  'padding-right',\n  'border-width',\n  'box-sizing'\n]\n\ninterface NodeStyle {\n  contextStyle: string\n  boxSizing: string\n  paddingSize: number\n  borderSize: number\n}\n\ninterface TextAreaHeight {\n  height: string\n  minHeight?: string\n}\n\nfunction calculateNodeStyling(targetElement: Element): NodeStyle {\n  const style = window.getComputedStyle(targetElement)\n\n  const boxSizing = style.getPropertyValue('box-sizing')\n\n  const paddingSize =\n    Number.parseFloat(style.getPropertyValue('padding-bottom')) +\n    Number.parseFloat(style.getPropertyValue('padding-top'))\n\n  const borderSize =\n    Number.parseFloat(style.getPropertyValue('border-bottom-width')) +\n    Number.parseFloat(style.getPropertyValue('border-top-width'))\n\n  const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(\n    ';'\n  )\n\n  return { contextStyle, paddingSize, borderSize, boxSizing }\n}\n\nexport function calcTextareaHeight(\n  targetElement: HTMLTextAreaElement,\n  minRows = 1,\n  maxRows?: number\n): TextAreaHeight {\n  if (!hiddenTextarea) {\n    hiddenTextarea = document.createElement('textarea')\n    document.body.appendChild(hiddenTextarea)\n  }\n\n  const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement)\n\n  hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`)\n  hiddenTextarea.value = targetElement.value || targetElement.placeholder || ''\n\n  let height = hiddenTextarea.scrollHeight\n  const result = {} as TextAreaHeight\n\n  if (boxSizing === 'border-box') {\n    height = height + borderSize\n  } else if (boxSizing === 'content-box') {\n    height = height - paddingSize\n  }\n\n  hiddenTextarea.value = ''\n  const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize\n\n  if (isNumber(minRows)) {\n    let minHeight = singleRowHeight * minRows\n    if (boxSizing === 'border-box') {\n      minHeight = minHeight + paddingSize + borderSize\n    }\n    height = Math.max(minHeight, height)\n    result.minHeight = `${minHeight}px`\n  }\n  if (isNumber(maxRows)) {\n    let maxHeight = singleRowHeight * maxRows\n    if (boxSizing === 'border-box') {\n      maxHeight = maxHeight + paddingSize + borderSize\n    }\n    height = Math.min(maxHeight, height)\n  }\n  result.height = `${height}px`\n  hiddenTextarea.parentNode?.removeChild(hiddenTextarea)\n  hiddenTextarea = undefined\n\n  return result\n}\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import {\n    defineComponent,\n    computed,\n    ref,\n    shallowRef,\n    nextTick,\n    onMounted,\n    watch,\n    getCurrentInstance\n  } from 'vue'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { isClient } from '../../../utils/browser'\n  import { isObject, isUndefined } from '../../../utils/is'\n  import { NOOP } from '../../../shared/utils'\n\n  import { BnIconView, BnIconHide, BnIconCloseFill, BnIconCaret } from '../../icon'\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { inputProps } from './props'\n  import { calcTextareaHeight } from './utils'\n\n  type TargetElement = HTMLInputElement | HTMLTextAreaElement\n\n  export default defineComponent({\n    name: getComponentNamespace('Input'),\n    components: {\n      BnIconView,\n      BnIconHide,\n      BnIconCloseFill,\n      BnIconCaret\n    },\n    inheritAttrs: false,\n    props: inputProps,\n    emits: ['update:modelValue', 'input', 'change', 'focus', 'blur', 'clear', 'pressEnter'],\n    setup(props, { emit, slots, attrs }) {\n      const inputNs = getNamespace('input')\n      const textareaNs = getNamespace('textarea')\n      const instance = getCurrentInstance()\n\n      const mergeDisable = computed(() => props.disabled)\n\n      const inputWrapperCls = computed(() => [\n        `${inputNs}__wrapper`,\n        mergeDisable.value && 'is-disabled',\n        props.size && `${inputNs}--${props.size}`,\n        props.prefixIcon && `${inputNs}--prefix`,\n        showInputInnerSuffixArea.value && `${inputNs}--suffix`,\n        props.card && `${inputNs}--card`,\n        isHover.value && 'is-hover',\n        isFocus.value && 'is-focus'\n      ])\n\n      const textareaWrapperCls = computed(() => [\n        `${textareaNs}__wrapper`,\n        mergeDisable.value && 'is-disabled',\n        isHover.value && 'is-hover',\n        isFocus.value && 'is-focus'\n      ])\n\n      const isPrependGroup = computed(() => props.type === 'text' && slots.prepend)\n      const isAppendGroup = computed(() => props.type === 'text' && slots.append)\n\n      const containerCls = computed(() => [\n        props.type === 'text' ? inputNs : textareaNs,\n        attrs.class,\n        isOverLimit.value && 'is-over-limit',\n        isPrependGroup.value && 'is-prepend-group',\n        isAppendGroup.value && 'is-append-group'\n      ])\n\n      const containerStyle = computed(() => [attrs.style as StyleValue])\n      const bindOthers = computed(() => {\n        return Object.keys(attrs).reduce((acc, key) => {\n          if (['class', 'style'].includes(key)) return acc\n          acc[key] = attrs[key]\n          return acc\n        }, {} as any)\n      })\n\n      const eyeStatus = ref(false)\n      const isHover = ref(false)\n      const isFocus = ref(false)\n      let isComposing = false\n\n      const currentRef = computed(() => inputRef.value || textareaRef.value)\n\n      const setNativeInputValue = () => {\n        const target = currentRef.value as HTMLInputElement\n        if (target) {\n          target.value = computedInputValue.value as string\n        }\n      }\n      const nativeInputValue = ref<string | number>('')\n      const computedInputValue = computed({\n        get() {\n          return props.modelValue ?? nativeInputValue.value\n        },\n        set(val) {\n          if (instance?.vnode?.props?.['onUpdate:modelValue']) {\n            emit('update:modelValue', val)\n          } else {\n            nativeInputValue.value = val\n          }\n        }\n      })\n\n      const inputType = computed(() => {\n        if (props.showPassword) {\n          return eyeStatus.value ? 'text' : 'password'\n        }\n        return props.type\n      })\n      const handleEye = () => {\n        eyeStatus.value = !eyeStatus.value\n        nextTick(() => {\n          inputRef.value?.focus()\n        })\n      }\n      const inputRef = shallowRef<HTMLInputElement>()\n\n      const { formItem } = useFormItem()\n\n      // icon show\n      const hasPrefixIcon = computed(() => {\n        return props.prefixIcon || slots['prefix-icon']\n      })\n      const hasSuffixIcon = computed(() => {\n        return props.suffixIcon || slots['suffix-icon']\n      })\n      const hasClearableIcon = computed(() => {\n        if (!props.clearable || props.disabled || !computedInputValue.value) return false\n        if (isHover.value || isFocus.value) return true\n        return false\n      })\n\n      const hasPasswordIcon = computed(() => {\n        return props.showPassword && computedInputValue.value\n      })\n\n      const showInputInnerSuffixArea = computed(() => {\n        return (\n          hasSuffixIcon.value || hasClearableIcon.value || props.showWordLimit || props.showPassword\n        )\n      })\n\n      // 输入文本字数\n      const currentValueLength = computed<number>(() => {\n        return String(computedInputValue.value).length\n      })\n\n      const isOverLimit = computed(() => {\n        if (isUndefined(props.maxlength)) return false\n        return currentValueLength.value > Number(props.maxlength)\n      })\n\n      // input输入事件\n      const handleInput = (e: Event) => {\n        let { value } = e.target as TargetElement\n        if (isComposing) return\n        // 过滤器\n        if (props.formatter) {\n          value = props.formatter(value)\n        }\n        emit('input', value, e)\n        computedInputValue.value = value\n        nextTick(setNativeInputValue)\n      }\n\n      const handleChange = (e: InputEvent) => {\n        emit('change', (e.target as TargetElement).value)\n        if (props.validateEvent) {\n          formItem?.validate?.('change').catch(NOOP)\n        }\n      }\n\n      const handleFocus = (e: FocusEvent) => {\n        isFocus.value = true\n        emit('focus', e)\n      }\n\n      const handleBlur = (e: FocusEvent) => {\n        isFocus.value = false\n        emit('blur', e)\n        // 表单验证关联-失去焦点触发\n        if (props.validateEvent) {\n          formItem?.validate?.('blur').catch(NOOP)\n        }\n      }\n\n      const onCompositionstart = () => {\n        isComposing = true\n      }\n\n      const onCompositionupdate = () => {}\n\n      const onCompositionend = (e: CompositionEvent) => {\n        if (isComposing) {\n          isComposing = false\n          handleInput(e)\n        }\n      }\n\n      const handleMouseEnter = () => {\n        isHover.value = true\n      }\n\n      const handleMouseLeave = () => {\n        isHover.value = false\n      }\n\n      // 清空\n      const handleClear = () => {\n        emit('clear', '')\n        computedInputValue.value = ''\n        nextTick(setNativeInputValue)\n      }\n\n      // 手动触发input focus事件\n      const manualInputFocus = async () => {\n        await nextTick()\n        inputRef.value?.focus()\n      }\n\n      // textarea\n      const textareaRef = shallowRef<HTMLTextAreaElement>()\n\n      const textareaCalcStyle = shallowRef({})\n      const textareaBaseStyle = computed(() => {\n        const style: any = {}\n        style.resize = props.resize ? 'vertical' : 'none'\n        return style\n      })\n\n      const resizeTextarea = () => {\n        const { type, autosize } = props\n        if (!isClient || type !== 'textarea' || !textareaRef.value) return\n\n        if (autosize) {\n          const minRows = isObject(autosize) ? autosize.minRows : undefined\n          const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n          const style = calcTextareaHeight(textareaRef.value, minRows, maxRows)\n          textareaCalcStyle.value = {\n            overflowY: 'scroll',\n            ...style,\n            ...textareaBaseStyle.value\n          }\n        } else {\n          textareaCalcStyle.value = {\n            minHeight: calcTextareaHeight(textareaRef.value).minHeight,\n            ...textareaBaseStyle.value\n          }\n        }\n      }\n\n      onMounted(() => {\n        nextTick(resizeTextarea)\n        nextTick(setNativeInputValue)\n      })\n\n      watch(\n        () => props.type,\n        () => {\n          nextTick(resizeTextarea)\n          nextTick(setNativeInputValue)\n        }\n      )\n\n      watch(\n        () => computedInputValue.value,\n        () => {\n          nextTick(resizeTextarea)\n          nextTick(setNativeInputValue)\n          if (props.validateEvent) {\n            formItem?.validate?.('change').catch(NOOP)\n          }\n        }\n      )\n\n      const setFocus = (focus: boolean) => {\n        isFocus.value = focus\n      }\n\n      return {\n        containerCls,\n        containerStyle,\n        bindOthers,\n        inputNs,\n        textareaNs,\n        inputWrapperCls,\n        textareaWrapperCls,\n        eyeStatus,\n        computedInputValue,\n        inputType,\n        inputRef,\n        textareaCalcStyle,\n        textareaRef,\n        mergeDisable,\n        currentValueLength,\n        isOverLimit,\n        showInputInnerSuffixArea,\n\n        hasPrefixIcon,\n        hasSuffixIcon,\n        hasPasswordIcon,\n        hasClearableIcon,\n        handleClear,\n        handleMouseEnter,\n        handleMouseLeave,\n        handleInput,\n        handleChange,\n        handleFocus,\n        handleBlur,\n        handleEye,\n        manualInputFocus,\n        setFocus,\n        isFocus,\n        onCompositionstart,\n        onCompositionupdate,\n        onCompositionend\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"containerCls\" :style=\"containerStyle\">\n    <!-- input -->\n    <template v-if=\"type === 'text'\">\n      <div v-if=\"$slots['prepend']\" :class=\"[`${inputNs}__group-prepend`]\">\n        <slot name=\"prepend\"></slot>\n      </div>\n      <div\n        :class=\"inputWrapperCls\"\n        @click=\"manualInputFocus\"\n        @mouseenter=\"handleMouseEnter\"\n        @mouseleave=\"handleMouseLeave\"\n      >\n        <span v-if=\"hasPrefixIcon\" :class=\"[`${inputNs}__prefix`]\">\n          <span :class=\"[`${inputNs}__icon`]\">\n            <slot name=\"prefix-icon\">\n              <component :is=\"prefixIcon\"></component>\n            </slot>\n          </span>\n        </span>\n        <input\n          ref=\"inputRef\"\n          v-bind=\"bindOthers\"\n          :class=\"[`${inputNs}__inner`]\"\n          :placeholder=\"placeholder\"\n          :disabled=\"mergeDisable\"\n          :type=\"inputType\"\n          :readonly=\"readonly\"\n          :autocomplete=\"autocomplete\"\n          :form=\"form\"\n          :maxlength=\"maxlength\"\n          @input=\"handleInput\"\n          @change=\"handleChange\"\n          @focus=\"handleFocus\"\n          @blur=\"handleBlur\"\n          @compositionstart=\"onCompositionstart\"\n          @compositionupdate=\"onCompositionupdate\"\n          @compositionend=\"onCompositionend\"\n        />\n        <span v-if=\"showInputInnerSuffixArea\" :class=\"[`${inputNs}__suffix`]\">\n          <span\n            v-if=\"hasPasswordIcon\"\n            :class=\"[`${inputNs}__icon`, `${inputNs}__eye`]\"\n            @click.stop=\"handleEye\"\n          >\n            <BnIconView v-if=\"eyeStatus\" />\n            <BnIconHide v-else />\n          </span>\n          <span\n            v-if=\"hasClearableIcon\"\n            :class=\"[`${inputNs}__icon`, `${inputNs}__clearable`]\"\n            @click=\"handleClear\"\n          >\n            <BnIconCloseFill color=\"#d9dbe2\" />\n          </span>\n          <span\n            v-if=\"!showPassword && hasSuffixIcon && !hasClearableIcon\"\n            :class=\"[`${inputNs}__icon`]\"\n          >\n            <slot name=\"suffix-icon\">\n              <component :is=\"suffixIcon\"></component>\n            </slot>\n          </span>\n          <span v-if=\"showWordLimit\" :class=\"[`${inputNs}__count`]\">\n            {{ currentValueLength }} / {{ maxlength }}\n          </span>\n        </span>\n      </div>\n      <div v-if=\"$slots['append']\" :class=\"[`${inputNs}__group-append`]\">\n        <slot name=\"append\"></slot>\n      </div>\n    </template>\n\n    <!-- textarea -->\n    <template v-if=\"type === 'textarea'\">\n      <div\n        :class=\"textareaWrapperCls\"\n        @mouseenter=\"handleMouseEnter\"\n        @mouseleave=\"handleMouseLeave\"\n      >\n        <textarea\n          ref=\"textareaRef\"\n          v-bind=\"bindOthers\"\n          :class=\"[`${textareaNs}__inner`]\"\n          :disabled=\"mergeDisable\"\n          :style=\"textareaCalcStyle\"\n          :placeholder=\"placeholder\"\n          :readonly=\"readonly\"\n          :form=\"form\"\n          :maxlength=\"maxlength\"\n          @input=\"handleInput\"\n          @change=\"handleChange\"\n          @focus=\"handleFocus\"\n          @blur=\"handleBlur\"\n          @compositionstart=\"onCompositionstart\"\n          @compositionupdate=\"onCompositionupdate\"\n          @compositionend=\"onCompositionend\"\n        />\n\n        <span v-if=\"showWordLimit\" :class=\"[`${textareaNs}__count`]\">\n          {{ currentValueLength }} / {{ maxlength }}\n        </span>\n      </div>\n    </template>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Input from './src/input.vue'\n\nexport const Input = withInstall(_Input)\n\nexport type InputInstance = InstanceType<typeof _Input>\nexport default Input\n","<script lang=\"tsx\">\n  import type { PropType, CSSProperties } from 'vue'\n  import { defineComponent, computed, Fragment, Comment } from 'vue'\n  import { isNumber } from '../../../utils/is'\n  import { getNamespace, getComponentNamespace } from '../../../utils/global-config'\n  import { getAllElements } from '../../../utils/vue-utils'\n\n  type SpaceSize = number | 'mini' | 'small' | 'medium' | 'large'\n\n  export default defineComponent({\n    name: getComponentNamespace('Space'),\n    props: {\n      direction: {\n        type: String as PropType<'horizontal' | 'vertical'>,\n        default: 'horizontal'\n      },\n      size: {\n        type: [Number, String] as PropType<number | 'mini' | 'small' | 'medium' | 'large'>,\n        default: 'small'\n      },\n      align: {\n        type: String as PropType<'start' | 'end' | 'center' | 'baseline'>,\n        default: 'center'\n      },\n      fill: {\n        type: Boolean,\n        default: false\n      }\n    },\n    setup(props, { slots }) {\n      const ns = getNamespace('space')\n\n      const cls = computed(() => [\n        ns,\n        `${ns}__${props.direction}`,\n        props.fill && `is-fill`,\n        `${ns}__${props.direction}-${props.align}`\n      ])\n\n      function getMargin(size: SpaceSize) {\n        if (isNumber(size)) {\n          return size\n        }\n        switch (size) {\n          case 'mini':\n            return 4\n          case 'small':\n            return 8\n          case 'medium':\n            return 16\n          case 'large':\n            return 24\n          default:\n            return 8\n        }\n      }\n\n      const getMarginStyle = (isLast: boolean): CSSProperties => {\n        const style: CSSProperties = {}\n        if (isLast) return style\n        const marginRight = `${getMargin(props.size)}px`\n        const marginBottom = `${getMargin(props.size)}px`\n\n        if (props.direction === 'horizontal') {\n          style.marginRight = marginRight\n        }\n        if (props.direction === 'vertical') {\n          style.marginBottom = marginBottom\n        }\n\n        return style\n      }\n\n      return () => {\n        const children = getAllElements(slots.default?.(), true).filter(\n          (item) => item.type !== Comment\n        )\n\n        return (\n          <div class={cls.value}>\n            {children.map((child, index) => {\n              const shouldRenderSplit = slots.split && index > 0\n              return (\n                <Fragment key={`space-item-${index}`}>\n                  {shouldRenderSplit && (\n                    <div class={`${ns}__split`} style={getMarginStyle(false)}>\n                      {slots.split?.()}\n                    </div>\n                  )}\n                  <div class={`${ns}__item`} style={getMarginStyle(index === children.length - 1)}>\n                    {child}\n                  </div>\n                </Fragment>\n              )\n            })}\n          </div>\n        )\n      }\n    }\n  })\n</script>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Space from './src/space.vue'\n\nexport const Space = withInstall(_Space)\n\nexport type SpaceInstance = InstanceType<typeof _Space>\nexport default Space\n","import type { PropType, ExtractPropTypes } from 'vue'\n\nexport const switchProps = {\n  modelValue: {\n    type: [Boolean, String, Number],\n    default: false\n  },\n  value: {\n    type: [Boolean, String, Number],\n    default: false\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  width: {\n    type: [String, Number],\n    default: ''\n  },\n  activeText: {\n    type: String,\n    default: ''\n  },\n  inactiveText: {\n    type: String,\n    default: ''\n  },\n  activeColor: {\n    type: String,\n    default: undefined\n  },\n  inactiveColor: {\n    type: String,\n    default: undefined\n  },\n  trueValue: {\n    type: [Boolean, String, Number],\n    default: true\n  },\n  falseValue: {\n    type: [Boolean, String, Number],\n    default: false\n  },\n  beforeChange: {\n    type: Function as PropType<() => Promise<boolean> | boolean>\n  },\n  type: {\n    type: String as PropType<'line' | 'circle'>,\n    default: 'circle'\n  },\n  inlinePrompt: {\n    type: Boolean,\n    default: false\n  },\n  name: {\n    type: String,\n    default: ''\n  },\n  validateEvent: {\n    type: Boolean,\n    default: true\n  }\n}\n\nexport type SwitchProps = ExtractPropTypes<typeof switchProps>\n","<script lang=\"ts\">\n  import { computed, defineComponent, nextTick, onMounted, ref, watch } from 'vue'\n  import type { CSSProperties, StyleValue } from 'vue'\n  import { addUnit, NOOP } from '../../../shared/utils'\n  import { BnIconLoading } from '../../icon'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { isBoolean, isPromise } from '../../../utils/is'\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { switchProps } from './props'\n\n  export default defineComponent({\n    name: getComponentNamespace('Switch'),\n    components: {\n      BnIconLoading\n    },\n    props: switchProps,\n    emits: ['update:modelValue', 'input', 'change'],\n    setup(props, { emit }) {\n      const ns = getNamespace('switch')\n      const inputRef = ref<HTMLInputElement>()\n      const { formItem } = useFormItem()\n      const isLoading = ref(false)\n\n      const cls = computed(() => [\n        ns,\n        checked.value && 'is-checked',\n        mergeDisabled.value && 'is-disabled'\n      ])\n\n      const coreCls = computed(() => [`${ns}__core`, `${ns}__core-${props.type}`])\n\n      const blockCls = computed(() => [`${ns}__block`, `${ns}__block-${props.type}`])\n\n      // moduleValue value 控制模式\n      const isControlled = ref(props.modelValue !== false)\n      // TODO: 后期和form表单关联\n      const mergeDisabled = computed(() => props.disabled)\n\n      // 用这个值控制checkbox状态\n      const actualValue = computed(() => {\n        return isControlled.value ? props.modelValue : props.value\n      })\n\n      // switch状态控制\n      const checked = computed(() => actualValue.value === props.trueValue)\n\n      const inlineLabel = computed(() => (checked.value ? props.activeText : props.inactiveText))\n\n      const coreStyle = computed<CSSProperties>(() => {\n        const style: StyleValue = {\n          width: addUnit(props.width),\n          '--bn-switch-inactive-color': props.inactiveColor,\n          '--bn-switch-active-color': props.activeColor\n        }\n        return style\n      })\n\n      const switchValue = () => {\n        if (mergeDisabled.value) return\n\n        const { beforeChange } = props\n        if (!beforeChange) {\n          handleChange()\n          return\n        }\n        const beforeChangeRes = beforeChange()\n\n        if (isPromise(beforeChangeRes)) {\n          isLoading.value = true\n          beforeChangeRes\n            .then((value: boolean) => {\n              value && handleChange()\n            })\n            .finally(() => {\n              isLoading.value = false\n            })\n          return\n        }\n        if (isBoolean(beforeChangeRes)) {\n          beforeChangeRes && handleChange()\n        }\n      }\n\n      const handleChange = () => {\n        const val = checked.value ? props.falseValue : props.trueValue\n        emit('update:modelValue', val)\n        emit('input', val)\n        emit('change', val)\n        nextTick(() => {\n          inputRef.value!.checked = checked.value\n        })\n      }\n\n      watch(checked, (val) => {\n        inputRef.value!.checked = val\n        if (props.validateEvent) {\n          formItem?.validate?.('change').catch(NOOP)\n        }\n      })\n\n      watch(\n        () => props.modelValue,\n        () => {\n          isControlled.value = true\n        }\n      )\n\n      watch(\n        () => props.value,\n        () => {\n          isControlled.value = false\n        }\n      )\n\n      onMounted(() => {\n        if (![props.trueValue, props.falseValue].includes(actualValue.value)) {\n          emit('update:modelValue', props.falseValue)\n          emit('input', props.falseValue)\n          emit('change', props.falseValue)\n        }\n      })\n\n      return {\n        ns,\n        cls,\n        coreStyle,\n        coreCls,\n        blockCls,\n        mergeDisabled,\n        switchValue,\n        handleChange,\n        checked,\n        inputRef,\n        isLoading,\n        inlineLabel\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\" @click.prevent=\"switchValue\">\n    <input\n      ref=\"inputRef\"\n      :class=\"[`${ns}__input`]\"\n      type=\"checkbox\"\n      role=\"switch\"\n      :aria-checked=\"checked\"\n      :aria-disabled=\"mergeDisabled\"\n      :name=\"name\"\n      :true-value=\"trueValue\"\n      :false-value=\"falseValue\"\n      :disabled=\"mergeDisabled\"\n      @change=\"handleChange\"\n      @keydown.enter=\"switchValue\"\n    />\n    <span\n      v-if=\"!inlinePrompt\"\n      :class=\"[{ 'is-active': !checked }, `${ns}__label ${ns}__label--left`]\"\n    >\n      {{ inactiveText }}\n    </span>\n    <span :class=\"coreCls\" :style=\"coreStyle\">\n      <span v-if=\"inlinePrompt && type !== 'line'\" :class=\"[`${ns}__inline`]\">\n        <slot name=\"inline\" :checked=\"checked\"\n          ><span class=\"is-text\">{{ inlineLabel }}</span></slot\n        >\n      </span>\n      <span :class=\"blockCls\">\n        <slot v-if=\"isLoading\" name=\"loading\">\n          <BnIconLoading :size=\"14\" :style=\"{ color: 'var(--bn-switch-active-color)' }\" />\n        </slot>\n      </span>\n    </span>\n    <span\n      v-if=\"!inlinePrompt\"\n      :class=\"[`${ns}__label ${ns}__label--right`, { 'is-active': checked }]\"\n    >\n      {{ activeText }}\n    </span>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Switch from './src/switch.vue'\n\nexport const Switch = withInstall(_Switch)\nexport type SwitchInstance = InstanceType<typeof _Switch>\nexport default Switch\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport { definePropType } from '../../../utils/vue-utils'\nimport { isArray, isBoolean, isString } from '../../../utils/is'\nimport type { FormItemProp } from './form-item'\nimport type { FormRules } from './types'\n\nexport const formProps = {\n  model: {\n    type: Object\n  },\n  rules: {\n    type: definePropType<FormRules>(Object)\n  },\n  labelPosition: {\n    type: String as PropType<'left' | 'right' | 'top'>,\n    default: 'right'\n  },\n  requireAsteriskPosition: {\n    type: String,\n    default: 'left'\n  },\n  labelWidth: {\n    type: [String, Number],\n    default: ''\n  },\n  showMessage: {\n    type: Boolean,\n    default: true\n  },\n  validateOnRuleChange: {\n    type: Boolean,\n    default: true\n  },\n  // 行内表单\n  inline: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport const formEmits = {\n  validate: (prop: FormItemProp, isValid: boolean, message: string) =>\n    (isArray(prop) || isString(prop)) && isBoolean(isValid) && isString(message)\n}\n\nexport type FormEmits = typeof formEmits\n","import type { Arrayable } from '../../../utils/types'\nimport type { FormItemContext } from './types'\nimport type { FormItemProp } from './form-item'\n\nexport const filterFields = (fields: FormItemContext[], props: Arrayable<FormItemProp>) => {\n  return props.length > 0\n    ? fields.filter((field) => field.prop && props.includes(field.prop as any))\n    : fields\n}\n","<script lang=\"ts\">\n  import { computed, defineComponent, provide, reactive, toRefs, watch } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import type { Arrayable } from '../../../utils/types'\n  import { formContextKey } from './constants'\n\n  import { formProps } from './form'\n  import { filterFields } from './utils'\n\n  import type { FormItemProp } from './form-item'\n  import type {\n    FormContext,\n    FormItemContext,\n    FormValidateCallback,\n    FormValidateFailure,\n    FormValidationResult\n  } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Form'),\n    props: formProps,\n    emits: ['validate', 'submit'],\n    setup(props, { emit }) {\n      const ns = getNamespace('form')\n      const cls = computed(() => [\n        ns,\n        `${ns}--${props.labelPosition}`,\n        props.inline && `${ns}--inline`\n      ])\n\n      const fields: FormItemContext[] = []\n\n      // 将form-item组件挂载的验证对象保存到form中，方便通过ref直接调用验证器\n      const addField: FormContext['addField'] = (field) => {\n        fields.push(field)\n      }\n\n      // 移除校验对象 在form-item组件销毁时调用\n      const removeField: FormContext['removeField'] = (field) => {\n        if (field.prop) {\n          fields.splice(fields.indexOf(field), 1)\n        }\n      }\n\n      // 重制表单验证对象\n      const resetFields: FormContext['resetFields'] = (properties = []) => {\n        if (!props.model) {\n          console.error('请传入数据源，绑定到form上的model属性。')\n          return\n        }\n        filterFields(fields, properties).forEach((field) => field.resetField())\n      }\n\n      // 请空表单验证对象\n      const clearValidate: FormContext['clearValidate'] = (props = []) => {\n        filterFields(fields, props).forEach((field) => field.clearValidate())\n      }\n\n      const isValidatable = computed(() => {\n        const hasModel = !!props.model\n        if (!hasModel) {\n          console.log('请传入form上model数据')\n        }\n        return hasModel\n      })\n\n      // 通过props来筛选可以进行验证表单对象\n      const obtainValidateFields = (props: Arrayable<FormItemProp>) => {\n        if (fields.length === 0) return []\n        const filteredFields = filterFields(fields, props)\n        if (!filteredFields.length) {\n          console.error('请传入正确的校验属性，检查form上的rules对象和form-item上的prop属性')\n          return []\n        }\n        return filteredFields\n      }\n\n      const doValidateField = async (props: Arrayable<FormItemProp>): Promise<boolean> => {\n        if (!isValidatable.value) return false\n\n        const fields = obtainValidateFields(props)\n        // 没有验证规则 直接通过验证\n        if (fields.length === 0) return true\n\n        let validationErrors: any = {}\n        for (const field of fields) {\n          try {\n            // 全部都需要验证 不指定trigger类型\n            await field.validate('')\n          } catch (fields) {\n            // 合并所有的验证错误\n            validationErrors = {\n              ...validationErrors,\n              ...(fields as any)\n            }\n          }\n        }\n\n        if (Object.keys(validationErrors).length === 0) return true\n        return Promise.reject(validationErrors)\n      }\n\n      const validateField: FormContext['validateField'] = async (modelProps = [], callback) => {\n        try {\n          const result = await doValidateField(modelProps)\n          if (result === true) {\n            callback?.(result)\n          }\n          return result\n        } catch (e) {\n          // 验证失败\n          if (e instanceof Error) throw e\n          callback?.(false, e)\n          return false\n        }\n      }\n\n      // 验证器，可给外部提供这一方法，直接验证保存在fields中的验证对象\n      const validate = async (callback?: FormValidateCallback): FormValidationResult =>\n        validateField(undefined, callback)\n\n      watch(\n        () => props.rules,\n        () => {\n          if (props.validateOnRuleChange) {\n            validate().catch((error: FormValidateFailure) => {\n              console.log(error)\n            })\n          }\n        },\n        { deep: true }\n      )\n\n      const labelWidth = computed(() => {\n        const labelWidth = props.labelWidth\n        return labelWidth\n      })\n\n      // todo 待完善\n      const handleSubmit = (e: Event) => {\n        validate().then((res) => {\n          if (res) {\n            emit('submit', e)\n          }\n        })\n      }\n\n      provide(\n        formContextKey,\n        reactive({\n          ...toRefs(props),\n          emit,\n          resetFields,\n          clearValidate,\n          validateField,\n          addField,\n          removeField,\n\n          labelWidth\n        })\n      )\n\n      return {\n        cls,\n        validate,\n        resetFields,\n        validateField,\n        clearValidate,\n        handleSubmit\n      }\n    },\n    expose: ['validate', 'resetFields', 'validateField', 'clearValidate']\n  })\n</script>\n\n<template>\n  <form :class=\"cls\" @submit.prevent=\"handleSubmit\">\n    <slot></slot>\n  </form>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Form from './src/form.vue'\n\nexport const Form = withInstall(_Form)\nexport type FormInstance = InstanceType<typeof _Form>\nexport default Form\n","function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n\n  _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction _construct(Parent, args, Class) {\n  if (_isNativeReflectConstruct()) {\n    _construct = Reflect.construct.bind();\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) _setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !_isNativeFunction(Class)) return Class;\n\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n\n      _cache.set(Class, Wrapper);\n    }\n\n    function Wrapper() {\n      return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n    }\n\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return _setPrototypeOf(Wrapper, Class);\n  };\n\n  return _wrapNativeSuper(Class);\n}\n\n/* eslint no-console:0 */\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n  warning = function warning(type, errors) {\n    if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n      if (errors.every(function (e) {\n        return typeof e === 'string';\n      })) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\n\nfunction convertFieldsError(errors) {\n  if (!errors || !errors.length) return null;\n  var fields = {};\n  errors.forEach(function (error) {\n    var field = error.field;\n    fields[field] = fields[field] || [];\n    fields[field].push(error);\n  });\n  return fields;\n}\nfunction format(template) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  var i = 0;\n  var len = args.length;\n\n  if (typeof template === 'function') {\n    return template.apply(null, args);\n  }\n\n  if (typeof template === 'string') {\n    var str = template.replace(formatRegExp, function (x) {\n      if (x === '%%') {\n        return '%';\n      }\n\n      if (i >= len) {\n        return x;\n      }\n\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n\n        case '%d':\n          return Number(args[i++]);\n\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n\n          break;\n\n        default:\n          return x;\n      }\n    });\n    return str;\n  }\n\n  return template;\n}\n\nfunction isNativeStringType(type) {\n  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n  var results = [];\n  var total = 0;\n  var arrLength = arr.length;\n\n  function count(errors) {\n    results.push.apply(results, errors || []);\n    total++;\n\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n\n  arr.forEach(function (a) {\n    func(a, count);\n  });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n  var index = 0;\n  var arrLength = arr.length;\n\n  function next(errors) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n\n    var original = index;\n    index = index + 1;\n\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n\n  next([]);\n}\n\nfunction flattenObjArr(objArr) {\n  var ret = [];\n  Object.keys(objArr).forEach(function (k) {\n    ret.push.apply(ret, objArr[k] || []);\n  });\n  return ret;\n}\n\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n  _inheritsLoose(AsyncValidationError, _Error);\n\n  function AsyncValidationError(errors, fields) {\n    var _this;\n\n    _this = _Error.call(this, 'Async Validation Error') || this;\n    _this.errors = errors;\n    _this.fields = fields;\n    return _this;\n  }\n\n  return AsyncValidationError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nfunction asyncMap(objArr, option, func, callback, source) {\n  if (option.first) {\n    var _pending = new Promise(function (resolve, reject) {\n      var next = function next(errors) {\n        callback(errors);\n        return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n      };\n\n      var flattenArr = flattenObjArr(objArr);\n      asyncSerialArray(flattenArr, func, next);\n    });\n\n    _pending[\"catch\"](function (e) {\n      return e;\n    });\n\n    return _pending;\n  }\n\n  var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n  var objArrKeys = Object.keys(objArr);\n  var objArrLength = objArrKeys.length;\n  var total = 0;\n  var results = [];\n  var pending = new Promise(function (resolve, reject) {\n    var next = function next(errors) {\n      results.push.apply(results, errors);\n      total++;\n\n      if (total === objArrLength) {\n        callback(results);\n        return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n      }\n    };\n\n    if (!objArrKeys.length) {\n      callback(results);\n      resolve(source);\n    }\n\n    objArrKeys.forEach(function (key) {\n      var arr = objArr[key];\n\n      if (firstFields.indexOf(key) !== -1) {\n        asyncSerialArray(arr, func, next);\n      } else {\n        asyncParallelArray(arr, func, next);\n      }\n    });\n  });\n  pending[\"catch\"](function (e) {\n    return e;\n  });\n  return pending;\n}\n\nfunction isErrorObj(obj) {\n  return !!(obj && obj.message !== undefined);\n}\n\nfunction getValue(value, path) {\n  var v = value;\n\n  for (var i = 0; i < path.length; i++) {\n    if (v == undefined) {\n      return v;\n    }\n\n    v = v[path[i]];\n  }\n\n  return v;\n}\n\nfunction complementError(rule, source) {\n  return function (oe) {\n    var fieldValue;\n\n    if (rule.fullFields) {\n      fieldValue = getValue(source, rule.fullFields);\n    } else {\n      fieldValue = source[oe.field || rule.fullField];\n    }\n\n    if (isErrorObj(oe)) {\n      oe.field = oe.field || rule.fullField;\n      oe.fieldValue = fieldValue;\n      return oe;\n    }\n\n    return {\n      message: typeof oe === 'function' ? oe() : oe,\n      fieldValue: fieldValue,\n      field: oe.field || rule.fullField\n    };\n  };\n}\nfunction deepMerge(target, source) {\n  if (source) {\n    for (var s in source) {\n      if (source.hasOwnProperty(s)) {\n        var value = source[s];\n\n        if (typeof value === 'object' && typeof target[s] === 'object') {\n          target[s] = _extends({}, target[s], value);\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n\n  return target;\n}\n\nvar required$1 = function required(rule, value, source, errors, options, type) {\n  if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n    errors.push(format(options.messages.required, rule.fullField));\n  }\n};\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\n\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(format(options.messages.whitespace, rule.fullField));\n  }\n};\n\n// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nvar getUrlRegex = (function () {\n  if (urlReg) {\n    return urlReg;\n  }\n\n  var word = '[a-fA-F\\\\d:]';\n\n  var b = function b(options) {\n    return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\" + word + \")|(?<=\" + word + \")(?=\\\\s|$))\" : '';\n  };\n\n  var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n  var v6seg = '[a-fA-F\\\\d]{1,4}';\n  var v6 = (\"\\n(?:\\n(?:\" + v6seg + \":){7}(?:\" + v6seg + \"|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\\n(?:\" + v6seg + \":){6}(?:\" + v4 + \"|:\" + v6seg + \"|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4\\n(?:\" + v6seg + \":){5}(?::\" + v4 + \"|(?::\" + v6seg + \"){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4\\n(?:\" + v6seg + \":){4}(?:(?::\" + v6seg + \"){0,1}:\" + v4 + \"|(?::\" + v6seg + \"){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4\\n(?:\" + v6seg + \":){3}(?:(?::\" + v6seg + \"){0,2}:\" + v4 + \"|(?::\" + v6seg + \"){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4\\n(?:\" + v6seg + \":){2}(?:(?::\" + v6seg + \"){0,3}:\" + v4 + \"|(?::\" + v6seg + \"){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4\\n(?:\" + v6seg + \":){1}(?:(?::\" + v6seg + \"){0,4}:\" + v4 + \"|(?::\" + v6seg + \"){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4\\n(?::(?:(?::\" + v6seg + \"){0,5}:\" + v4 + \"|(?::\" + v6seg + \"){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4\\n)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1\\n\").replace(/\\s*\\/\\/.*$/gm, '').replace(/\\n/g, '').trim(); // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n\n  var v46Exact = new RegExp(\"(?:^\" + v4 + \"$)|(?:^\" + v6 + \"$)\");\n  var v4exact = new RegExp(\"^\" + v4 + \"$\");\n  var v6exact = new RegExp(\"^\" + v6 + \"$\");\n\n  var ip = function ip(options) {\n    return options && options.exact ? v46Exact : new RegExp(\"(?:\" + b(options) + v4 + b(options) + \")|(?:\" + b(options) + v6 + b(options) + \")\", 'g');\n  };\n\n  ip.v4 = function (options) {\n    return options && options.exact ? v4exact : new RegExp(\"\" + b(options) + v4 + b(options), 'g');\n  };\n\n  ip.v6 = function (options) {\n    return options && options.exact ? v6exact : new RegExp(\"\" + b(options) + v6 + b(options), 'g');\n  };\n\n  var protocol = \"(?:(?:[a-z]+:)?//)\";\n  var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n  var ipv4 = ip.v4().source;\n  var ipv6 = ip.v6().source;\n  var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n  var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n  var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n  var port = '(?::\\\\d{2,5})?';\n  var path = '(?:[/?#][^\\\\s\"]*)?';\n  var regex = \"(?:\" + protocol + \"|www\\\\.)\" + auth + \"(?:localhost|\" + ipv4 + \"|\" + ipv6 + \"|\" + host + domain + tld + \")\" + port + path;\n  urlReg = new RegExp(\"(?:^\" + regex + \"$)\", 'i');\n  return urlReg;\n});\n\n/* eslint max-len:0 */\n\nvar pattern$2 = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n  // url: new RegExp(\n  //   '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n  //   'i',\n  // ),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n  integer: function integer(value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  \"float\": function float(value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array: function array(value) {\n    return Array.isArray(value);\n  },\n  regexp: function regexp(value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date: function date(value) {\n    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n  },\n  number: function number(value) {\n    if (isNaN(value)) {\n      return false;\n    }\n\n    return typeof value === 'number';\n  },\n  object: function object(value) {\n    return typeof value === 'object' && !types.array(value);\n  },\n  method: function method(value) {\n    return typeof value === 'function';\n  },\n  email: function email(value) {\n    return typeof value === 'string' && value.length <= 320 && !!value.match(pattern$2.email);\n  },\n  url: function url(value) {\n    return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n  },\n  hex: function hex(value) {\n    return typeof value === 'string' && !!value.match(pattern$2.hex);\n  }\n};\n\nvar type$1 = function type(rule, value, source, errors, options) {\n  if (rule.required && value === undefined) {\n    required$1(rule, value, source, errors, options);\n    return;\n  }\n\n  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n  var ruleType = rule.type;\n\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n    } // straight typeof check\n\n  } else if (ruleType && typeof value !== rule.type) {\n    errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n  }\n};\n\nvar range = function range(rule, value, source, errors, options) {\n  var len = typeof rule.len === 'number';\n  var min = typeof rule.min === 'number';\n  var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字（补充平面Supplementary Plane）\n\n  var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  var val = value;\n  var key = null;\n  var num = typeof value === 'number';\n  var str = typeof value === 'string';\n  var arr = Array.isArray(value);\n\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  } // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n\n\n  if (!key) {\n    return false;\n  }\n\n  if (arr) {\n    val = value.length;\n  }\n\n  if (str) {\n    // 处理码点大于U+010000的文字length属性不准确的bug，如\"𠮷𠮷𠮷\".lenght !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n  }\n};\n\nvar ENUM$1 = 'enum';\n\nvar enumerable$1 = function enumerable(rule, value, source, errors, options) {\n  rule[ENUM$1] = Array.isArray(rule[ENUM$1]) ? rule[ENUM$1] : [];\n\n  if (rule[ENUM$1].indexOf(value) === -1) {\n    errors.push(format(options.messages[ENUM$1], rule.fullField, rule[ENUM$1].join(', ')));\n  }\n};\n\nvar pattern$1 = function pattern(rule, value, source, errors, options) {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n\n      if (!rule.pattern.test(value)) {\n        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    } else if (typeof rule.pattern === 'string') {\n      var _pattern = new RegExp(rule.pattern);\n\n      if (!_pattern.test(value)) {\n        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    }\n  }\n};\n\nvar rules = {\n  required: required$1,\n  whitespace: whitespace,\n  type: type$1,\n  range: range,\n  \"enum\": enumerable$1,\n  pattern: pattern$1\n};\n\nvar string = function string(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options, 'string');\n\n    if (!isEmptyValue(value, 'string')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n      rules.pattern(rule, value, source, errors, options);\n\n      if (rule.whitespace === true) {\n        rules.whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n\n  callback(errors);\n};\n\nvar method = function method(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar number = function number(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (value === '') {\n      value = undefined;\n    }\n\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar _boolean = function _boolean(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar regexp = function regexp(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (!isEmptyValue(value)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar integer = function integer(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar array = function array(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if ((value === undefined || value === null) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options, 'array');\n\n    if (value !== undefined && value !== null) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar object = function object(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar ENUM = 'enum';\n\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (value !== undefined) {\n      rules[ENUM](rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar pattern = function pattern(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (!isEmptyValue(value, 'string')) {\n      rules.pattern(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar date = function date(rule, value, callback, source, options) {\n  // console.log('integer rule called %j', rule);\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value);\n\n  if (validate) {\n    if (isEmptyValue(value, 'date') && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n\n    if (!isEmptyValue(value, 'date')) {\n      var dateObject;\n\n      if (value instanceof Date) {\n        dateObject = value;\n      } else {\n        dateObject = new Date(value);\n      }\n\n      rules.type(rule, dateObject, source, errors, options);\n\n      if (dateObject) {\n        rules.range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n\n  callback(errors);\n};\n\nvar required = function required(rule, value, callback, source, options) {\n  var errors = [];\n  var type = Array.isArray(value) ? 'array' : typeof value;\n  rules.required(rule, value, source, errors, options, type);\n  callback(errors);\n};\n\nvar type = function type(rule, value, callback, source, options) {\n  var ruleType = rule.type;\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value, ruleType) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options, ruleType);\n\n    if (!isEmptyValue(value, ruleType)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n\n  callback(errors);\n};\n\nvar any = function any(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n\n    rules.required(rule, value, source, errors, options);\n  }\n\n  callback(errors);\n};\n\nvar validators = {\n  string: string,\n  method: method,\n  number: number,\n  \"boolean\": _boolean,\n  regexp: regexp,\n  integer: integer,\n  \"float\": floatFn,\n  array: array,\n  object: object,\n  \"enum\": enumerable,\n  pattern: pattern,\n  date: date,\n  url: type,\n  hex: type,\n  email: type,\n  required: required,\n  any: any\n};\n\nfunction newMessages() {\n  return {\n    \"default\": 'Validation error on field %s',\n    required: '%s is required',\n    \"enum\": '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid'\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      \"boolean\": '%s is not a %s',\n      integer: '%s is not an %s',\n      \"float\": '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s'\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters'\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s'\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length'\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s'\n    },\n    clone: function clone() {\n      var cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    }\n  };\n}\nvar messages = newMessages();\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\n\nvar Schema = /*#__PURE__*/function () {\n  // ========================= Static =========================\n  // ======================== Instance ========================\n  function Schema(descriptor) {\n    this.rules = null;\n    this._messages = messages;\n    this.define(descriptor);\n  }\n\n  var _proto = Schema.prototype;\n\n  _proto.define = function define(rules) {\n    var _this = this;\n\n    if (!rules) {\n      throw new Error('Cannot configure a schema with no rules');\n    }\n\n    if (typeof rules !== 'object' || Array.isArray(rules)) {\n      throw new Error('Rules must be an object');\n    }\n\n    this.rules = {};\n    Object.keys(rules).forEach(function (name) {\n      var item = rules[name];\n      _this.rules[name] = Array.isArray(item) ? item : [item];\n    });\n  };\n\n  _proto.messages = function messages(_messages) {\n    if (_messages) {\n      this._messages = deepMerge(newMessages(), _messages);\n    }\n\n    return this._messages;\n  };\n\n  _proto.validate = function validate(source_, o, oc) {\n    var _this2 = this;\n\n    if (o === void 0) {\n      o = {};\n    }\n\n    if (oc === void 0) {\n      oc = function oc() {};\n    }\n\n    var source = source_;\n    var options = o;\n    var callback = oc;\n\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n\n    if (!this.rules || Object.keys(this.rules).length === 0) {\n      if (callback) {\n        callback(null, source);\n      }\n\n      return Promise.resolve(source);\n    }\n\n    function complete(results) {\n      var errors = [];\n      var fields = {};\n\n      function add(e) {\n        if (Array.isArray(e)) {\n          var _errors;\n\n          errors = (_errors = errors).concat.apply(_errors, e);\n        } else {\n          errors.push(e);\n        }\n      }\n\n      for (var i = 0; i < results.length; i++) {\n        add(results[i]);\n      }\n\n      if (!errors.length) {\n        callback(null, source);\n      } else {\n        fields = convertFieldsError(errors);\n        callback(errors, fields);\n      }\n    }\n\n    if (options.messages) {\n      var messages$1 = this.messages();\n\n      if (messages$1 === messages) {\n        messages$1 = newMessages();\n      }\n\n      deepMerge(messages$1, options.messages);\n      options.messages = messages$1;\n    } else {\n      options.messages = this.messages();\n    }\n\n    var series = {};\n    var keys = options.keys || Object.keys(this.rules);\n    keys.forEach(function (z) {\n      var arr = _this2.rules[z];\n      var value = source[z];\n      arr.forEach(function (r) {\n        var rule = r;\n\n        if (typeof rule.transform === 'function') {\n          if (source === source_) {\n            source = _extends({}, source);\n          }\n\n          value = source[z] = rule.transform(value);\n        }\n\n        if (typeof rule === 'function') {\n          rule = {\n            validator: rule\n          };\n        } else {\n          rule = _extends({}, rule);\n        } // Fill validator. Skip if nothing need to validate\n\n\n        rule.validator = _this2.getValidationMethod(rule);\n\n        if (!rule.validator) {\n          return;\n        }\n\n        rule.field = z;\n        rule.fullField = rule.fullField || z;\n        rule.type = _this2.getType(rule);\n        series[z] = series[z] || [];\n        series[z].push({\n          rule: rule,\n          value: value,\n          source: source,\n          field: z\n        });\n      });\n    });\n    var errorFields = {};\n    return asyncMap(series, options, function (data, doIt) {\n      var rule = data.rule;\n      var deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField === 'object');\n      deep = deep && (rule.required || !rule.required && data.value);\n      rule.field = data.field;\n\n      function addFullField(key, schema) {\n        return _extends({}, schema, {\n          fullField: rule.fullField + \".\" + key,\n          fullFields: rule.fullFields ? [].concat(rule.fullFields, [key]) : [key]\n        });\n      }\n\n      function cb(e) {\n        if (e === void 0) {\n          e = [];\n        }\n\n        var errorList = Array.isArray(e) ? e : [e];\n\n        if (!options.suppressWarning && errorList.length) {\n          Schema.warning('async-validator:', errorList);\n        }\n\n        if (errorList.length && rule.message !== undefined) {\n          errorList = [].concat(rule.message);\n        } // Fill error info\n\n\n        var filledErrors = errorList.map(complementError(rule, source));\n\n        if (options.first && filledErrors.length) {\n          errorFields[rule.field] = 1;\n          return doIt(filledErrors);\n        }\n\n        if (!deep) {\n          doIt(filledErrors);\n        } else {\n          // if rule is required but the target object\n          // does not exist fail at the rule level and don't\n          // go deeper\n          if (rule.required && !data.value) {\n            if (rule.message !== undefined) {\n              filledErrors = [].concat(rule.message).map(complementError(rule, source));\n            } else if (options.error) {\n              filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n            }\n\n            return doIt(filledErrors);\n          }\n\n          var fieldsSchema = {};\n\n          if (rule.defaultField) {\n            Object.keys(data.value).map(function (key) {\n              fieldsSchema[key] = rule.defaultField;\n            });\n          }\n\n          fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n          var paredFieldsSchema = {};\n          Object.keys(fieldsSchema).forEach(function (field) {\n            var fieldSchema = fieldsSchema[field];\n            var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n            paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n          });\n          var schema = new Schema(paredFieldsSchema);\n          schema.messages(options.messages);\n\n          if (data.rule.options) {\n            data.rule.options.messages = options.messages;\n            data.rule.options.error = options.error;\n          }\n\n          schema.validate(data.value, data.rule.options || options, function (errs) {\n            var finalErrors = [];\n\n            if (filledErrors && filledErrors.length) {\n              finalErrors.push.apply(finalErrors, filledErrors);\n            }\n\n            if (errs && errs.length) {\n              finalErrors.push.apply(finalErrors, errs);\n            }\n\n            doIt(finalErrors.length ? finalErrors : null);\n          });\n        }\n      }\n\n      var res;\n\n      if (rule.asyncValidator) {\n        res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n      } else if (rule.validator) {\n        try {\n          res = rule.validator(rule, data.value, cb, data.source, options);\n        } catch (error) {\n          console.error == null ? void 0 : console.error(error); // rethrow to report error\n\n          if (!options.suppressValidatorError) {\n            setTimeout(function () {\n              throw error;\n            }, 0);\n          }\n\n          cb(error.message);\n        }\n\n        if (res === true) {\n          cb();\n        } else if (res === false) {\n          cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || (rule.fullField || rule.field) + \" fails\");\n        } else if (res instanceof Array) {\n          cb(res);\n        } else if (res instanceof Error) {\n          cb(res.message);\n        }\n      }\n\n      if (res && res.then) {\n        res.then(function () {\n          return cb();\n        }, function (e) {\n          return cb(e);\n        });\n      }\n    }, function (results) {\n      complete(results);\n    }, source);\n  };\n\n  _proto.getType = function getType(rule) {\n    if (rule.type === undefined && rule.pattern instanceof RegExp) {\n      rule.type = 'pattern';\n    }\n\n    if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n      throw new Error(format('Unknown rule type %s', rule.type));\n    }\n\n    return rule.type || 'string';\n  };\n\n  _proto.getValidationMethod = function getValidationMethod(rule) {\n    if (typeof rule.validator === 'function') {\n      return rule.validator;\n    }\n\n    var keys = Object.keys(rule);\n    var messageIndex = keys.indexOf('message');\n\n    if (messageIndex !== -1) {\n      keys.splice(messageIndex, 1);\n    }\n\n    if (keys.length === 1 && keys[0] === 'required') {\n      return validators.required;\n    }\n\n    return validators[this.getType(rule)] || undefined;\n  };\n\n  return Schema;\n}();\n\nSchema.register = function register(type, validator) {\n  if (typeof validator !== 'function') {\n    throw new Error('Cannot register a validator by type, validator is not a function');\n  }\n\n  validators[type] = validator;\n};\n\nSchema.warning = warning;\nSchema.messages = messages;\nSchema.validators = validators;\n\nexport { Schema as default };\n//# sourceMappingURL=index.js.map\n","import type { ExtractPropTypes } from 'vue'\nimport type { Arrayable } from '../../../utils/types'\nimport { definePropType } from '../../../utils/vue-utils'\nimport type { FormItemRule } from './types'\n\nexport const formItemValidateStates = ['', 'error', 'validating', 'success'] as const\n\nexport type FormItemValidateState = (typeof formItemValidateStates)[number]\n\nexport type FormItemProp = Arrayable<string>\n\nexport const formItemProps = {\n  label: String,\n  labelWidth: {\n    type: [String, Number],\n    default: ''\n  },\n  prop: {\n    type: definePropType<FormItemProp>([String, Array])\n  },\n  required: {\n    type: Boolean,\n    default: undefined\n  },\n  rules: {\n    type: definePropType<Arrayable<FormItemRule>>([Array])\n  },\n  validateStatus: {\n    type: String,\n    values: formItemValidateStates\n  },\n  showMessage: {\n    type: Boolean,\n    default: true\n  }\n}\n\nexport type FormItemProps = ExtractPropTypes<typeof formItemProps>\n","export const REGEXPS = {\n  email: /^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$/,\n  url: /https?:\\/\\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/,\n  mobile: /^1([3456789][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/,\n  chinese: /^[\\u4e00-\\u9fa5]{0,}$/,\n  number: /^(\\-|\\+)?\\d+(\\.\\d+)?$/,\n  host: /[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/\n}\n\nexport type IREGEXPS = keyof typeof REGEXPS\n","import { isString } from '../../../../utils/is'\nimport type { FormItemRule } from '../types'\nimport { REGEXPS } from './regExps'\nimport type { IREGEXPS } from './regExps'\n\nexport const replaceValidatorToFunction = (row: any) => {\n  if (isString(row.validator)) {\n    const validator: IREGEXPS = row.validator\n    const RE: RegExp = REGEXPS[validator]\n\n    const validatorFn = (rule: any, value: string, callback: Function) => {\n      if (RE) {\n        if (row.required) {\n          RE.test(value) ? callback() : callback(new Error(rule.message || '校验不通过'))\n        } else {\n          if (value) {\n            RE.test(value) ? callback() : callback(new Error(rule.message || '校验不通过'))\n          } else {\n            callback()\n          }\n        }\n      } else {\n        callback(\n          new Error('内置validator不存在！validator支持(email ｜ url | mobile | chinese | number)')\n        )\n      }\n    }\n    // 重写 validator\n    row.validator = validatorFn\n  }\n}\n\nexport const registerCustomValidator = (rules: FormItemRule[]) => {\n  rules.forEach((ruleItem) => {\n    replaceValidatorToFunction(ruleItem)\n  })\n}\n","<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    provide,\n    inject,\n    reactive,\n    ref,\n    nextTick,\n    onMounted,\n    onBeforeUnmount\n  } from 'vue'\n  import type { StyleValue, CSSProperties } from 'vue'\n\n  import type { RuleItem } from 'async-validator'\n  import AsyncValidator from 'async-validator'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n\n  import { getProp, setProp, deepClone, addUnit } from '../../../shared/utils'\n  import { isString, isFunction } from '../../../utils/is'\n  import { formItemProps } from './form-item'\n  import type { FormItemValidateState } from './form-item'\n\n  import { formItemContextKey, formContextKey } from './constants'\n\n  import { registerCustomValidator } from './validators/index'\n\n  import type { FormValidateFailure, FormItemContext, FormItemRule } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('FormItem'),\n    props: formItemProps,\n    setup(props, { slots }) {\n      const ns = getNamespace('form-item')\n\n      // 合并验证规则 form上的rules和form-item上的验证规则合并\n      const normalizedRules = computed(() => {\n        const { required } = props\n        const rules: FormItemRule[] = []\n        if (props.rules) {\n          rules.push(...(props.rules as []))\n        }\n\n        const formRules = formContext?.rules\n\n        if (formRules && props.prop) {\n          const field = props.prop as string\n          const _rules = formRules[field] as []\n          if (_rules) {\n            rules.push(..._rules)\n          }\n        }\n        // required优先取 form-item上的数据\n        // 如果form表单上rules里面有required字段 如果form-item上也有required字段 会合并required字段到rules上 required取值为form-item上的值\n        // 如果form表单上rules里面没有required字段 增加一条验证规则 required false\n        if (required !== undefined) {\n          const requiredRules = rules\n            .map((rule, i) => [rule, i] as const)\n            .filter(([rule]) => Object.keys(rule).includes('required'))\n          if (requiredRules.length > 0) {\n            for (const [rule, i] of requiredRules) {\n              if (rule.required === required) continue\n              rules[i] = { ...rule, required }\n            }\n          } else {\n            rules.push({ required })\n          }\n        }\n        // 内置正则校验器\n        registerCustomValidator(rules)\n\n        return rules\n      })\n      const validateEnabled = computed(() => normalizedRules.value.length > 0)\n\n      const getFilteredRule = (trigger: string) => {\n        const rules = normalizedRules.value\n        return rules\n          .filter((rule) => {\n            // 如果当前没有触发行为 则表明在form里面调用验证器的时候当前规则全部都要验证\n            if (!rule.trigger || !trigger) return true\n            // rule [change,..] 'change'\n            if (Array.isArray(rule.trigger)) {\n              return rule.trigger.includes(trigger)\n            } else {\n              return rule.trigger === trigger\n            }\n          })\n          .map(({ ...rule }): RuleItem => rule as RuleItem)\n      }\n      const validateState = ref<FormItemValidateState>('')\n\n      const validateMessage = ref('')\n\n      const formItemRef = ref<HTMLDivElement>()\n\n      const isRequired = computed(() => normalizedRules.value.some((rule) => rule.required))\n\n      // cls\n      const forItemCls = computed(() => [\n        ns,\n        isRequired.value && 'is-required',\n        validateState.value === 'error' && 'is-error',\n        validateState.value === 'success' && 'is-success',\n        validateState.value === 'validating' && 'is-validating'\n      ])\n\n      const contentCls = computed<StyleValue>(() => [`${ns}__content`])\n\n      const formContext = inject(formContextKey, undefined)\n      const parentFormItemContext = inject(formItemContextKey, undefined)\n\n      // 是否是嵌套表单\n      const isNested = !!parentFormItemContext\n\n      // style\n      const labelStyle = computed<CSSProperties>(() => {\n        if (formContext?.labelPosition === 'top') {\n          return {}\n        }\n        const style: CSSProperties = {\n          width: addUnit(props?.labelWidth || formContext?.labelWidth) || 0\n        }\n        return style\n      })\n      const contentStyle = computed<CSSProperties>(() => {\n        if (formContext?.labelPosition === 'top') {\n          return {}\n        }\n        if (formContext?.inline) {\n          return {}\n        }\n        // 嵌套form-item不展示label\n        if (!props.label && !props.labelWidth && isNested) {\n          return {}\n        }\n\n        const labelWidth = addUnit(props?.labelWidth || formContext?.labelWidth)\n        if (labelWidth || slots.label) {\n          return { marginLeft: labelWidth }\n        }\n        return {}\n      })\n\n      // 是否显示label\n      const hasLabel = computed<boolean>(() => {\n        return !!(props.label || slots.label)\n      })\n\n      let initialValue: any\n\n      const fieldValue = computed(() => {\n        return getProp(formContext?.model, props.prop as string, '')\n      })\n\n      const currentLabel = computed(() => props.label || '')\n\n      const setValidationState = (state: FormItemValidateState) => {\n        validateState.value = state\n      }\n\n      const shouldShowError = computed(\n        () =>\n          props.showMessage && (formContext?.showMessage ?? true) && validateState.value === 'error'\n      )\n\n      // 表单验证失败\n      const onValidationFailed = (error: FormValidateFailure) => {\n        const { errors, fields } = error\n        if (!errors || !fields) {\n          console.error(error)\n        }\n        setValidationState('error')\n        validateMessage.value = errors ? errors?.[0]?.message ?? `${props.prop}是必填项` : ''\n\n        formContext?.emit('validate', props.prop!, false, validateMessage.value)\n      }\n\n      // 表单验证成功\n      const onValidationSucceeded = () => {\n        setValidationState('success')\n        formContext?.emit('validate', props.prop!, true, '')\n      }\n\n      const propString = computed(() => {\n        if (!props.prop) return ''\n        return isString(props.prop) ? props.prop : props.prop.join('.')\n      })\n\n      // 执行验证器\n      const doValidate = async (rules: RuleItem[]): Promise<boolean> => {\n        const modelName = propString.value\n        // 创建校验对象\n        const validator = new AsyncValidator({\n          [modelName]: rules\n        })\n        return validator\n          .validate({ [modelName]: fieldValue.value }, { firstFields: true })\n          .then(() => {\n            onValidationSucceeded()\n            return true as const\n          })\n          .catch((err: FormValidateFailure) => {\n            onValidationFailed(err as FormValidateFailure)\n            return Promise.reject(err)\n          })\n      }\n\n      // 组件的验证器对象 子组件可直接调用此方法来触发验证器\n      const validate: FormItemContext['validate'] = async (trigger, callback) => {\n        if (isResettingField || !props.prop) {\n          return false\n        }\n        const hasCallback = isFunction(callback)\n        if (!validateEnabled.value) {\n          callback?.(false)\n          return false\n        }\n\n        const rules = getFilteredRule(trigger)\n\n        if (rules.length === 0) {\n          callback?.(true)\n          return true\n        }\n        // 异步验证时候这个需要加上loading\n        setValidationState('validating')\n\n        return doValidate(rules)\n          .then(() => {\n            callback?.(true)\n            return true as const\n          })\n          .catch((err: FormValidateFailure) => {\n            const { fields } = err\n            callback?.(false, fields)\n            return hasCallback ? false : Promise.reject(fields)\n          })\n      }\n\n      let isResettingField = false\n\n      const clearValidate: FormItemContext['clearValidate'] = () => {\n        setValidationState('')\n        validateMessage.value = ''\n        isResettingField = false\n      }\n\n      const resetField: FormItemContext['resetField'] = async () => {\n        const model = formContext?.model\n        if (!model || !props.prop) return\n        // 恢复初始值\n        setProp(model, props.prop, deepClone(initialValue))\n        isResettingField = true\n        await nextTick()\n        clearValidate()\n        isResettingField = false\n      }\n\n      // 向下面的input组件 注入FormItemContext 主要是验证器 validate 对象\n      const context = reactive({\n        $el: formItemRef,\n        prop: props.prop,\n        validateState,\n        validate,\n        resetField,\n        clearValidate\n      })\n      provide(formItemContextKey, context as any)\n\n      onBeforeUnmount(() => {\n        formContext?.removeField(context as any)\n      })\n\n      onMounted(() => {\n        // 将所有的form-item验证器保存到form上，方便后面在form里面直接循环验证\n        if (props.prop) {\n          formContext?.addField(context as any)\n          initialValue = deepClone(fieldValue.value)\n        }\n      })\n\n      return {\n        forItemCls,\n        contentCls,\n        currentLabel,\n        hasLabel,\n        shouldShowError,\n        labelStyle,\n        contentStyle,\n        formItemRef,\n        validateMessage,\n        validateState,\n\n        validate,\n        clearValidate,\n        resetField\n      }\n    },\n    expose: ['validateMessage', 'validateState', 'validate', 'clearValidate', 'resetField']\n  })\n</script>\n\n<template>\n  <div ref=\"formItemRef\" :class=\"forItemCls\">\n    <div v-if=\"hasLabel\" class=\"bn-form-item__label\" :style=\"labelStyle\">\n      <slot name=\"label\">\n        {{ currentLabel }}\n      </slot>\n    </div>\n\n    <div :class=\"contentCls\" :style=\"contentStyle\">\n      <slot></slot>\n      <transition name=\"form-blink\">\n        <slot v-if=\"shouldShowError\" name=\"error\" :error=\"validateMessage\">\n          <div class=\"bn-form-item__error\">\n            {{ validateMessage }}\n          </div>\n        </slot>\n      </transition>\n    </div>\n  </div>\n</template>\n","import _FormItem from '../form/src/form-item.vue'\nimport { withInstall } from '../../utils/vue-utils'\n\nexport const FormItem = withInstall(_FormItem)\nexport type FormItemInstance = InstanceType<typeof _FormItem>\nexport default FormItem\n","import type { Ref } from 'vue'\nimport { onMounted, onBeforeUnmount, readonly, ref, watch } from 'vue'\n\nexport type PopupType = 'popup' | 'dialog' | 'message'\n\nconst POPUP_BASE_Z_INDEX = 1000\nconst MESSAGE_BASE_Z_INDEX = 3000\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  }\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 (type === 'dialog') {\n      this.popupStack.popup.add(zIndex)\n    }\n    return zIndex\n  }\n\n  public delete = (zIndex: number, type: PopupType) => {\n    this.popupStack[type].delete(zIndex)\n    if (type === 'dialog') {\n      this.popupStack.popup.delete(zIndex)\n    }\n  }\n\n  public isLastDialog = (zIndex: number) => {\n    if (this.popupStack.dialog.size > 1) {\n      return zIndex === Array.from(this.popupStack.dialog).pop()\n    }\n    return true\n  }\n}\n\nconst popupManager = new PopupManager()\n\nexport default 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 isLastDialog = () => {\n    if (type === 'dialog') {\n      return popupManager.isLastDialog(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    isLastDialog\n  }\n}\n","import { onMounted, onUpdated, ref } from 'vue'\nimport { getFirstElementFromChildren } from '../utils/vue-utils'\nimport type { SlotChildren } from '../utils/types'\n\nexport const useFirstElement = () => {\n  const children: SlotChildren = {}\n  const firstElement = ref<HTMLElement>()\n\n  const getFirstElement = () => {\n    const element = getFirstElementFromChildren(children.value)\n    if (element !== firstElement.value) {\n      firstElement.value = element\n    }\n  }\n\n  onMounted(() => getFirstElement())\n\n  onUpdated(() => getFirstElement())\n\n  return {\n    children,\n    firstElement\n  }\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","import type { Ref } from 'vue'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport { isFunction } from '../utils/is'\n\nexport const useResizeObserver = ({\n  elementRef,\n  onResize\n}: {\n  elementRef: Ref<HTMLElement | undefined>\n  onResize: (args: ResizeObserverEntry) => void\n}) => {\n  let resizeObserver: ResizeObserver | null\n\n  const createResizeObserver = () => {\n    if (!elementRef.value) return\n    resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n      const entry: ResizeObserverEntry = entries[0]\n\n      isFunction(onResize) && onResize(entry)\n    })\n    resizeObserver.observe(elementRef.value)\n  }\n\n  const destroyResizeObserver = () => {\n    if (resizeObserver) {\n      resizeObserver.disconnect()\n      resizeObserver = null\n    }\n  }\n\n  return {\n    createResizeObserver,\n    destroyResizeObserver\n  }\n}\n","export const toKebabCase = (string: string): string => {\n  return string.replace(/\\B([A-Z])/g, '-$1').toLowerCase()\n}\n\nexport const toPascalCase = (string: string): string => {\n  return string\n    .replace(/^./, (match) => match.toUpperCase())\n    .replace(/-(\\w)/g, (_, p1: string) => {\n      return p1?.toUpperCase() ?? ''\n    })\n}\n\nexport const toCamelCase = (string: string): string => {\n  return string\n    .replace(/^./, (match) => match.toLowerCase())\n    .replace(/-(\\w)/g, (_, p1: string) => {\n      return p1?.toUpperCase() ?? ''\n    })\n}\n","import type { VNode, CSSProperties } from 'vue'\nimport { NOOP } from '../shared/utils'\nimport { isObject, isString } from './is'\nimport { isClient } from './browser'\nimport { toCamelCase } from './convert-case'\n\nexport const on = (() => {\n  if (!isClient) {\n    return NOOP\n  }\n  return <K extends keyof HTMLElementEventMap>(\n    element: HTMLElement | Window,\n    event: K,\n    handler: (ev: HTMLElementEventMap[K]) => void,\n    options: boolean | AddEventListenerOptions = false\n  ) => {\n    element.addEventListener(event, handler as EventListenerOrEventListenerObject, options)\n  }\n})()\n\nexport const off = (() => {\n  if (!isClient) {\n    return NOOP\n  }\n  return <K extends keyof HTMLElementEventMap>(\n    element: HTMLElement | Window,\n    type: K,\n    handler: (ev: HTMLElementEventMap[K]) => void,\n    options: boolean | EventListenerOptions = false\n  ) => {\n    element.removeEventListener(type, handler as EventListenerOrEventListenerObject, options)\n  }\n})()\n\nexport const findDomNode = (vnode: VNode) => {\n  let node = vnode.el\n  while (node && !node.tagName) {\n    node = node.nextSibling\n  }\n  return node as HTMLElement\n}\n\nexport const contains = (root: Node | null | undefined, ele: Node | null) => {\n  if (!root || !ele) {\n    return false\n  }\n  let node: Node | null = ele\n  while (node) {\n    if (node === root) {\n      return true\n    }\n    node = node.parentNode\n  }\n  return false\n}\n\nexport const querySelector = (selectors: string, container?: Document | HTMLElement) => {\n  if (!isClient) {\n    return\n  }\n  return (container ?? document).querySelector<HTMLElement>(selectors) ?? undefined\n}\n\nexport const getElement = (\n  target: string | HTMLElement | undefined,\n  container?: Document | HTMLElement\n): HTMLElement | undefined => {\n  if (isString(target)) {\n    const selector = target[0] === '#' ? `[id='${target.slice(1)}']` : target\n    return querySelector(selector, container)\n  }\n  return target\n}\n\n/**\n * Get the relative distance between two DOMs\n * @param target\n * @param relative\n */\nexport const getRelativeRect = (target: HTMLElement, relative: HTMLElement) => {\n  const targetRect = target.getBoundingClientRect()\n  const relativeRect = relative.getBoundingClientRect()\n\n  return {\n    top: targetRect.top - relativeRect.top,\n    bottom: relativeRect.bottom - targetRect.bottom,\n    left: targetRect.left - relativeRect.left,\n    right: relativeRect.right - targetRect.right,\n    width: targetRect.width,\n    height: targetRect.height\n  }\n}\n\nexport const isScroll = (element: HTMLElement) => {\n  return element.tagName === 'BODY'\n    ? document.documentElement.scrollHeight > window.innerHeight\n    : element.scrollHeight > element.offsetHeight\n}\n\nexport const getScrollBarWidth = (element: HTMLElement) => {\n  if (element.tagName === 'BODY') {\n    return window.innerWidth - (document.documentElement.offsetWidth || document.body.offsetWidth)\n  }\n  const { borderLeftWidth, borderRightWidth } = window.getComputedStyle(element)\n  const borderWidth =\n    Number(borderLeftWidth.replace('px', '')) + Number(borderRightWidth.replace('px', ''))\n  const scrollbarWidth = element.offsetWidth - (element.clientWidth + borderWidth)\n  return scrollbarWidth\n}\n\nexport const getStyle = (element: HTMLElement, styleName: keyof CSSProperties): string => {\n  if (!isClient || !element || !styleName) return ''\n\n  let key = toCamelCase(styleName)\n  if (key === 'float') key = 'cssFloat'\n  try {\n    const style = (element.style as any)[key]\n    if (style) return style\n    const computed: any = document.defaultView?.getComputedStyle(element, '')\n    return computed ? computed[key] : ''\n  } catch {\n    return (element.style as any)[key]\n  }\n}\n\nexport const setStyle = (\n  element: HTMLElement,\n  styleName: CSSProperties | keyof CSSProperties,\n  value?: string | number\n) => {\n  if (!element || !styleName) return\n  if (isObject(styleName)) {\n    Object.entries(styleName).forEach(([prop, value]) =>\n      setStyle(element, prop as any, value as string)\n    )\n  } else {\n    const key: any = toCamelCase(styleName as keyof CSSProperties)\n    element.style[key] = value as any\n  }\n}\n","import { defineComponent, onBeforeUnmount, watch } from 'vue'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport { useFirstElement } from '../hooks/use-first-element'\n\nexport default defineComponent({\n  name: 'ResizeObserver',\n  emits: ['resize'],\n  setup(props, { emit, slots }) {\n    const { children, firstElement } = useFirstElement()\n\n    let resizeObserver: ResizeObserver | null\n\n    const createResizeObserver = (target: HTMLElement) => {\n      resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n        const entry = entries[0]\n        emit('resize', entry)\n      })\n      resizeObserver.observe(target)\n    }\n\n    const destroyResizeObserver = () => {\n      if (resizeObserver) {\n        resizeObserver.disconnect()\n        resizeObserver = null\n      }\n    }\n\n    watch(firstElement, (element) => {\n      if (resizeObserver) destroyResizeObserver()\n      if (element) {\n        createResizeObserver(element)\n      }\n    })\n\n    onBeforeUnmount(() => {\n      if (resizeObserver) destroyResizeObserver()\n    })\n\n    return () => {\n      children.value = slots.default?.()\n      return children.value\n    }\n  }\n})\n","export const debounce = (callback: (e: any) => void, delay: number, immediate = false): any => {\n  let timer: any = null\n  let start = true\n  return (...args: any[]) => {\n    if (timer) clearTimeout(timer)\n    if (start && immediate) {\n      // eslint-disable-next-line prefer-spread\n      callback.apply(null, args)\n      start = false\n      timer = setTimeout(() => {\n        start = true\n      }, delay)\n      return\n    }\n    timer = setTimeout(() => {\n      timer = 0\n      // eslint-disable-next-line prefer-spread\n      callback.apply(null, args)\n      if (immediate) {\n        start = true\n      }\n    }, delay)\n  }\n}\n\nexport const throttle = (callback: (e: any) => void, delay = 0): any => {\n  let prev = 0\n  return (...args: any[]) => {\n    const now: number = Date.now()\n    if (now - prev > delay) {\n      // eslint-disable-next-line prefer-spread\n      callback.apply(null, args)\n      prev = now\n    }\n  }\n}\n","import { defineComponent, onBeforeUnmount, watch } from 'vue'\nimport { useFirstElement } from '../hooks/use-first-element'\nimport { debounce } from '../utils/throttle-debounce'\n\nconst SCROLL_KEY = Symbol('scrollHandler')\n\nexport default defineComponent({\n  name: 'ParentScrollObserver',\n  emits: ['scroll'],\n  setup(props, { emit, slots }) {\n    const { children, firstElement } = useFirstElement()\n    const targets: HTMLElement[] = []\n    const createParentScrollObserver = (element: HTMLElement | null) => {\n      while (element) {\n        element = element.parentElement\n        if (element) {\n          if (element.tagName === 'BODY') break\n          if (element.scrollHeight > element.offsetHeight) {\n            targets.push(element)\n          }\n        }\n      }\n      targets.forEach((target: any) => {\n        const scrollHandler = (e: Event) => emit('scroll', e)\n        target[SCROLL_KEY] = scrollHandler\n        target.addEventListener('scroll', scrollHandler)\n      })\n    }\n\n    const destroyResizeObserver = () => {\n      targets.forEach((target: any) => {\n        target.removeEventListener('scroll', target[SCROLL_KEY])\n      })\n      targets.length = 0\n    }\n\n    let observer: MutationObserver\n    const createContainerSizeObserver = (element: HTMLElement | null) => {\n      observer = new MutationObserver(\n        debounce(() => {\n          destroyResizeObserver()\n          createParentScrollObserver(element)\n        }, 300)\n      )\n      observer.observe(document.body, {\n        subtree: true,\n        childList: true,\n        attributes: true\n      })\n    }\n\n    watch(firstElement, (element) => {\n      destroyResizeObserver()\n      if (element) {\n        createContainerSizeObserver(element)\n        createParentScrollObserver(element)\n      }\n    })\n\n    onBeforeUnmount(() => {\n      destroyResizeObserver()\n      observer && observer.disconnect()\n    })\n\n    return () => {\n      children.value = slots.default?.()\n      return children.value\n    }\n  }\n})\n","import type { PropType, ExtractPropTypes, CSSProperties } from 'vue'\n\nexport const TRIGGER_POSITIONS = [\n  'top',\n  'tl',\n  'tr',\n  'bottom',\n  'bl',\n  'br',\n  'left',\n  'lt',\n  'lb',\n  'right',\n  'rt',\n  'rb'\n] as const\nexport type TriggerPosition = (typeof TRIGGER_POSITIONS)[number]\n\nexport const TRIGGER_EVENTS = ['hover', 'click', 'focus', 'contextMenu'] as const\nexport type TriggerEvent = (typeof TRIGGER_EVENTS)[number]\n\nexport type TriggerPopupTranslate =\n  | [number, number]\n  | { [key in TriggerPosition]?: [number, number] }\n\nexport const triggerProps = {\n  // 弹出框是否可见\n  popupVisible: {\n    type: Boolean,\n    default: undefined\n  },\n  // 弹出框默认是否可见（非受控模式）\n  defaultPopupVisible: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  触发方式\n   * @values 'hover','click','focus','contextMenu'\n   */\n  trigger: {\n    type: [String, Array] as PropType<TriggerEvent | TriggerEvent[]>,\n    default: 'hover'\n  },\n  /**\n   *  弹出位置\n   * @values 'top','tl','tr','bottom','bl','br','left','lt','lb','right','rt','rb'\n   */\n  position: {\n    type: String as PropType<TriggerPosition>,\n    default: 'bottom'\n  },\n  /**\n   *  触发器是否禁用\n   */\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  弹出框的偏移量（弹出框距离触发器的偏移距离）\n   */\n  popupOffset: {\n    type: Number,\n    default: 5\n  },\n  /**\n   *  弹出框的移动距离\n   */\n  popupTranslate: {\n    type: [Array, Object] as PropType<TriggerPopupTranslate>\n  },\n  /**\n   *  弹出框是否显示箭头\n   */\n  showArrow: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  弹出框是否跟随鼠标\n   */\n  alignPoint: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  是否在移出触发器，并移入弹出框时保持弹出框显示\n   */\n  popupHoverStay: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   *  是否在触发器失去焦点时关闭弹出框\n   */\n  blurToClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   *  是否在点击触发器时关闭弹出框\n   */\n  clickToClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 是否在点击外部区域时关闭弹出框\n   */\n  clickOutsideToClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 是否在关闭时卸载弹出框节点\n   */\n  unmountOnClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 弹出框内容的类名\n   */\n  contentClass: {\n    type: [String, Array, Object]\n  },\n  /**\n   * 弹出框内容的样式\n   */\n  contentStyle: {\n    type: Object as PropType<CSSProperties>\n  },\n  /**\n   * 弹出框箭头的类名\n   */\n  arrowClass: {\n    type: [String, Array, Object]\n  },\n  /**\n   * 弹出框箭头的样式\n   */\n  arrowStyle: {\n    type: Object as PropType<CSSProperties>\n  },\n  /**\n   *  弹出框的样式\n   */\n  popupStyle: {\n    type: Object as PropType<CSSProperties>\n  },\n  /**\n   * 弹出动画的name\n   */\n  animationName: {\n    type: String,\n    default: 'bn-fade-in'\n  },\n  /**\n   * 弹出动画的持续时间\n   */\n  duration: {\n    type: [Number, Object] as PropType<\n      | number\n      | {\n          enter: number\n          leave: number\n        }\n    >\n  },\n  /**\n   * mouseenter事件延时触发的时间（毫秒）\n   */\n  mouseEnterDelay: {\n    type: Number,\n    default: 100\n  },\n  /**\n   * mouseleave事件延时触发的时间（毫秒）\n   */\n  mouseLeaveDelay: {\n    type: Number,\n    default: 100\n  },\n  /**\n   * focus事件延时触发的时间（毫秒）\n   */\n  focusDelay: {\n    type: Number,\n    default: 0\n  },\n  /**\n   * 是否将弹出框宽度设置为触发器宽度\n   */\n  autoFitPopupWidth: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   * 是否将弹出框的最小宽度设置为触发器宽度\n   */\n  autoFitPopupMinWidth: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   * 当触发器的尺寸发生变化时，是否重新计算弹出框位置\n   */\n  autoFixPosition: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 弹出框的挂载容器\n   */\n  popupContainer: {\n    type: [String, Object] as PropType<string | HTMLElement>\n  },\n  autoFitTransformOrigin: {\n    type: Boolean,\n    default: false\n  },\n  openedClass: {\n    type: [String, Array, Object]\n  },\n  autoFitPosition: {\n    type: Boolean,\n    default: true\n  },\n  renderToBody: {\n    type: Boolean,\n    default: true\n  },\n  preventFocus: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type TriggerProps = ExtractPropTypes<typeof triggerProps>\n","import type { InjectionKey } from 'vue'\n\nexport interface TriggerContext {\n  onMouseenter: (ev: MouseEvent) => void\n  onMouseleave: (ev: MouseEvent) => void\n  addChildRef: (ref: any) => void\n  removeChildRef: (ref: any) => void\n}\n\nexport const triggerInjectionKey: InjectionKey<TriggerContext> = Symbol('trigger')\n","import type { CSSProperties } from 'vue'\nimport { isArray } from '../../../utils/is'\nimport type { TriggerPosition, TriggerPopupTranslate } from './_trigger'\n\ninterface Size {\n  height: number\n  width: number\n}\n\nconst getDocumentSize = (): Size => {\n  const { body } = document\n  const html = document.documentElement\n  let topBody\n  try {\n    const topWindow = window.top || window.self || window\n    topBody = topWindow.document.body\n  } catch (e) {\n    //@eslint-disabled\n  }\n\n  const size = {\n    height: Math.max(\n      body.scrollHeight,\n      body.offsetHeight,\n      html.clientHeight,\n      html.scrollHeight,\n      html.offsetHeight,\n      topBody?.scrollHeight || 0,\n      topBody?.clientHeight || 0\n    ),\n    width: Math.max(\n      body.scrollWidth,\n      body.offsetWidth,\n      html.clientWidth,\n      html.scrollWidth,\n      html.offsetWidth,\n      topBody?.scrollWidth || 0,\n      topBody?.clientWidth || 0\n    )\n  }\n\n  return size\n}\n\nconst getViewPortSize = (): Size => {\n  const { height, width } = getDocumentSize()\n\n  return {\n    width: Math.min(width, window.innerWidth),\n    height: Math.min(height, window.innerHeight)\n  }\n}\n\nexport interface ElementRect {\n  top: number\n  bottom: number\n  left: number\n  right: number\n  width: number\n  height: number\n}\n\ninterface ScrollRect {\n  top: number\n  bottom: number\n  left: number\n  right: number\n  scrollTop: number\n  scrollBottom: number\n  scrollLeft: number\n  scrollRight: number\n  width: number\n  height: number\n}\n\nexport const getElementScrollRect = (element: HTMLElement, containerRect: DOMRect) => {\n  const rect = element.getBoundingClientRect()\n\n  return {\n    top: rect.top,\n    bottom: rect.bottom,\n    left: rect.left,\n    right: rect.right,\n    scrollTop: rect.top - containerRect.top,\n    scrollBottom: rect.bottom - containerRect.top,\n    scrollLeft: rect.left - containerRect.left,\n    scrollRight: rect.right - containerRect.left,\n    width: element.offsetWidth ?? element.clientWidth,\n    height: element.offsetHeight ?? element.clientHeight\n  }\n}\n\ntype BasePosition = 'top' | 'left' | 'bottom' | 'right'\n\ninterface PositionOffset {\n  left: number\n  top: number\n}\n\nconst getBoundaryPosition = (position: TriggerPosition): BasePosition => {\n  switch (position) {\n    case 'top':\n    case 'tl':\n    case 'tr':\n      return 'top'\n    case 'bottom':\n    case 'bl':\n    case 'br':\n      return 'bottom'\n    case 'left':\n    case 'lt':\n    case 'lb':\n      return 'left'\n    case 'right':\n    case 'rt':\n    case 'rb':\n      return 'right'\n    default:\n      return 'top'\n  }\n}\n\nconst changePosition = (position: TriggerPosition, direction: BasePosition): TriggerPosition => {\n  switch (direction) {\n    case 'top':\n      switch (position) {\n        case 'bottom':\n          return 'top'\n        case 'bl':\n          return 'tl'\n        case 'br':\n          return 'tr'\n        default:\n          return position\n      }\n    case 'bottom':\n      switch (position) {\n        case 'top':\n          return 'bottom'\n        case 'tl':\n          return 'bl'\n        case 'tr':\n          return 'br'\n        default:\n          return position\n      }\n    case 'left':\n      switch (position) {\n        case 'right':\n          return 'left'\n        case 'rt':\n          return 'lt'\n        case 'rb':\n          return 'lb'\n        default:\n          return position\n      }\n    case 'right':\n      switch (position) {\n        case 'left':\n          return 'right'\n        case 'lt':\n          return 'rt'\n        case 'lb':\n          return 'rb'\n        default:\n          return position\n      }\n    default:\n      return position\n  }\n}\n\nconst getFitPosition = (\n  position: TriggerPosition,\n  popupPosition: PositionOffset,\n  {\n    containerRect,\n    triggerRect,\n    popupRect,\n    offset,\n    translate\n  }: {\n    containerRect: DOMRect\n    triggerRect: ScrollRect\n    popupRect: ScrollRect\n    offset: number\n    translate: TriggerPopupTranslate\n  }\n) => {\n  const direction = getBoundaryPosition(position)\n  const viewPortSize = getViewPortSize()\n\n  // Boundary value of pop-up box and window\n  const viewPortBoundary = {\n    top: containerRect.top + popupPosition.top,\n    // prettier-ignore\n    bottom: viewPortSize.height - (containerRect.top + popupPosition.top + popupRect.height),\n    left: containerRect.left + popupPosition.left,\n    // prettier-ignore\n    right: viewPortSize.width - (containerRect.left + popupPosition.left + popupRect.width)\n  }\n\n  let finalPosition = position\n  if (direction === 'top' && viewPortBoundary.top < 0) {\n    if (triggerRect.top > popupRect.height) {\n      // Adjust the pop-up box to snap to the top of the window\n      popupPosition.top = -containerRect.top\n    } else {\n      const fitPosition = getPopupOffset('bottom', triggerRect, popupRect, {\n        offset,\n        translate\n      })\n\n      // prettier-ignore\n      if (viewPortSize.height - (containerRect.top + fitPosition.top + popupRect.height) > 0) {\n        finalPosition = changePosition(position, 'bottom');\n        popupPosition.top = fitPosition.top;\n      }\n    }\n  }\n  if (direction === 'bottom' && viewPortBoundary.bottom < 0) {\n    if (viewPortSize.height - triggerRect.bottom > popupRect.height) {\n      // Adjust the pop-up box to snap to the bottom of the window\n      // prettier-ignore\n      popupPosition.top = -containerRect.top + (viewPortSize.height - popupRect.height);\n    } else {\n      const fitPosition = getPopupOffset('top', triggerRect, popupRect, {\n        offset,\n        translate\n      })\n      if (containerRect.top + fitPosition.top > 0) {\n        finalPosition = changePosition(position, 'top')\n        popupPosition.top = fitPosition.top\n      }\n    }\n  }\n  if (direction === 'left' && viewPortBoundary.left < 0) {\n    if (triggerRect.left > popupRect.width) {\n      // Adjust the pop-up box to snap to the left side of the window\n      popupPosition.left = -containerRect.left\n    } else {\n      const fitPosition = getPopupOffset('right', triggerRect, popupRect, {\n        offset,\n        translate\n      })\n      // prettier-ignore\n      if (viewPortSize.width - (containerRect.left + fitPosition.left + popupRect.width) > 0) {\n        finalPosition = changePosition(position, 'right');\n        popupPosition.left = fitPosition.left;\n      }\n    }\n  }\n  if (direction === 'right' && viewPortBoundary.right < 0) {\n    if (viewPortSize.width - triggerRect.right > popupRect.width) {\n      // Adjust the pop-up box to snap to the right side of the window\n      // prettier-ignore\n      popupPosition.left = -containerRect.left + (viewPortSize.width - popupRect.width);\n    } else {\n      const fitPosition = getPopupOffset('left', triggerRect, popupRect, {\n        offset,\n        translate\n      })\n      if (containerRect.left + fitPosition.left > 0) {\n        finalPosition = changePosition(position, 'left')\n        popupPosition.left = fitPosition.left\n      }\n    }\n  }\n\n  if (direction === 'top' || direction === 'bottom') {\n    if (viewPortBoundary.left < 0) {\n      popupPosition.left = -containerRect.left\n    } else if (viewPortBoundary.right < 0) {\n      // prettier-ignore\n      popupPosition.left = -containerRect.left + (viewPortSize.width - popupRect.width);\n    }\n  }\n  if (direction === 'left' || direction === 'right') {\n    if (viewPortBoundary.top < 0) {\n      popupPosition.top = -containerRect.top\n    } else if (viewPortBoundary.bottom < 0) {\n      // prettier-ignore\n      popupPosition.top = -containerRect.top + (viewPortSize.height - popupRect.height);\n    }\n  }\n  return {\n    popupPosition,\n    position: finalPosition\n  }\n}\n\nconst getPopupOffset = (\n  position: TriggerPosition,\n  triggerRect: ScrollRect,\n  popupRect: ScrollRect,\n  {\n    offset = 0,\n    translate = [0, 0]\n  }: {\n    offset?: number\n    translate?: TriggerPopupTranslate\n  } = {}\n): PositionOffset => {\n  // prettier-ignore\n  const _translate = (isArray(translate) ? translate : translate[position]) ?? [0, 0];\n\n  switch (position) {\n    case 'top':\n      return {\n        left:\n          triggerRect.scrollLeft +\n          Math.round(triggerRect.width / 2) -\n          Math.round(popupRect.width / 2) +\n          _translate[0],\n        top: triggerRect.scrollTop - popupRect.height - offset + _translate[1]\n      }\n    case 'tl':\n      return {\n        left: triggerRect.scrollLeft + _translate[0],\n        top: triggerRect.scrollTop - popupRect.height - offset + _translate[1]\n      }\n    case 'tr':\n      return {\n        left: triggerRect.scrollRight - popupRect.width + _translate[0],\n        top: triggerRect.scrollTop - popupRect.height - offset + _translate[1]\n      }\n    case 'bottom':\n      return {\n        left:\n          triggerRect.scrollLeft +\n          Math.round(triggerRect.width / 2) -\n          Math.round(popupRect.width / 2) +\n          _translate[0],\n        top: triggerRect.scrollBottom + offset + _translate[1]\n      }\n    case 'bl':\n      return {\n        left: triggerRect.scrollLeft + _translate[0],\n        top: triggerRect.scrollBottom + offset + _translate[1]\n      }\n    case 'br':\n      return {\n        left: triggerRect.scrollRight - popupRect.width + _translate[0],\n        top: triggerRect.scrollBottom + offset + _translate[1]\n      }\n    case 'left':\n      return {\n        left: triggerRect.scrollLeft - popupRect.width - offset + _translate[0],\n        top:\n          triggerRect.scrollTop +\n          Math.round(triggerRect.height / 2) -\n          Math.round(popupRect.height / 2) +\n          _translate[1]\n      }\n    case 'lt':\n      return {\n        left: triggerRect.scrollLeft - popupRect.width - offset + _translate[0],\n        top: triggerRect.scrollTop + _translate[1]\n      }\n    case 'lb':\n      return {\n        left: triggerRect.scrollLeft - popupRect.width - offset + _translate[0],\n        top: triggerRect.scrollBottom - popupRect.height + _translate[1]\n      }\n    case 'right':\n      return {\n        left: triggerRect.scrollRight + offset + _translate[0],\n        top:\n          triggerRect.scrollTop +\n          Math.round(triggerRect.height / 2) -\n          Math.round(popupRect.height / 2) +\n          _translate[1]\n      }\n    case 'rt':\n      return {\n        left: triggerRect.scrollRight + offset + _translate[0],\n        top: triggerRect.scrollTop + _translate[1]\n      }\n    case 'rb':\n      return {\n        left: triggerRect.scrollRight + offset + _translate[0],\n        top: triggerRect.scrollBottom - popupRect.height + _translate[1]\n      }\n    default:\n      return {\n        left: 0,\n        top: 0\n      }\n  }\n}\n\nexport const getTransformOrigin = (position: TriggerPosition) => {\n  let originX = '0'\n  if (['top', 'bottom'].includes(position)) {\n    originX = '50%'\n  } else if (['left', 'lt', 'lb', 'tr', 'br'].includes(position)) {\n    originX = '100%'\n  }\n  let originY = '0'\n  if (['left', 'right'].includes(position)) {\n    originY = '50%'\n  } else if (['top', 'tl', 'tr', 'lt', 'rt'].includes(position)) {\n    originY = '100%'\n  }\n  return `${originX} ${originY}`\n}\n\nexport const getPopupStyle = (\n  position: TriggerPosition,\n  containerRect: DOMRect,\n  triggerRect: ScrollRect,\n  popupRect: ScrollRect,\n  {\n    offset = 0,\n    translate = [0, 0],\n    customStyle = {},\n    autoFitPosition = false\n  }: {\n    offset?: number\n    translate?: TriggerPopupTranslate\n    customStyle?: CSSProperties\n    autoFitPosition?: boolean\n  } = {}\n): { style: CSSProperties; position: TriggerPosition } => {\n  let finalPosition = position\n  let popupPosition = getPopupOffset(position, triggerRect, popupRect, {\n    offset,\n    translate\n  })\n  if (autoFitPosition) {\n    const result = getFitPosition(position, popupPosition, {\n      containerRect,\n      popupRect,\n      triggerRect,\n      offset,\n      translate\n    })\n    popupPosition = result.popupPosition\n    finalPosition = result.position\n  }\n\n  const style = {\n    left: `${popupPosition.left}px`,\n    top: `${popupPosition.top}px`,\n    ...customStyle\n  }\n\n  return {\n    style,\n    position: finalPosition\n  }\n}\n\nexport const getArrowStyle = (\n  position: TriggerPosition,\n  triggerRect: ScrollRect,\n  popupRect: ScrollRect,\n  {\n    customStyle = {}\n  }: {\n    customStyle?: CSSProperties\n  }\n): CSSProperties => {\n  if (['top', 'tl', 'tr', 'bottom', 'bl', 'br'].includes(position)) {\n    let offsetLeft = Math.abs(triggerRect.scrollLeft + triggerRect.width / 2 - popupRect.scrollLeft)\n\n    if (offsetLeft > popupRect.width - 8) {\n      if (triggerRect.width > popupRect.width) {\n        offsetLeft = popupRect.width / 2\n      } else {\n        offsetLeft = popupRect.width - 8\n      }\n    }\n    if (['top', 'tl', 'tr'].includes(position)) {\n      return {\n        left: `${offsetLeft}px`,\n        bottom: '0',\n        transform: 'translate(-50%,100%)',\n        'border-color':\n          'var(--bn-trigger-arrow-background-color) transparent transparent transparent',\n        ...customStyle\n      }\n    }\n    // bottom bl br\n    return {\n      left: `${offsetLeft}px`,\n      top: '0',\n      transform: 'translate(-50%,-100%)',\n      'border-color':\n        'transparent transparent var(--bn-trigger-arrow-background-color) transparent',\n      ...customStyle\n    }\n  }\n  let offsetTop = Math.abs(triggerRect.scrollTop + triggerRect.height / 2 - popupRect.scrollTop)\n\n  if (offsetTop > popupRect.height - 8) {\n    if (triggerRect.height > popupRect.height) {\n      offsetTop = popupRect.height / 2\n    } else {\n      offsetTop = popupRect.height - 8\n    }\n  }\n\n  if (['left', 'lt', 'lb'].includes(position)) {\n    return {\n      top: `${offsetTop}px`,\n      right: '0',\n      transform: 'translate(100%,-50%)',\n      'border-color':\n        'transparent transparent transparent var(--bn-trigger-arrow-background-color)',\n      ...customStyle\n    }\n  }\n  // right rl rb\n  return {\n    top: `${offsetTop}px`,\n    left: '0',\n    transform: 'translate(-100%,-50%)',\n    'border-color': 'transparent var(--bn-trigger-arrow-background-color) transparent transparent',\n    ...customStyle\n  }\n}\n\nexport const isScrollElement = (element: HTMLElement) => {\n  return element.scrollHeight > element.offsetHeight || element.scrollWidth > element.offsetWidth\n}\n\nexport const getScrollElements = (container: HTMLElement | undefined) => {\n  const scrollElements: HTMLElement[] = []\n  let element: HTMLElement | undefined = container\n  while (element && element !== document.documentElement) {\n    if (isScrollElement(element)) {\n      scrollElements.push(element)\n    }\n    element = element.parentElement ?? undefined\n  }\n  return scrollElements\n}\n","import {\n  computed,\n  defineComponent,\n  Teleport,\n  ref,\n  Transition,\n  nextTick,\n  onMounted,\n  watch,\n  onBeforeUnmount,\n  inject,\n  provide,\n  reactive\n} from 'vue'\nimport type { StyleValue, CSSProperties, Ref } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n\nimport usePopupManager from '../../../hooks/use-popup-manager'\nimport { useFirstElement } from '../../../hooks/use-first-element'\nimport { useResizeObserver } from '../../../hooks/use-resize-observer'\nimport { mergeFirstChild } from '../../../utils/vue-utils'\nimport { on, off } from '../../../utils/dom'\n\nimport ResizeObserver from '../../../shared/resize-observer'\nimport ParentScrollObserver from '../../../shared/parent-scroll-observer'\nimport { triggerProps } from './_trigger'\nimport type { TriggerEvent } from './_trigger'\n\nimport { triggerInjectionKey } from './constant'\n\nimport { getArrowStyle, getPopupStyle, getElementScrollRect, getTransformOrigin } from './utils'\n\nexport default defineComponent({\n  name: getComponentNamespace('Trigger'),\n  props: triggerProps,\n  emits: ['update:popupVisible', 'popupVisibleChange', 'show', 'hide'],\n  setup(props, { emit, slots, attrs }) {\n    const ns = getNamespace('trigger')\n\n    const teleportContainer = computed(() => props.popupContainer || document.body)\n    const containerRef = ref<HTMLElement>()\n\n    onMounted(() => {\n      containerRef.value = document.documentElement\n    })\n\n    // 用于多个trigger嵌套时，保持打开状态\n    const childrenRefs = new Set<Ref<HTMLElement>>()\n    const triggerCtx = inject(triggerInjectionKey, undefined)\n\n    // trigger相关变量\n    const { children, firstElement } = useFirstElement()\n\n    // popup相关变量\n    const popupRef = ref<HTMLElement>()\n    const popupVisible = ref(props.defaultPopupVisible)\n    const popupPosition = ref(props.position)\n    const popupStyle = ref<CSSProperties>({})\n    const transformStyle = ref<CSSProperties>({})\n    const arrowStyle = ref<CSSProperties>({})\n    const computedVisible = computed(() => props.popupVisible ?? popupVisible.value)\n\n    // cls\n    const cls = computed(() => {\n      const cls: StyleValue = [`${ns}-popup`]\n      return cls\n    })\n\n    const triggerCls = computed(() => {\n      return computedVisible.value ? props.openedClass : undefined\n    })\n\n    // 鼠标相关变量\n    const arrowRef = ref<HTMLElement>()\n    const mousePosition = ref({\n      top: 0,\n      left: 0\n    })\n\n    const { zIndex } = usePopupManager('popup', { visible: computedVisible })\n\n    let delayTimer = 0\n    let outsideListener = false\n\n    const cleanDelayTimer = () => {\n      if (delayTimer) {\n        window.clearTimeout(delayTimer)\n        delayTimer = 0\n      }\n    }\n\n    const updateMousePosition = (e: MouseEvent) => {\n      if (props.alignPoint) {\n        const { pageX, pageY } = e\n        mousePosition.value = {\n          top: pageY,\n          left: pageX\n        }\n      }\n    }\n\n    const updatePopupStyle = () => {\n      if (!firstElement.value || !popupRef.value || !containerRef.value) {\n        return\n      }\n      const containerRect = containerRef.value.getBoundingClientRect()\n      const triggerRect = props.alignPoint\n        ? {\n            top: mousePosition.value.top,\n            bottom: mousePosition.value.top,\n            left: mousePosition.value.left,\n            right: mousePosition.value.left,\n            scrollTop: mousePosition.value.top,\n            scrollBottom: mousePosition.value.top,\n            scrollLeft: mousePosition.value.left,\n            scrollRight: mousePosition.value.left,\n            width: 0,\n            height: 0\n          }\n        : getElementScrollRect(firstElement.value, containerRect)\n      const getPopupRect = () => getElementScrollRect(popupRef.value as HTMLElement, containerRect)\n      const popupRect = getPopupRect()\n\n      const { style, position } = getPopupStyle(\n        props.position,\n        containerRect,\n        triggerRect,\n        popupRect,\n        {\n          offset: props.popupOffset,\n          translate: props.popupTranslate,\n          customStyle: props.popupStyle,\n          autoFitPosition: props.autoFitPosition\n        }\n      )\n      if (props.autoFitTransformOrigin) {\n        transformStyle.value = {\n          transformOrigin: getTransformOrigin(position)\n        }\n      }\n      if (props.autoFitPopupMinWidth) {\n        style.minWidth = `${triggerRect.width}px`\n      } else if (props.autoFitPopupWidth) {\n        style.width = `${triggerRect.width}px`\n      }\n\n      if (popupPosition.value !== position) {\n        popupPosition.value = position\n      }\n      popupStyle.value = style\n      if (props.showArrow) {\n        nextTick(() => {\n          arrowStyle.value = getArrowStyle(position, triggerRect, getPopupRect(), {\n            customStyle: props.arrowStyle\n          })\n        })\n      }\n    }\n\n    const handleResize = () => {\n      if (computedVisible.value) {\n        updatePopupStyle()\n      }\n    }\n\n    const changeVisible = (visible: boolean, delay?: number) => {\n      if (visible === computedVisible.value && delayTimer === 0) {\n        return\n      }\n      const update = () => {\n        popupVisible.value = visible\n        emit('update:popupVisible', visible)\n        emit('popupVisibleChange', visible)\n        if (visible) {\n          nextTick(() => {\n            updatePopupStyle()\n          })\n        }\n      }\n\n      if (delay) {\n        cleanDelayTimer()\n        if (visible !== computedVisible.value) {\n          delayTimer = window.setTimeout(update, delay)\n        }\n      } else {\n        update()\n      }\n    }\n\n    const triggerMethods = computed(() => ([] as Array<TriggerEvent>).concat(props.trigger))\n\n    const handleOutsideClick = (e: MouseEvent) => {\n      if (\n        firstElement.value?.contains(e.target as HTMLElement) ||\n        popupRef.value?.contains(e.target as HTMLElement)\n      ) {\n        return\n      }\n\n      // 查找其它trigger\n      for (const item of childrenRefs) {\n        if (item.value?.contains(e.target as HTMLElement)) {\n          return\n        }\n      }\n\n      removeOutsideListener()\n      changeVisible(false)\n    }\n\n    // 当popup显示状态改变时，修改外部点击事件\n    watch(computedVisible, (value) => {\n      if (props.clickOutsideToClose) {\n        if (!value && outsideListener) {\n          removeOutsideListener()\n        } else if (value && !outsideListener) {\n          on(document.documentElement, 'mousedown', handleOutsideClick)\n          outsideListener = true\n        }\n      }\n      if (value) {\n        mounted.value = true\n      }\n    })\n\n    const removeOutsideListener = () => {\n      off(document.documentElement, 'mousedown', handleOutsideClick)\n      outsideListener = false\n    }\n\n    triggerCtx?.addChildRef(popupRef)\n\n    // 影响popup显示的参数变化时，更新popup样式\n    watch(\n      () => [props.autoFitPopupWidth, props.autoFitPopupMinWidth],\n      () => {\n        if (computedVisible.value) {\n          updatePopupStyle()\n        }\n      }\n    )\n\n    const { createResizeObserver, destroyResizeObserver } = useResizeObserver({\n      elementRef: containerRef,\n      onResize: handleResize\n    })\n\n    onMounted(() => {\n      createResizeObserver()\n      //默认显示时，更新popup位置\n      if (props.clickOutsideToClose && !outsideListener) {\n        on(document.documentElement, 'mousedown', handleOutsideClick)\n        outsideListener = true\n      }\n    })\n\n    onBeforeUnmount(() => {\n      triggerCtx?.removeChildRef(popupRef)\n      destroyResizeObserver()\n      if (outsideListener) {\n        removeOutsideListener()\n      }\n    })\n\n    // 触发器相关\n    // click\n    const handleClick = (e: MouseEvent) => {\n      // (attrs as any).onClick?.(e)\n      if (props.disabled || (computedVisible.value && !props.clickToClose)) {\n        return\n      }\n      if (triggerMethods.value.includes('click')) {\n        updateMousePosition(e)\n        changeVisible(!computedVisible.value)\n      } else if (triggerMethods.value.includes('contextMenu') && computedVisible.value) {\n        changeVisible(false)\n      }\n    }\n    // hover\n    const handleMouseEnter = (e: MouseEvent) => {\n      // (attrs as any).onMouseenter?.(e);\n      if (props.disabled || !triggerMethods.value.includes('hover')) {\n        return\n      }\n      updateMousePosition(e)\n      changeVisible(true, props.mouseEnterDelay)\n    }\n\n    const handleMouseEnterWithContext = (e: MouseEvent) => {\n      triggerCtx?.onMouseenter(e)\n      handleMouseEnter(e)\n    }\n\n    const handleMouseLeave = () => {\n      // (attrs as any).onMouseleave?.(e);\n      if (props.disabled || !triggerMethods.value.includes('hover')) {\n        return\n      }\n      changeVisible(false, props.mouseLeaveDelay)\n    }\n\n    const handleMouseLeaveWithContext = (e: MouseEvent) => {\n      triggerCtx?.onMouseleave(e)\n      handleMouseLeave()\n    }\n\n    // focus\n    const handleFocusin = () => {\n      // (attrs as any).onFocusin?.(e);\n      if (props.disabled || !triggerMethods.value.includes('focus')) {\n        return\n      }\n      changeVisible(true, props.focusDelay)\n    }\n\n    const handleFocusout = (e: FocusEvent) => {\n      ;(attrs as any).onFocusout?.(e)\n      if (props.disabled || !triggerMethods.value.includes('focus')) {\n        return\n      }\n      if (!props.blurToClose) {\n        return\n      }\n      changeVisible(false)\n    }\n\n    // contextMenu\n    const handleContextmenu = (e: MouseEvent) => {\n      // (attrs as any).onContextmenu?.(e);\n      if (\n        props.disabled ||\n        !triggerMethods.value.includes('contextMenu') ||\n        (computedVisible.value && !props.clickToClose)\n      ) {\n        return\n      }\n      updateMousePosition(e)\n      changeVisible(!computedVisible.value)\n      e.preventDefault()\n    }\n\n    const handlePopupMouseDown = (e: Event) => {\n      if (props.preventFocus) {\n        e.preventDefault()\n      }\n    }\n\n    const addChildRef = (ref: any) => {\n      childrenRefs.add(ref)\n      triggerCtx?.addChildRef(ref)\n    }\n    const removeChildRef = (ref: any) => {\n      childrenRefs.delete(ref)\n      triggerCtx?.removeChildRef(ref)\n    }\n\n    // 添加triggerCtx，用于嵌套时保持状态\n    provide(\n      triggerInjectionKey,\n      reactive({\n        onMouseenter: handleMouseEnterWithContext,\n        onMouseleave: handleMouseLeaveWithContext,\n        addChildRef,\n        removeChildRef\n      })\n    )\n\n    // 动画相关\n    const isAnimation = ref(false)\n    const mounted = ref(computedVisible.value)\n\n    const onAnimationStart = () => {\n      isAnimation.value = true\n    }\n\n    const handleShow = () => {\n      isAnimation.value = false\n      if (computedVisible.value) {\n        emit('show')\n      }\n    }\n\n    const handleHide = () => {\n      isAnimation.value = false\n      if (!computedVisible.value) {\n        mounted.value = false\n        emit('hide')\n      }\n    }\n\n    return () => {\n      children.value = slots.default?.() ?? []\n      // 给第一个虚拟dom合并新的props\n      mergeFirstChild(children.value, {\n        class: triggerCls.value,\n        onClick: handleClick,\n        onMouseenter: handleMouseEnter,\n        onMouseleave: handleMouseLeave,\n        onFocusin: handleFocusin,\n        onFocusout: handleFocusout,\n        onContextmenu: handleContextmenu\n      })\n      return (\n        <>\n          {props.autoFixPosition ? (\n            <ResizeObserver onResize={handleResize}>\n              <ParentScrollObserver onScroll={handleResize}>{children.value}</ParentScrollObserver>\n            </ResizeObserver>\n          ) : (\n            children.value\n          )}\n          <Teleport to={teleportContainer.value} disabled={!props.renderToBody}>\n            {props.unmountOnClose && !computedVisible.value && !mounted.value ? null : (\n              <ResizeObserver onResize={handleResize}>\n                <div\n                  class={cls.value}\n                  ref={popupRef}\n                  style={{\n                    ...popupStyle.value,\n                    zIndex: zIndex.value,\n                    pointerEvents: isAnimation.value ? 'none' : 'auto',\n                    position: 'absolute'\n                  }}\n                  trigger-placement={popupPosition.value}\n                  onMouseenter={handleMouseEnterWithContext}\n                  onMouseleave={handleMouseLeaveWithContext}\n                  onMousedown={handlePopupMouseDown}\n                >\n                  <Transition\n                    name={props.animationName}\n                    duration={props.duration}\n                    appear\n                    onBeforeEnter={onAnimationStart}\n                    onAfterEnter={handleShow}\n                    onBeforeLeave={onAnimationStart}\n                    onAfterLeave={handleHide}\n                  >\n                    <div\n                      class={`${ns}-popup-wrapper`}\n                      style={transformStyle.value}\n                      v-show={computedVisible.value}\n                    >\n                      <div class={[`${ns}-content`, props.contentClass]} style={props.contentStyle}>\n                        {slots.content?.()}\n                      </div>\n                      {props.showArrow && (\n                        <div\n                          ref={arrowRef}\n                          class={[`${ns}-arrow`, props.arrowClass]}\n                          style={{\n                            position: 'absolute',\n                            'border-width': 'var(--bn-trigger-arrow-size)',\n                            'border-style': 'solid',\n                            zIndex: 0,\n                            ...arrowStyle.value\n                          }}\n                        />\n                      )}\n                    </div>\n                  </Transition>\n                </div>\n              </ResizeObserver>\n            )}\n          </Teleport>\n        </>\n      )\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Trigger from './src/trigger'\n\nexport const Trigger = withInstall(_Trigger)\nexport type TriggerInstance = InstanceType<typeof _Trigger>\nexport default Trigger\n","<script lang=\"ts\">\n  import { defineComponent, ref, watch, computed, onUnmounted, onMounted, nextTick } from 'vue'\n  import { getNamespace } from '../../utils/global-config'\n  import { isElement } from '../../utils/is'\n  import { definePropType } from '../../utils/vue-utils'\n\n  import BnInput from '../input'\n  import { BnIconCaret, BnIconClose } from '../icon'\n\n  import type { InputInstance } from '../input'\n\n  export default defineComponent({\n    name: 'SelectTrigger',\n    components: {\n      BnInput,\n      BnIconCaret,\n      BnIconClose\n    },\n    props: {\n      inputValue: {\n        type: String,\n        default: ''\n      },\n      disabled: Boolean,\n      size: {\n        type: definePropType<'small' | 'default' | 'large'>(String),\n        default: 'default'\n      },\n      placeholder: {\n        type: String,\n        default: undefined\n      },\n      clearable: Boolean,\n      popupVisible: Boolean,\n      multiple: Boolean,\n      multipleTags: {\n        type: definePropType<{ label: any; key: any }[]>(Array),\n        default: () => []\n      },\n      filterable: {\n        type: Boolean,\n        default: false\n      },\n      popupRef: {\n        type: Object,\n        default: undefined\n      },\n      card: {\n        type: Boolean,\n        default: false\n      },\n      maxTag: {\n        type: Number,\n        default: undefined\n      }\n    },\n    emits: ['show', 'clear', 'tagClose', 'filter'],\n    setup(props, { emit }) {\n      const ns = getNamespace('select-trigger')\n\n      const selectTriggerDomRef = ref<HTMLElement>()\n      const inputComponentRef = ref<InputInstance>()\n      const multipleInputRef = ref<HTMLElement>()\n\n      const readonly = computed(() => !props.filterable || props.multiple || !props.popupVisible)\n      const multipleInputReadonly = computed(() => props.filterable && !props.popupVisible)\n      const query = ref('')\n      const multipleQuery = ref('')\n      const placeholder = ref<string | undefined>()\n\n      const setBnInputHeight = () => {\n        const height = multipleTagsRef.value?.clientHeight + 'px'\n        const inputElement = inputComponentRef.value?.inputRef\n        if (inputElement) {\n          inputElement.style.transition = 'height 0.05s'\n          if (props.multipleTags.length) {\n            inputElement.style.height = height\n          } else {\n            inputElement.style.height = ''\n          }\n        }\n      }\n\n      const multipleTagsRef = ref<HTMLElement>()\n\n      const computedInputValue = computed({\n        get() {\n          if (props.multiple) {\n            if (props.multipleTags.length) {\n              return ' '\n            }\n          }\n          if (props.filterable) return query.value\n          return props.inputValue\n        },\n        set(val) {\n          query.value = val\n        }\n      })\n\n      const computedPlaceholder = computed(() => {\n        if (props.multiple) {\n          if (multipleQuery.value.length) return ''\n          if (props.multipleTags.length === 0) return props.placeholder\n          return ''\n        }\n        if (props.filterable) return placeholder.value || props.placeholder\n        return props.placeholder\n      })\n\n      const handleSelectTrigger = () => {\n        if (!props.filterable) return\n        if (props.multiple) {\n          multipleQuery.value = ''\n          multipleInputRef.value?.focus()\n          inputComponentRef.value?.setFocus(true)\n        } else {\n          query.value = ''\n          placeholder.value = props.inputValue || props.placeholder\n        }\n        if (!props.popupVisible) {\n          emit('filter', '')\n        } else {\n          resetQuery()\n        }\n      }\n\n      const resetQuery = () => {\n        if (!props.filterable) return\n        if (props.multiple) {\n          multipleQuery.value = ''\n        } else {\n          query.value = props.inputValue\n        }\n      }\n\n      const handleClear = () => {\n        if (props.multiple) {\n          multipleQuery.value = ''\n        } else {\n          query.value = ''\n          placeholder.value = props.placeholder\n        }\n        emit('clear')\n      }\n\n      const onInputEvent = async () => {\n        if (!props.filterable) return\n        await nextTick()\n        if (props.multiple) {\n          emit('filter', multipleQuery.value)\n        } else {\n          emit('filter', query.value)\n        }\n      }\n\n      watch(\n        () => props.inputValue,\n        (val) => {\n          query.value = val\n        },\n        {\n          immediate: true\n        }\n      )\n\n      watch(\n        () => props.multipleTags,\n        () => {\n          if (props.multiple) {\n            nextTick(setBnInputHeight)\n          }\n        }\n      )\n\n      const popupTargetElement = computed(() => {\n        if (isElement(props.popupRef)) return props.popupRef\n        if (isElement(props.popupRef?.$el)) return props.popupRef?.$el\n        return null\n      })\n\n      const clickOutside = (e: MouseEvent) => {\n        const el = e.target as HTMLElement\n        const deps: HTMLElement[] = [popupTargetElement.value, selectTriggerDomRef.value]\n        const inner = deps.some((container) => container?.contains(el))\n        requestAnimationFrame(() => {\n          inputComponentRef.value?.setFocus(inner)\n          !inner && resetQuery()\n        })\n      }\n\n      const handleMultipleInput = () => {\n        resetQuery()\n        emit('filter', '')\n        if (!props.popupVisible) {\n          emit('show')\n        }\n      }\n\n      onMounted(() => {\n        document.documentElement.addEventListener('mousedown', clickOutside, true)\n      })\n\n      onUnmounted(() => {\n        document.documentElement.removeEventListener('mousedown', clickOutside, true)\n      })\n\n      const transitionEvent = {\n        beforeEnter() {},\n        enter() {\n          setTimeout(setBnInputHeight)\n        },\n        afterEnter() {},\n        beforeLeave() {},\n        leave() {},\n        afterLeave() {\n          setTimeout(setBnInputHeight)\n        }\n      }\n\n      const multipleTagsView = computed(() => {\n        if (!props.maxTag) return props.multipleTags\n        return props.multipleTags.slice(0, props.maxTag)\n      })\n\n      return {\n        ns,\n        inputComponentRef,\n        multipleTagsRef,\n        readonly,\n        multipleInputReadonly,\n        computedPlaceholder,\n        computedInputValue,\n        multipleInputRef,\n        multipleQuery,\n        selectTriggerDomRef,\n        transitionEvent,\n        multipleTagsView,\n        handleSelectTrigger,\n        handleClear,\n        onInputEvent,\n        resetQuery,\n        handleMultipleInput\n      }\n    }\n  })\n</script>\n\n<template>\n  <div ref=\"selectTriggerDomRef\" :class=\"[ns]\" @click.stop=\"handleSelectTrigger\">\n    <BnInput\n      ref=\"inputComponentRef\"\n      v-model=\"computedInputValue\"\n      :validate-event=\"false\"\n      :disabled=\"disabled\"\n      :size=\"size\"\n      :readonly=\"readonly\"\n      :placeholder=\"computedPlaceholder\"\n      :clearable=\"clearable\"\n      :card=\"card\"\n      @clear=\"handleClear\"\n      @input=\"onInputEvent\"\n      @focus=\"onInputEvent\"\n    >\n      <template #suffix-icon>\n        <BnIconCaret :class=\"[{ 'is-rotate': popupVisible }, `${ns}__icon-caret`]\" />\n      </template>\n    </BnInput>\n    <div v-if=\"multiple\" ref=\"multipleTagsRef\" :class=\"[`${ns}__multiple`, `is-${size}`]\">\n      <transition-group v-on=\"transitionEvent\">\n        <div\n          v-for=\"tag in multipleTagsView\"\n          :key=\"`${tag.key}`\"\n          :class=\"[`${ns}__tag`, `is-${size}`]\"\n        >\n          <span :class=\"[`${ns}__tag-text`]\">{{ tag.label }}</span>\n          <BnIconClose @click.stop=\"$emit('tagClose', tag)\" />\n        </div>\n      </transition-group>\n      <div v-if=\"maxTag && multipleTags.length > maxTag\" :class=\"[`${ns}__tag-max`]\"\n        >+{{ multipleTags.length - maxTag }}</div\n      >\n      <input\n        v-if=\"multiple && filterable\"\n        ref=\"multipleInputRef\"\n        v-model=\"multipleQuery\"\n        :readonly=\"multipleInputReadonly\"\n        :class=\"[`${ns}__input`, `is-${size}`]\"\n        autocomplete=\"false\"\n        type=\"text\"\n        @input=\"onInputEvent\"\n        @click.stop=\"handleMultipleInput\"\n      />\n    </div>\n  </div>\n</template>\n","import type { PropType, StyleValue, ExtractPropTypes } from 'vue'\n\nexport const scrollbarProps = {\n  type: {\n    type: String as PropType<'track' | 'embed'>,\n    default: 'embed'\n  },\n  outerClass: [String, Object, Array],\n  outerStyle: {\n    type: [String, Object, Array] as PropType<StyleValue>\n  },\n  // private\n  hide: {\n    type: Boolean,\n    default: false\n  },\n  disableHorizontal: {\n    type: Boolean,\n    default: false\n  },\n  disableVertical: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type ScrollProps = ExtractPropTypes<typeof scrollbarProps>\n","export const TRACK_SIZE = 6\n","import type { PropType, ExtractPropTypes } from 'vue'\nimport type { Direction, ThumbData } from './types'\n\nexport const thumbProps = {\n  data: {\n    type: Object as PropType<ThumbData>\n  },\n  direction: {\n    type: String as PropType<Direction>,\n    default: 'horizontal'\n  },\n  alwaysShow: {\n    type: Boolean,\n    default: false\n  },\n  both: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type ThumbProps = ExtractPropTypes<typeof thumbProps>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { on, off } from '../../../utils/dom'\n  import { thumbProps } from './thumb'\n  import type { ThumbMap } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Thumb'),\n    props: thumbProps,\n    emits: ['scroll'],\n    setup(props, { emit }) {\n      const track_ns = getNamespace('scrollbar-track')\n      const trackCls = computed(() => [track_ns, `${track_ns}__${props.direction}`])\n      const thumb_ns = getNamespace('scrollbar-thumb')\n      const thumbCls = computed(() => [\n        thumb_ns,\n        `${thumb_ns}__${props.direction}`,\n        isDragging.value && 'is-dragging'\n      ])\n\n      const trackRef = ref<HTMLElement>()\n      const thumbRef = ref<HTMLElement>()\n\n      const thumbMap = computed<ThumbMap>(() => {\n        if (props.direction === 'horizontal') {\n          return {\n            size: 'width',\n            direction: 'left',\n            offset: 'offsetWidth',\n            client: 'clientX'\n          }\n        }\n        return {\n          size: 'height',\n          direction: 'top',\n          offset: 'offsetHeight',\n          client: 'clientY'\n        }\n      })\n\n      const offset = ref(0)\n\n      const isDragging = ref(false)\n      const mouseOffset = ref(0)\n\n      const thumbStyle = computed(() => {\n        return {\n          [thumbMap.value.size]: `${props.data?.thumbSize ?? 0}px`,\n          [thumbMap.value.direction]: `${offset.value}px`\n        }\n      })\n\n      const handleThumbMouseDown = (ev: MouseEvent) => {\n        ev.preventDefault()\n        if (thumbRef.value) {\n          mouseOffset.value =\n            ev[thumbMap.value.client] -\n            thumbRef.value.getBoundingClientRect()[thumbMap.value.direction]\n          isDragging.value = true\n          on(window, 'mousemove', handleMouseMove)\n          on(window, 'mouseup', handleMouseUp)\n          on(window, 'contextmenu', handleMouseUp)\n        }\n      }\n\n      const handleTrackClick = (ev: MouseEvent) => {\n        ev.preventDefault()\n\n        if (thumbRef.value) {\n          const _offset = getLegalOffset(\n            ev[thumbMap.value.client] >\n              thumbRef.value.getBoundingClientRect()[thumbMap.value.direction]\n              ? offset.value + (props.data?.thumbSize ?? 0)\n              : offset.value - (props.data?.thumbSize ?? 0)\n          )\n          if (_offset !== offset.value) {\n            offset.value = _offset\n            emit('scroll', _offset)\n          }\n        }\n      }\n\n      const getLegalOffset = (offset: number) => {\n        if (offset < 0) {\n          return 0\n        }\n        if (props.data && offset > props.data.max) {\n          return props.data.max\n        }\n        return offset\n      }\n\n      const handleMouseMove = (ev: MouseEvent) => {\n        if (trackRef.value && thumbRef.value) {\n          const _offset = getLegalOffset(\n            ev[thumbMap.value.client] -\n              trackRef.value.getBoundingClientRect()[thumbMap.value.direction] -\n              mouseOffset.value\n          )\n          if (_offset !== offset.value) {\n            offset.value = _offset\n            emit('scroll', _offset)\n          }\n        }\n      }\n\n      const handleMouseUp = () => {\n        isDragging.value = false\n        off(window, 'mousemove', handleMouseMove)\n        off(window, 'mouseup', handleMouseUp)\n      }\n\n      const setOffset = (_offset: number) => {\n        if (!isDragging.value) {\n          _offset = getLegalOffset(_offset)\n          if (_offset !== offset.value) {\n            offset.value = _offset\n          }\n        }\n      }\n\n      return {\n        trackCls,\n        thumbCls,\n        thumb_ns,\n        trackRef,\n        thumbRef,\n        handleThumbMouseDown,\n        handleTrackClick,\n        thumbStyle,\n        setOffset\n      }\n    },\n    expose: ['setOffset']\n  })\n</script>\n\n<template>\n  <div ref=\"trackRef\" :class=\"trackCls\" @mousedown.self=\"handleTrackClick\">\n    <div ref=\"thumbRef\" :class=\"thumbCls\" :style=\"thumbStyle\" @mousedown=\"handleThumbMouseDown\">\n    </div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, onMounted } from 'vue'\n  import type { StyleValue } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { isObject } from '../../../utils/is'\n  import ResizeObserver from '../../../shared/resize-observer'\n  import { scrollbarProps } from './scrollbar'\n  import { TRACK_SIZE } from './constant'\n  import Thumb from './thumb.vue'\n\n  import type { ThumbData } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Scrollbar'),\n    components: {\n      Thumb,\n      ResizeObserver\n    },\n    inheritAttrs: false,\n    props: scrollbarProps,\n    emits: ['scroll'],\n    setup(props, { emit }) {\n      const ns = getNamespace('scrollbar')\n      const cls = computed(() => [\n        ns,\n        props.outerClass,\n        isBoth.value && 'is-both',\n        `${ns}__${props.type}`\n      ])\n\n      const containerRef = ref<HTMLElement>()\n      const horizontalData = ref<ThumbData>()\n      const verticalData = ref<ThumbData>()\n      const horizontalThumbRef = ref()\n      const verticalThumbRef = ref()\n\n      const _hasHorizontalScrollbar = ref(false)\n      const _hasVerticalScrollbar = ref(false)\n      const hasHorizontalScrollbar = computed(\n        () => _hasHorizontalScrollbar.value && !props.disableHorizontal\n      )\n      const hasVerticalScrollbar = computed(\n        () => _hasVerticalScrollbar.value && !props.disableVertical\n      )\n\n      const isBoth = ref(false)\n\n      const getContainerSize = () => {\n        if (containerRef.value) {\n          const {\n            clientWidth,\n            clientHeight,\n            offsetWidth,\n            offsetHeight,\n            scrollWidth,\n            scrollHeight,\n            scrollTop,\n            scrollLeft\n          } = containerRef.value\n\n          _hasHorizontalScrollbar.value = scrollWidth > clientWidth\n          _hasVerticalScrollbar.value = scrollHeight > clientHeight\n\n          isBoth.value = hasHorizontalScrollbar.value && hasVerticalScrollbar.value\n          const horizontalTrackWidth =\n            props.type === 'embed' && isBoth.value ? offsetWidth - TRACK_SIZE : offsetWidth\n          const verticalTrackHeight =\n            props.type === 'embed' && isBoth.value ? offsetHeight - TRACK_SIZE : offsetHeight\n\n          const horizontalThumbWidth = Math.round(\n            horizontalTrackWidth / Math.min(scrollWidth / clientWidth, horizontalTrackWidth)\n          )\n          const maxHorizontalOffset = horizontalTrackWidth - horizontalThumbWidth\n          const horizontalRatio = (scrollWidth - clientWidth) / maxHorizontalOffset\n          const verticalThumbHeight = Math.round(\n            verticalTrackHeight / Math.min(scrollHeight / clientHeight, verticalTrackHeight)\n          )\n          const maxVerticalOffset = verticalTrackHeight - verticalThumbHeight\n          const verticalRatio = (scrollHeight - clientHeight) / maxVerticalOffset\n\n          horizontalData.value = {\n            ratio: horizontalRatio,\n            thumbSize: horizontalThumbWidth,\n            max: maxHorizontalOffset\n          }\n          verticalData.value = {\n            ratio: verticalRatio,\n            thumbSize: verticalThumbHeight,\n            max: maxVerticalOffset\n          }\n          if (scrollTop > 0) {\n            const verticalOffset = Math.round(scrollTop / (verticalData.value?.ratio ?? 1))\n            verticalThumbRef.value?.setOffset(verticalOffset)\n          }\n          if (scrollLeft > 0) {\n            const horizontalOffset = Math.round(scrollLeft / (verticalData.value?.ratio ?? 1))\n            horizontalThumbRef.value?.setOffset(horizontalOffset)\n          }\n        }\n      }\n\n      const handleResize = () => {\n        getContainerSize()\n      }\n\n      const handleVerticalScroll = (offset: number) => {\n        if (containerRef.value) {\n          containerRef.value.scrollTo({\n            top: offset * (verticalData.value?.ratio ?? 1)\n          })\n        }\n      }\n\n      const handleHorizontalScroll = (offset: number) => {\n        if (containerRef.value) {\n          containerRef.value.scrollTo({\n            left: offset * (horizontalData.value?.ratio ?? 1)\n          })\n        }\n      }\n\n      const style = computed(() => {\n        const style: StyleValue = {}\n        if (props.type === 'track') {\n          if (hasHorizontalScrollbar.value) {\n            style.paddingBottom = `${TRACK_SIZE}px`\n          }\n          if (hasVerticalScrollbar.value) {\n            style.paddingRight = `${TRACK_SIZE}px`\n          }\n        }\n        return [style, props.outerStyle ?? {}]\n      })\n\n      const handleScroll = (ev: Event) => {\n        if (containerRef.value) {\n          if (hasHorizontalScrollbar.value && !props.disableHorizontal) {\n            const horizontalOffset = Math.round(\n              containerRef.value.scrollLeft / (horizontalData.value?.ratio ?? 1)\n            )\n            horizontalThumbRef.value?.setOffset(horizontalOffset)\n          }\n          if (hasVerticalScrollbar.value && !props.disableVertical) {\n            const verticalOffset = Math.round(\n              containerRef.value.scrollTop / (verticalData.value?.ratio ?? 1)\n            )\n            verticalThumbRef.value?.setOffset(verticalOffset)\n          }\n        }\n        emit('scroll', ev)\n      }\n\n      onMounted(() => {\n        getContainerSize()\n      })\n\n      return {\n        ns,\n        cls,\n        style,\n        containerRef,\n        horizontalThumbRef,\n        verticalThumbRef,\n        horizontalData,\n        verticalData,\n        isBoth,\n        hasHorizontalScrollbar,\n        hasVerticalScrollbar,\n        handleScroll,\n        handleHorizontalScroll,\n        handleVerticalScroll,\n        handleResize\n      }\n    },\n    methods: {\n      scrollTo(\n        options?:\n          | number\n          | {\n              left?: number\n              top?: number\n            },\n        y?: number\n      ) {\n        if (isObject(options)) {\n          ;(this.$refs.containerRef as HTMLElement)?.scrollTo(options)\n        } else if (options || y) {\n          ;(this.$refs.containerRef as HTMLElement)?.scrollTo(options as number, y as number)\n        }\n      },\n      scrollTop(top: number) {\n        ;(this.$refs.containerRef as HTMLElement)?.scrollTo({\n          top\n        })\n      },\n      scrollLeft(left: number) {\n        ;(this.$refs.containerRef as HTMLElement)?.scrollTo({\n          left\n        })\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\" :style=\"style\">\n    <div ref=\"containerRef\" :class=\"`${ns}__container`\" v-bind=\"$attrs\" @scroll=\"handleScroll\">\n      <ResizeObserver @resize=\"handleResize\">\n        <slot></slot>\n      </ResizeObserver>\n    </div>\n\n    <Thumb\n      v-if=\"!hide && hasHorizontalScrollbar\"\n      ref=\"horizontalThumbRef\"\n      :data=\"horizontalData\"\n      direction=\"horizontal\"\n      :both=\"isBoth\"\n      @scroll=\"handleHorizontalScroll\"\n    />\n    <Thumb\n      v-if=\"!hide && hasVerticalScrollbar\"\n      ref=\"verticalThumbRef\"\n      :data=\"verticalData\"\n      direction=\"vertical\"\n      :both=\"isBoth\"\n      @scroll=\"handleVerticalScroll\"\n    />\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Scrollbar from './src/scrollbar.vue'\n\nexport const Scrollbar = withInstall(_Scrollbar)\n\nexport type ScrollbarInstance = InstanceType<typeof _Scrollbar>\n\nexport default Scrollbar\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { computed, defineComponent } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n  import { isArray } from '../../../utils/is'\n\n  export default defineComponent({\n    name: getComponentNamespace('Empty'),\n    props: {\n      iconSize: {\n        type: [Number, Array],\n        default: () => [240, 120]\n      },\n      description: {\n        type: [String, Number],\n        default: '暂无数据'\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('empty')\n      const cls = computed(() => [ns])\n\n      const imageStyle = computed(() => {\n        const style: StyleValue = {}\n        const iconSize = props.iconSize\n        if (isArray(iconSize)) {\n          const w = addUnit(iconSize[0] as number)\n          const h = addUnit(iconSize[1] as number) || w\n          style.width = w\n          style.height = h\n        } else {\n          const size = addUnit(iconSize)\n          style.width = size\n          style.height = size\n        }\n\n        return style\n      })\n\n      return {\n        ns,\n        cls,\n        imageStyle\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <div :class=\"[`${ns}__image`]\">\n      <slot name=\"image\">\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          :style=\"imageStyle\"\n          viewBox=\"0 0 244 120\"\n          version=\"1.1\"\n        >\n          <defs>\n            <linearGradient id=\"linearGradient-1\" x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"50%\">\n              <stop stop-color=\"#CAD5EB\" offset=\"0%\" />\n              <stop stop-color=\"#ECEFF6\" stop-opacity=\"0\" offset=\"99.9289773%\" />\n            </linearGradient>\n            <linearGradient\n              id=\"linearGradient-2\"\n              x1=\"34.5854478%\"\n              y1=\"9.89324279%\"\n              x2=\"67.8456655%\"\n              y2=\"94.5431915%\"\n            >\n              <stop stop-color=\"#A1AFCB\" offset=\"0.0628277972%\" />\n              <stop stop-color=\"#D8E0EE\" offset=\"100%\" />\n            </linearGradient>\n            <linearGradient\n              id=\"linearGradient-3\"\n              x1=\"16.7449114%\"\n              y1=\"74.7991872%\"\n              x2=\"75.8928571%\"\n              y2=\"30.6222098%\"\n            >\n              <stop stop-color=\"#A4B2CD\" offset=\"0%\" />\n              <stop stop-color=\"#E4EAF6\" offset=\"100%\" />\n            </linearGradient>\n          </defs>\n          <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            <g transform=\"translate(-813.000000, -420.000000)\">\n              <g transform=\"translate(813.000000, 420.000000)\">\n                <path\n                  d=\"M122,57 C167.975908,57 210.137771,65.1649368 243.001892,78.7529633 L242.999106,120 L-0.000894347329,120 L-0.00363654132,79.1700316 C32.2576315,65.6448296 73.6376675,57.3793167 118.858003,57.0127273 Z\"\n                  fill=\"url(#linearGradient-1)\"\n                  opacity=\"0.15\"\n                />\n                <path\n                  d=\"M134,-7.34788079e-16 L148,14 L148,66 C148,68.209139 146.209139,70 144,70 L100,70 C97.790861,70 96,68.209139 96,66 L96,4 C96,1.790861 97.790861,1.75292373e-15 100,1.34711148e-15 L134,-7.34788079e-16 Z M129,31 L106,31 L106,34 L129,34 L129,31 Z M129,24 L106,24 L106,27 L129,27 L129,24 Z M114,17 L106,17 L106,20 L114,20 L114,17 Z\"\n                  fill=\"url(#linearGradient-2)\"\n                  opacity=\"0.5\"\n                />\n                <path\n                  d=\"M134,0 L148,14 L138,14 C135.790861,14 134,12.209139 134,10 L134,0 L134,0 Z\"\n                  fill=\"url(#linearGradient-3)\"\n                  opacity=\"0.5\"\n                />\n              </g>\n            </g>\n          </g>\n        </svg>\n      </slot>\n    </div>\n    <div :class=\"[`${ns}__description`]\">\n      <slot name=\"description\">\n        {{ description }}\n      </slot>\n    </div>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Empty from './src/empty.vue'\n\nexport const Empty = withInstall(_Empty)\nexport type EmptyInstance = InstanceType<typeof _Empty>\nexport default Empty\n","import type { InjectionKey } from 'vue'\nimport type { OptVmProxy } from './types'\n\nexport interface SelectContext {\n  multiple: boolean\n  popupClass: string | undefined\n  compact: boolean\n  optionItemCreate(optVmProxy: OptVmProxy): void\n  optionItemDestroy(optVmProxy: OptVmProxy): void\n  optionItemSelect(optVmProxy: OptVmProxy): void\n  optionItemHoverIndexChange(optVmProxy: OptVmProxy): void\n  optionItemHoverChange(optVmProxy: OptVmProxy): void\n}\n\nexport const selectInjectKey: InjectionKey<SelectContext> = Symbol('Select')\n","<script lang=\"ts\">\n  import { computed, defineComponent, inject } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { selectInjectKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('SelectMenu'),\n    setup() {\n      const ns = getNamespace('select')\n      const selectContext = inject(selectInjectKey)\n\n      const cls = computed(() => [\n        `${ns}-menu`,\n        selectContext?.popupClass,\n        selectContext?.multiple && 'is-multiple',\n        selectContext?.compact && 'is-compact'\n      ])\n      return {\n        cls\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <slot></slot>\n  </div>\n</template>\n","import type { ExtractPropTypes } from 'vue'\nimport { definePropType } from '../../../utils/vue-utils'\n\nexport const selectProps = {\n  modelValue: {\n    type: [String, Number, Array],\n    default: undefined\n  },\n  multiple: {\n    type: Boolean,\n    default: false\n  },\n  loading: {\n    type: Boolean,\n    default: false\n  },\n  clearable: {\n    type: Boolean,\n    default: false\n  },\n  loadingText: {\n    type: String,\n    default: '加载中'\n  },\n  noDataText: {\n    type: String,\n    default: '暂无数据'\n  },\n  popupClass: {\n    type: String,\n    default: undefined\n  },\n  size: {\n    type: definePropType<'small' | 'default' | 'large'>(String),\n    default: 'default'\n  },\n  placeholder: {\n    type: String,\n    default: '请选择'\n  },\n  disabled: Boolean,\n  // input native\n  name: {\n    type: String,\n    default: ''\n  },\n  autocomplete: {\n    type: definePropType<'off' | 'no'>(String),\n    default: 'off'\n  },\n  //表单验证\n  validateEvent: {\n    type: Boolean,\n    default: true\n  },\n  filterable: {\n    type: Boolean,\n    default: false\n  },\n  filterMethod: {\n    type: Function,\n    default: undefined\n  },\n  remote: {\n    type: Boolean,\n    default: false\n  },\n  remoteMethod: {\n    type: Function,\n    default: undefined\n  },\n  filterDebounce: {\n    type: Number,\n    default: 300\n  },\n  card: {\n    type: Boolean,\n    default: false\n  },\n  compact: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\n","import { createCommentVNode, defineComponent } from 'vue'\nimport { getAllElements, isComponent } from '../../../utils/vue-utils'\nimport { isSameArray } from '../../../utils/is'\n\nexport default defineComponent({\n  name: 'OptionsExtract',\n  emits: ['update-options'],\n  setup(props, { slots, emit }) {\n    let cacheValues: any[] = []\n    return () => {\n      const optionsVns = getAllElements(slots.default?.()).filter(\n        (vn) => isComponent(vn, vn.type) && vn.type.name === 'BnOption'\n      )\n      const values = optionsVns.map((vn) => {\n        const value = vn.props?.value\n        const label = vn.props?.label ?? ''\n        return `value:${value}_label:${label}`\n      })\n      if (!isSameArray(cacheValues, values)) {\n        emit('update-options', optionsVns)\n        cacheValues = values\n      }\n      return createCommentVNode('options extract')\n    }\n  }\n})\n","import type { PropType, VNode } from 'vue'\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n  name: 'OptionsRender',\n  props: {\n    optionsVns: {\n      type: Array as PropType<VNode[]>,\n      default: () => []\n    }\n  },\n  setup(props) {\n    return () => {\n      return props.optionsVns\n    }\n  }\n})\n","<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    ref,\n    provide,\n    reactive,\n    watch,\n    nextTick,\n    onUnmounted\n  } from 'vue'\n  import type { VNode, ComponentPublicInstance } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import Trigger from '../../trigger/src/trigger'\n  import { BnIconLoading, BnIconEmpty } from '../../icon'\n  import SelectTrigger from '../../common/select-trigger.vue'\n  import { Scrollbar } from '../../scrollbar'\n  import type { ScrollbarInstance } from '../../scrollbar'\n\n  // 表单\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n\n  import { NOOP } from '../../../shared/utils'\n  import { isArray, isComponentInstance, isFunction } from '../../../utils/is'\n  import { debounce } from '../../../utils/throttle-debounce'\n  import { Empty } from '../../empty'\n  import SelectMenu from './menu.vue'\n  import { selectInjectKey } from './context'\n  import { selectProps } from './props'\n\n  import OptionsExtract from './options-extract'\n  import OptionsRender from './options-render'\n\n  import type { OptVmProxy } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Select'),\n    components: {\n      Trigger,\n      SelectMenu,\n      Scrollbar,\n      BnIconLoading,\n      SelectTrigger,\n      OptionsExtract,\n      OptionsRender,\n      Empty,\n      BnIconEmpty\n    },\n    props: selectProps,\n    emits: ['update:modelValue', 'change'],\n    setup(props, { emit }) {\n      const ns = getNamespace('select')\n      // TODO 从表单合并 disabled 属性\n      const mergeDisabled = computed(() => props.disabled)\n      const mergeSize = computed(() => props.size)\n\n      const cls = computed(() => [ns, mergeDisabled.value && 'is-disabled'])\n\n      const optionsVns = ref<VNode[]>([])\n      const optionValues = computed(() => optionsVns.value.map((opt) => opt.props?.value))\n      const popupVisible = ref(false)\n      const selectedLabelOnlySingle = ref('')\n      const multipleTags = ref<{ label: string; key: string }[]>([])\n      const currentSelected = ref<OptVmProxy | OptVmProxy[]>(props.multiple ? [] : ({} as any))\n      const cachedOptionsVmProxies = ref(new Map())\n      const selectTriggerRef = ref()\n      const scrollbarRef = ref<ScrollbarInstance>()\n      const popupRef = ref()\n\n      // 缓存的cachedOptionsVmProxies  Array\n      const cachedOptionsVmProxiesToArray = computed(() =>\n        Array.from<OptVmProxy>(cachedOptionsVmProxies.value.values())\n      )\n\n      const isEmpty = computed(() => {\n        const renderOptions = cachedOptionsVmProxiesToArray.value.filter((opt) =>\n          optionValues.value.includes(opt.value)\n        )\n        return !renderOptions.some((s) => s.visible)\n      })\n\n      const getOptionByValue = (value: any): OptVmProxy | undefined => {\n        const option = cachedOptionsVmProxiesToArray.value.find((opt) => opt.currentValue === value)\n        return option\n      }\n      const handleClear = () => {\n        const value = props.multiple ? [] : ''\n        emit('update:modelValue', value)\n        emit('change', value)\n\n        if (!props.multiple && props.remote) {\n          selectedLabelOnlySingle.value = ''\n        }\n\n        if (props.multiple && props.remote) {\n          multipleTags.value = []\n        }\n\n        handleClosePopup()\n      }\n\n      const emitSelectValue = (selected: OptVmProxy | OptVmProxy[]) => {\n        if (props.multiple) {\n          const values = (selected as OptVmProxy[]).map((opt) => opt.currentValue)\n          emit('update:modelValue', values)\n          emit('change', values)\n          return\n        }\n        const value = (selected as OptVmProxy).currentValue\n        emit('update:modelValue', value)\n        emit('change', value)\n        handleClosePopup()\n      }\n\n      const handleClosePopup = () => {\n        popupVisible.value = false\n      }\n\n      const handleShowPopup = () => {\n        popupVisible.value = true\n      }\n\n      const optionItemCreate = (optVmProxy: any) => {\n        cachedOptionsVmProxies.value.set(optVmProxy.value, optVmProxy)\n      }\n\n      const optionItemDestroy = (optVmProxy: OptVmProxy) => {\n        // 当前为远程多选搜索模式时，缓存的optVmProxy不要清除，为了后面状态同步。\n        if (props.remote && props.multiple) return\n        const key = optVmProxy.currentValue\n        if (cachedOptionsVmProxies.value.get(key)) {\n          cachedOptionsVmProxies.value.delete(key)\n        }\n      }\n\n      const optionItemSelect = (optVmProxy: OptVmProxy) => {\n        if (!props.multiple) {\n          if (currentSelected.value !== optVmProxy) {\n            emitSelectValue(optVmProxy)\n            if (props.remote) {\n              selectedLabelOnlySingle.value = optVmProxy.currentLabel ?? ''\n            }\n          } else {\n            handleClosePopup()\n            if (props.filterable) {\n              selectTriggerRef.value?.resetQuery()\n            }\n          }\n          return\n        }\n        const origin = (currentSelected.value as OptVmProxy[]).slice()\n        const index = origin.findIndex((opt) => opt === optVmProxy)\n        if (index > -1) {\n          // 删除\n          origin.splice(index, 1)\n        } else {\n          // 新增\n          origin.push(optVmProxy)\n        }\n        emitSelectValue(origin)\n      }\n\n      const optionItemHoverChange = (optProxy: OptVmProxy) => {\n        cachedOptionsVmProxiesToArray.value.forEach((opt) => {\n          opt.isHover = opt === optProxy\n        })\n      }\n      const getMultipleTags = (selected: OptVmProxy[]) => {\n        return selected.map((opt) => {\n          opt.isSelected = true\n          return {\n            key: opt.currentValue as string,\n            label: opt.currentLabel\n          }\n        })\n      }\n\n      // 维护内部当前选中的item状态\n      watch(\n        () => currentSelected.value,\n        (selected: OptVmProxy | OptVmProxy[]) => {\n          cachedOptionsVmProxiesToArray.value.forEach((opt) => {\n            opt.isSelected = false\n          })\n          if (props.multiple && isArray(selected)) {\n            multipleTags.value = getMultipleTags(selected as OptVmProxy[])\n          } else {\n            const _selected = selected as OptVmProxy\n            if (isComponentInstance(_selected)) {\n              _selected.isSelected = true\n            }\n            if (!props.remote) {\n              // 重置选中的label\n              selectedLabelOnlySingle.value = _selected.currentLabel ?? ''\n            }\n          }\n        }\n      )\n      // 多选 删除标签\n      const handleTagClose = (tag: { label: string; key: string }) => {\n        const key = tag.key\n        const origin = (currentSelected.value as OptVmProxy[]).slice()\n        const index = origin.findIndex((opt) => opt.currentValue === key)\n        if (index > -1) {\n          origin.splice(index, 1)\n        }\n        emitSelectValue(origin)\n      }\n\n      // 当插槽发生变化时，重新更新\n      const onUpdateOptionsVns = (vns: VNode[]) => {\n        optionsVns.value = vns\n      }\n\n      const whetherResetOptionVns = () => {\n        if (props.remote) {\n          onUpdateOptionsVns([])\n        }\n      }\n\n      const setSelected = async () => {\n        await nextTick()\n        if (!props.multiple) {\n          const option = getOptionByValue(props.modelValue)\n          if (!option) {\n            currentSelected.value = {} as any\n            return\n          }\n          currentSelected.value = option\n          return\n        }\n        const modelValue = isArray(props.modelValue) ? props.modelValue : [props.modelValue]\n        const optVmProxies = modelValue.map((value) => getOptionByValue(value))\n        currentSelected.value = (optVmProxies as OptVmProxy[]).filter(Boolean)\n      }\n\n      // 搜索过滤\n      const handleFilter = debounce(\n        (query: string) => {\n          if (props.remote) {\n            onUpdateOptionsVns([])\n            nextTick(() => {\n              if (isFunction(props.remoteMethod)) {\n                props.remoteMethod(query)\n              }\n            })\n          } else {\n            cachedOptionsVmProxiesToArray.value.forEach((optVmProxy) => {\n              let visible = false\n              if (!query) {\n                visible = true\n              } else if (isFunction(props.filterMethod)) {\n                visible = props.filterMethod(optVmProxy, query)\n              } else {\n                visible = new RegExp(`${query}`, 'i').test(optVmProxy.currentLabel)\n              }\n              optVmProxy.visible = visible\n            })\n          }\n        },\n        props.remote ? props.filterDebounce : 0,\n        true\n      )\n\n      // 让选中的optionItem出现在可视区 多选的话就以第一个为准\n      const updateOptionItemToVisible = () => {\n        const _currentSelected = currentSelected.value as unknown as ComponentPublicInstance\n        const el = (\n          isArray(_currentSelected) ? _currentSelected[0]?.$el : _currentSelected.$el\n        ) as HTMLElement\n        if (!el) return\n        const visibleHeight = scrollbarRef.value?.containerRef?.getBoundingClientRect()\n          .height as number\n        const offsetTop = el.offsetTop\n        const elHeight = el.getBoundingClientRect().height\n        const top = offsetTop + elHeight - visibleHeight\n        if (top > 0) {\n          scrollbarRef.value?.scrollTop(top)\n        }\n      }\n\n      // 表单验证\n      const { formItem } = useFormItem()\n\n      // option插槽数据变化\n      watch(\n        () => optionsVns.value,\n        (vns) => {\n          if (vns.length === 0) return\n          setSelected()\n        }\n      )\n\n      // 数据发生变化,进行表单验证\n      watch(\n        () => props.modelValue,\n        () => {\n          setSelected()\n          // 触发表单验证\n          if (props.validateEvent) {\n            formItem?.validate('change').catch(NOOP)\n          }\n        },\n        {\n          deep: true\n        }\n      )\n\n      onUnmounted(() => {\n        cachedOptionsVmProxies.value.clear()\n      })\n\n      provide(\n        selectInjectKey,\n        reactive({\n          multiple: props.multiple,\n          popupClass: props.popupClass,\n          compact: props.compact,\n          optionItemCreate,\n          optionItemDestroy,\n          optionItemSelect,\n          optionItemHoverChange\n        })\n      )\n\n      return {\n        ns,\n        cls,\n        popupVisible,\n        isEmpty,\n        onUpdateOptionsVns,\n        mergeDisabled,\n        mergeSize,\n        handleClosePopup,\n        scrollbarRef,\n        popupRef,\n        handleClear,\n        optionsVns,\n        selectedLabelOnlySingle,\n        multipleTags,\n        handleTagClose,\n        handleFilter,\n        updateOptionItemToVisible,\n        handleShowPopup,\n        whetherResetOptionVns,\n        selectTriggerRef\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <Trigger\n      v-model:popup-visible=\"popupVisible\"\n      position=\"bl\"\n      trigger=\"click\"\n      :unmount-on-close=\"false\"\n      animation-name=\"bn-slide-dynamic-origin\"\n      auto-fit-popup-min-width\n      :popup-offset=\"8\"\n      :disabled=\"mergeDisabled\"\n      @show=\"updateOptionItemToVisible\"\n      @hide=\"whetherResetOptionVns\"\n    >\n      <template #default>\n        <SelectTrigger\n          ref=\"selectTriggerRef\"\n          :input-value=\"selectedLabelOnlySingle\"\n          :disabled=\"mergeDisabled\"\n          :size=\"mergeSize\"\n          :placeholder=\"placeholder\"\n          :clearable=\"clearable\"\n          :popup-visible=\"popupVisible\"\n          :multiple=\"multiple\"\n          :multiple-tags=\"multipleTags\"\n          :filterable=\"filterable\"\n          :popup-ref=\"popupRef\"\n          :card=\"card\"\n          @clear=\"handleClear\"\n          @tag-close=\"handleTagClose\"\n          @filter=\"handleFilter\"\n          @show=\"handleShowPopup\"\n        />\n      </template>\n\n      <template #content>\n        <SelectMenu ref=\"popupRef\">\n          <Scrollbar ref=\"scrollbarRef\" style=\"max-height: 224px\">\n            <OptionsRender :options-vns=\"optionsVns\" />\n\n            <template v-if=\"isEmpty && !loading\">\n              <p :class=\"[`${ns}__empty`]\" @click=\"handleClosePopup\">\n                <slot name=\"empty\">\n                  <Empty :description=\"noDataText\">\n                    <template #image>\n                      <BnIconEmpty size=\"38\" />\n                    </template>\n                  </Empty>\n                </slot>\n              </p>\n            </template>\n            <template v-if=\"isEmpty && loading\">\n              <p :class=\"[`${ns}__empty`]\" @click=\"handleClosePopup\">\n                <BnIconLoading />\n                <span style=\"margin-left: 4px\">{{ loadingText }}</span>\n              </p>\n            </template>\n          </Scrollbar>\n        </SelectMenu>\n      </template>\n    </Trigger>\n\n    <OptionsExtract @update-options=\"onUpdateOptionsVns\">\n      <slot></slot>\n    </OptionsExtract>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Select from './src/select.vue'\n\nexport const Select = withInstall(_Select)\nexport type SelectInstance = InstanceType<typeof _Select>\nexport default Select\n","<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    inject,\n    getCurrentInstance,\n    onBeforeUnmount,\n    ref,\n    onMounted\n  } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { BnIconCheck } from '../../icon'\n  import { selectInjectKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('Option'),\n    components: {\n      BnIconCheck\n    },\n    props: {\n      value: {\n        required: true,\n        type: [String, Number, Boolean, Object]\n      },\n      label: {\n        type: [String, Number],\n        default: ''\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('select-menu')\n\n      const selectContext = inject(selectInjectKey)\n\n      // 是否选中\n      const isSelected = ref(false)\n      // 是否hover\n      const isHover = ref(false)\n      // 是否可见（过滤）\n      const visible = ref(true)\n\n      const multiple = computed(() => selectContext?.multiple)\n\n      const cls = computed(() => {\n        return [\n          `${ns}__item`,\n          isHover.value && 'is-hover',\n          props.disabled && `is-disabled`,\n          isSelected.value && 'is-selected'\n        ]\n      })\n\n      const currentLabel = computed(() => {\n        return props.label\n      })\n\n      const currentValue = computed(() => {\n        return props.value\n      })\n\n      const optVmProxy = getCurrentInstance()!.proxy as any\n\n      const optionItemHoverChange = () => {\n        if (!props.disabled) {\n          selectContext?.optionItemHoverChange(optVmProxy)\n        }\n      }\n\n      const optionItemSelect = () => {\n        if (props.disabled) return\n        selectContext?.optionItemSelect(optVmProxy)\n      }\n\n      onMounted(() => {\n        selectContext?.optionItemCreate(optVmProxy)\n      })\n\n      onBeforeUnmount(() => {\n        selectContext?.optionItemDestroy(optVmProxy)\n      })\n\n      return {\n        cls,\n        currentLabel,\n        currentValue,\n        optionItemHoverChange,\n        optionItemSelect,\n        multiple,\n\n        visible,\n        isHover,\n        isSelected\n      }\n    }\n  })\n</script>\n\n<template>\n  <div\n    v-show=\"visible\"\n    :class=\"cls\"\n    @mouseenter.stop=\"optionItemHoverChange\"\n    @click.stop=\"optionItemSelect\"\n  >\n    <slot>\n      <span>{{ currentLabel }}</span>\n    </slot>\n\n    <BnIconCheck v-if=\"multiple && isSelected\" />\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Option from '../select/src/option.vue'\n\nexport const Option = withInstall(_Option)\nexport type OptionInstance = InstanceType<typeof _Option>\nexport default Option\n","import type { PropType, ExtractPropTypes } from 'vue'\nimport type { PageConfig } from './types'\n\nexport const paginationProps = {\n  pageConfig: {\n    type: Object as PropType<PageConfig>,\n    default: () => ({})\n  },\n  pageSizes: {\n    type: Array as PropType<Array<number>>,\n    default: () => [10, 20, 30]\n  },\n  layout: {\n    type: String,\n    default: 'prev, pager, next'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type PaginationProps = ExtractPropTypes<typeof paginationProps>\n","<script lang=\"ts\">\n  import { computed, defineComponent } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n\n  export default defineComponent({\n    name: 'PaginationTotal',\n    props: {\n      total: {\n        type: Number,\n        default: 0\n      },\n      disabled: Boolean\n    },\n    setup() {\n      const ns = getNamespace('pagination-total')\n      const cls = computed(() => [ns])\n      return {\n        cls\n      }\n    }\n  })\n</script>\n\n<template>\n  <span :class=\"cls\"> 共 {{ total }} 条 </span>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, watchEffect } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  export default defineComponent({\n    name: 'PaginationPager',\n    props: {\n      currentPage: {\n        type: Number,\n        default: 1\n      },\n      pageCount: {\n        type: Number,\n        required: true\n      },\n      pagerCount: {\n        type: Number,\n        default: 7\n      },\n      disabled: Boolean\n    },\n    emits: ['change'],\n    setup(props, { emit }) {\n      const ns = getNamespace('pagination-pager')\n      const cls = computed(() => [ns])\n\n      const showPrevMore = ref(false)\n      const showNextMore = ref(false)\n\n      const pagers = computed(() => {\n        const pagerCount = props.pagerCount\n        const halfPagerCount = (pagerCount - 1) / 2\n        const currentPage = Number(props.currentPage)\n        const pageCount = Number(props.pageCount)\n        let showPrevMore = false\n        let showNextMore = false\n        if (pageCount > pagerCount) {\n          if (currentPage > pagerCount - halfPagerCount) {\n            showPrevMore = true\n          }\n          if (currentPage < pageCount - halfPagerCount) {\n            showNextMore = true\n          }\n        }\n        const array: number[] = []\n        if (showPrevMore && !showNextMore) {\n          const startPage = pageCount - (pagerCount - 2)\n          for (let i = startPage; i < pageCount; i++) {\n            array.push(i)\n          }\n        } else if (!showPrevMore && showNextMore) {\n          for (let i = 2; i < pagerCount; i++) {\n            array.push(i)\n          }\n        } else if (showPrevMore && showNextMore) {\n          const offset = Math.floor(pagerCount / 2) - 1\n          for (let i = currentPage - offset; i <= currentPage + offset; i++) {\n            array.push(i)\n          }\n        } else {\n          for (let i = 2; i < pageCount; i++) {\n            array.push(i)\n          }\n        }\n        return array\n      })\n\n      // events\n      const onPagerClick = (event: UIEvent) => {\n        const target = event.target as HTMLElement\n        if (target.tagName.toLowerCase() === 'ul' || props.disabled) {\n          return\n        }\n        let newPage = Number(target.textContent)\n        const pageCount = props.pageCount!\n        const currentPage = props.currentPage\n        const pagerCountOffset = props.pagerCount - 2\n        if (target.className.includes('more')) {\n          if (target.className.includes('quickprev')) {\n            newPage = currentPage - pagerCountOffset\n          } else if (target.className.includes('quicknext')) {\n            newPage = currentPage + pagerCountOffset\n          }\n        }\n        if (!Number.isNaN(+newPage)) {\n          if (newPage < 1) {\n            newPage = 1\n          }\n          if (newPage > pageCount) {\n            newPage = pageCount\n          }\n        }\n\n        if (newPage !== currentPage) {\n          emit('change', newPage)\n        }\n      }\n\n      watchEffect(() => {\n        const halfPagerCount = (props.pagerCount - 1) / 2\n        showPrevMore.value = false\n        showNextMore.value = false\n        if (props.pageCount! > props.pagerCount) {\n          if (props.currentPage > props.pagerCount - halfPagerCount) {\n            showPrevMore.value = true\n          }\n          if (props.currentPage < props.pageCount! - halfPagerCount) {\n            showNextMore.value = true\n          }\n        }\n      })\n\n      return {\n        cls,\n        showPrevMore,\n        showNextMore,\n        pagers,\n        onPagerClick\n      }\n    }\n  })\n</script>\n\n<template>\n  <ul :class=\"cls\" @click=\"onPagerClick\">\n    <li\n      v-if=\"pageCount > 0\"\n      :class=\"[currentPage === 1 && 'is-active', disabled && 'is-disabled', 'number']\"\n    >\n      1\n    </li>\n    <li v-if=\"showPrevMore\" :class=\"['more quickprev', disabled && 'is-disabled']\"> </li>\n    <li\n      v-for=\"pager in pagers\"\n      :key=\"pager\"\n      :class=\"[currentPage === pager && 'is-active', disabled && 'is-disabled']\"\n      class=\"number\"\n    >\n      {{ pager }}\n    </li>\n    <li v-if=\"showNextMore\" :class=\"['more quicknext', disabled && 'is-disabled']\"> </li>\n    <li\n      v-if=\"pageCount > 1\"\n      :class=\"[currentPage === pageCount && 'is-active', disabled && 'is-disabled']\"\n      class=\"number\"\n    >\n      {{ pageCount }}\n    </li>\n  </ul>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { BnIconCaret as NextIcon } from '../../../icon'\n\n  export default defineComponent({\n    name: 'PaginationNext',\n    components: {\n      NextIcon\n    },\n    props: {\n      disabled: Boolean,\n      currentPage: {\n        type: Number,\n        default: 0\n      },\n      pageCount: {\n        type: Number,\n        default: 0\n      }\n    },\n    emits: ['click'],\n    setup(props, { emit }) {\n      const ns = getNamespace('pagination-next')\n      const canNext = computed(() => (props.currentPage as number) < (props.pageCount as number))\n      const cls = computed(() => [ns, !canNext.value && 'is-disabled'])\n\n      const next = (e: Event) => {\n        if (!canNext.value) return\n        emit('click', e)\n      }\n\n      return {\n        cls,\n        next\n      }\n    }\n  })\n</script>\n\n<template>\n  <button type=\"button\" :disabled=\"disabled\" :class=\"cls\" @click=\"next\">\n    <NextIcon :rotate=\"-90\" />\n  </button>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { BnIconCaret as PrevIcon } from '../../../icon'\n\n  export default defineComponent({\n    name: 'PaginationPrev',\n    components: {\n      PrevIcon\n    },\n    props: {\n      disabled: Boolean,\n      currentPage: {\n        type: Number,\n        default: 0\n      }\n    },\n    emits: ['click'],\n    setup(props, { emit }) {\n      const ns = getNamespace('pagination-prev')\n      const canPrev = computed(() => props.currentPage! > 1)\n      const cls = computed(() => [ns, !canPrev.value && 'is-disabled'])\n\n      const prev = (e: Event) => {\n        if (!canPrev.value) return\n        emit('click', e)\n      }\n\n      return {\n        cls,\n        prev\n      }\n    }\n  })\n</script>\n\n<template>\n  <button type=\"button\" :disabled=\"disabled\" :class=\"cls\" @click=\"prev\">\n    <PrevIcon :rotate=\"90\" />\n  </button>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, toRefs } from 'vue'\n  import type { PropType } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { Select } from '../../../select'\n  import { Option } from '../../../select-option'\n\n  export default defineComponent({\n    name: 'PaginationSizes',\n    components: {\n      Select,\n      Option\n    },\n    props: {\n      pageSize: {\n        type: Number,\n        default: 0\n      },\n      pageSizes: {\n        type: Array as PropType<Array<number>>,\n        default: () => []\n      },\n      disabled: Boolean\n    },\n    emits: ['change'],\n    setup(props, { emit }) {\n      const ns = getNamespace('pagination-sizes')\n      const cls = computed(() => [ns])\n      const { pageSize } = toRefs(props)\n\n      const pageSizeModel = ref(pageSize)\n      const pageSizesTrans = computed(() => {\n        return props.pageSizes.map((size) => {\n          return {\n            value: size,\n            label: `${size}条/页`\n          }\n        })\n      })\n\n      const handleChange = (size: number) => {\n        emit('change', size)\n      }\n\n      return {\n        cls,\n        handleChange,\n        pageSizeModel,\n        pageSizesTrans\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <Select\n      :model-value=\"pageSizeModel\"\n      :disabled=\"disabled\"\n      :validate-event=\"false\"\n      size=\"small\"\n      compact\n      @change=\"handleChange\"\n    >\n      <Option\n        v-for=\"item in pageSizesTrans\"\n        :key=\"item.value\"\n        :value=\"item.value\"\n        :label=\"item.label\"\n      />\n    </Select>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, watch } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { Input } from '../../../input'\n\n  export default defineComponent({\n    name: 'PaginationJumper',\n    components: {\n      Input\n    },\n    props: {\n      currentPage: {\n        type: Number,\n        default: 0\n      },\n      pageCount: {\n        type: Number,\n        default: 0\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      },\n      pageSize: {\n        type: Number,\n        default: 0\n      }\n    },\n    emits: ['change'],\n    setup(props, { emit }) {\n      const ns = getNamespace('pagination-jumper')\n      const cls = computed(() => [ns])\n\n      const pageModel = ref(props.currentPage)\n\n      const handleChange = (page: string) => {\n        let _page = Number(page)\n        if (_page > props.pageCount) {\n          _page = props.pageCount\n          pageModel.value = _page\n        }\n        if (props.currentPage === _page) return\n        emit('change', _page)\n      }\n\n      const formatter = (value: string) => {\n        return value.replace(/[^0-9.]/g, '')\n      }\n\n      watch(\n        () => props.currentPage,\n        (page) => {\n          pageModel.value = page\n        }\n      )\n\n      watch(\n        () => props.pageSize,\n        () => {\n          pageModel.value = props.currentPage\n        }\n      )\n\n      return {\n        cls,\n        pageModel,\n        handleChange,\n        formatter\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <span>前往</span>\n    <Input\n      v-model=\"pageModel\"\n      size=\"small\"\n      :validate-event=\"false\"\n      placeholder=\"\"\n      :formatter=\"formatter\"\n      @change=\"handleChange\"\n    />\n    <span>页</span>\n  </div>\n</template>\n","import { computed, defineComponent, h, toRefs } from 'vue'\nimport type { VNode } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { paginationProps } from './props'\n\nimport LayoutComponentTotal from './layout/total.vue'\nimport LayoutComponentPager from './layout/pager.vue'\nimport LayoutComponentNext from './layout/next.vue'\nimport LayoutComponentPrev from './layout/prev.vue'\nimport LayoutComponentSizes from './layout/sizes.vue'\nimport LayoutComponentJumper from './layout/jumper.vue'\n\nimport type { LayoutKey } from './types'\n\nexport default defineComponent({\n  name: getComponentNamespace('Pagination'),\n  props: paginationProps,\n  emits: ['page-change', 'page-size-change', 'prev', 'next'],\n  setup(props, { emit }) {\n    const ns = getNamespace('pagination')\n    const cls = computed(() => [ns])\n\n    const { pageConfig } = toRefs(props)\n\n    // page\n    const currentPageBridge = computed<number>({\n      get() {\n        return props.pageConfig.page as number\n      },\n      set(v) {\n        let newCurrentPage = v\n        if (v < 1) {\n          newCurrentPage = 1\n        } else if (v > pageCountBridge.value) {\n          newCurrentPage = pageCountBridge.value\n        }\n        pageConfig.value.page = newCurrentPage\n      }\n    })\n\n    // pageSize\n    const pageSizeBridge = computed({\n      get() {\n        return props.pageConfig.pageSize\n      },\n      set(v: number) {\n        pageConfig.value.pageSize = v\n      }\n    })\n\n    // 一共多少页\n    const pageCountBridge = computed<number>(() => {\n      const pageCount = Math.max(\n        1,\n        Math.ceil((props.pageConfig.total as number) / pageSizeBridge.value!)\n      )\n      return pageCount\n    })\n\n    const handleSizeChange = (val: number) => {\n      pageSizeBridge.value = val\n      const newPageCount = pageCountBridge.value\n      if (currentPageBridge.value > newPageCount) {\n        // pageSize发生变化了 将page直接设为1\n        currentPageBridge.value = 1\n      }\n      emit('page-size-change', pageSizeBridge.value)\n    }\n\n    // event\n    const handleCurrentChange = (val: number) => {\n      currentPageBridge.value = val\n      emit('page-change', currentPageBridge.value)\n    }\n\n    const prev = () => {\n      if (props.disabled) return\n      currentPageBridge.value -= 1\n      emit('prev', currentPageBridge.value)\n      emit('page-change', currentPageBridge.value)\n    }\n\n    const next = () => {\n      if (props.disabled) return\n      currentPageBridge.value += 1\n      emit('next', currentPageBridge.value)\n      emit('page-change', currentPageBridge.value)\n    }\n\n    return () => {\n      if (!props.layout) return null\n\n      const renderChildren: Array<VNode | VNode[] | null> = []\n      const layoutRenderMap: Record<string, VNode> = {\n        jumper: h(LayoutComponentJumper, {\n          onChange: handleCurrentChange,\n          currentPage: currentPageBridge.value,\n          pageCount: pageCountBridge.value,\n          disabled: props.disabled,\n          pageSize: pageSizeBridge.value\n        }),\n        sizes: h(LayoutComponentSizes, {\n          pageSize: pageSizeBridge.value,\n          pageSizes: props.pageSizes,\n          disabled: props.disabled,\n          onChange: handleSizeChange\n        }),\n        prev: h(LayoutComponentPrev, {\n          disabled: props.disabled,\n          currentPage: currentPageBridge.value,\n          onClick: prev\n        }),\n        next: h(LayoutComponentNext, {\n          disabled: props.disabled,\n          currentPage: currentPageBridge.value,\n          pageCount: pageCountBridge.value,\n          onClick: next\n        }),\n        pager: h(LayoutComponentPager, {\n          currentPage: currentPageBridge.value,\n          pageCount: pageCountBridge.value,\n          pagerCount: 7,\n          onChange: handleCurrentChange,\n          disabled: props.disabled\n        }),\n        total: h(LayoutComponentTotal, { total: props.pageConfig.total || 0 })\n      }\n\n      const needRenderComponents = props.layout\n        .split(',')\n        .map((item: string) => item.trim()) as LayoutKey[]\n\n      needRenderComponents.forEach((layoutName: LayoutKey) => {\n        if (layoutRenderMap[layoutName]) {\n          renderChildren.push(layoutRenderMap[layoutName])\n        }\n      })\n\n      return <div class={cls.value}>{renderChildren}</div>\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Pagination from './src/pagination'\n\nexport const Pagination = withInstall(_Pagination)\nexport type PaginationInstance = InstanceType<typeof _Pagination>\nexport * from './src/types'\n\nexport default Pagination\n","import { watch, type Ref } from 'vue'\nimport { getScrollBarWidth, getStyle, isScroll, setStyle } from '../utils/dom'\n\nexport const useOverflow = (\n  containerRef: Ref<HTMLElement | undefined>,\n  targetRef?: Ref<HTMLElement | undefined>\n) => {\n  let isSetOverflow = false\n\n  const originStyle = {\n    overflow: '',\n    width: ''\n  }\n\n  const isBody = (element: HTMLElement) => element.tagName === 'BODY'\n\n  const setOverflowHidden = () => {\n    if (containerRef.value) {\n      const element = containerRef.value\n      if (!isSetOverflow && element.style.overflow !== 'hidden') {\n        const scrollBarWidth = getScrollBarWidth(element)\n        if (scrollBarWidth > 0 || isScroll(element)) {\n          originStyle.overflow = element.style.overflow\n          originStyle.width = element.style.width\n          let offsetX = 0\n          // 在微前端子应用中使用\n          if (isBody(element)) {\n            offsetX = element.getBoundingClientRect().left || 0\n          }\n          setStyle(element, {\n            width: `calc(100% - ${Math.ceil(scrollBarWidth - offsetX)}px)`,\n            overflow: 'hidden'\n          })\n          isSetOverflow = true\n        }\n      }\n    }\n  }\n\n  const resetOverflow = () => {\n    if (containerRef.value && isSetOverflow) {\n      const element = containerRef.value\n      setStyle(element, {\n        overflow: originStyle.overflow,\n        width: originStyle.width\n      })\n      isSetOverflow = false\n    }\n  }\n\n  // 添加position\n  watch(\n    () => targetRef?.value,\n    (element) => {\n      if (containerRef.value && !isBody(containerRef.value)) {\n        element &&\n          setStyle(element, {\n            position: 'absolute'\n          })\n\n        const position = getStyle(containerRef.value, 'position')\n        if (position === 'static') {\n          setStyle(containerRef.value, { position: 'relative' })\n        }\n      }\n    }\n  )\n\n  return {\n    setOverflowHidden,\n    resetOverflow\n  }\n}\n","import { isString } from './is'\n\nexport const KEYBOARD_KEY = {\n  ENTER: 'Enter',\n  ESC: 'Escape',\n  BACKSPACE: 'Backspace',\n  TAB: 'Tab',\n  SPACE: ' ',\n  ARROW_UP: 'ArrowUp',\n  ARROW_DOWN: 'ArrowDown',\n  ARROW_LEFT: 'ArrowLeft',\n  ARROW_RIGHT: 'ArrowRight'\n}\n\nexport interface CodeKey {\n  /** Keyboard key */\n  key: string\n  /** Ctrl / ⌃ */\n  ctrl?: boolean\n  /** Shift key */\n  shift?: boolean\n  /** Alt / ⌥ */\n  alt?: boolean\n  /** meta ⌘ / ⊞ */\n  meta?: boolean\n}\n\nconst stringifyCodeKey = (k: CodeKey) => {\n  return JSON.stringify({\n    key: k.key,\n    ctrl: Boolean(k.ctrl),\n    shift: Boolean(k.shift),\n    alt: Boolean(k.alt),\n    meta: Boolean(k.meta)\n  })\n}\n\nexport const getKeyDownHandler = (codeKeyMap: Map<CodeKey | string, (e: Event) => void>) => {\n  const map: Record<string, (e: Event) => void> = {}\n\n  codeKeyMap.forEach((callback, codeKey) => {\n    const _codeKey = isString(codeKey) ? { key: codeKey } : codeKey\n    map[stringifyCodeKey(_codeKey)] = callback\n  })\n\n  return (event: KeyboardEvent): void => {\n    const key = stringifyCodeKey({\n      key: event.key,\n      ctrl: event.ctrlKey,\n      shift: event.shiftKey,\n      alt: event.altKey,\n      meta: event.metaKey\n    })\n    const callback = map[key]\n\n    if (callback) {\n      event.stopPropagation()\n      callback(event)\n    }\n  }\n}\n","import type { ExtractPropTypes } from 'vue'\nimport { definePropType } from '../../../utils/vue-utils'\n\nexport const dialogProps = {\n  renderTo: {\n    type: definePropType<string | HTMLElement>([String, Object]),\n    default: 'body'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  modelValue: {\n    type: Boolean,\n    default: false\n  },\n  top: {\n    type: [String, Number],\n    default: '3vh'\n  },\n  center: {\n    type: Boolean,\n    default: false\n  },\n  width: {\n    type: [String, Number],\n    default: 0\n  },\n  height: {\n    type: [String, Number],\n    default: 0\n  },\n  minWidth: {\n    type: [String, Number],\n    default: 0\n  },\n  minHeight: {\n    type: [String, Number],\n    default: 0\n  },\n  title: {\n    type: String,\n    default: ''\n  },\n  mask: {\n    type: Boolean,\n    default: true\n  },\n  // 关闭时卸载\n  destroyOnClosed: {\n    type: Boolean,\n    default: true\n  },\n  // 关闭前回调检查是否可以关闭\n  onBeforeCancel: {\n    type: Function\n  },\n  // 是否点击遮罩层关闭\n  maskToClose: {\n    type: Boolean,\n    default: true\n  },\n  // esc键关闭\n  escToClose: {\n    type: Boolean,\n    default: true\n  },\n  // 全屏\n  fullscreen: {\n    type: Boolean,\n    default: false\n  },\n  // 是否是messageBox\n  messageBox: {\n    type: Boolean,\n    default: false\n  },\n  popupClass: {\n    type: String,\n    default: undefined\n  },\n  showClose: {\n    type: Boolean,\n    default: true\n  },\n  showHeaderBottomLine: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type DialogProps = ExtractPropTypes<typeof dialogProps>\n","<script lang=\"ts\">\n  import { computed, defineComponent, onBeforeUnmount, reactive, ref, watch } from 'vue'\n  import type { StyleValue } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n  import { isFunction, isPromise } from '../../../utils/is'\n  import usePopupManager from '../../../hooks/use-popup-manager'\n  import { useOverflow } from '../../../hooks/use-overflow'\n  import { KEYBOARD_KEY } from '../../../utils/keyboard'\n  import { getElement, off, on } from '../../../utils/dom'\n  import { dialogProps } from './props'\n\n  const styleProps = ['width', 'minWidth', 'height', 'minHeight'] as const\n  type StyleProps = (typeof styleProps)[number]\n\n  export default defineComponent({\n    name: getComponentNamespace('Dialog'),\n    inheritAttrs: false,\n    props: dialogProps,\n    emits: ['closed', 'close', 'open', 'opened', 'update:modelValue'],\n    setup(props, { emit }) {\n      const ns = getNamespace('dialog')\n      const messageBoxNs = getNamespace('message-box')\n      const cls = computed(() => [\n        ns,\n        props.messageBox && 'is-message-box',\n        props.popupClass && props.popupClass\n      ])\n\n      const teleportContainer = computed(() => getElement(props.renderTo))\n      const dialogRef = ref<HTMLElement>()\n      const teleportDisabled = computed(() => props.disabled || !teleportContainer.value)\n\n      const dialogStyle = computed(() => {\n        const style: StyleValue = {\n          zIndex: zIndex.value\n        }\n        return style\n      })\n\n      const containerStyle = computed(() => {\n        const style: StyleValue = {}\n        if (props.fullscreen) {\n          return style\n        }\n        if (!props.center && props.top) {\n          style.top = addUnit(props.top)\n        }\n        styleProps.forEach((key: StyleProps) => {\n          if (props[key]) {\n            style[key] = addUnit(props[key])\n          }\n        })\n        return style\n      })\n\n      const animation = ref(false)\n      const modelVisible = computed(() => props.modelValue)\n      const mergeVisible = computed(() => modelVisible.value || animation.value)\n\n      const { zIndex, isLastDialog } = usePopupManager('dialog', {\n        visible: modelVisible\n      })\n\n      const { setOverflowHidden, resetOverflow } = useOverflow(teleportContainer, dialogRef)\n\n      const emitToClose = (action: 'cancel' | 'ok', e?: Event) => {\n        emit('update:modelValue', false)\n        emit('close', props.messageBox ? action : undefined, props.messageBox ? e : undefined)\n      }\n\n      // 动画执行完后触发关闭\n      const afterLeave = () => {\n        animation.value = false\n        resetOverflow()\n        emit('closed')\n      }\n\n      // 动画加载后触发打开\n      const afterEnter = () => {\n        // 隐藏滚动条\n        emit('opened')\n      }\n\n      const loadingObj = reactive({\n        ok: false,\n        cancel: false\n      })\n\n      // 关闭拦截\n      const interceptClose = (action: 'cancel' | 'ok', e?: Event) => {\n        let result = true\n        loadingObj[action] = true\n        if (isFunction(props.onBeforeCancel)) {\n          result = props.onBeforeCancel(action) ?? false\n        }\n        if (isPromise(result)) {\n          result.then((res) => {\n            loadingObj[action] = false\n            res && emitToClose(action, e)\n          })\n          return\n        }\n        loadingObj[action] = false\n        result && emitToClose(action, e)\n      }\n\n      // 点击遮罩层\n      const handleMaskClick = () => {\n        if (!props.maskToClose) return\n        if (!props.mask) return\n        interceptClose('cancel')\n      }\n\n      // footer按钮内部控制\n      const handleCancel = (e: Event) => {\n        interceptClose('cancel', e)\n      }\n      const handleOk = (e: Event) => {\n        interceptClose('ok', e)\n      }\n\n      let globalKeyDownListener = false\n\n      const handleGlobalKeyDown = (ev: KeyboardEvent) => {\n        if (props.escToClose && ev.key === KEYBOARD_KEY.ESC && isLastDialog()) {\n          interceptClose('cancel')\n        }\n      }\n\n      const addGlobalKeyDownListener = () => {\n        if (props.escToClose && !globalKeyDownListener) {\n          globalKeyDownListener = true\n          on(document.documentElement, 'keydown', handleGlobalKeyDown)\n        }\n      }\n\n      const removeGlobalKeyDownListener = () => {\n        globalKeyDownListener = false\n        off(document.documentElement, 'keydown', handleGlobalKeyDown)\n      }\n\n      // 页面意外关闭\n      onBeforeUnmount(() => {\n        resetOverflow()\n        removeGlobalKeyDownListener()\n      })\n\n      watch(\n        () => modelVisible.value,\n        (val) => {\n          if (val) {\n            emit('open')\n            setOverflowHidden()\n            animation.value = true\n            addGlobalKeyDownListener()\n          } else {\n            removeGlobalKeyDownListener()\n          }\n        },\n        { immediate: true }\n      )\n\n      return {\n        cls,\n        ns,\n        messageBoxNs,\n        containerStyle,\n        dialogStyle,\n        dialogRef,\n        teleportContainer,\n        teleportDisabled,\n        modelVisible,\n        mergeVisible,\n        interceptClose,\n        afterLeave,\n        afterEnter,\n        handleMaskClick,\n        handleCancel,\n        handleOk,\n        loadingObj\n      }\n    }\n  })\n</script>\n\n<template>\n  <teleport :to=\"teleportContainer\" :disabled=\"teleportDisabled\">\n    <div\n      v-show=\"mergeVisible\"\n      v-if=\"!destroyOnClosed || mergeVisible\"\n      ref=\"dialogRef\"\n      :class=\"cls\"\n      :style=\"dialogStyle\"\n    >\n      <transition name=\"bn-fade-in-standard\" appear>\n        <div v-if=\"mask\" v-show=\"modelVisible\" :class=\"[`${ns}__mask`]\"></div>\n      </transition>\n      <div :class=\"[`${ns}__wrapper`, { 'is-center': center }]\" @click.self=\"handleMaskClick\">\n        <transition name=\"bn-zoom-in\" appear @after-enter=\"afterEnter\" @after-leave=\"afterLeave\">\n          <div\n            v-show=\"modelVisible\"\n            :class=\"[`${ns}__container`, { 'is-fullscreen': fullscreen }]\"\n            :style=\"containerStyle\"\n          >\n            <div\n              :class=\"[\n                `${messageBox ? messageBoxNs : ns}__header`,\n                showHeaderBottomLine && `is-bottom-line`\n              ]\"\n            >\n              <slot name=\"title\">\n                <div :class=\"[`${ns}__header-title`]\">\n                  {{ title }}\n                </div>\n              </slot>\n            </div>\n            <div :class=\"[`${messageBox ? messageBoxNs : ns}__body`]\">\n              <slot></slot>\n            </div>\n            <div :class=\"[`${messageBox ? messageBoxNs : ns}__footer`]\">\n              <slot\n                name=\"footer\"\n                :cancel=\"handleCancel\"\n                :ok=\"handleOk\"\n                :loading-obj=\"loadingObj\"\n              ></slot>\n            </div>\n\n            <span\n              v-if=\"showClose\"\n              :class=\"[`${ns}__close-icon`]\"\n              @click=\"interceptClose('cancel')\"\n            ></span>\n          </div>\n        </transition>\n      </div>\n    </div>\n  </teleport>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Dialog from './src/dialog.vue'\n\nexport const Dialog = withInstall(_Dialog)\nexport type DialogInstance = InstanceType<typeof _Dialog>\nexport default Dialog\n","<script lang=\"ts\">\n  import { defineComponent, computed, ref, onUnmounted } from 'vue'\n  import type { StyleValue } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import Scrollbar from '../../scrollbar/src/scrollbar.vue'\n\n  export default defineComponent({\n    name: 'TooltipPopup',\n    components: {\n      Scrollbar\n    },\n    // eslint-disable-next-line vue/require-prop-types\n    props: ['content', 'effect', 'backgroundColor', 'position', 'popupClass', 'size'],\n    emits: ['close', 'destroy'],\n    setup(props) {\n      const ns = getNamespace('tooltip')\n      const contentCls = computed(() => [\n        ns,\n        `is-${props.effect.value}`,\n        props.size.value && `${ns}--${props.size.value}`,\n        getNamespace('trigger-popup'),\n        props.popupClass.value && props.popupClass.value\n      ])\n      const arrowStyle = computed(() => {\n        const style: StyleValue = {}\n        if (props.backgroundColor.value) {\n          style['--bn-trigger-arrow-background-color'] = props.backgroundColor.value\n        } else {\n          if (props.effect.value === 'dark') {\n            style['--bn-trigger-arrow-background-color'] = 'rgba(0,0,0,.8)'\n          }\n          if (props.effect.value === 'light') {\n            style['--bn-trigger-arrow-background-color'] = '#fff'\n          }\n        }\n        return style\n      })\n      const contentStyle = computed(() => {\n        const style: StyleValue = {}\n        if (props.backgroundColor.value) {\n          style.backgroundColor = props.backgroundColor.value\n        } else {\n          if (props.effect.value === 'dark') {\n            style.color = '#fff'\n            style['background-color'] = 'rgba(0,0,0,.8)'\n          }\n          if (props.effect.value === 'light') {\n            style.color = '#000'\n            style['background-color'] = '#fff'\n            style['box-shadow'] = '0px 8px 40px 0px rgba(100,107,122,0.15)'\n          }\n        }\n        return style\n      })\n\n      const visible = ref(true)\n\n      const changeVisible = (value: boolean) => {\n        visible.value = value\n      }\n\n      onUnmounted(() => {\n        visible.value = false\n      })\n\n      return {\n        ns,\n        contentStyle,\n        contentCls,\n        arrowStyle,\n        visible,\n        changeVisible\n      }\n    }\n  })\n</script>\n\n<template>\n  <transition\n    name=\"bn-fade-in-standard\"\n    appear\n    @before-leave=\"$emit('close')\"\n    @after-leave=\"$emit('destroy')\"\n  >\n    <div v-show=\"visible\" :class=\"contentCls\" :style=\"contentStyle\">\n      <Scrollbar style=\"max-height: 140px\" :class=\"[`${ns}__content`]\">\n        <div>\n          <slot name=\"content\">\n            {{ content.value }}\n          </slot>\n        </div>\n      </Scrollbar>\n\n      <div class=\"arrow\" :style=\"arrowStyle\"></div>\n    </div>\n  </transition>\n</template>\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport type { Position } from './types'\nexport const tooltipProps = {\n  modelValue: {\n    type: Boolean,\n    default: undefined\n  },\n  content: {\n    type: String,\n    default: ''\n  },\n  position: {\n    type: String as PropType<Position>,\n    default: 'top'\n  },\n  backgroundColor: {\n    type: String,\n    default: undefined\n  },\n  renderTo: {\n    type: [String, Object] as PropType<string | HTMLElement>,\n    default: 'body'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  effect: {\n    type: String as PropType<'dark' | 'light'>,\n    default: 'dark'\n  },\n  popupClass: {\n    type: String\n  },\n  size: {\n    type: String as PropType<'mini'>,\n    default: undefined\n  }\n}\n\nexport type TooltipProps = ExtractPropTypes<typeof tooltipProps>\n","import {\n  defineComponent,\n  render,\n  createVNode,\n  ref,\n  computed,\n  nextTick,\n  watch,\n  onUnmounted,\n  onMounted,\n  toRefs\n} from 'vue'\nimport type { VNode, CSSProperties } from 'vue'\n\nimport { getComponentNamespace } from '../../../utils/global-config'\nimport { mergeFirstChild, getFirstElement } from '../../../utils/vue-utils'\nimport { getPopupStyle, getElementScrollRect, getArrowStyle } from '../../trigger/src/utils'\nimport usePopupManager from '../../../hooks/use-popup-manager'\nimport { getElement, setStyle } from '../../../utils/dom'\nimport { useResizeObserver } from '../../../hooks/use-resize-observer'\nimport Popup from './popup.vue'\nimport { tooltipProps } from './props'\n\nexport default defineComponent({\n  name: getComponentNamespace('Tooltip'),\n  props: tooltipProps,\n  emits: ['update:modelValue', 'change'],\n  setup(props, { slots, emit }) {\n    const innerVisible = ref(false)\n\n    const visible = computed(() => {\n      return props.modelValue ?? innerVisible.value\n    })\n\n    let defaultSlot: VNode[] | undefined\n    let timer: any = -1\n    let popupTarget: HTMLElement | null\n    let vm: VNode | null\n\n    const renderTo = computed(() => getElement(props.renderTo || document.body))\n\n    const { zIndex } = usePopupManager('popup', { visible })\n\n    const container = document.createElement('div')\n\n    const changeVisible = (visible: boolean) => {\n      vm && (vm.component?.proxy as any).changeVisible(visible)\n    }\n\n    const updatePopupStyle = async () => {\n      if (!popupTarget || !defaultSlot) return\n      const triggerTarget = getFirstElement(defaultSlot) as HTMLElement\n      const containerRect = renderTo.value!.getBoundingClientRect()\n      const triggerScrollRect = getElementScrollRect(triggerTarget, containerRect)\n      const getPopupScrollRect = () =>\n        getElementScrollRect(popupTarget as HTMLElement, containerRect)\n      const { style, position } = getPopupStyle(\n        props.position,\n        containerRect,\n        triggerScrollRect,\n        getPopupScrollRect(),\n        {\n          translate: [0, 0],\n          autoFitPosition: true,\n          offset: {\n            mini: 7,\n            default: 10\n          }[props.size ?? 'default']\n        }\n      )\n      const popupTargetStyle: CSSProperties = {\n        ...style,\n        position: 'absolute',\n        'z-index': zIndex.value\n      }\n      // 设置弹出层样式\n      setStyle(popupTarget, popupTargetStyle)\n\n      // 把弹出层放入body中，等弹出层更新完样式后才可以更新arrow样式。\n      await nextTick()\n      const arrowStyle = getArrowStyle(position, triggerScrollRect, getPopupScrollRect(), {\n        customStyle: {\n          position: 'absolute',\n          'border-width': {\n            mini: '4px',\n            default: '6px'\n          }[props.size ?? 'default'],\n          'border-style': 'solid',\n          zIndex: 0\n        }\n      })\n      const arrowNode = getElement('.arrow', popupTarget) as HTMLElement\n      // 设置弹出层箭头样式\n      setStyle(arrowNode, arrowStyle)\n    }\n\n    // 为了确保这些属性是响应式\n    const { content, effect, backgroundColor, popupClass, position, size } = toRefs(props)\n\n    // 创建tooltip\n    const createTooltip = () => {\n      if (popupTarget) return\n      emit('change', true)\n      vm = createVNode(\n        Popup,\n        {\n          content,\n          effect,\n          backgroundColor,\n          position,\n          popupClass,\n          size,\n          onMouseenter: () => clearTimeout(timer),\n          onMouseleave: () => beforeClose(),\n          onClose: () => {\n            // Trap!!! 不能在这里更改状态。因为动画有延迟时间，如果在这个时机恰好多次创建tooltip的话就会有bug，状态就会锁死。只能在动画执行结束后才能更改状态。\n            // 状态统一用状态控制器来控制。不论是受控状态还是非受控状态。\n          },\n          onDestroy: () => {\n            destroyTooltip()\n          }\n        },\n        {\n          content: slots.content ?? null\n        }\n      )\n      render(vm, container)\n\n      popupTarget = container.firstChild! as HTMLElement\n      renderTo.value!.appendChild(popupTarget)\n      updatePopupStyle()\n    }\n\n    // 销毁tooltip\n    const destroyTooltip = () => {\n      if (container) {\n        render(null, container)\n        popupTarget = null\n        vm = null\n\n        // 内部状态\n        innerVisible.value = false\n        // 外部状态\n        emit('update:modelValue', false)\n        emit('change', false)\n      }\n    }\n\n    const handleMouseEnter = () => {\n      if (timer) clearTimeout(timer)\n      innerVisible.value = true\n      emit('update:modelValue', true)\n    }\n\n    const beforeClose = () => {\n      if (timer) clearTimeout(timer)\n      timer = setTimeout(() => {\n        changeVisible(false)\n      }, 100)\n    }\n\n    const handleResize = () => {\n      updatePopupStyle()\n    }\n\n    const { createResizeObserver, destroyResizeObserver } = useResizeObserver({\n      elementRef: renderTo,\n      onResize: handleResize\n    })\n\n    // 监听器控制tooltip显示\n    watch(\n      () => visible.value,\n      (val) => {\n        if (props.disabled) return\n        if (val) {\n          nextTick(createTooltip)\n        } else {\n          changeVisible(false)\n        }\n      },\n      {\n        immediate: true\n      }\n    )\n\n    onMounted(() => {\n      createResizeObserver()\n    })\n\n    onUnmounted(() => {\n      changeVisible(false)\n      destroyResizeObserver()\n    })\n\n    return () => {\n      defaultSlot = slots.default?.()\n      mergeFirstChild(defaultSlot, {\n        onMouseenter: handleMouseEnter,\n        onMouseleave: beforeClose,\n        style: {\n          cursor: props.disabled ? 'not-allowed' : 'pointer'\n        },\n        disabled: props.disabled\n      })\n      return defaultSlot\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Tooltip from './src/tooltip'\n\nexport const Tooltip = withInstall(_Tooltip)\n\nexport type TooltipInstance = InstanceType<typeof _Tooltip>\nexport default Tooltip\n","import type { ExtractPropTypes } from 'vue'\nimport { definePropType } from '../../../utils/vue-utils'\nimport type { Placement } from './types'\n\nexport const drawerProps = {\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  modelValue: {\n    type: Boolean,\n    default: false\n  },\n  placement: {\n    type: definePropType<Placement>(String),\n    default: 'right'\n  },\n  title: {\n    type: String,\n    default: ''\n  },\n  mask: {\n    type: Boolean,\n    default: true\n  },\n  showFooter: {\n    type: Boolean,\n    default: true\n  },\n  // 是否点击遮罩层关闭\n  maskToClose: {\n    type: Boolean,\n    default: true\n  },\n  // esc键关闭\n  escToClose: {\n    type: Boolean,\n    default: true\n  },\n  destroyOnClosed: {\n    type: Boolean,\n    default: true\n  },\n  width: {\n    type: [Number, String],\n    default: 340\n  },\n  height: {\n    type: [Number, String],\n    default: 340\n  },\n  okText: {\n    type: String,\n    default: ''\n  },\n  cancelText: {\n    type: String,\n    default: ''\n  },\n  onBeforeOk: {\n    type: definePropType<() => boolean | Promise<boolean>>(Function)\n  },\n  onBeforeCancel: {\n    type: definePropType<() => boolean | Promise<boolean>>(Function)\n  },\n  renderTo: {\n    type: definePropType<string | HTMLElement>([String, Object]),\n    default: 'body'\n  },\n  popupClass: {\n    type: String,\n    default: undefined\n  },\n  showClose: {\n    type: Boolean,\n    default: true\n  }\n}\n\nexport type DrawerProps = ExtractPropTypes<typeof drawerProps>\n","<script lang=\"ts\">\n  import { computed, defineComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'\n  import type { StyleValue } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { upperFirstChar, addUnit } from '../../../shared/utils'\n  import { isFunction, isPromise } from '../../../utils/is'\n  import { useOverflow } from '../../../hooks/use-overflow'\n  import BnButton from '../../../components/button/src/button.vue'\n  import BnSpace from '../../../components/space/src/space.vue'\n  import { KEYBOARD_KEY } from '../../../utils/keyboard'\n  import { getElement, off, on } from '../../../utils/dom'\n  import usePopupManager from '../../../hooks/use-popup-manager'\n  import { Scrollbar } from '../../scrollbar'\n  import { drawerProps } from './props'\n\n  export default defineComponent({\n    name: getComponentNamespace('Drawer'),\n    components: {\n      BnButton,\n      BnSpace,\n      Scrollbar\n    },\n    inheritAttrs: false,\n    props: drawerProps,\n    emits: ['update:modelValue', 'close', 'closed', 'open', 'opened'],\n    setup(props, { emit }) {\n      const ns = getNamespace('drawer')\n\n      const containerStyle = computed(() => {\n        const style: StyleValue = {}\n\n        if (props.width && ['left', 'right'].includes(props.placement)) {\n          style.width = addUnit(props.width)\n        }\n        if (props.height && ['top', 'bottom'].includes(props.placement)) {\n          style.height = addUnit(props.height)\n        }\n        return style\n      })\n\n      const modelVisible = computed(() => props.modelValue)\n      const animation = ref(false)\n      const mergeVisible = computed(() => modelVisible.value || animation.value)\n\n      const teleportContainer = computed(() => getElement(props.renderTo))\n      const drawerRef = ref<HTMLElement>()\n\n      const drawerBodyStyle = computed(() => {\n        const style: StyleValue = {}\n        if (props.showFooter) {\n          style.height = `calc(100% - 68px - 80px)`\n        } else {\n          style.height = `calc(100% - 68px)`\n        }\n        return style\n      })\n\n      const { zIndex, isLastDialog } = usePopupManager('dialog', {\n        visible: modelVisible\n      })\n\n      const { setOverflowHidden, resetOverflow } = useOverflow(teleportContainer, drawerRef)\n\n      const drawerStyle = computed(() => {\n        const style: StyleValue = {\n          zIndex: zIndex.value\n        }\n        return style\n      })\n\n      const emitToClose = (action: 'cancel' | 'ok', e?: Event) => {\n        emit('update:modelValue', false)\n        emit('close', action, e)\n      }\n\n      const loadingObj = reactive({\n        ok: false,\n        cancel: false\n      })\n\n      const interceptClose = (action: 'ok' | 'cancel', e?: Event) => {\n        const fnKey = `onBefore${upperFirstChar(action)}` as 'onBeforeOk' | 'onBeforeCancel'\n        const interceptFn = props[fnKey]\n        let result: boolean | Promise<boolean> = true\n        loadingObj[action] = true\n        if (isFunction(interceptFn)) {\n          result = interceptFn() ?? false\n        }\n        if (isPromise(result)) {\n          result.then((res) => {\n            loadingObj[action] = false\n            res && emitToClose(action, e)\n          })\n          return\n        }\n        loadingObj[action] = false\n        result && emitToClose(action, e)\n      }\n\n      const handleMask = () => {\n        if (!props.maskToClose) return\n        if (!props.mask) return\n        interceptClose('cancel')\n      }\n\n      const afterEnter = () => {\n        emit('opened')\n      }\n\n      // 动画结束\n      const afterLeave = () => {\n        animation.value = false\n        resetOverflow()\n        emit('closed')\n      }\n\n      let globalKeyDownListener = false\n\n      const handleGlobalKeyDown = (ev: KeyboardEvent) => {\n        if (props.escToClose && ev.key === KEYBOARD_KEY.ESC && isLastDialog()) {\n          interceptClose('cancel')\n        }\n      }\n\n      const addGlobalKeyDownListener = () => {\n        if (props.escToClose && !globalKeyDownListener) {\n          globalKeyDownListener = true\n          on(document.documentElement, 'keydown', handleGlobalKeyDown)\n        }\n      }\n\n      const removeGlobalKeyDownListener = () => {\n        globalKeyDownListener = false\n        off(document.documentElement, 'keydown', handleGlobalKeyDown)\n      }\n\n      onMounted(() => {\n        if (modelVisible.value) {\n          props.escToClose && addGlobalKeyDownListener()\n        }\n      })\n\n      // 页面意外关闭\n      onBeforeUnmount(() => {\n        resetOverflow()\n        removeGlobalKeyDownListener()\n      })\n\n      watch(\n        () => modelVisible.value,\n        (val) => {\n          if (val) {\n            emit('open')\n            setOverflowHidden()\n            animation.value = true\n            // 监听键盘事件\n            addGlobalKeyDownListener()\n          } else {\n            // 移除键盘事件\n            removeGlobalKeyDownListener()\n          }\n        }\n      )\n\n      // footer按钮内部控制\n      const handleCancel = (e: Event) => {\n        interceptClose('cancel', e)\n      }\n      const handleOk = (e: Event) => {\n        interceptClose('ok', e)\n      }\n\n      return {\n        ns,\n        containerStyle,\n        drawerStyle,\n        teleportContainer,\n        drawerRef,\n        modelVisible,\n        mergeVisible,\n        drawerBodyStyle,\n        handleMask,\n        afterEnter,\n        afterLeave,\n        interceptClose,\n        handleCancel,\n        handleOk,\n        loadingObj\n      }\n    }\n  })\n</script>\n\n<template>\n  <teleport :to=\"teleportContainer\" :disabled=\"disabled || !teleportContainer\">\n    <div\n      v-if=\"!destroyOnClosed || mergeVisible\"\n      v-show=\"mergeVisible\"\n      ref=\"drawerRef\"\n      :class=\"[`${ns}`, popupClass]\"\n      :style=\"drawerStyle\"\n      v-bind=\"$attrs\"\n    >\n      <transition name=\"bn-fade-in-standard\" appear>\n        <div v-if=\"mask\" v-show=\"modelVisible\" :class=\"`${ns}__mask`\" @click.self=\"handleMask\" />\n      </transition>\n      <transition\n        :name=\"`bn-slide-${placement}`\"\n        appear\n        @after-enter=\"afterEnter\"\n        @after-leave=\"afterLeave\"\n      >\n        <div\n          v-show=\"modelVisible\"\n          :class=\"[`${ns}__container`, `is-${placement}`]\"\n          :style=\"containerStyle\"\n        >\n          <slot>\n            <div :class=\"[`${ns}__header`]\">\n              <!-- title插槽 -->\n              <slot name=\"title\">\n                <span :class=\"[`${ns}__title`]\">{{ title }}</span>\n              </slot>\n            </div>\n            <div :class=\"[`${ns}__body`]\" :style=\"drawerBodyStyle\">\n              <Scrollbar>\n                <!-- body插槽 -->\n                <slot name=\"body\"></slot>\n              </Scrollbar>\n            </div>\n            <div v-if=\"showFooter\" :class=\"[`${ns}__footer`, `is-${placement}`]\">\n              <!-- footer插槽 -->\n              <slot name=\"footer\" :ok=\"handleOk\" :cancel=\"handleCancel\" :loading-obj=\"loadingObj\">\n                <BnSpace :size=\"12\">\n                  <BnButton type=\"primary\" :loading=\"loadingObj.ok\" @click=\"handleOk\"\n                    >{{ `${okText ? okText : '确认'}` }}\n                  </BnButton>\n                  <BnButton :loading=\"loadingObj.cancel\" @click=\"handleCancel\">{{\n                    `${cancelText ? cancelText : '取消'}`\n                  }}</BnButton>\n                </BnSpace>\n              </slot>\n            </div>\n          </slot>\n          <span\n            v-if=\"showClose\"\n            :class=\"[`${ns}__close-icon`]\"\n            @click=\"interceptClose('cancel')\"\n          ></span>\n        </div>\n      </transition>\n    </div>\n  </teleport>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Drawer from './src/drawer.vue'\n\nexport const Drawer = withInstall(_Drawer)\nexport type DrawerInstance = InstanceType<typeof _Drawer>\nexport default Drawer\n","import type { PropType, ExtractPropTypes } from 'vue'\nimport { definePropType } from '../../../utils/vue-utils'\nimport type { TableData, TableColumnData } from './types'\n\nexport const tableProps = {\n  data: {\n    type: definePropType<TableData[]>(Array),\n    default: () => []\n  },\n  columns: {\n    type: definePropType<TableColumnData[]>(Array),\n    default: () => []\n  },\n  border: {\n    type: Boolean,\n    default: false\n  },\n  hover: {\n    type: Boolean,\n    default: false\n  },\n  stripe: {\n    type: Boolean,\n    default: false\n  },\n  selection: {\n    type: definePropType<TableData[]>(Array),\n    default: undefined\n  },\n  selectedKeys: {\n    type: definePropType<(string | number)[]>(Array)\n  },\n  // 是否可以拖拽改变column的宽度\n  columnResizable: {\n    type: Boolean,\n    default: true\n  },\n  // 表格固定高度。固定表头\n  height: {\n    type: [String, Number],\n    default: undefined\n  },\n  maxHeight: {\n    type: [String, Number],\n    default: undefined\n  },\n  defaultSort: {\n    type: Object as PropType<{\n      sort?: 'ascend' | 'descend' | ''\n      prop?: string | number\n      popup?: boolean\n    }>,\n    default: () => ({\n      sort: '',\n      prop: '',\n      popup: false\n    })\n  },\n  config: {\n    type: Object as PropType<{ setting: boolean }>,\n    default: () => ({\n      setting: false\n    })\n  },\n  rowHeight: {\n    type: [String, Number] as PropType<string | number>,\n    default: 68\n  },\n  loading: {\n    type: Boolean,\n    default: false\n  },\n  // 默认空值填充\n  defaultEmptyFill: {\n    type: String,\n    default: ''\n  },\n  // 主键名，Tr唯一索引使用\n  primaryKey: {\n    type: String,\n    default: undefined\n  },\n  // 表格行key的取值字段，此key区分行的唯一性包括选中的行、排序、过滤等\n  rowKey: {\n    type: String,\n    default: 'key'\n  }\n}\n\nexport type TableProps = ExtractPropTypes<typeof tableProps>\n","import { createVNode, defineComponent } from 'vue'\nimport { getNamespace } from '../../../../utils/global-config'\n\nexport default defineComponent({\n  name: 'Tbody',\n  setup(_, { slots }) {\n    const ns = getNamespace('tbody')\n    return () => {\n      return createVNode(\n        'tbody',\n        {\n          class: [ns]\n        },\n        {\n          default: slots.default\n        }\n      )\n    }\n  }\n})\n","import type { StyleValue } from 'vue'\nimport { computed, defineComponent, createVNode } from 'vue'\nimport { getNamespace } from '../../../../utils/global-config'\nimport { addUnit } from '../../../../shared/utils'\n\nexport default defineComponent({\n  name: 'Tr',\n  props: {\n    rowHeight: {\n      type: [Number, String],\n      default: undefined\n    },\n    uniqueIndex: {\n      type: [Number, String],\n      default: undefined\n    }\n  },\n  setup(props, { slots }) {\n    const ns = getNamespace('tr')\n\n    const cls = computed(() => [`${ns}`])\n\n    const style = computed(() => {\n      const _style: StyleValue = {}\n      if (props.rowHeight) {\n        _style.height = addUnit(props.rowHeight)\n      }\n      return _style\n    })\n\n    return () => {\n      return createVNode(\n        'tr',\n        {\n          class: cls.value,\n          style: { ...style.value },\n          'unique-index': props.uniqueIndex && props.uniqueIndex\n        },\n        {\n          default: slots.default\n        }\n      )\n    }\n  }\n})\n","import type { RenderFunction, VNode } from 'vue'\n\nexport interface TableData {\n  key?: string\n  expand?: string | RenderFunction\n  children?: TableData[]\n  disabled?: boolean\n  isLeaf?: boolean\n  [name: string]: any\n}\n\nexport type ClassName = string\n\nexport interface TableSortable {\n  sortDirections: ('ascend' | 'descend')[]\n  sorter?:\n    | ((\n        a: TableData,\n        b: TableData,\n        extra: { dataIndex: string; direction: 'ascend' | 'descend' }\n      ) => number)\n    | boolean\n\n  sortOrder?: 'ascend' | 'descend' | ''\n}\n\nexport interface TableFilterData {\n  text: string | RenderFunction\n  value: string\n}\n\nexport interface TableFilterable {\n  filters?: TableFilterData[]\n  filter: (filteredValue: string[], record: TableData) => boolean\n  multiple?: boolean\n  filteredValue?: string[]\n  defaultFilteredValue?: string[]\n}\n\nexport const tableColumnTypes = ['checkbox', 'index'] as const\n\nexport type TableColumnTypes = (typeof tableColumnTypes)[number]\n\nexport interface TableColumnData {\n  type?: TableColumnTypes\n  prop?: string\n  title?: string\n  width?: number\n  minWidth?: number\n  align?: 'left' | 'center' | 'right'\n  fixed?: 'left' | 'right'\n  ellipsis?: boolean\n  tooltip?: boolean | Record<string, any>\n  sortable?: boolean\n  filterable?: TableFilterable\n  children?: TableColumnData[]\n  renderCell?: (data: {\n    row: TableData\n    column: TableColumnData\n    rowIndex: number\n  }) => VNode | string | number\n  renderHeader?: (data: { column: TableColumnData }) => VNode | string | number\n  renderIndex?: (data: { column: TableColumnData; index: number }) => number\n  slotName?: string\n  headerSlotName?: string\n  hiddenCheckboxAll?: boolean\n\n  hidden?: boolean\n  disabled?: boolean\n  checked?: boolean\n\n  // private\n  isLastLeftFixed?: boolean\n  isFirstRightFixed?: boolean\n  colSpan?: number\n  rowSpan?: number\n  index?: number\n  parent?: TableColumnData\n}\n\nexport interface TableDataWithRaw {\n  raw?: TableData\n  // private\n  key?: string\n  disabled?: boolean\n  expand?: string | RenderFunction\n  children?: TableDataWithRaw[]\n  isLeaf?: boolean\n  hasSubtree?: boolean\n}\n","import type { InjectionKey, Slots } from 'vue'\nimport type { TableColumnData, TableData } from './types'\n\nexport interface TableContext {\n  slots?: Slots\n\n  scroll?: {\n    horScrollPosition?: 'left' | 'right' | 'middle'\n  }\n\n  sortStore?: {\n    activeSort?: 'ascend' | 'descend' | ''\n    activeProp?: string | number\n    isSortPopup?: boolean\n    handleSortChange?: (column: TableColumnData, direction?: 'ascend' | 'descend' | '') => void\n  }\n  // checkbox 全选 半选\n  opsStore?: {\n    // 已选中的行\n    selectionRows?: TableData[]\n    selectionRowKeys?: (string | number | undefined)[]\n    // 当前Table页下的所有可选行（不包含disabled）\n    allEnabledSelectionRows?: TableData[]\n    toggleSelectAll?: (v: boolean) => void\n    toggleSelect?: (row: TableData, v: boolean) => void\n    selectAll?: (checked: boolean) => void\n  }\n  // column resize width\n  resizeStore?: {\n    handleThMouseDown?: (prop: string, ev: MouseEvent) => void\n    prop?: string | number\n  }\n}\n\nexport interface TableColumnContext {\n  addChild?: (id: number, column: TableColumnData) => void\n  removeChild?: (id: number) => void\n  groupColumns?: TableColumnData[]\n  handleUpdateColumn?: (v: string[]) => void\n}\n\nexport const tableInjectionKey: InjectionKey<TableContext> = Symbol('table')\n\nexport const tableColumnInjectionKey: InjectionKey<TableColumnContext> = Symbol('tableColumn')\n","import type { StyleValue, Ref } from 'vue'\nimport { computed } from 'vue'\nimport { addUnit, findLastIndex } from '../../../../shared/utils'\nimport type { TableColumnData } from '../types'\n\nconst getLeft = (dataColumns: TableColumnData[], index: number) => {\n  if (index === 0) return '0'\n  const res: any = []\n  dataColumns.slice(0, index).forEach((v) => {\n    res.push(addUnit(v.width) || 0)\n  })\n  return `calc(${res.join(' + ')})`\n}\n\nconst getRight = (dataColumns: TableColumnData[], index: number) => {\n  const lastIndex = dataColumns.length - 1\n  if (index === lastIndex) return '0'\n  const res: any = []\n  dataColumns.slice(index + 1, lastIndex + 1).forEach((v) => {\n    res.push(addUnit(v.width) || 0)\n  })\n  return `calc(${res.join(' + ')})`\n}\n\nexport const useColumnFixed = (\n  dataColumns: Ref<TableColumnData[]>,\n  column: Ref<TableColumnData>\n) => {\n  const leftFixedLastIndex = computed(() =>\n    findLastIndex(dataColumns.value as [], (_column) => _column.fixed === 'left')\n  )\n  const rightFixedFirstIndex = computed(() =>\n    dataColumns.value.findIndex((_column) => _column.fixed === 'right')\n  )\n\n  const fixedIndex = computed(() =>\n    dataColumns.value.findIndex((_column) => _column === column.value)\n  )\n\n  // 是否是左边固定列最后一个\n  const isLeftFixedLast = computed(\n    () => leftFixedLastIndex.value > -1 && leftFixedLastIndex.value === fixedIndex.value\n  )\n\n  // 是否是右边固定列第一个\n  const isRightFixedFirst = computed(\n    () => rightFixedFirstIndex.value > -1 && rightFixedFirstIndex.value === fixedIndex.value\n  )\n\n  const fixedStyle = computed(() => {\n    const style: StyleValue = {}\n    if (column.value.fixed === 'left') {\n      style.left = getLeft(dataColumns.value, fixedIndex.value)\n    }\n    if (column.value.fixed === 'right') {\n      style.right = getRight(dataColumns.value, fixedIndex.value)\n    }\n    return style\n  })\n\n  return {\n    fixedStyle,\n    isLeftFixedLast,\n    isRightFixedFirst\n  }\n}\n","import type { PropType } from 'vue'\nimport { computed, createVNode, defineComponent, inject, toRefs } from 'vue'\nimport { getNamespace } from '../../../../utils/global-config'\nimport { getProp } from '../../../../shared/utils'\n\nimport type { TableDataWithRaw, TableColumnData } from '../types'\nimport { tableColumnTypes } from '../types'\nimport { isFunction, isNull } from '../../../../utils/is'\nimport type { TableContext } from '../context'\nimport { tableInjectionKey } from '../context'\n\nimport Checkbox from '../../../checkbox/src/checkbox.vue'\n\nimport { useColumnFixed } from '../hooks/use-column-fixed'\n\nexport default defineComponent({\n  name: 'Td',\n  props: {\n    rowIndex: {\n      type: Number,\n      default: 0\n    },\n    record: {\n      type: Object as PropType<TableDataWithRaw>,\n      default: () => ({})\n    },\n    column: {\n      type: Object as PropType<TableColumnData>,\n      default: () => ({})\n    },\n    dataColumns: {\n      type: Array as PropType<TableColumnData[]>,\n      default: () => []\n    },\n    colSpan: {\n      type: Number,\n      default: 1\n    },\n    rowSpan: {\n      type: Number,\n      default: 1\n    },\n    showExpandBtn: {\n      type: Boolean,\n      default: false\n    },\n    indentSize: {\n      type: Number,\n      default: 0\n    },\n    empty: {\n      type: Boolean,\n      default: false\n    },\n    // 默认空值填充\n    defaultEmptyFill: {\n      type: String,\n      default: ''\n    }\n  },\n  setup(props, { slots }) {\n    const ns = getNamespace('td')\n    const { dataColumns, column } = toRefs(props)\n    const { fixedStyle, isLeftFixedLast, isRightFixedFirst } = useColumnFixed(dataColumns, column)\n    const tableContext = inject<TableContext>(tableInjectionKey)\n\n    // 当前的prop是否在resizing\n    const propHasResizing = computed(\n      () => tableContext?.resizeStore?.prop === props.column.prop && props.column.prop\n    )\n    // 表格水平滚动位置。左 中 右\n    const horScrollPosition = computed(() => tableContext?.scroll?.horScrollPosition)\n\n    const cls = computed(() => [\n      ns,\n      !props.empty && `is-align-${props.column.align || 'left'}`,\n      props.column.fixed && `is-fixed-${props.column.fixed}`,\n      isLeftFixedLast.value && `is-fixed-left-last`,\n      isRightFixedFirst.value && `is-fixed-right-first`,\n      horScrollPosition.value && `is-scroll-position-${horScrollPosition.value}`,\n      propHasResizing.value && 'is-resize'\n    ])\n\n    const isOpsType = computed(() => tableColumnTypes.includes(props.column.type!))\n\n    // 优先级 renderCell > slotName >  getProp\n    const renderContent = () => {\n      let content: any = getProp(props.record?.raw, props.column.prop) ?? ''\n      const tableCellSlot = tableContext?.slots?.[props.column.slotName!]\n      if (tableCellSlot) {\n        content = tableCellSlot({\n          row: props.record?.raw,\n          column: props.column,\n          rowIndex: props.rowIndex as number\n        })\n      }\n\n      if (isFunction(props.column.renderCell)) {\n        content = props.column.renderCell({\n          row: props.record.raw!,\n          column: props.column,\n          rowIndex: props.rowIndex as number\n        })\n      }\n      // 默认空值填充\n      if (isNull(content) || content === '') {\n        return props.defaultEmptyFill\n      }\n\n      return content\n    }\n\n    // Checkbox选项列表，列表内的Checkbox\n    const renderOpsMap: Record<string, any> = {\n      checkbox() {\n        if (props.record.isLeaf) {\n          return (\n            <>\n              <Checkbox\n                modelValue={\n                  props.record.raw?.key &&\n                  tableContext?.opsStore?.selectionRowKeys?.includes(props.record.raw?.key)\n                }\n                onChange={(checked: boolean) =>\n                  tableContext?.opsStore?.toggleSelect!(props.record.raw!, checked)\n                }\n                disabled={Boolean(props.record.disabled)}\n                validateEvent={false}\n                // @ts-ignore: click\n                onClick={(ev: Event) => ev.stopPropagation()}\n              />\n            </>\n          )\n        }\n        // 有children TODO\n      },\n      index() {\n        return props.column.renderIndex\n          ? props.column.renderIndex({ column: props.column, index: props.rowIndex! })\n          : props.rowIndex! + 1\n      }\n    }\n\n    const renderOps = () => {\n      return renderOpsMap[props.column.type!]()\n    }\n\n    const renderCell = () => {\n      if (slots.default) {\n        return slots.default()\n      }\n      return (\n        <span class={['bn-table__cell']}>{isOpsType.value ? renderOps() : renderContent()}</span>\n      )\n    }\n\n    return () => {\n      return createVNode(\n        'td',\n        {\n          class: cls.value,\n          style: {\n            ...fixedStyle.value\n          },\n          colspan: props.colSpan > 1 ? props.colSpan : undefined\n        },\n        {\n          default: () => [renderCell()]\n        }\n      )\n    }\n  }\n})\n","import { defineComponent } from 'vue'\n\nexport default defineComponent({\n  name: 'SorterPopup',\n  props: {\n    sortChange: {\n      type: Function,\n      default: () => {}\n    },\n    activeSort: {\n      type: String,\n      default: ''\n    },\n    hitColumnProp: {\n      type: Boolean\n    }\n  },\n  setup(props) {\n    const list = [\n      { label: '升序', value: 'ascend' },\n      { label: '降序', value: 'descend' }\n    ]\n\n    return () => {\n      return (\n        <div class={['bn-table__sort-popup']}>\n          {list.map((item) => (\n            <div\n              class={[\n                'bn-table__sort-item',\n                {\n                  'bn-table__sort-item-active':\n                    props.activeSort === item.value && props.hitColumnProp\n                }\n              ]}\n              onClick={() => props.sortChange!(item.value)}\n            >\n              {item.label}\n            </div>\n          ))}\n        </div>\n      )\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport { computed, createVNode, defineComponent, inject, ref, toRefs } from 'vue'\n\nimport type { TableColumnData, TableData } from '../types'\nimport { tableColumnTypes } from '../types'\n\nimport Trigger from '../../../trigger/src/trigger'\n\nimport { getNamespace } from '../../../../utils/global-config'\nimport { isFunction } from '../../../../utils/is'\nimport type { TableContext } from '../context'\nimport { tableInjectionKey } from '../context'\n\nimport Checkbox from '../../../checkbox/src/checkbox.vue'\n\nimport { BnIconCaretFill as CaretArrow } from '../../../icon'\n\nimport { useColumnFixed } from '../hooks/use-column-fixed'\nimport SorterPopup from './table-sorter-popup'\n\nexport default defineComponent({\n  name: 'Th',\n  props: {\n    column: {\n      type: Object as PropType<TableColumnData>,\n      default: () => ({})\n    },\n    dataColumns: {\n      type: Array as PropType<TableColumnData[]>,\n      default: () => []\n    },\n    resizable: {\n      type: Boolean\n    }\n  },\n  setup(props) {\n    const ns = getNamespace('th')\n\n    const tableContext = inject<TableContext>(tableInjectionKey)\n\n    const isOpsType = computed(() => tableColumnTypes.includes(props.column.type!))\n\n    // 顶部Checkbox状态\n    const checkboxStatus = computed(() => {\n      // 顶部Checkbox选中状态\n      let checked = false\n      // 顶部Checkbox半选状态\n      let indeterminate = false\n      // 顶部Checkbox禁用状态\n      let disabled = false\n      // 已选中项，去除disabled的\n      // todo 这地方拓扬没有写完整，这里要判断已选中的包括前一个分页的keys，或者考虑选中后如何插入\n      const unDisabledSelection = tableContext?.opsStore?.selectionRows?.filter(\n        (row) => !row.disabled\n      )\n      // console.log('选中的行_____', unDisabledSelection)\n      // 这块是选中数\n      // const selectionNumber = unDisabledSelection?.length ?? 0\n      // 此处处理的是renderData即渲染data\n      const allEnabledSelectionNumber = tableContext?.opsStore?.allEnabledSelectionRows?.length ?? 0\n      // 当前页是否全选\n      const isCurrentPageAllSelected = tableContext?.opsStore?.allEnabledSelectionRows?.every(\n        (item: TableData) => {\n          // 对于禁用的就无需选择了\n          if (item.disabled) {\n            return true\n          }\n          return unDisabledSelection?.map((tData) => tData.key)?.includes(item.key)\n        }\n      )\n      // todo 后续优化\n      // 如果当前页全选\n      if (isCurrentPageAllSelected) {\n        checked = true\n      } else {\n        // 当前页只要未全选中就看已选中项\n        // 已选中项>0个则显示半选否则未选\n        if (unDisabledSelection && unDisabledSelection.length > 0) {\n          indeterminate = true\n        }\n      }\n\n      if (allEnabledSelectionNumber === 0) {\n        disabled = true\n      }\n\n      // console.log('全选状态____', {\n      //   checked,\n      //   indeterminate,\n      //   disabled\n      // })\n\n      return {\n        checked,\n        indeterminate,\n        disabled\n      }\n    })\n\n    const renderOpsMap: Record<string, any> = {\n      checkbox() {\n        if (props.column.hiddenCheckboxAll) {\n          return\n        }\n        return (\n          <>\n            <Checkbox\n              label={props.column.title ?? undefined}\n              modelValue={checkboxStatus.value.checked}\n              indeterminate={checkboxStatus.value.indeterminate} // 半选状态\n              disabled={checkboxStatus.value.disabled}\n              validateEvent={false}\n              onChange={tableContext?.opsStore?.selectAll} // 全选事件\n              // @ts-ignore: click\n              onClick={(ev: Event) => ev.stopPropagation()}\n            />\n          </>\n        )\n      },\n      index() {\n        return props.column.title || '#'\n      }\n    }\n\n    const renderOps = () => {\n      return renderOpsMap[props.column.type!]()\n    }\n\n    // sort\n    const activeSort = computed(() => tableContext?.sortStore?.activeSort)\n    const hitColumnProp = computed(() => tableContext?.sortStore?.activeProp === props.column.prop)\n    const isSortPopup = computed(() => tableContext?.sortStore?.isSortPopup)\n\n    const handlerSort = (direction: 'ascend' | 'descend' | '') => {\n      tableContext?.sortStore?.handleSortChange?.(props.column, direction)\n    }\n\n    // 渲染sorter\n    const renderSortIcon = () => {\n      const defColor = '#88909b'\n      const activeColor = '#2355f5'\n      const popupDefColor = '#242934'\n\n      const _render = () => {\n        if (!isSortPopup.value) {\n          return (\n            <span class={['bn-table__sort']}>\n              <CaretArrow\n                color={\n                  hitColumnProp.value && activeSort.value === 'ascend' ? activeColor : defColor\n                }\n                class={['bn-table__sort-ascend']}\n                rotate={180}\n                size={12}\n                // @ts-ignore: click\n                onClick={() => handlerSort('ascend')}\n              ></CaretArrow>\n              <CaretArrow\n                color={\n                  hitColumnProp.value && activeSort.value === 'descend' ? activeColor : defColor\n                }\n                class={['bn-table__sort-descend']}\n                size={12}\n                // @ts-ignore: click\n                onClick={() => handlerSort('descend')}\n              ></CaretArrow>\n            </span>\n          )\n        }\n\n        if (hitColumnProp.value && activeSort.value === 'ascend') {\n          return (\n            <span class={['bn-table__sort']}>\n              <CaretArrow\n                class={['bn-table__sort-arrow-center']}\n                color={popupDefColor}\n                rotate={180}\n                size={12}\n              />\n            </span>\n          )\n        }\n\n        if (hitColumnProp.value && activeSort.value === 'descend') {\n          return (\n            <span class={['bn-table__sort']}>\n              <CaretArrow\n                class={['bn-table__sort-arrow-center']}\n                color={popupDefColor}\n                size={12}\n              ></CaretArrow>\n            </span>\n          )\n        }\n      }\n\n      return _render()\n    }\n\n    const popupVisible = ref(false)\n\n    const onPopupVisibleChange = (visible: boolean) => {\n      popupVisible.value = visible\n    }\n\n    const handleSortChangeInPopup = (direction: 'ascend' | 'descend' | '') => {\n      handlerSort(direction)\n    }\n\n    // 优先级 renderHeader > headerSlotName > title\n    const renderTitle = () => {\n      let title: unknown = props.column?.title\n      const tableHeaderSlot = tableContext?.slots?.[props.column.headerSlotName!]\n      if (tableHeaderSlot) {\n        title = tableHeaderSlot({ column: props.column })\n      }\n\n      if (isFunction(props.column.renderHeader)) {\n        title = props.column.renderHeader({ column: props.column })\n      }\n\n      const _render = () => {\n        if (!props.column.sortable) {\n          return <span class={[`bn-table__header-title`]}>{title}</span>\n        }\n\n        if (!isSortPopup.value) {\n          return (\n            <span\n              class={[`bn-table__header-title`]}\n              onClick={() => props.column.sortable && handlerSort('')}\n            >\n              {title}\n            </span>\n          )\n        }\n\n        return (\n          <Trigger\n            popupVisible={popupVisible.value}\n            trigger=\"hover\"\n            position=\"bottom\"\n            popupOffset={10}\n            v-slots={{\n              content: () => (\n                <SorterPopup\n                  sortChange={handleSortChangeInPopup}\n                  activeSort={activeSort.value}\n                  hitColumnProp={hitColumnProp.value}\n                ></SorterPopup>\n              )\n            }}\n            onPopupVisibleChange={onPopupVisibleChange}\n          >\n            <span\n              class={[\n                `bn-table__header-title`,\n                {\n                  'is-sort-active': hitColumnProp.value && activeSort.value\n                }\n              ]}\n              onClick={() => handlerSort('')}\n            >\n              {title}\n            </span>\n          </Trigger>\n        )\n      }\n\n      return _render()\n    }\n\n    const renderCell = () => {\n      return (\n        <span class={[`bn-table__cell`]}>\n          {isOpsType.value\n            ? renderOps()\n            : [renderTitle(), props.column.sortable && renderSortIcon()]}\n        </span>\n      )\n    }\n\n    const handleMouseDown = (e: MouseEvent) => {\n      if (props.column?.prop) {\n        tableContext?.resizeStore?.handleThMouseDown?.(props.column?.prop, e)\n      }\n    }\n\n    const { dataColumns, column } = toRefs(props)\n    const { fixedStyle, isLeftFixedLast, isRightFixedFirst } = useColumnFixed(dataColumns, column)\n\n    // 当前的prop是否在resizing\n    const propHasResizing = computed(\n      () => tableContext?.resizeStore?.prop === props.column.prop && props.column.prop\n    )\n    // 表格水平滚动位置。左 中 右\n    const horScrollPosition = computed(() => tableContext?.scroll?.horScrollPosition)\n\n    const cls = computed(() => {\n      const _cls = [\n        `${ns}`,\n        `is-align-${props.column.align || 'left'}`,\n        props.column.fixed && `is-fixed-${props.column.fixed}`,\n        isLeftFixedLast.value && `is-fixed-left-last`,\n        isRightFixedFirst.value && `is-fixed-right-first`,\n        horScrollPosition.value && `is-scroll-position-${horScrollPosition.value}`,\n        propHasResizing.value && 'is-resize'\n      ]\n      return _cls\n    })\n\n    return () => {\n      const colSpan = props.column.colSpan ?? 1\n      const rowSpan = props.column.rowSpan ?? 1\n\n      return createVNode(\n        'th',\n        {\n          class: cls.value,\n          style: {\n            ...fixedStyle.value\n          },\n          colspan: colSpan > 1 ? colSpan : undefined,\n          rowspan: rowSpan > 1 ? rowSpan : undefined\n        },\n        {\n          default: () => [\n            renderCell(),\n            props.resizable && <span class={`${ns}__handler`} onMousedown={handleMouseDown} />\n          ]\n        }\n      )\n    }\n  }\n})\n","import { createVNode, defineComponent } from 'vue'\nimport { getNamespace } from '../../../../utils/global-config'\n\nexport default defineComponent({\n  name: 'Thead',\n  setup(_, { slots }) {\n    const ns = getNamespace('thead')\n    return () => {\n      return createVNode(\n        'thead',\n        { class: [ns] },\n        {\n          default: slots.default\n        }\n      )\n    }\n  }\n})\n","import { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\nimport type { TableColumnData } from '../types'\nimport { addUnit } from '../../../../shared/utils'\n\nexport default defineComponent({\n  name: 'ColGroup',\n  props: {\n    dataColumns: {\n      type: Array as PropType<TableColumnData[]>,\n      default: () => []\n    },\n    columnWidth: {\n      type: Object as PropType<Record<string, number>>,\n      default: () => ({})\n    }\n  },\n  setup(props) {\n    return () => {\n      const getStyle = (column: TableColumnData) => {\n        const width =\n          (props.columnWidth && column.prop && props.columnWidth[column.prop]) || column.width\n        if (width) {\n          return {\n            width: addUnit(width),\n            minWidth: addUnit(column.minWidth)\n          }\n        }\n        return undefined\n      }\n      return (\n        <colgroup>\n          {props.dataColumns?.map((column) => (\n            <col key={`col-${column.prop}`} style={getStyle(column)} />\n          ))}\n        </colgroup>\n      )\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport { defineComponent, inject, watch, ref, reactive, computed } from 'vue'\nimport type { TableColumnContext } from '../context'\nimport { tableColumnInjectionKey } from '../context'\nimport Checkbox from '../../../checkbox/src/checkbox.vue'\nimport Space from '../../../space/src/space.vue'\nimport Button from '../../../button/src/button.vue'\nimport { getNamespace } from '../../../../utils/global-config'\nimport type { TableColumnData } from '../types'\n\nexport default defineComponent({\n  name: 'SettingPopup',\n  props: {\n    // eslint-disable-next-line vue/require-default-prop\n    close: Function as PropType<(cb?: () => void) => void>,\n    popupVisible: Boolean\n  },\n  setup(props) {\n    const tableColumnContext = inject<TableColumnContext>(tableColumnInjectionKey)\n    const ns = getNamespace('table-setting')\n    // 排除column操作类型\n    const groupColumns = computed(() =>\n      tableColumnContext?.groupColumns?.filter((column) => !column.type)\n    )\n\n    const initMap = new Map()\n    const columnsList = ref<TableColumnData[]>([])\n\n    const handleCheckboxChange = (column: TableColumnData, status: boolean) => {\n      if (column.disabled) return\n      column.hidden = !status\n      column.checked = status\n    }\n\n    const handleCancel = () => {\n      props.close?.(() => {\n        // 恢复到初始状态\n        groupColumns.value!.forEach((column) => {\n          Object.assign(column, initMap.get(column.prop))\n        })\n        columnsList.value = []\n        initMap.clear()\n      })\n    }\n\n    const handleConfirm = () => {\n      const columnProps: string[] = columnsList.value.map((column) => column.prop!)\n      tableColumnContext?.handleUpdateColumn?.(columnProps)\n      props.close?.()\n    }\n\n    watch(\n      () => props.popupVisible,\n      (val) => {\n        if (val) {\n          const _columns: TableColumnData[] = []\n          groupColumns.value!.forEach((column) => {\n            initMap.set(column.prop, {\n              disabled: column.disabled,\n              checked: column.checked,\n              hidden: column.hidden\n            })\n            _columns.push(column)\n          })\n          columnsList.value = _columns\n        }\n      }\n    )\n\n    const updateColumnsList = (sourceIndex: number, targetIndex: number, item: TableColumnData) => {\n      columnsList.value.splice(sourceIndex, 1)\n      columnsList.value.splice(targetIndex, 0, item)\n    }\n\n    // drag相关\n    const dragState = reactive({\n      dragging: false,\n      data: {},\n      // 开始位置\n      sourceIndex: -1 as number,\n      // 拖动到哪里\n      targetIndex: 0 as number\n    })\n\n    const clearDragState = () => {\n      dragState.dragging = false\n      dragState.data = {}\n      dragState.sourceIndex = -1\n      dragState.targetIndex = 0\n    }\n\n    // 拖动哪个元素\n    const dragSourceEvent = {\n      draggable: true,\n      onDragstart: (e: DragEvent, column: TableColumnData, index: number) => {\n        if (e.dataTransfer) {\n          e.dataTransfer.effectAllowed = 'move'\n          if (e.target && (e.target as HTMLElement).className.includes('drag-icon')) {\n            const { parentElement } = e.target as HTMLElement\n            if (parentElement && parentElement.className.includes('list-item')) {\n              e.dataTransfer.setDragImage(\n                parentElement,\n                parentElement.clientWidth - 20,\n                parentElement.clientHeight - 20\n              )\n            }\n          }\n        }\n        dragState.dragging = true\n        dragState.data = column\n        dragState.sourceIndex = index\n      },\n      onDragend: (e: DragEvent) => {\n        if (e.dataTransfer?.dropEffect === 'none') {\n          clearDragState()\n        }\n      }\n    }\n\n    // 拖动元素经过的元素\n    const dragTargetEvent = {\n      onDragenter: (e: DragEvent, column: TableColumnData, index: number) => {\n        if (e.dataTransfer) {\n          e.dataTransfer.dropEffect = 'move'\n        }\n\n        if (\n          dragState.targetIndex !== index &&\n          index !== dragState.sourceIndex &&\n          dragState.dragging\n        ) {\n          updateColumnsList(dragState.sourceIndex, index, dragState.data)\n        }\n        dragState.targetIndex = index\n        dragState.sourceIndex = index\n        e.preventDefault()\n        e.stopPropagation()\n      },\n      onDragover: (e: DragEvent) => {\n        if (e.dataTransfer) {\n          e.dataTransfer.dropEffect = 'move'\n        }\n        // 必须要阻止默认行为 不然不会触发 drag事件\n        e.preventDefault()\n        e.stopPropagation()\n      },\n      onDrop: (e: DragEvent) => {\n        clearDragState()\n        e.preventDefault()\n      }\n    }\n\n    return () => {\n      return (\n        <div class={[`${ns}__popup`]}>\n          <ul class={[`${ns}__list`]}>\n            {columnsList.value.map((column, index) => (\n              <li\n                key={column.prop}\n                class={[\n                  `${ns}__list-item`,\n                  {\n                    'is-disabled': column.disabled\n                  }\n                ]}\n                {...(!column.disabled\n                  ? {\n                      onDragenter(e: DragEvent) {\n                        dragTargetEvent.onDragenter(e, column, index)\n                      },\n                      onDragover(e: DragEvent) {\n                        dragTargetEvent.onDragover(e)\n                      },\n                      onDrop(e: DragEvent) {\n                        dragTargetEvent.onDrop(e)\n                      }\n                    }\n                  : {})}\n                onClick={() => handleCheckboxChange(column, !column.checked)}\n              >\n                <div class={[`${ns}__list-item-left`]}>\n                  <Checkbox\n                    modelValue={column.checked}\n                    disabled={column.disabled}\n                    onChange={(status: boolean) => handleCheckboxChange(column, status)}\n                    // @ts-ignore: click\n                    onClick={(e: Event) => e.stopPropagation()}\n                  />\n                  <span class={[`${ns}__list-item-title`]}>{column.title}</span>\n                </div>\n\n                {!column.disabled && (\n                  <div\n                    class={[`${ns}__drag-icon`]}\n                    draggable\n                    onDragstart={(e: DragEvent) => dragSourceEvent.onDragstart(e, column, index)}\n                    onDragend={(e: DragEvent) => dragSourceEvent.onDragend(e)}\n                    onClick={(e: Event) => e.stopPropagation()}\n                  >\n                    <div class=\"line\"></div>\n                    <div class=\"line\"></div>\n                    <div class=\"line\"></div>\n                  </div>\n                )}\n              </li>\n            ))}\n          </ul>\n          <div class={[`${ns}__footer`]}>\n            <Space size={12}>\n              <Button onClick={handleCancel}>取消</Button>\n              <Button type=\"primary\" onClick={handleConfirm}>\n                确认\n              </Button>\n            </Space>\n          </div>\n        </div>\n      )\n    }\n  }\n})\n","import { defineComponent, onUnmounted, ref } from 'vue'\nimport Trigger from '../../../trigger/src/trigger'\nimport SettingPopup from './table-setting-popup'\n\nexport default defineComponent({\n  name: 'SettingIcon',\n  setup() {\n    const popupVisible = ref(false)\n\n    let popupHideCallback: null | (() => void) = null\n\n    const close = (callback: () => void) => {\n      popupVisible.value = false\n      popupHideCallback = callback\n    }\n\n    const handlePopupVisibleChange = (status: boolean) => {\n      popupVisible.value = status\n    }\n\n    const onHide = () => {\n      popupHideCallback && popupHideCallback()\n    }\n\n    onUnmounted(() => {\n      popupHideCallback = null\n    })\n\n    return () => {\n      return (\n        <Trigger\n          popupVisible={popupVisible.value}\n          position=\"br\"\n          trigger=\"click\"\n          unmount-on-close={false}\n          animation-name=\"bn-slide-dynamic-origin\"\n          auto-fit-popup-min-width={true}\n          popup-offset={0}\n          v-slots={{\n            content: () => (\n              <SettingPopup close={close} popupVisible={popupVisible.value}></SettingPopup>\n            )\n          }}\n          onPopupVisibleChange={handlePopupVisibleChange}\n          onHide={onHide}\n        >\n          <div class={['bn-table__setting']}>\n            <div class=\"bn-table__setting-icon\">\n              <div class=\"line line-1\"></div>\n              <div class=\"line line-2\"></div>\n              <div class=\"line line-3\"></div>\n            </div>\n          </div>\n        </Trigger>\n      )\n    }\n  }\n})\n","import { defineComponent } from 'vue'\nimport { BnIconLoading } from '../../../icon'\n\nexport default defineComponent({\n  name: 'Loading',\n  setup() {\n    return () => {\n      return (\n        <div class={['bn-table__loading']}>\n          <BnIconLoading />\n        </div>\n      )\n    }\n  }\n})\n","import { compose, deepClone, getProp, getUniqueId } from '../../../shared/utils'\nimport type { TableData, TableDataWithRaw, TableColumnData } from './types'\n\nexport const injectPrivatePropToTableData = (data: TableData[]) => {\n  const travel = (data: TableData[]) => {\n    const result: TableDataWithRaw[] = []\n    for (const _record of data) {\n      const record: TableDataWithRaw = {\n        raw: _record,\n        disabled: _record.disabled,\n        expand: _record.expand,\n        isLeaf: _record.isLeaf\n      }\n      if (_record.children) {\n        record.isLeaf = false\n        record.children = travel(_record.children)\n      } else {\n        record.isLeaf = true\n      }\n      record.hasSubtree = false\n\n      result.push(record)\n    }\n    return result\n  }\n\n  return travel(data ?? [])\n}\n\n// 把columns按fixed left right排序\nexport const splitColumns = (columns: TableColumnData[]) => {\n  const normal: TableColumnData[] = []\n  const left: TableColumnData[] = []\n  const right: TableColumnData[] = []\n  columns.forEach((column) => {\n    if (column.fixed === 'left') {\n      left.push(column)\n      return\n    }\n    if (column.fixed === 'right') {\n      right.push(column)\n      return\n    }\n    normal.push(column)\n  })\n\n  return [...left, ...normal, ...right]\n}\n\n// 克隆column 添加一些属性\nconst cloneColumnAddProp = (columns: TableColumnData[]) => {\n  return columns.map((column) => {\n    const _column = deepClone(column)\n    _column.hidden = _column.hidden ?? false\n    _column.disabled = _column.disabled ?? false\n    _column.checked = !_column.hidden\n    _column.width = _column.width ?? ''\n    _column.key = _column.key ?? getUniqueId()\n    return _column\n  })\n}\n\nconst transformColumns = (columns: TableColumnData[]) => {\n  return compose(cloneColumnAddProp)(columns)\n}\n\nexport const injectPrivatePropToTableColumnData = (columns: TableColumnData[]) => {\n  const _columns = transformColumns(columns)\n  const dataColumns: TableColumnData[] = _columns\n  const groupColumns: TableColumnData[][] = [_columns]\n\n  return {\n    dataColumns,\n    groupColumns\n  }\n}\n\nexport const genSortFn = (prop: any, order: 'ascend' | 'descend' | '') => {\n  const compare = (a: TableData, b: TableData, reserve: number) => {\n    const v1 = getProp(a.raw, prop)\n    const v2 = getProp(b.raw, prop)\n\n    if (typeof v1 === 'string' && typeof v2 === 'string') {\n      if (v1.length > v2.length) {\n        return 1 * reserve\n      }\n      for (let i = 0; i < v1.length; i++) {\n        if (v1[i] < v2[i]) {\n          return -1 * reserve\n        }\n        if (v1[i] > v2[i]) {\n          return 1 * reserve\n        }\n      }\n      return 0\n    }\n\n    return (v1 - v2) * reserve\n  }\n\n  let sortFn\n  if (!prop) {\n    sortFn = (data: TableData[]) => data\n  }\n  if (order === 'ascend') {\n    sortFn = (data: TableData[]) => data.sort((a, b) => compare(a, b, 1))\n  }\n  if (order === 'descend') {\n    sortFn = (data: TableData[]) => data.sort((a, b) => compare(a, b, -1))\n  }\n  if (!order) {\n    sortFn = (data: TableData[]) => data\n  }\n  return sortFn\n}\n","import type { Ref } from 'vue'\nimport { computed, ref, watch } from 'vue'\nimport type { TableData } from '../types'\nexport const useSelection = ({\n  selection, // 全部选中数据\n  allEnabledSelectionRows, // 当前列可选数据\n  emit\n}: {\n  selection: Ref<TableData[]>\n  allEnabledSelectionRows: Ref<TableData[]>\n  emit: any\n}) => {\n  const innerSelection = ref(selection.value ?? [])\n  const keepSelection = computed(() => innerSelection.value.filter((row) => row.disabled))\n  // 选中行\n  const selectionRows = computed(() => innerSelection.value)\n  // 选中行的key\n  const selectionRowKeys = computed(() => {\n    return innerSelection.value.map((row) => row.key)\n  })\n  // todo 下一步启用\n  const useSelectedKeys = ref<(string | number)[]>([])\n\n  const toggleSelectAll = (checked: boolean) => {\n    // console.log('榉木接地----', allEnabledSelectionRows.value, keepSelection.value)\n    // 当前列全部数据，包含disabled\n    const _allEnabledSelectionRows = [...allEnabledSelectionRows.value, ...keepSelection.value]\n    // 全选，则用当前页中所有可选行，不含disabled，都则使用disabled行\n    const _selection = checked ? _allEnabledSelectionRows : [...keepSelection.value]\n    // console.log('useSelectedKeys', useSelectedKeys.value)\n    let originSelection = [...innerSelection.value]\n    // 下面要处理全选数据插入的问题，同时需要处理取消全选数据剔除的问题\n    // 如果全选\n    if (checked) {\n      _selection.map((row) => {\n        // 如果全部选中项中不包含当前页的数据，则插入\n        if (!selectionRowKeys.value.includes(row.key)) {\n          originSelection.push(row)\n        }\n      })\n    } else {\n      // 取消全选\n      _allEnabledSelectionRows.map((row) => {\n        // console.log('徐丽华~~~~', row.disabled)\n        if (selectionRowKeys.value.includes(row.key) && !row.disabled) {\n          originSelection = originSelection.filter((r) => r.key !== row.key)\n        }\n      })\n      _selection.map((row) => {\n        if (!selectionRowKeys.value.includes(row.key)) {\n          originSelection.push(row)\n        }\n      })\n    }\n    innerSelection.value = originSelection\n    // TODO 没有绑定事件不需要触发事件函数\n    emit('update:selection', originSelection)\n    emit('selection-change', originSelection)\n  }\n\n  /**\n   * Table Checkbox全选\n   * @param checked\n   */\n  const selectAll = (checked: boolean) => {\n    // console.log('selectAll', checked)\n    toggleSelectAll(checked)\n    emit('select-all', checked)\n  }\n\n  watch(selection, (val) => {\n    innerSelection.value = val\n  })\n\n  /**\n   * 切换选中状态\n   * @param row\n   * @param checked\n   */\n  const toggleSelect = (row: TableData, checked: boolean) => {\n    let originSelection = [...innerSelection.value]\n    if (checked) {\n      if (row.key && !selectionRowKeys.value.includes(row.key)) {\n        originSelection.push(row)\n      }\n    } else {\n      // const index = originSelection.findIndex((r) => r === row)\n      // if (index > -1) {\n      //   originSelection.splice(index, 1)\n      // }\n      if (selectionRowKeys.value.includes(row.key) && !row.disabled) {\n        originSelection = originSelection.filter((r) => r.key !== row.key)\n      }\n    }\n    innerSelection.value = originSelection\n\n    emit('update:selection', originSelection)\n    emit('selection-change', originSelection)\n  }\n\n  return {\n    toggleSelect,\n    toggleSelectAll,\n    selectAll,\n    selectionRows,\n    // 选中的Keys\n    selectionRowKeys,\n    useSelectedKeys\n  }\n}\n","import type { Ref } from 'vue'\nimport { reactive, ref } from 'vue'\nimport { off, on } from '../../../../utils/dom'\n\nexport const useColumnResize = (thRefs: Ref<Record<string, HTMLElement>>) => {\n  const resizingProp = ref('')\n  const columnWidth = reactive<Record<string, number>>({})\n\n  const handleThMouseDown = (prop: string, ev: MouseEvent) => {\n    ev.preventDefault()\n\n    resizingProp.value = prop\n    on(window, 'mousemove', handleThMouseMoving)\n    on(window, 'mouseup', handleThMouseUp)\n    on(window, 'contextmenu', handleThMouseUp)\n  }\n\n  const handleThMouseUp = () => {\n    resizingProp.value = ''\n    off(window, 'mousemove', handleThMouseMoving)\n    off(window, 'mouseup', handleThMouseUp)\n    off(window, 'contextmenu', handleThMouseUp)\n  }\n\n  const handleThMouseMoving = (ev: MouseEvent) => {\n    const element = thRefs.value[resizingProp.value]\n    if (element) {\n      const { clientX } = ev\n      const { x } = element.getBoundingClientRect()\n      let width = Math.ceil(clientX - x)\n      if (width < 40) {\n        width = 40\n      }\n      columnWidth[resizingProp.value] = width\n    }\n  }\n\n  return {\n    resizingProp,\n    columnWidth,\n    handleThMouseDown,\n    handleThMouseUp\n  }\n}\n","import type { ComponentPublicInstance, Ref } from 'vue'\nimport { ref, onMounted, watch } from 'vue'\nimport type { TableColumnData } from '../types'\n\nexport const useScroll = (renderDataColumns: Ref<TableColumnData[]>) => {\n  const tbodyComRef = ref<ComponentPublicInstance>()\n  // 当前滚动条的位置\n  const horScrollPosition = ref<'left' | 'right' | 'middle'>()\n  //body水平滚动来控制header区域的水平滚动\n  const theadComRef = ref<ComponentPublicInstance & { scrollLeft: (v: number) => void }>()\n  // 用body的水平滚动来控制header的水平滚动\n  const onTbodyScroll = (e: Event) => {\n    const target = e.target as HTMLDivElement\n    const { scrollLeft } = target\n    // 触发header滚动条滚动\n    theadComRef.value?.scrollLeft(scrollLeft)\n    setHorScrollPosition(target)\n  }\n\n  const setHorScrollPosition = (scrollContainer: HTMLDivElement) => {\n    const { scrollLeft, clientWidth } = scrollContainer\n    const horScrollWidth = scrollContainer.firstElementChild!.clientWidth - clientWidth\n\n    if (horScrollWidth === 0) return\n\n    if (scrollLeft === 0) {\n      horScrollPosition.value = 'left'\n    } else if (scrollLeft === horScrollWidth) {\n      horScrollPosition.value = 'right'\n    } else {\n      horScrollPosition.value = 'middle'\n    }\n  }\n\n  const updateHorScrollPosition = () => {\n    const scrollContainer = tbodyComRef.value?.$el?.firstElementChild\n    scrollContainer && setHorScrollPosition(scrollContainer)\n  }\n\n  onMounted(() => {\n    updateHorScrollPosition()\n  })\n\n  watch(\n    () => renderDataColumns.value,\n    () => {\n      updateHorScrollPosition()\n    }\n  )\n\n  return {\n    theadComRef,\n    tbodyComRef,\n    onTbodyScroll,\n    horScrollPosition\n  }\n}\n","import { ref } from 'vue'\nimport type { TableColumnData } from '../types'\n\nconst sortDirection = ['ascend', 'descend', ''] as const\n\ntype SortDirection = (typeof sortDirection)[number]\n\nconst getDirection = (direction: SortDirection) => {\n  let index = sortDirection.indexOf(direction)\n  if (index === sortDirection.length - 1) {\n    index = 0\n  } else {\n    index++\n  }\n\n  return sortDirection[index]\n}\n\nexport const useSorter = ({\n  sort,\n  prop,\n  popup,\n  callback\n}: {\n  sort: SortDirection\n  prop: string | number\n  popup: boolean\n  callback: () => void\n}) => {\n  const activeSort = ref<SortDirection>(sort)\n  const activeProp = ref(prop)\n  const isSortPopup = ref(popup)\n\n  const handleSortChange = (column: TableColumnData, direction?: SortDirection) => {\n    if (activeProp.value !== column.prop) {\n      activeSort.value = ''\n    }\n    activeProp.value = column.prop!\n    activeSort.value = direction ? direction : getDirection(activeSort.value)\n    callback()\n  }\n  return {\n    activeSort,\n    activeProp,\n    handleSortChange,\n    isSortPopup\n  }\n}\n","import type { ComponentPublicInstance, Ref, StyleValue } from 'vue'\nimport { computed, defineComponent, ref, watch, provide, reactive, toRef, Transition } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport Scrollbar from '../../scrollbar/src/scrollbar.vue'\nimport Empty from '../../empty/src/empty.vue'\nimport { isArray } from '../../../utils/is'\nimport { addUnit, compose } from '../../../shared/utils'\nimport { tableProps } from './table-props'\n\nimport type { TableDataWithRaw, TableData, TableColumnData } from './types'\n\nimport Tbody from './layout/table-tbody'\nimport Tr from './layout/table-tr'\nimport Td from './layout/table-td'\nimport Th from './layout/table-th'\nimport Thead from './layout/table-thead'\nimport ColGroup from './layout/table-col-group'\nimport SettingIcon from './layout/table-setting-icon'\nimport Loading from './layout/table-loading'\n\nimport {\n  injectPrivatePropToTableColumnData,\n  injectPrivatePropToTableData,\n  splitColumns,\n  genSortFn\n} from './utils'\nimport { tableInjectionKey, tableColumnInjectionKey } from './context'\n\nimport { useSelection } from './hooks/use-selection'\nimport { useColumnResize } from './hooks/use-column-resize'\nimport { useScroll } from './hooks/use-scroll'\nimport { useSorter } from './hooks/use-sorter'\n\nexport default defineComponent({\n  name: getComponentNamespace('Table'),\n  props: tableProps,\n  emits: ['update:selection', 'update:selectedKeys', 'selection-change', 'select-all'],\n  setup(props, { slots, emit }) {\n    const ns = getNamespace('table')\n\n    const flattenData = ref<TableData[]>([])\n    const renderData = ref<TableData[]>([])\n\n    // 拆解分组后的数据表头信息\n    const dataColumns = ref<TableColumnData[]>([])\n    // 二维数组\n    const groupColumns = ref<TableColumnData[][]>([])\n\n    const renderDataColumns = ref<TableColumnData[]>([])\n    const renderGroupColumns = ref<TableColumnData[][]>([])\n\n    // resize\n    const thRefs = ref<Record<string, HTMLElement>>({})\n\n    const { theadComRef, tbodyComRef, horScrollPosition, onTbodyScroll } =\n      useScroll(renderDataColumns)\n\n    // sortable\n    const { activeProp, activeSort, isSortPopup, handleSortChange } = useSorter({\n      sort: props.defaultSort.sort || '',\n      prop: props.defaultSort.prop || '',\n      popup: props.defaultSort.popup || false,\n      callback: () => {\n        updateRenderData()\n      }\n    })\n\n    const updateRenderData = () => {\n      renderData.value = compose((data: TableData[]) => {\n        // 排序\n        const prop = activeProp.value\n        const sort = activeSort.value\n        return genSortFn(prop, sort)!(data)\n      })([...flattenData.value])\n    }\n\n    const updateRenderColumnsData = (columnPropSortArray?: string[]) => {\n      const _renderDataColumns = compose(\n        (columns: TableColumnData[]) => splitColumns(columns),\n        (columns: TableColumnData[]) => {\n          return columns.filter((column) => !column.hidden)\n        },\n        // 处理拖动排序column位置\n        (columns: TableColumnData[]) => {\n          const temp: TableColumnData[] = []\n          if (isArray(columnPropSortArray)) {\n            columnPropSortArray.forEach((prop) => {\n              const index = columns.findIndex((column) => column.prop === prop)\n              if (index >= -1) {\n                const _column = columns.splice(index, 1)[0]\n                temp.push(_column)\n              }\n            })\n\n            const regroupColumns = [...columns, ...temp]\n            // 覆盖\n            dataColumns.value = regroupColumns\n\n            return regroupColumns\n          }\n          return columns\n        }\n      )([...dataColumns.value])\n\n      renderDataColumns.value = _renderDataColumns\n      // TODO 多级表头\n      renderGroupColumns.value = [_renderDataColumns]\n    }\n\n    watch(\n      () => props.columns,\n      (columns) => {\n        const result = injectPrivatePropToTableColumnData(columns)\n        dataColumns.value = result.dataColumns\n        groupColumns.value = result.groupColumns\n        updateRenderColumnsData()\n      },\n      { immediate: true, deep: true }\n    )\n\n    watch(\n      () => props.data,\n      () => {\n        flattenData.value = injectPrivatePropToTableData(props.data)\n        updateRenderData()\n      },\n      { immediate: true, deep: true }\n    )\n\n    const renderHeader = () => {\n      const Component = Scrollbar\n      return (\n        <div class={[`${ns}__header`]}>\n          <Component\n            ref={theadComRef}\n            class={[`${ns}__header-scroll`]}\n            hide={true}\n            disableVertical={true}\n          >\n            <table\n              cellpadding={0}\n              cellspacing={0}\n              class={[`${ns}__element`]}\n              style={{\n                height: '100%',\n                tableLayout: 'fixed'\n              }}\n            >\n              {renderDataColumns.value.length !== 0 && (\n                <ColGroup dataColumns={renderDataColumns.value} columnWidth={columnWidth} />\n              )}\n              <Thead>\n                {renderGroupColumns.value.map((row, index) => {\n                  return (\n                    <Tr key={`header-row-${index}`}>\n                      {row.map((column, index) => {\n                        // 最后一个不添加可拖动区域\n                        const resizable =\n                          props.border &&\n                          props.columnResizable &&\n                          Boolean(column.prop) &&\n                          index < row.length - 1\n\n                        return (\n                          <Th\n                            key={`th-${index}`}\n                            column={column}\n                            dataColumns={row}\n                            resizable={resizable}\n                            ref={(ins: ComponentPublicInstance) => {\n                              if (ins?.$el && column.prop) {\n                                thRefs.value[column.prop] = ins.$el\n                              }\n                            }}\n                          />\n                        )\n                      })}\n                    </Tr>\n                  )\n                })}\n              </Thead>\n            </table>\n          </Component>\n\n          {props.config.setting && <SettingIcon></SettingIcon>}\n        </div>\n      )\n    }\n\n    // rows\n    const renderRecord = (record: TableDataWithRaw, rowIndex: number) => {\n      const currentKey = record.key\n      const uniqueKey = props.primaryKey && record?.raw?.[props.primaryKey]\n      return (\n        <>\n          <Tr key={currentKey} rowHeight={props.rowHeight} uniqueIndex={uniqueKey}>\n            {renderDataColumns.value.map((column, index) => {\n              // const cellId = `${rowIndex}-${index}`\n              const [rowspan, colspan] = [1, 1]\n              return (\n                <Td\n                  key={`td-${index}`}\n                  rowIndex={rowIndex}\n                  record={record}\n                  column={column}\n                  dataColumns={renderDataColumns.value}\n                  rowSpan={rowspan}\n                  colSpan={colspan}\n                  defaultEmptyFill={props.defaultEmptyFill}\n                />\n              )\n            })}\n          </Tr>\n        </>\n      )\n    }\n\n    // table body height\n    const tableBodyStyle = computed(() => {\n      const style: StyleValue = {\n        height: addUnit(props.height),\n        maxHeight: addUnit(props.maxHeight)\n      }\n      return style\n    })\n\n    const renderEmpty = () => {\n      return (\n        <Tr>\n          <Td colSpan={dataColumns.value.length} empty={true}>\n            {slots.empty?.() ?? <Empty />}\n          </Td>\n        </Tr>\n      )\n    }\n\n    // 水平滚动列时当表格没有数据 表头支持滚动\n    const calcTableBodyMinWidth = computed(() => {\n      const arr: any[] = []\n      renderDataColumns.value.forEach((column) => {\n        if (column.width) {\n          arr.push(addUnit(column.width))\n        } else if (column.minWidth) {\n          arr.push(addUnit(column.minWidth))\n        }\n      })\n\n      return `calc(${arr.join(' + ')})`\n    })\n\n    const renderBody = () => {\n      const Component = Scrollbar\n      return (\n        <div class={[`${ns}__body`, renderData.value.length === 0 && 'is-empty']}>\n          <Component\n            class={[`${ns}__body-scroll`]}\n            onScroll={onTbodyScroll}\n            style={{\n              height: tableBodyStyle.value.height,\n              maxHeight: tableBodyStyle.value.maxHeight\n            }}\n            ref={tbodyComRef}\n          >\n            <table\n              cellpadding={0}\n              cellspacing={0}\n              class={[`${ns}__element`]}\n              style={{\n                maxHeight: tableBodyStyle.value.maxHeight,\n                tableLayout: 'fixed',\n                height: !renderData.value.length ? '100%' : '',\n                minWidth: calcTableBodyMinWidth.value\n              }}\n            >\n              {renderData.value.length !== 0 && (\n                <ColGroup dataColumns={renderDataColumns.value} columnWidth={columnWidth} />\n              )}\n\n              <Tbody>\n                {renderData.value.length > 0\n                  ? renderData.value.map((record, index) => renderRecord(record, index))\n                  : renderEmpty()}\n              </Tbody>\n            </table>\n          </Component>\n        </div>\n      )\n    }\n\n    const renderFooter = () => {}\n\n    const allEnabledSelectionRows = computed(() => {\n      const rows: TableData[] = []\n      const travel = (data: TableDataWithRaw[]) => {\n        for (const record of data) {\n          if (!record.disabled) {\n            rows.push(record.raw!)\n          }\n          if (record.children) {\n            travel(record.children)\n          }\n        }\n      }\n      // renderData为列表中渲染的数据\n      travel(renderData.value)\n      return rows\n    })\n\n    // hooks\n\n    const { toggleSelectAll, toggleSelect, selectAll, selectionRows, selectionRowKeys } =\n      useSelection({\n        selection: toRef(props, 'selection') as Ref<TableData[]>,\n        allEnabledSelectionRows,\n        emit\n      })\n\n    const { resizingProp, columnWidth, handleThMouseDown } = useColumnResize(thRefs)\n\n    // tableContext\n    provide(\n      tableInjectionKey,\n      reactive({\n        slots,\n        scroll: {\n          horScrollPosition\n        },\n        sortStore: {\n          activeProp,\n          activeSort,\n          isSortPopup,\n          handleSortChange\n        },\n        opsStore: {\n          selectionRows,\n          selectionRowKeys,\n          allEnabledSelectionRows,\n          toggleSelectAll,\n          toggleSelect,\n          selectAll\n        },\n        resizeStore: {\n          handleThMouseDown,\n          prop: resizingProp\n        }\n      })\n    )\n\n    // tableColumnContext\n    provide(\n      tableColumnInjectionKey,\n      reactive({\n        groupColumns: dataColumns,\n        handleUpdateColumn: updateRenderColumnsData\n      })\n    )\n\n    const renderTable = () => {\n      return (\n        <>\n          {renderHeader()}\n          {renderBody()}\n          {renderFooter()}\n        </>\n      )\n    }\n\n    return () => {\n      return (\n        <div\n          class={[\n            ns,\n            props.border && 'is-border',\n            props.hover && 'is-hover',\n            props.stripe && 'is-stripe'\n          ]}\n        >\n          {slots.header && <div class={[`${ns}__external-header`]}>{slots.header()}</div>}\n          {renderTable()}\n          {slots.footer && <div class={[`${ns}__external-footer`]}>{slots.footer()}</div>}\n\n          {<Transition name=\"bn-fade-in\">{props.loading && <Loading />}</Transition>}\n        </div>\n      )\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Table from './src/table'\n\nexport const Table = withInstall(_Table)\nexport type TableInstance = InstanceType<typeof _Table>\nexport * from './src/types'\nexport default Table\n","import { definePropType } from '../../../utils/vue-utils'\nimport type { TabsType, TabWarp } from './types'\n\nexport const tabsProps = {\n  activeKey: {\n    type: [String, Number],\n    default: undefined\n  },\n  type: {\n    type: definePropType<TabsType>(String),\n    default: 'line'\n  },\n  destroyOnHide: {\n    type: Boolean,\n    default: undefined\n  },\n  // 选项卡切换时是否开启动画\n  animation: {\n    type: Boolean,\n    default: true\n  },\n  // 隐藏panes\n  hidePanes: {\n    type: Boolean,\n    default: true\n  },\n  size: {\n    type: definePropType<'small' | 'default' | 'large'>(String),\n    default: 'small'\n  },\n  tabWarp: {\n    type: definePropType<TabWarp>(String),\n    default: 'nowarp'\n  }\n}\n","import type { InjectionKey } from 'vue'\nimport type { TabPaneData } from './types'\n\nexport interface TabsContext {\n  destroyOnHide: boolean\n  activeKey: string | number\n  addPane: (id: number, data: TabPaneData) => void\n  removePane: (id: number) => void\n}\n\nexport const tabsInjectionKey: InjectionKey<TabsContext> = Symbol('tabs')\n","import type { PropType, CSSProperties } from 'vue'\nimport { computed, defineComponent, ref, watch, onMounted, onUnmounted, nextTick } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { BnIconArrowLeft, BnIconArrowRight } from '../../icon'\nimport { useResizeObserver } from '../../../hooks/use-resize-observer'\nimport { getStyle } from '../../../utils/dom'\nimport { sleep } from '../../../shared/utils'\nimport { definePropType } from '../../../utils/vue-utils'\nimport type { TabPaneData, TabsType, TabWarp } from './types'\n\nexport default defineComponent({\n  name: getComponentNamespace('TabNavsLine'),\n  props: {\n    tabs: {\n      type: Array as PropType<TabPaneData[]>,\n      default: () => []\n    },\n    type: {\n      type: String as PropType<TabsType>,\n      default: 'line'\n    },\n    size: {\n      type: String,\n      default: 'small'\n    },\n    activeKey: {\n      type: [String, Number],\n      default: undefined\n    },\n    changeActiveKey: {\n      type: Function,\n      default: () => {}\n    },\n    animation: {\n      type: Boolean\n    },\n    tabWarp: {\n      type: definePropType<TabWarp>(String),\n      default: 'nowarp'\n    }\n  },\n  setup(props) {\n    const ns = getNamespace('tabs')\n\n    const navInkStyle = ref<CSSProperties>({})\n    const arrangeStyle = ref<CSSProperties>({})\n\n    const navItemRefs = ref<Record<string, HTMLElement>>({})\n    const viewportRef = ref<HTMLElement>()\n    const arrangeRef = ref<HTMLElement>()\n\n    const translateX = ref(0)\n    const controller = ref(false)\n    const prevDisabled = computed(() => translateX.value <= 0)\n\n    const nextDisabled = computed(() => {\n      const viewportWidth = viewportRef.value!.getBoundingClientRect().width\n      const arrangeWidth = arrangeRef.value!.scrollWidth\n      return translateX.value >= arrangeWidth - viewportWidth\n    })\n\n    const updateController = async () => {\n      await nextTick()\n      const viewportWidth = viewportRef.value!.getBoundingClientRect().width\n      const arrangeWidth = arrangeRef.value!.scrollWidth\n      // 放大误差\n      controller.value = Math.floor(arrangeWidth - viewportWidth) > 1\n    }\n\n    // 边界判断\n    const boundaryProcessing = (x: number, viewportWidth: number, arrangeWidth: number) => {\n      if (x <= 0) {\n        x = 0\n      }\n      if (x >= arrangeWidth - viewportWidth) {\n        x = arrangeWidth - viewportWidth\n      }\n      return x\n    }\n\n    const updateCenterPosition = async () => {\n      await sleep(16)\n      if (!controller.value) return\n      const navEl = navItemRefs.value[props.activeKey!] as HTMLElement\n      if (!navEl) return\n      const arrangeWidth = arrangeRef.value!.scrollWidth\n      const tagWidth = navEl.getBoundingClientRect().width\n      const offsetLeft = navEl.offsetLeft\n      const viewportWidth = viewportRef.value!.getBoundingClientRect().width\n      const x = boundaryProcessing(\n        offsetLeft - viewportWidth / 2 + tagWidth / 2,\n        viewportWidth,\n        arrangeWidth\n      )\n      translateX.value = x\n    }\n    const updateNavInkPosition = async (el?: HTMLElement) => {\n      await nextTick()\n      el = el ?? navItemRefs.value[props.activeKey!]\n      if (!el) {\n        // 清空下划线\n        navInkStyle.value = {}\n        return\n      }\n      const { width } = el.getBoundingClientRect()\n      const offsetLeft = el.offsetLeft\n\n      // 暂时只考虑水平\n      navInkStyle.value.left = offsetLeft + 'px'\n      navInkStyle.value.width = width + 'px'\n      navInkStyle.value.height = '1px'\n      navInkStyle.value.bottom = 0\n    }\n\n    const handleSlide = (direction: number) => {\n      const viewportWidth = viewportRef.value!.getBoundingClientRect().width\n      const arrangeNode = arrangeRef.value!\n      const arrangeWidth = arrangeNode.scrollWidth\n      const offset = Math.ceil(viewportWidth / 2)\n      const transform = getStyle(arrangeNode, 'transform')\n      const matcher = transform.match(/translateX\\((.*?)px\\)/)\n      if (!matcher) return\n      const x = boundaryProcessing(\n        Math.abs(+matcher[1]) + direction * offset,\n        viewportWidth,\n        arrangeWidth\n      )\n      translateX.value = x\n    }\n\n    const handleNavItem = (key: string | number) => {\n      props.changeActiveKey?.(key)\n    }\n\n    const handleMouseenter = (e: Event) => {\n      e.stopPropagation()\n      if (props.type === 'line') {\n        updateNavInkPosition(e.currentTarget as HTMLElement)\n      }\n    }\n\n    const handleMouseleave = () => {\n      updateNavInkPosition(navItemRefs.value[props.activeKey!])\n    }\n\n    const showNavInk = computed(() => {\n      return ['line'].includes(props.type!)\n    })\n\n    const { createResizeObserver, destroyResizeObserver } = useResizeObserver({\n      elementRef: viewportRef,\n      onResize: () => {\n        updateController()\n        updateCenterPosition()\n      }\n    })\n\n    onMounted(() => {\n      console.log('props---', props.tabWarp)\n      createResizeObserver()\n    })\n    onUnmounted(() => {\n      destroyResizeObserver()\n    })\n\n    // translateX\n    watch(\n      () => translateX.value,\n      (x: number) => {\n        arrangeStyle.value.transform = `translateX(${-x}px)`\n      },\n      {\n        immediate: true\n      }\n    )\n\n    watch(\n      () => props.tabs,\n      () => {\n        updateController()\n        updateCenterPosition()\n        updateNavInkPosition()\n      },\n      { immediate: true }\n    )\n\n    watch(\n      () => props.activeKey,\n      () => {\n        updateCenterPosition()\n        updateNavInkPosition()\n      }\n    )\n\n    return () => {\n      return (\n        <div class={[`${ns}__navs-wrapper`, `is-${props.size}`]} onMouseleave={handleMouseleave}>\n          {props.tabWarp === 'nowarp' && controller.value && (\n            <BnIconArrowLeft\n              class={[\n                `${ns}__icon-prev`,\n                {\n                  'is-disabled': prevDisabled.value\n                }\n              ]}\n              // @ts-ignore: click\n              onClick={() => !prevDisabled.value && handleSlide(-1)}\n            />\n          )}\n          <div class={[`${ns}__navs-viewport`]} ref={viewportRef}>\n            <div\n              class={[`${ns}__navs`, `is-${props.type}`]}\n              ref={arrangeRef}\n              style={arrangeStyle.value}\n            >\n              {props.tabs.map((item) => (\n                <div\n                  class={[\n                    `${ns}__navs-item`,\n                    `is-${props.type}`,\n                    {\n                      'is-active': item.key === props.activeKey,\n                      'is-disabled': item.disabled\n                    }\n                  ]}\n                  key={`${props.type!}__${item.key}`}\n                  onClick={() => handleNavItem(item.key)}\n                  onMouseenter={(e) => handleMouseenter(e)}\n                  ref={(el: HTMLElement) => {\n                    navItemRefs.value[item.key] = el\n                  }}\n                >\n                  {item.paneSlots?.title ? item.paneSlots?.title() : item.title}\n                </div>\n              ))}\n\n              {showNavInk.value && <div class={[`${ns}__nav-ink`]} style={navInkStyle.value}></div>}\n            </div>\n          </div>\n          {props.tabWarp === 'nowarp' && controller.value && (\n            <BnIconArrowRight\n              class={[\n                `${ns}__icon-next`,\n                {\n                  'is-disabled': nextDisabled.value\n                }\n              ]}\n              // @ts-ignore: click\n              onClick={() => !nextDisabled.value && handleSlide(1)}\n            />\n          )}\n        </div>\n      )\n    }\n  }\n})\n","import type { VNode } from 'vue'\nimport { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { isUndefined } from '../../../utils/is'\nimport { getAllElements, isComponent } from '../../../utils/vue-utils'\nimport { tabsProps } from './props'\nimport { tabsInjectionKey } from './context'\nimport type { TabPaneData } from './types'\nimport TabNavs from './tab-navs'\n\nexport default defineComponent({\n  name: getComponentNamespace('Tabs'),\n  props: tabsProps,\n  emits: ['update:activeKey', 'change'],\n  setup(props, { slots, emit }) {\n    const ns = getNamespace('tabs')\n    const { destroyOnHide } = toRefs(props)\n\n    const _activeKey = ref()\n    const panesMap = ref<Map<number, any>>(new Map())\n\n    const renderTabsNavsData = computed(() => {\n      return Array.from(panesMap.value.values())\n    })\n\n    const panesKeys = computed(() => renderTabsNavsData.value.map((item) => item.key))\n\n    const computedActiveKey = computed(() => {\n      const activeKey = props.activeKey ?? _activeKey.value\n      if (isUndefined(activeKey)) {\n        return panesKeys.value[0]\n      }\n      return activeKey\n    })\n\n    // 每个pane创建时保存TabPaneData\n    const addPane = (uid: number, paneData: TabPaneData) => {\n      panesMap.value.set(uid, paneData)\n    }\n    const removePane = (uid: number) => {\n      panesMap.value.delete(uid)\n    }\n\n    const activeIndex = computed(() => {\n      const index = panesKeys.value.indexOf(computedActiveKey.value)\n      if (index === -1) {\n        return 0\n      }\n      return index\n    })\n\n    const renderPanes = (children: VNode[]) => {\n      return (\n        <div class={[`${ns}__panes-viewport`]} v-show={!props.hidePanes}>\n          <div\n            class={[`${ns}__panes`, props.animation && `is-animation`]}\n            style={{\n              transform: `translate(-${activeIndex.value * 100}%, 0)`\n            }}\n          >\n            {children}\n          </div>\n        </div>\n      )\n    }\n\n    const renderNav = () => {\n      const handleChangeActiveKey = (key: string | number) => {\n        if (key !== computedActiveKey.value) {\n          _activeKey.value = key\n          emit('update:activeKey', key)\n          emit('change', key)\n        }\n      }\n      if (slots.extra) {\n        return (\n          <div class={[`${ns}__extra-wrapper`]}>\n            <TabNavs\n              tabs={renderTabsNavsData.value}\n              type={props.type}\n              size={props.size}\n              activeKey={computedActiveKey.value}\n              changeActiveKey={handleChangeActiveKey}\n              animation={props.animation}\n              tabWarp={props.tabWarp}\n            />\n            {slots.extra && <div class={[`${ns}__extra`]}>{slots.extra()}</div>}\n          </div>\n        )\n      }\n\n      return (\n        <TabNavs\n          tabs={renderTabsNavsData.value}\n          type={props.type}\n          size={props.size}\n          activeKey={computedActiveKey.value}\n          changeActiveKey={handleChangeActiveKey}\n          animation={props.animation}\n          tabWarp={props.tabWarp}\n        />\n      )\n    }\n\n    provide(\n      tabsInjectionKey,\n      reactive({\n        destroyOnHide: destroyOnHide,\n        activeKey: computedActiveKey,\n        addPane,\n        removePane\n      })\n    )\n\n    return () => {\n      const paneChildren = getAllElements(slots.default?.()).filter(\n        (vn) => isComponent(vn, vn.type) && vn.type.name === 'BnTabPane'\n      )\n      return (\n        <div class={[ns]}>\n          {renderNav()}\n          {renderPanes(paneChildren)}\n        </div>\n      )\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Tabs from './src/tabs'\n\nexport const Tabs = withInstall(_Tabs)\nexport type TabsInstance = InstanceType<typeof _Tabs>\nexport default Tabs\n","<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    getCurrentInstance,\n    inject,\n    reactive,\n    toRefs,\n    onBeforeUnmount,\n    watch,\n    ref\n  } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { isUndefined } from '../../../utils/is'\n  import { tabsInjectionKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('TabPane'),\n    props: {\n      disabled: {\n        type: Boolean,\n        default: false\n      },\n      title: {\n        type: String,\n        default: ''\n      },\n      destroyOnHide: {\n        type: Boolean,\n        default: undefined\n      }\n    },\n    setup(props, { slots }) {\n      const { title, disabled } = toRefs(props)\n      const ns = getNamespace('tabs')\n      const instance = getCurrentInstance()\n      const key = computed(() => instance?.vnode.key as string | number)\n\n      const tabsContext = inject(tabsInjectionKey)\n\n      const isActive = computed(() => tabsContext?.activeKey === key.value)\n\n      const mergeDestroyOnHide = computed(() => {\n        if (!isUndefined(props.destroyOnHide)) return props.destroyOnHide\n        if (!isUndefined(tabsContext?.destroyOnHide)) return tabsContext?.destroyOnHide\n        return false\n      })\n\n      const mounted = ref(!mergeDestroyOnHide.value)\n\n      const data = reactive({\n        key,\n        title,\n        disabled,\n        paneSlots: slots\n      })\n\n      if (instance?.uid) {\n        tabsContext?.addPane(instance.uid, data)\n      }\n\n      onBeforeUnmount(() => {\n        if (instance?.uid) {\n          tabsContext?.removePane?.(instance.uid)\n        }\n      })\n\n      const cls = computed(() => {\n        return [`${ns}__pane`, isActive.value && `is-active`]\n      })\n\n      watch(isActive, (active) => {\n        if (active) {\n          if (!mounted.value) {\n            mounted.value = true\n          }\n        } else if (props.destroyOnHide || tabsContext?.destroyOnHide) {\n          mounted.value = false\n        }\n      })\n\n      return {\n        cls,\n        ns,\n        isActive,\n        mounted\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <slot v-if=\"mounted\"></slot>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _TabPane from '../tabs/src/tab-pane.vue'\n\nexport const TabPane = withInstall(_TabPane)\nexport type TabPaneInstance = InstanceType<typeof _TabPane>\nexport default TabPane\n","<script lang=\"ts\">\n  import type { StyleValue } from 'vue'\n  import { reactive, computed, defineComponent, onUnmounted, ref } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import BnSpace from '../../space/src/space.vue'\n  import BnButton from '../../button/src/button.vue'\n  import { addUnit } from '../../../shared/utils'\n  import { BnIconPrompt } from '../../icon'\n  import { isFunction, isPromise } from '../../../utils/is'\n\n  export default defineComponent({\n    name: 'PopconfirmPopup',\n    components: {\n      BnSpace,\n      BnButton,\n      BnIconPrompt\n    },\n    props: {\n      width: {\n        type: [String, Number],\n        default: ''\n      },\n      content: {\n        type: Object,\n        default: () => ({})\n      },\n      okText: {\n        type: String,\n        default: 'String'\n      },\n      cancelText: {\n        type: String,\n        default: ''\n      },\n      popupClass: {\n        type: String,\n        default: undefined\n      },\n      onBeforeCancel: {\n        type: Function,\n        default: undefined\n      },\n      onBeforeOk: {\n        type: Function,\n        default: undefined\n      },\n      type: {\n        type: String,\n        default: undefined\n      }\n    },\n    emits: ['ok', 'cancel', 'close', 'destroy'],\n    setup(props, { emit }) {\n      const ns = getNamespace('popconfirm')\n      const visible = ref(true)\n\n      const popupCls = computed(() => [\n        ns,\n        props.popupClass && props.popupClass,\n        props.type && `is-${props.type}`\n      ])\n\n      const popupStyle = computed(() => {\n        const style: StyleValue = {}\n        style['--bn-trigger-arrow-background-color'] = '#fff'\n        style.width = addUnit(props.width)\n        return style\n      })\n\n      const loadingObj = reactive({\n        ok: false,\n        cancel: false\n      })\n\n      const changeVisible = (value: boolean) => {\n        visible.value = value\n      }\n\n      const handleOk = (e: Event) => {\n        const beforeOk = props.onBeforeOk\n        let ret = true\n        if (isFunction(beforeOk)) {\n          ret = beforeOk()\n          if (isPromise(ret)) {\n            loadingObj.ok = true\n            ret.then((valid) => {\n              loadingObj.ok = false\n              if (valid) {\n                emit('ok', e)\n              }\n            })\n            return\n          }\n        }\n        if (ret) {\n          emit('ok', e)\n        }\n      }\n\n      const handleCancel = (e: Event) => {\n        const beforeCancel = props.onBeforeCancel\n        let ret = true\n        if (isFunction(beforeCancel)) {\n          ret = beforeCancel()\n          if (isPromise(ret)) {\n            loadingObj.cancel = true\n            ret.then((valid) => {\n              loadingObj.cancel = false\n              if (valid) {\n                emit('cancel', e)\n              }\n            })\n            return\n          }\n        }\n        if (ret) {\n          emit('cancel', e)\n        }\n      }\n\n      const beforeLeave = () => {\n        emit('close')\n      }\n\n      const afterLeave = () => {\n        emit('destroy')\n      }\n\n      onUnmounted(() => {\n        visible.value = false\n      })\n\n      return {\n        ns,\n        visible,\n        popupCls,\n        popupStyle,\n        loadingObj,\n        changeVisible,\n        handleOk,\n        handleCancel,\n        beforeLeave,\n        afterLeave\n      }\n    }\n  })\n</script>\n\n<template>\n  <transition\n    name=\"bn-fade-in-standard\"\n    appear\n    @before-leave=\"beforeLeave\"\n    @after-leave=\"afterLeave\"\n  >\n    <div v-show=\"visible\" :class=\"popupCls\" :style=\"popupStyle\">\n      <div :class=\"[`${ns}__content`]\">\n        <slot name=\"content\">\n          <BnIconPrompt :class=\"[`${ns}__icon`]\" :size=\"16\" />\n          <div :class=\"[`${ns}__title`]\">{{ content?.value }}</div>\n        </slot>\n      </div>\n      <div :class=\"[`${ns}__footer`]\">\n        <BnSpace :size=\"12\">\n          <BnButton size=\"small\" :loading=\"loadingObj.cancel\" @click=\"handleCancel\">{{\n            cancelText\n          }}</BnButton>\n          <BnButton size=\"small\" type=\"primary\" :loading=\"loadingObj.ok\" @click=\"handleOk\">{{\n            okText\n          }}</BnButton>\n        </BnSpace>\n      </div>\n      <div class=\"arrow\"></div>\n    </div>\n  </transition>\n</template>\n","import type { PropType } from 'vue'\nimport type { Position, PopconfirmTypes } from './types'\n\nexport const popconfirmProps = {\n  modelValue: {\n    type: Boolean,\n    default: undefined\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  width: {\n    type: [String, Number],\n    default: 200\n  },\n  type: {\n    type: String as PropType<PopconfirmTypes>,\n    default: 'danger'\n  },\n  content: [String, Number],\n  position: {\n    type: String as PropType<Position>,\n    default: 'top'\n  },\n  okText: {\n    type: String,\n    default: '确认'\n  },\n  cancelText: {\n    type: String,\n    default: '取消'\n  },\n  // 点击ok前拦截\n  onBeforeOk: {\n    type: Function as PropType<(e: Event) => boolean | Promise<boolean>>,\n    default: undefined\n  },\n  // 点击cancel前拦截\n  onBeforeCancel: {\n    type: Function as PropType<(e: Event) => boolean | Promise<boolean>>,\n    default: undefined\n  },\n  renderTo: {\n    type: [String, Object] as PropType<string | HTMLElement>\n  },\n  popupClass: String\n}\n","import type { VNode, CSSProperties, StyleValue } from 'vue'\nimport {\n  toRefs,\n  createVNode,\n  defineComponent,\n  render,\n  nextTick,\n  onUnmounted,\n  ref,\n  watch,\n  computed,\n  onMounted\n} from 'vue'\nimport { getComponentNamespace } from '../../../utils/global-config'\nimport { getFirstElement, mergeFirstChild } from '../../../utils/vue-utils'\n\nimport { getPopupStyle, getElementScrollRect, getArrowStyle } from '../../trigger/src/utils'\n\nimport { getElement, off, on, setStyle } from '../../../utils/dom'\n\nimport usePopupManager from '../../../hooks/use-popup-manager'\n\nimport { useResizeObserver } from '../../../hooks/use-resize-observer'\nimport Popup from './popup.vue'\nimport { popconfirmProps } from './props'\n\nexport default defineComponent({\n  name: getComponentNamespace('Popconfirm'),\n  props: popconfirmProps,\n  emits: ['ok', 'cancel', 'change', 'update:modelValue'],\n  setup(props, { slots, emit }) {\n    const renderTo = getElement(props.renderTo || document.body)\n\n    let defaultSlot: VNode[] | undefined\n    let vm: VNode | null\n    let popupTarget: HTMLElement | null\n\n    const container = document.createElement('div')\n\n    const innerVisible = ref(false)\n    const computedVisible = computed(() => props.modelValue ?? innerVisible.value)\n\n    const changeVisible = (visible: boolean) => {\n      vm && (vm.component?.proxy as any).changeVisible(visible)\n    }\n\n    const onClose = () => {}\n\n    const onDestroy = () => {\n      if (container) {\n        render(null, container)\n        popupTarget = null\n        vm = null\n\n        // 内部状态\n        innerVisible.value = false\n        // 外部状态\n        emit('update:modelValue', false)\n        emit('change', false)\n        removeClickOutside()\n      }\n    }\n\n    const onCancel = (e: Event) => {\n      changeVisible(false)\n      emit('cancel', e)\n    }\n\n    const onOk = (e: Event) => {\n      changeVisible(false)\n      emit('ok', e)\n    }\n\n    const handleOutside = (e: Event) => {\n      if (!popupTarget) return\n      if ((popupTarget as HTMLElement).contains(e.target as HTMLElement)) {\n        return\n      }\n      changeVisible(false)\n    }\n\n    const listenerClickOutside = () => {\n      on(document.documentElement, 'click', handleOutside)\n    }\n    const removeClickOutside = () => {\n      off(document.documentElement, 'click', handleOutside)\n    }\n\n    const { zIndex } = usePopupManager('popup', { visible: computedVisible })\n\n    const updatePopupStyle = async () => {\n      if (!popupTarget || !defaultSlot) return\n      const triggerTarget = getFirstElement(defaultSlot) as HTMLElement\n      const containerRect = renderTo!.getBoundingClientRect()\n      const triggerScrollRect = getElementScrollRect(triggerTarget, containerRect)\n      const getPopupScrollRect = () =>\n        getElementScrollRect(popupTarget as HTMLElement, containerRect)\n      const { style, position } = getPopupStyle(\n        props.position,\n        containerRect,\n        triggerScrollRect,\n        getPopupScrollRect(),\n        {\n          autoFitPosition: true,\n          offset: 16\n        }\n      )\n\n      const popupStyle: CSSProperties = { ...style, position: 'absolute', 'z-index': zIndex.value }\n      setStyle(popupTarget, popupStyle)\n\n      await nextTick()\n\n      const arrowStyle = getArrowStyle(position, triggerScrollRect, getPopupScrollRect(), {\n        customStyle: {\n          position: 'absolute',\n          'border-width': '6px',\n          'border-style': 'solid',\n          zIndex: 0\n        }\n      })\n      const arrowNode = getElement('.arrow', popupTarget) as HTMLElement\n\n      setStyle(arrowNode, arrowStyle)\n    }\n\n    const handleResize = () => {\n      updatePopupStyle()\n    }\n\n    const { createResizeObserver, destroyResizeObserver } = useResizeObserver({\n      elementRef: ref(renderTo),\n      onResize: handleResize\n    })\n\n    onMounted(() => {\n      createResizeObserver()\n    })\n\n    onUnmounted(() => {\n      changeVisible(false)\n      destroyResizeObserver()\n    })\n\n    const { content } = toRefs(props)\n    const popupProps = {\n      ...props,\n      onClose,\n      onDestroy,\n      onCancel,\n      onOk,\n      content\n    }\n\n    const createPopup = () => {\n      if (popupTarget) return\n      vm = createVNode(Popup, popupProps, {\n        content: slots.content\n      })\n      render(vm, container)\n\n      popupTarget = container.firstChild! as HTMLElement\n      renderTo!.appendChild(popupTarget)\n      updatePopupStyle()\n\n      setTimeout(() => {\n        listenerClickOutside()\n      }, 0)\n    }\n\n    const handleClick = () => {\n      innerVisible.value = true\n    }\n\n    const addStyle = computed(() => {\n      const style: StyleValue = {\n        cursor: props.disabled ? 'not-allowed' : 'pointer',\n        color: props.disabled\n          ? 'var(--bn-text-color)'\n          : computedVisible.value\n          ? 'var(--bn-primary)'\n          : 'var(--bn-text-color)',\n        userSelect: 'none'\n      }\n\n      return style\n    })\n\n    // 监听器控制popup显示\n    watch(\n      () => computedVisible.value,\n      (val) => {\n        if (props.disabled) return\n        if (val) {\n          nextTick(createPopup)\n          emit('change', true)\n        } else {\n          changeVisible(false)\n        }\n      },\n      {\n        immediate: true\n      }\n    )\n\n    return () => {\n      defaultSlot = slots.default?.()\n      mergeFirstChild(defaultSlot, {\n        onClick: handleClick,\n        style: addStyle.value,\n        disabled: props.disabled\n      })\n      return defaultSlot\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Popconfirm from './src/popconfirm'\n\nexport const Popconfirm = withInstall(_Popconfirm)\n\nexport type PopconfirmInstance = InstanceType<typeof _Popconfirm>\nexport default PopconfirmInstance\n","import type { StyleValue } from 'vue'\nimport {\n  createApp,\n  defineComponent,\n  Transition,\n  onMounted,\n  nextTick,\n  computed,\n  reactive,\n  onUnmounted,\n  ref\n} from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { BnIconLoading } from '../../icon'\nimport { getElement } from '../../../utils/dom'\nimport usePopupManager from '../../../hooks/use-popup-manager'\nimport { useOverflow } from '../../../hooks/use-overflow'\nimport type { LoadingOptions } from './type'\n\nconst getResolveOptions = (options: LoadingOptions) => {\n  const _options: LoadingOptions = {\n    background: options.background,\n    text: options.text || '',\n    color: options.color,\n    customClass: options.customClass,\n    renderTo: options.renderTo || document.body,\n    iconSize: options.iconSize || 16,\n    fullScreen: options.fullScreen\n  }\n\n  if (_options.fullScreen) {\n    _options.renderTo = document.body\n  }\n\n  return _options\n}\n\nexport const createLoadingComponent = (options: LoadingOptions) => {\n  const resolveOptions = getResolveOptions(options)\n\n  const mountEle = getElement(resolveOptions.renderTo)\n  const loadingRef = ref<HTMLElement>()\n  if (!mountEle) return\n\n  const data = reactive<Record<string, any>>({\n    ...resolveOptions,\n    visible: false\n  })\n\n  const { setOverflowHidden, resetOverflow } = useOverflow(ref(mountEle), loadingRef)\n\n  const destroy = () => {\n    resetOverflow()\n    vm.$el?.parentNode.removeChild(vm.$el)\n    app.unmount()\n  }\n\n  const LoadingComponent = defineComponent({\n    name: getComponentNamespace('Loading'),\n    setup() {\n      const ns = getNamespace('loading')\n      onMounted(() => {\n        data.visible = true\n      })\n\n      const { zIndex } = usePopupManager('message', { runOnMounted: true })\n\n      onUnmounted(() => {\n        data.visible = false\n      })\n      const cls = computed(() => [`${ns}__mask`, data.customClass && data.customClass])\n\n      const style = computed(() => {\n        const style: StyleValue = {\n          color: data.color ? data.color : `var(--bn-primary)`,\n          background: data.background,\n          zIndex: zIndex.value,\n          position: data.fullScreen ? 'fixed' : 'absolute'\n        }\n        return style\n      })\n\n      return () => (\n        <Transition name=\"bn-fade-in\" onAfterLeave={destroy}>\n          {data.visible && (\n            <div class={cls.value} style={style.value} ref={loadingRef}>\n              <div class={[`${ns}__spinner`]}>\n                <BnIconLoading size={data.iconSize} />\n              </div>\n              {data.text && <div class={[`${ns}__text`]}>{data.text}</div>}\n            </div>\n          )}\n        </Transition>\n      )\n    }\n  })\n\n  const app = createApp(LoadingComponent)\n  const vm = app.mount(document.createElement('div'))\n\n  const cancelLoading = () => {\n    data.visible = false\n  }\n\n  const appendLoading = () => {\n    setOverflowHidden()\n    nextTick(() => {\n      mountEle.appendChild(vm.$el)\n    })\n  }\n\n  const updateText = (text: string) => {\n    data.text = text\n  }\n\n  return {\n    cancelLoading,\n    appendLoading,\n    updateText\n  }\n}\n","import type { ObjectDirective, DirectiveBinding } from 'vue'\nimport type { LoadingOptions, LoadingInstance } from './type'\nimport { createLoadingComponent } from './loading'\n\nconst LOADING_KEY = Symbol('loading')\n\nexport type LoadingEl = HTMLElement & {\n  [LOADING_KEY]?: {\n    instance?: LoadingInstance\n    options: LoadingOptions\n  }\n}\n\nexport type LoadingBinding = boolean | LoadingOptions\n\nconst createInstance = (el: LoadingEl, binding: DirectiveBinding<LoadingBinding>) => {\n  const getAttributeValue = <K extends keyof LoadingOptions>(key: K) => {\n    return el.getAttribute(`bn-loading-${key}`) || ''\n  }\n\n  const getBindingValue = <K extends keyof LoadingOptions>(key: K) => {\n    return binding.modifiers[key]\n  }\n\n  const options: LoadingOptions = {\n    background: getAttributeValue('background'),\n    text: getAttributeValue('text'),\n    color: getAttributeValue('color'),\n    customClass: getAttributeValue('customClass'),\n    renderTo: el,\n    iconSize: Number(getAttributeValue('iconSize')),\n    fullScreen: getBindingValue('fullScreen')\n  }\n\n  const instance = createLoadingComponent(options)\n  instance?.appendLoading()\n\n  el[LOADING_KEY] = {\n    options,\n    instance\n  }\n}\n\nexport const vLoading: ObjectDirective = {\n  mounted(el, binding) {\n    if (binding.value) {\n      createInstance(el, binding)\n    }\n  },\n  updated(el, binding) {\n    const instance = el[LOADING_KEY]\n    if (binding.oldValue !== binding.value) {\n      if (binding.value && !binding.oldValue) {\n        createInstance(el, binding)\n      } else if (binding.value && binding.oldValue) {\n        console.log('update option')\n      } else {\n        instance?.instance.cancelLoading()\n      }\n    }\n  },\n  unmounted(el) {\n    el[LOADING_KEY]?.instance.cancelLoading()\n  }\n}\n","import type { LoadingOptions, LoadingOpen } from './type'\nimport { createLoadingComponent } from './loading'\n\nlet instance: LoadingOpen | undefined\n\nexport const open = (options: LoadingOptions): LoadingOpen | undefined => {\n  if (instance) return instance\n  const _instance = createLoadingComponent({ ...options, fullScreen: true })\n  if (!_instance) return\n  _instance.appendLoading()\n  instance = {\n    close: () => {\n      _instance.cancelLoading()\n      instance = undefined\n    },\n    updateText: _instance.updateText!\n  }\n  return instance\n}\n","import type { App } from 'vue'\nimport { vLoading } from './src/directive'\nimport { open } from './src/open'\n\nexport const Loading = {\n  install(app: App) {\n    app.directive('bn-loading', vLoading)\n  },\n  open\n}\n","<script lang=\"ts\">\n  import type { PropType, StyleValue } from 'vue'\n  import { computed, defineComponent } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n  import { isFunction, isString } from '../../../utils/is'\n  import type { ProgressStatus, ProgressSize } from './type'\n\n  const DEFAULT_STROKE_WIDTH = {\n    small: 6,\n    normal: 8,\n    large: 10\n  }\n\n  export default defineComponent({\n    name: 'ProgressLine',\n    props: {\n      percent: {\n        type: Number,\n        default: 0\n      },\n      animation: {\n        type: Boolean,\n        default: false\n      },\n      size: {\n        type: String as PropType<ProgressSize>,\n        default: 'normal'\n      },\n      strokeWidth: {\n        type: Number,\n        default: 0\n      },\n      width: {\n        type: [Number, String],\n        default: '100%'\n      },\n      color: {\n        type: [String, Function],\n        default: undefined\n      },\n      // eslint-disable-next-line vue/require-default-prop\n      trackColor: String,\n      formatText: {\n        type: Function,\n        default: undefined\n      },\n      status: {\n        type: String as PropType<ProgressStatus>,\n        default: 'primary'\n      },\n      showText: Boolean\n    },\n    setup(props) {\n      const ns = getNamespace('progress-line')\n\n      const cls = computed(() => {\n        return [ns]\n      })\n\n      const computedStrokeWidth = computed(() => {\n        if (props.strokeWidth) {\n          return props.strokeWidth\n        }\n        return DEFAULT_STROKE_WIDTH[props.size]\n      })\n\n      const trackStyle = computed(() => {\n        const style: StyleValue = {\n          width: addUnit(props.width),\n          height: addUnit(computedStrokeWidth.value),\n          backgroundColor: props.trackColor\n        }\n        return style\n      })\n\n      const getBarColor = (): string => {\n        if (isString(props.color)) {\n          return props.color\n        }\n        if (isFunction(props.color)) {\n          return props.color(props.percent) as string\n        }\n\n        if (props.status) {\n          return `var(--bn-${props.status})`\n        }\n\n        return ''\n      }\n\n      const barStyle = computed(() => {\n        const barBgColor = getBarColor()\n        const style: StyleValue = {\n          width: `${props.percent}%`,\n          background: barBgColor\n        }\n        return style\n      })\n\n      const bufferStyle = computed(() => {\n        const style: StyleValue = {}\n        if (props.animation) {\n          style.width = `${props.percent}%`\n        }\n        return style\n      })\n\n      const text = computed(() => {\n        if (isFunction(props.formatText)) {\n          return props.formatText(props.percent)\n        }\n        return props.percent + '%'\n      })\n\n      return {\n        ns,\n        cls,\n        text,\n        trackStyle,\n        barStyle,\n        bufferStyle\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\" aria-valuemin=\"0\" aria-valuemax=\"100\" :aria-valuenow=\"percent\">\n    <div :class=\"[`${ns}__track`]\" :style=\"trackStyle\">\n      <div\n        :class=\"[\n          `${ns}__buffer`,\n          {\n            'is-animation': animation\n          }\n        ]\"\n        :style=\"bufferStyle\"\n      ></div>\n      <div :class=\"[`${ns}__bar`]\" :style=\"barStyle\"></div>\n    </div>\n\n    <div v-if=\"showText\" :class=\"[`${ns}__text`]\">\n      <slot name=\"text\" :percent=\"percent\">\n        {{ text }}\n      </slot>\n    </div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { computed, defineComponent } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { isFunction, isString, isUndefined } from '../../../utils/is'\n  import type { ProgressSize } from './type'\n\n  const SIZE_MAP = {\n    small: 60,\n    normal: 80,\n    large: 100\n  }\n\n  const DEFAULT_STROKE_MAP = {\n    small: 2,\n    normal: 3,\n    large: 4\n  }\n\n  export default defineComponent({\n    name: 'ProgressCircle',\n    props: {\n      percent: {\n        type: Number,\n        default: 0\n      },\n      type: {\n        type: String,\n        default: ''\n      },\n      size: {\n        type: String as PropType<ProgressSize>,\n        default: 'normal'\n      },\n      strokeWidth: {\n        type: Number,\n        default: 4\n      },\n      width: {\n        type: [Number, String],\n        default: undefined\n      },\n      color: {\n        type: [String, Function],\n        default: undefined\n      },\n      // eslint-disable-next-line vue/require-default-prop\n      trackColor: String,\n      status: {\n        type: String,\n        default: undefined\n      },\n      showText: {\n        type: Boolean,\n        default: true\n      },\n      // eslint-disable-next-line vue/require-default-prop\n      formatText: Function\n    },\n    setup(props) {\n      const ns = getNamespace('progress-circle')\n\n      const cls = computed(() => [ns])\n\n      const mergedWidth = computed(() => {\n        if (isUndefined(props.width)) return SIZE_MAP[props.size]\n        return Number(props.width)\n      })\n\n      const mergedStrokeWidth = computed(() => props.strokeWidth ?? DEFAULT_STROKE_MAP[props.size])\n\n      const mergedPathStrokeWidth = computed(() => Math.max(2, mergedStrokeWidth.value - 2))\n\n      const radius = computed(() => (mergedWidth.value - mergedStrokeWidth.value) / 2)\n\n      const perimeter = computed(() => Math.PI * 2 * radius.value)\n\n      const center = computed(() => mergedWidth.value / 2)\n\n      const text = computed(() => {\n        if (isFunction(props.formatText)) {\n          return props.formatText(props.percent)\n        }\n        return props.percent + '%'\n      })\n\n      const getStrokeDashoffset = (percent: number, perimeter: number) => {\n        const offset = ((100 - percent) * perimeter) / 100\n        return offset\n      }\n\n      const getStroke = (color: any, status: any) => {\n        if (isString(color)) {\n          return props.color\n        }\n\n        if (isFunction(color)) {\n          return color(props.percent) as string\n        }\n\n        if (status) {\n          return `var(--bn-${status})`\n        }\n\n        return ''\n      }\n\n      const barStyle = computed(() => {\n        const style = {\n          stroke: getStroke(props.color, props.status),\n          strokeDasharray: perimeter.value,\n          strokeDashoffset: getStrokeDashoffset(props.percent, perimeter.value)\n        }\n        return style as any\n      })\n\n      return {\n        ns,\n        cls,\n        radius,\n        text,\n        center,\n        mergedWidth,\n        mergedStrokeWidth,\n        mergedPathStrokeWidth,\n        barStyle\n      }\n    }\n  })\n</script>\n\n<template>\n  <div\n    aria-valuemin=\"0\"\n    aria-valuemax=\"100\"\n    :aria-valuenow=\"percent\"\n    :class=\"cls\"\n    :style=\"{ width: `${mergedWidth}px`, height: `${mergedWidth}px` }\"\n  >\n    <svg :viewBox=\"`0 0 ${mergedWidth} ${mergedWidth}`\" :class=\"[`${ns}__svg`]\">\n      <circle\n        :class=\"`${ns}__track`\"\n        fill=\"none\"\n        :cx=\"center\"\n        :cy=\"center\"\n        :r=\"radius\"\n        :stroke-width=\"mergedPathStrokeWidth\"\n        :style=\"{\n          stroke: trackColor\n        }\"\n      />\n      <circle\n        :class=\"`${ns}__bar`\"\n        fill=\"none\"\n        :cx=\"center\"\n        :cy=\"center\"\n        :r=\"radius\"\n        :stroke-width=\"mergedStrokeWidth\"\n        :style=\"barStyle\"\n      />\n    </svg>\n    <div v-if=\"showText\" :class=\"[`${ns}__text`]\">\n      <slot name=\"text\" :percent=\"percent\">\n        {{ text }}\n      </slot>\n    </div>\n  </div>\n</template>\n","import type { PropType } from 'vue'\nimport type { ProgressType, ProgressSize, ProgressStatus } from './type'\n\nexport const progressProps = {\n  type: {\n    type: String as PropType<ProgressType>,\n    default: 'line'\n  },\n  size: {\n    type: String as PropType<ProgressSize>\n  },\n  percent: {\n    type: Number,\n    default: 0\n  },\n  steps: {\n    type: Number,\n    default: 0\n  },\n  animation: {\n    type: Boolean,\n    default: false\n  },\n  strokeWidth: {\n    type: Number\n  },\n  width: {\n    type: [Number, String]\n  },\n  color: {\n    type: [String, Function]\n  },\n  trackColor: String,\n  showText: {\n    type: Boolean,\n    default: true\n  },\n  status: {\n    type: String as PropType<ProgressStatus>,\n    default: 'primary'\n  },\n  formatText: {\n    type: Function\n  }\n}\n","import { computed, defineComponent } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n\nimport ProgressLine from './line.vue'\nimport ProgressCircle from './circle.vue'\n\nimport { progressProps } from './props'\n\nexport default defineComponent({\n  name: getComponentNamespace('Progress'),\n  props: progressProps,\n  setup(props, { slots }) {\n    const ns = getNamespace('progress')\n    const cls = computed(() => [ns])\n\n    const computedPercent = computed(() => {\n      let percent = Number((props.percent * 100).toFixed(2))\n      if (percent <= 0) percent = 0\n      if (percent >= 100) percent = 100\n      return percent\n    })\n\n    const renderContent = () => {\n      if (props.type === 'line') {\n        return (\n          <ProgressLine\n            v-slots={{\n              text: slots.text\n            }}\n            percent={computedPercent.value}\n            animation={props.animation}\n            size={props.size}\n            strokeWidth={props.strokeWidth}\n            width={props.width}\n            color={props.color}\n            trackColor={props.trackColor}\n            status={props.status}\n            showText={props.showText}\n            formatText={props.formatText}\n          />\n        )\n      }\n\n      if (props.type === 'circle') {\n        return (\n          <ProgressCircle\n            v-slots={{\n              text: slots.text\n            }}\n            percent={computedPercent.value}\n            size={props.size}\n            strokeWidth={props.strokeWidth}\n            width={props.width}\n            color={props.color}\n            trackColor={props.trackColor}\n            status={props.status}\n            showText={props.showText}\n            formatText={props.formatText}\n          />\n        )\n      }\n\n      return '无效的progress类型'\n    }\n\n    return () => {\n      return <div class={cls.value}>{renderContent()}</div>\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Progress from './src/progress'\n\nexport const Progress = withInstall(_Progress)\nexport type ProgressInstance = InstanceType<typeof _Progress>\nexport default Progress\n","import type { PropType } from 'vue'\n\nexport const tagProps = {\n  type: {\n    type: String as PropType<'primary' | 'success' | 'waning' | 'strong' | 'danger'>,\n    default: undefined\n  },\n  closeable: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: String as PropType<'small' | 'large' | 'normal'>,\n    default: undefined\n  },\n  effect: {\n    type: String as PropType<'dark' | 'plain' | 'light'>,\n    default: undefined\n  },\n  round: {\n    type: Boolean,\n    default: false\n  },\n  icon: {\n    type: String,\n    default: undefined\n  }\n}\n","<script lang=\"ts\">\n  import { computed, defineComponent } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { BnIconClose } from '../../icon'\n  import { tagProps } from './props'\n\n  export default defineComponent({\n    name: getComponentNamespace('Tag'),\n    components: {\n      BnIconClose\n    },\n    props: tagProps,\n    emits: ['close'],\n    setup(props, { emit }) {\n      const ns = getNamespace('tag')\n      const cls = computed(() => [\n        ns,\n        props.type && `${ns}--${props.type}`,\n        props.size && `${ns}--${props.size}`,\n        props.closeable && `is-closeable`,\n        props.effect && `is-${props.effect}`,\n        props.round && `is-round`\n      ])\n\n      const handleClose = (e: Event) => {\n        emit('close', e)\n      }\n      return {\n        ns,\n        cls,\n        handleClose\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\">\n    <span v-if=\"icon || $slots.icon\" :class=\"[`${ns}__prefix-icon`]\">\n      <slot name=\"icon\">\n        <component :is=\"icon\" v-if=\"icon\"></component>\n      </slot>\n    </span>\n    <span :class=\"[`${ns}__content`]\">\n      <slot></slot>\n    </span>\n\n    <BnIconClose v-if=\"closeable\" :class=\"[`${ns}__close`]\" @click.stop=\"handleClose\" />\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Tag from './src/tag.vue'\n\nexport const Tag = withInstall(_Tag)\nexport type TagInstance = InstanceType<typeof _Tag>\nexport default Tag\n","import type { PropType } from 'vue'\n\nexport const badgeProps = {\n  value: {\n    type: [String, Number]\n  },\n  effect: {\n    type: String as PropType<'dark' | 'light'>,\n    default: 'dark'\n  },\n  type: {\n    type: String as PropType<'primary' | 'success' | 'warning' | 'strong' | 'danger'>,\n    default: 'danger'\n  },\n  isDot: Boolean,\n  max: {\n    type: Number,\n    default: 99\n  },\n  hidden: Boolean\n}\n","<script lang=\"ts\">\n  import { computed, defineComponent } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { isNumber } from '../../../utils/is'\n  import { badgeProps } from './props'\n\n  export default defineComponent({\n    name: getComponentNamespace('Badge'),\n    props: badgeProps,\n    setup(props) {\n      const ns = getNamespace('badge')\n\n      const contentCls = computed(() => [\n        `${ns}__content`,\n        props.effect && `is-${props.effect}`,\n        props.type && `${ns}--${props.type}`,\n        props.isDot && 'is-dot'\n      ])\n\n      const content = computed<string>(() => {\n        if (props.isDot) return ''\n        const value = props.value\n        const max = props.max\n        if (isNumber(value) && isNumber(max)) {\n          return value > max ? `${max}+` : `${value}`\n        }\n        return `${value}`\n      })\n\n      return {\n        ns,\n        contentCls,\n        content\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[ns]\">\n    <slot></slot>\n    <span v-show=\"!hidden && (content || isDot)\" :class=\"contentCls\">\n      {{ content }}\n    </span>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Badge from './src/badge.vue'\n\nexport const Badge = withInstall(_Badge)\nexport type BadgeInstance = InstanceType<typeof _Badge>\nexport default Badge\n","import type { InjectionKey, Slots } from 'vue'\nimport type { CascaderNode } from './type'\n\nexport interface CascaderContext {\n  slots: Slots\n  setSelectedPath: (key?: string) => void\n  emitPath: (node?: CascaderNode, checked?: boolean) => void\n  setActiveKey: (key?: string) => void\n  nodeKeys: string[]\n  footer?: {\n    handleCancel: () => void\n    handleOk: () => void\n  }\n}\n\nexport const cascaderInjectionKey: InjectionKey<CascaderContext> = Symbol('Cascader')\n","import { type Ref } from 'vue'\nimport { isArray, isNumber } from '../../../utils/is'\nimport type { CascaderData, CascaderNode } from './type'\n\nexport const transDataToNodes = (\n  data: CascaderData[],\n  {\n    nodesMap,\n    totalLevel\n  }: {\n    nodesMap: Map<string, CascaderNode>\n    totalLevel: Ref<number>\n  }\n) => {\n  let innerLevel = totalLevel.value\n  const traverse = (data: CascaderData[], parent: CascaderNode | null = null, level = 0) => {\n    innerLevel = Math.max(innerLevel, level)\n\n    return data.map((item: CascaderData, index) => {\n      const node: CascaderNode = {\n        key: '',\n        parent,\n        raw: item,\n\n        label: item.label,\n        value: item.value,\n        render: item.render,\n        isLeaf: item.isLeaf,\n        disabled: item.disabled,\n        selectionDisabled: false,\n\n        level,\n        index,\n        pathNodes: [],\n        pathValue: [],\n        pathLabel: [],\n\n        children: []\n      }\n\n      node.pathNodes = (node.parent?.pathNodes || []).concat(node)\n      node.pathLabel = node.pathNodes.map((n) => n.label!)\n      node.pathValue = node.pathNodes.map((n) => n.value)\n      node.key = node.pathValue.join('-')\n\n      nodesMap.set(node.key, node)\n\n      if (item.children && item.children.length !== 0) {\n        node.isLeaf = false\n        node.hasChildren = true\n        node.children = traverse(item.children, node, level + 1)\n\n        if (!item.disabled) {\n          // 计算出当前node下所有leaf数量\n          node.totalLeafNumber = node.children.reduce((pre, n) => {\n            if (isNumber(n.totalLeafNumber)) {\n              return pre + n.totalLeafNumber\n            }\n\n            if (n.disabled || n.selectionDisabled) {\n              return pre\n            }\n\n            return pre + (n.isLeaf ? 1 : 0)\n          }, 0)\n          if (node.totalLeafNumber === 0) {\n            node.selectionDisabled = true\n          }\n        }\n      } else {\n        node.isLeaf = true\n        node.hasChildren = false\n      }\n\n      return node\n    })\n  }\n  const nodes = traverse(data)\n\n  totalLevel.value = innerLevel\n\n  return nodes\n}\n\n// 组合生成nodeKey，方便在nodesMap中查找\nexport const getNodeKey = (keys: string[]) => {\n  return keys.join('-')\n}\n\n// 对入参进行格式化\n// 多选时 二维数组 [[1,2,3],[4,5,6]] => ['1-2-3','4-5-6']\n// 单选 [1,2,3] => ['1-2-3']\nexport const formatModelValue = (\n  value: string[] | string[][],\n  { multiple }: { multiple: boolean }\n): string[] => {\n  if (multiple) {\n    return value.map((m) => (isArray(m) ? getNodeKey(m as string[]) : getNodeKey([m])))\n  }\n  return [getNodeKey(value as string[])]\n}\n\nexport const getCheckedStatus = (node: CascaderNode, nodeKeys?: string[]) => {\n  let checked = false\n  let indeterminate = false\n\n  if (node.isLeaf) {\n    if (nodeKeys?.includes(node.key)) {\n      checked = true\n    }\n  } else {\n    const reg = new RegExp(`^${node.key}(-|$)`)\n\n    const checkedLeafOptionNumber = nodeKeys?.reduce((pre, key) => {\n      if (reg.test(key)) {\n        return pre + 1\n      }\n      return pre\n    }, 0)\n    if (checkedLeafOptionNumber! >= (node.totalLeafNumber ?? 1)) {\n      checked = true\n    } else if (checkedLeafOptionNumber! > 0) {\n      indeterminate = true\n    }\n  }\n\n  return {\n    checked,\n    indeterminate\n  }\n}\n\nexport const getLeafNodes = (node: CascaderNode) => {\n  const leafNodes: CascaderNode[] = []\n  const traverse = (children: CascaderNode[]) => {\n    children.forEach((node) => {\n      if (node.isLeaf) {\n        leafNodes.push(node)\n      }\n      if (node.hasChildren) {\n        traverse(node.children!)\n      }\n    })\n  }\n  traverse([node])\n\n  return leafNodes\n}\n\nexport const getAllLeafNodesByQuery = (\n  nodes: CascaderNode[],\n  callback?: (node: CascaderNode) => boolean | undefined\n) => {\n  const leafNodes: CascaderNode[] = []\n  const stack: CascaderNode[] = [...nodes]\n\n  // 深度优先遍历\n  while (stack.length) {\n    const node = stack.shift()!\n    if (callback && callback(node)) {\n      leafNodes.push(...getLeafNodes(node))\n    } else {\n      const children = node?.children || []\n      for (let i = children.length - 1; i >= 0; i--) {\n        stack.unshift(children[i])\n      }\n    }\n  }\n  return leafNodes\n}\n","import { computed, defineComponent, ref, inject } from 'vue'\nimport type { PropType, VNode, VNodeChild } from 'vue'\nimport { getNamespace } from '../../../utils/global-config'\nimport { BnIconLoading, BnIconCaret } from '../../icon'\nimport Checkbox from '../../checkbox/src/checkbox.vue'\n\nimport { isFunction } from '../../../utils/is'\nimport { type CascaderContext, cascaderInjectionKey } from './context'\n\nimport { getCheckedStatus } from './utils'\nimport type { CascaderNode } from './type'\n\nexport default defineComponent({\n  name: 'CascaderOption',\n  props: {\n    node: {\n      type: Object as PropType<CascaderNode>,\n      required: true\n    },\n    active: Boolean,\n    multiple: Boolean,\n    checkStrictly: Boolean\n  },\n  setup(props) {\n    const ns = getNamespace('cascader-panel')\n\n    const cls = computed(() => [\n      `${ns}__option`,\n      props.active && 'is-active',\n      props.node.disabled && 'is-disabled'\n    ])\n    const cascaderContext = inject<Partial<CascaderContext>>(cascaderInjectionKey, {})\n\n    const isLoading = ref(false)\n\n    const events = computed(() => {\n      const _events: Record<string, any> = {}\n      if (!props.node.disabled) {\n        _events.onMouseenter = []\n        _events.onMouseleave = []\n        _events.onClick = []\n\n        _events.onMouseenter.push(() => {\n          cascaderContext.setSelectedPath?.(props.node.key)\n        })\n\n        if (!props.multiple) {\n          if (!props.checkStrictly && props.node.isLeaf) {\n            _events.onClick.push(() => {\n              cascaderContext.emitPath?.(props.node)\n            })\n          }\n          if (props.checkStrictly) {\n            _events.onClick.push(() => {\n              cascaderContext.emitPath?.(props.node)\n            })\n          }\n        }\n\n        if (props.multiple) {\n          _events.onClick.push(() => {\n            cascaderContext.emitPath?.(props.node, !checkedStatus.value.checked)\n          })\n        }\n      }\n      return _events\n    })\n\n    const handleCheckedChange = () => {\n      cascaderContext.emitPath?.(props.node, !checkedStatus.value.checked)\n    }\n\n    const renderContent = () => {\n      let render: VNodeChild | VNode | string | undefined = props.node.label\n\n      if (isFunction(props.node.render)) {\n        render = props.node.render()\n      }\n\n      const defaultSlot = cascaderContext?.slots?.['default']\n      if (isFunction(defaultSlot)) {\n        render = defaultSlot({ node: props.node, data: props.node.raw })\n      }\n\n      return <span>{render}</span>\n    }\n\n    const renderContentRightIcon = () => {\n      if (isLoading.value) {\n        return <BnIconLoading />\n      }\n      if (!props.node.isLeaf) {\n        return <BnIconCaret rotate={-90} />\n      }\n      return null\n    }\n\n    const checkedStatus = computed(() => {\n      if (props.checkStrictly) {\n        return {\n          checked: cascaderContext.nodeKeys?.includes(props.node.key),\n          indeterminate: false\n        }\n      }\n      return getCheckedStatus(props.node, cascaderContext.nodeKeys)\n    })\n\n    const renderOps = () => {\n      if (props.multiple) {\n        return (\n          <Checkbox\n            modelValue={checkedStatus.value.checked}\n            indeterminate={checkedStatus.value.indeterminate}\n            disabled={props.node.disabled}\n            validateEvent={false}\n            onChange={handleCheckedChange}\n            // @ts-ignore: click\n            onClick={(ev: Event) => ev.stopPropagation()}\n          />\n        )\n      }\n    }\n\n    return () => {\n      return (\n        <li class={cls.value} {...events.value}>\n          {renderOps()}\n\n          <div class={[`${ns}__option-label`]}>\n            {renderContent()}\n            {renderContentRightIcon()}\n          </div>\n        </li>\n      )\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport { defineComponent, TransitionGroup, inject } from 'vue'\nimport { getNamespace } from '../../../utils/global-config'\nimport BnSpace from '../../space/src/space.vue'\nimport BnButton from '../../button/src/button.vue'\n\nimport { Scrollbar } from '../../scrollbar'\nimport { Empty } from '../../empty'\nimport { BnIconEmpty } from '../../icon'\nimport Option from './option'\nimport type { CascaderNode } from './type'\n\nimport type { CascaderContext } from './context'\nimport { cascaderInjectionKey } from './context'\n\nexport default defineComponent({\n  name: 'CascaderPanel',\n  props: {\n    renderColumns: {\n      type: Array as PropType<CascaderNode[][]>,\n      required: true\n    },\n    selectedPath: {\n      type: Array as PropType<string[]>,\n      required: true\n    },\n    activeKey: {\n      type: String,\n      default: ''\n    },\n    totalLevel: {\n      type: Number,\n      required: true\n    },\n    multiple: Boolean,\n    checkStrictly: Boolean,\n    loading: Boolean,\n    showFooter: Boolean\n  },\n  setup(props) {\n    const ns = getNamespace('cascader-panel')\n\n    const cascaderContext = inject<Partial<CascaderContext>>(cascaderInjectionKey, {})\n\n    const renderColumn = (column: CascaderNode[], level: number) => {\n      return (\n        <div\n          class={[`${ns}__column`]}\n          key={`column-${level}`}\n          style={{ zIndex: props.totalLevel - level }}\n        >\n          <Scrollbar>\n            {column.length === 0 ? (\n              <div class={[`${ns}__empty`]}>\n                <Empty\n                  v-slots={{\n                    image: () => <BnIconEmpty size={38} />\n                  }}\n                />\n              </div>\n            ) : (\n              <ul class={[`${ns}__list`]} role=\"menu\">\n                {column.map((node) => (\n                  <Option\n                    key={node.key}\n                    node={node}\n                    active={props.selectedPath.includes(node.key) || node.key === props.activeKey}\n                    multiple={props.multiple}\n                    checkStrictly={props.checkStrictly}\n                  />\n                ))}\n              </ul>\n            )}\n          </Scrollbar>\n        </div>\n      )\n    }\n\n    const renderContent = () => {\n      return (\n        <TransitionGroup name=\"cascader-slide\">\n          {props.renderColumns!.map((column, level) => renderColumn(column, level))}\n        </TransitionGroup>\n      )\n    }\n\n    const renderFooter = () => {\n      if (cascaderContext?.slots?.footer) {\n        return cascaderContext?.slots?.footer({\n          ok: cascaderContext.footer?.handleOk,\n          cancel: cascaderContext.footer?.handleCancel\n        })\n      }\n\n      return (\n        <BnSpace>\n          <BnButton size=\"small\" onClick={cascaderContext.footer?.handleCancel}>\n            取消\n          </BnButton>\n          <BnButton type=\"primary\" size=\"small\" onClick={cascaderContext.footer?.handleOk}>\n            确定\n          </BnButton>\n        </BnSpace>\n      )\n    }\n\n    return () => {\n      return (\n        <div class={[`${ns}`]}>\n          <div class={[`${ns}__content`]}>{renderContent()}</div>\n          {props.showFooter && props.multiple && (\n            <div class={[`${ns}__footer`]}>{renderFooter()}</div>\n          )}\n        </div>\n      )\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport type { CascaderData } from './type'\n\nexport const cascaderProps = {\n  data: {\n    type: Array as PropType<CascaderData[]>,\n    default: () => []\n  },\n  modelValue: {\n    type: [Array] as PropType<string[] | string[][]>,\n    default: undefined\n  },\n  multiple: {\n    type: Boolean,\n    default: false\n  },\n  checkStrictly: {\n    type: Boolean,\n    default: false\n  },\n  placeholder: {\n    type: String,\n    default: '请选择'\n  },\n  size: {\n    type: String as PropType<'small' | 'default' | 'large'>,\n    default: 'default'\n  },\n  clearable: {\n    type: Boolean,\n    default: false\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  // 输入框格式化函数\n  inputLabelFormat: {\n    type: Function as PropType<(labels: string[]) => string>,\n    default: undefined\n  },\n  showAllLevels: {\n    type: Boolean,\n    default: true\n  },\n  filterable: {\n    type: Boolean,\n    default: false\n  },\n  filterMethod: {\n    type: Function,\n    default: undefined\n  },\n  separator: {\n    type: String,\n    default: '/'\n  },\n  showFooter: Boolean,\n  expandChild: {\n    type: Boolean,\n    default: false\n  },\n  // 表单验证\n  validateEvent: {\n    type: Boolean,\n    default: true\n  },\n  popupClass: {\n    type: String,\n    default: undefined\n  },\n  card: {\n    type: Boolean,\n    default: false\n  }\n}\n","import { computed, ref } from 'vue'\nimport type { Ref } from 'vue'\nimport type { CascaderNode } from './type'\n\nexport const useSelectedPath = (\n  dataTree: Ref<CascaderNode[]>,\n  {\n    nodesMap,\n    expandChild\n  }: {\n    nodesMap: Map<string, CascaderNode>\n    expandChild: Ref<boolean>\n  }\n) => {\n  // select node key\n  const selectedPath = ref<string[]>([])\n\n  // active node key\n  const activeKey = ref<string>()\n\n  // cascader panel 渲染二维数组\n  const renderColumns = computed(() => {\n    const columns: CascaderNode[][] = [dataTree.value]\n    for (const key of selectedPath.value) {\n      const option = nodesMap.get(key)\n      if (option?.hasChildren) {\n        columns.push(option.children!)\n      }\n    }\n    return columns\n  })\n\n  const getTargetNode = (nodeKey?: string) => {\n    let node = nodeKey ? nodesMap.get(nodeKey) : undefined\n    if (expandChild.value) {\n      while (node && node.children && node.children.length > 0) {\n        node = node.children[0]\n      }\n    }\n    return node\n  }\n\n  const setSelectedPath = (nodeKey?: string) => {\n    const node = getTargetNode(nodeKey)\n    selectedPath.value = node?.pathNodes.map((n) => n.key) ?? []\n  }\n\n  const setActiveKey = (nodeKey?: string) => {\n    activeKey.value = nodeKey\n  }\n\n  return {\n    renderColumns,\n    selectedPath,\n    setSelectedPath,\n    activeKey,\n    setActiveKey\n  }\n}\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { defineComponent } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { Scrollbar } from '../../scrollbar'\n  import { BnIconCheck, BnIconEmpty } from '../../icon'\n  import { Empty } from '../../empty'\n  import type { QueryData } from './type'\n\n  export default defineComponent({\n    name: 'CascaderQueryPanel',\n    components: {\n      Scrollbar,\n      BnIconCheck,\n      Empty,\n      BnIconEmpty\n    },\n    props: {\n      queryDataList: {\n        type: Array as PropType<QueryData[]>,\n        required: true\n      }\n    },\n    emits: ['onTag'],\n    setup() {\n      const ns = getNamespace('cascader-query-panel')\n      return {\n        ns\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[ns]\">\n    <Scrollbar v-if=\"queryDataList.length\" style=\"max-height: 224px\">\n      <div :class=\"[`${ns}__list`]\">\n        <div\n          v-for=\"queryData in queryDataList\"\n          :key=\"queryData.key\"\n          :class=\"[`${ns}__tag`, { 'is-selected': queryData.isSelected }]\"\n          @click=\"$emit('onTag', queryData)\"\n        >\n          <span v-html=\"queryData.label\"></span>\n          <BnIconCheck v-if=\"queryData.isSelected\" />\n        </div>\n      </div>\n    </Scrollbar>\n    <div v-else :class=\"[`${ns}__empty`]\">\n      <Empty description=\"暂无匹配项\">\n        <template #image>\n          <BnIconEmpty size=\"38\" />\n        </template>\n      </Empty>\n    </div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, reactive, ref, watch, provide, toRefs } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n\n  import Trigger from '../../trigger/src/trigger'\n\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { NOOP } from '../../../shared/utils'\n  import SelectTrigger from '../../common/select-trigger.vue'\n  import { isFunction } from '../../../utils/is'\n  import BasePanel from './base-panel'\n\n  import { cascaderProps } from './props'\n  import {\n    transDataToNodes,\n    formatModelValue,\n    getLeafNodes,\n    getNodeKey,\n    getAllLeafNodesByQuery\n  } from './utils'\n\n  import type { CascaderData, CascaderNode, QueryData } from './type'\n  import { useSelectedPath } from './use-selected-path'\n  import { cascaderInjectionKey } from './context'\n  import QueryPanel from './query-panel.vue'\n\n  export default defineComponent({\n    name: getComponentNamespace('Cascader'),\n    components: {\n      Trigger,\n      BasePanel,\n      QueryPanel,\n      SelectTrigger\n    },\n    props: cascaderProps,\n    emits: ['update:modelValue', 'change'],\n    setup(props, { slots, emit }) {\n      const ns = getNamespace('cascader')\n      const { formItem } = useFormItem()\n      const popupVisible = ref(false)\n      const totalLevel = ref(1)\n      const popupRef = ref()\n      // TODO 从表单合并 disabled 属性\n      const mergeDisabled = computed(() => props.disabled)\n      const mergeSize = computed(() => props.size)\n      const nodesData = ref<CascaderNode[]>([])\n      const nodesMap = reactive(new Map<string, CascaderNode>())\n      const selfModel = ref<string[] | string[][]>([])\n      // filterable\n      const queryDataList = ref<QueryData[]>([])\n      const isQueryPattern = ref(false)\n\n      const computedModelValue = computed(() => {\n        return props.modelValue || selfModel.value\n      })\n\n      const pathValueToNodeKeys = computed(() => {\n        // 多选时 二维数据处理 [[1,2,3],[4,5,6]] => ['1-2-3','4-5-6']\n        // 单选 [1,2,3] => ['1-2-3']\n        const values = formatModelValue(computedModelValue.value, {\n          multiple: props.multiple\n        })\n\n        return values\n      })\n\n      const { expandChild } = toRefs(props)\n      const { renderColumns, selectedPath, setSelectedPath, activeKey, setActiveKey } =\n        useSelectedPath(nodesData, { nodesMap, expandChild })\n\n      const currentTagLabel = computed(() => {\n        if (!props.multiple && pathValueToNodeKeys.value.length) {\n          const node = nodesMap.get(pathValueToNodeKeys.value[0])\n          let label = node?.pathLabel?.join(props.separator)\n          if (!props.showAllLevels) {\n            label = node?.pathLabel?.[node!.pathLabel.length - 1]\n          }\n          if (props.inputLabelFormat && node?.pathLabel) {\n            label = props.inputLabelFormat(node?.pathLabel)\n          }\n          return label\n        }\n        return ''\n      })\n\n      const multipleTags = computed(() => {\n        if (!props.multiple) return []\n        const tagLabels = pathValueToNodeKeys.value.map((nodeKey) => {\n          const node = nodesMap.get(nodeKey)\n          const key = node?.key\n          const label = props.showAllLevels\n            ? node?.pathLabel?.[node.pathLabel?.length - 1]\n            : node?.pathLabel?.join(props.separator)\n          return {\n            label,\n            key\n          }\n        })\n        return tagLabels\n      })\n\n      watch(\n        () => popupVisible.value,\n        (value) => {\n          if (value) {\n            const nodeKeys = pathValueToNodeKeys.value\n            if (nodeKeys.length > 0) {\n              // 默认选中最后一个nodeKey\n              const lastNodeKey = nodeKeys[nodeKeys.length - 1]\n              setSelectedPath(lastNodeKey)\n              setActiveKey(lastNodeKey)\n            }\n          }\n        }\n      )\n\n      watch(\n        () => props.data,\n        (newData: CascaderData[]) => {\n          nodesMap.clear()\n          nodesData.value = transDataToNodes(newData, { nodesMap, totalLevel })\n        },\n        { immediate: true, deep: true }\n      )\n\n      const handlePopupVisibleChange = (visible: boolean) => {\n        popupVisible.value = visible\n      }\n\n      const updatePathValue = (pathValue: string[] | string[][]) => {\n        emit('update:modelValue', pathValue)\n        emit('change', pathValue)\n        selfModel.value = pathValue\n\n        // 表单验证\n        if (props.validateEvent) {\n          formItem?.validate?.('change').catch(NOOP)\n        }\n      }\n\n      // 清空事件\n      const handleClear = () => {\n        updatePathValue([])\n        setActiveKey()\n        setSelectedPath()\n        handlePopupVisibleChange(false)\n\n        if (props.filterable) {\n          queryDataList.value = []\n          isQueryPattern.value = false\n        }\n      }\n\n      // 过滤事件\n      const handleFilter = (query: string) => {\n        isQueryPattern.value = !!query\n        if (!isQueryPattern.value) {\n          queryDataList.value = []\n          return\n        }\n        const leafNodes = getAllLeafNodesByQuery(nodesData.value, (node) => {\n          let ret\n          if (isFunction(props.filterMethod)) {\n            ret = props.filterMethod(node, query)\n          } else {\n            ret = node.label && new RegExp(`${query}`, 'i').test(node.label)\n          }\n          return ret\n        })\n        // 从root到leaf依次向下查找\n        const RE = new RegExp(`(${query})`, 'i')\n        queryDataList.value = leafNodes.map((node) => {\n          const isSelected = pathValueToNodeKeys.value.includes(node.key)\n          return {\n            key: node.key,\n            label: node.pathLabel\n              ?.join('/')\n              .replace(RE, `<span style=\"color:var(--bn-danger)\">$1</span>`),\n            isSelected,\n            node\n          }\n        }) as QueryData[]\n      }\n\n      const handleQueryTag = (queryData: QueryData) => {\n        if (props.multiple) {\n          queryData.isSelected = !queryData.isSelected\n          if (queryData.isSelected) {\n            selectMultiple(queryData.node, true)\n          } else {\n            selectMultiple(queryData.node, false)\n          }\n          return\n        }\n        const prevSelectTag = queryDataList.value.find((item) => item.isSelected)\n        if (prevSelectTag) {\n          prevSelectTag.isSelected = false\n        }\n        queryData.isSelected = !queryData.isSelected\n        selectSingle(queryData.node)\n      }\n\n      // 删除多选时的标签\n      const handleTagClose = (tag: Record<string, any>) => {\n        const originPathValue = computedModelValue.value.map((m) => m.slice(0)) as string[][]\n        const index = originPathValue.findIndex((path) => getNodeKey(path) === tag.key && tag.key)\n        if (index < 0) return\n        originPathValue.splice(index, 1)\n        updatePathValue(originPathValue)\n\n        if (props.filterable) {\n          const keys = originPathValue.map((path) => getNodeKey(path))\n          queryDataList.value.forEach((tag) => {\n            tag.isSelected = keys.includes(tag.key)\n          })\n        }\n      }\n\n      const selectSingle = (node: CascaderNode) => {\n        const pathValue: string[] = node.pathValue!.slice(0)\n        handlePopupVisibleChange(false)\n        // 当前node已被选中 就不会出发更新行为\n        if (pathValueToNodeKeys.value.includes(node.key)) {\n          return\n        }\n        setActiveKey(node.key)\n        updatePathValue(pathValue)\n      }\n\n      // check:当前选中还是取消\n      const selectMultiple = (node: CascaderNode, checked: boolean) => {\n        const originPathValue = computedModelValue.value.slice() as string[][]\n        const nodes: CascaderNode[] = props.checkStrictly ? [node] : getLeafNodes(node)\n        if (checked) {\n          nodes.forEach((n) => {\n            if (n.pathValue) {\n              originPathValue.push(n.pathValue.slice(0))\n            }\n          })\n          updatePathValue(originPathValue)\n        } else {\n          const keys = nodes.map((n) => n.key)\n          const pathValues: string[][] = originPathValue.filter(\n            (value) => !keys.includes(value.join('-'))\n          )\n          updatePathValue(pathValues)\n        }\n      }\n\n      const footerOps = {\n        handleCancel() {\n          handleClear()\n          handlePopupVisibleChange(false)\n        },\n        handleOk() {\n          handlePopupVisibleChange(false)\n        }\n      }\n\n      const emitPath = (node: CascaderNode, checked?: boolean) => {\n        if (!props.multiple) {\n          selectSingle(node)\n        } else {\n          selectMultiple(node, checked ?? true)\n        }\n      }\n\n      provide(\n        cascaderInjectionKey,\n        reactive({\n          slots,\n          setSelectedPath,\n          emitPath,\n          setActiveKey,\n          nodeKeys: pathValueToNodeKeys,\n          footer: footerOps\n        })\n      )\n\n      return {\n        ns,\n        popupVisible,\n        mergeDisabled,\n        mergeSize,\n        currentTagLabel,\n        renderColumns,\n        selectedPath,\n        activeKey,\n        multipleTags,\n        totalLevel,\n        popupRef,\n        queryDataList,\n        isQueryPattern,\n        handleFilter,\n        handleClear,\n        handleTagClose,\n        handleQueryTag,\n        handlePopupVisibleChange\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[ns]\">\n    <Trigger\n      v-model:popup-visible=\"popupVisible\"\n      position=\"bl\"\n      trigger=\"click\"\n      :unmount-on-close=\"false\"\n      animation-name=\"bn-slide-dynamic-origin\"\n      :popup-offset=\"8\"\n      :disabled=\"mergeDisabled\"\n    >\n      <template #default>\n        <slot name=\"trigger\" :show=\"popupVisible\">\n          <SelectTrigger\n            :input-value=\"currentTagLabel\"\n            :disabled=\"mergeDisabled\"\n            :size=\"mergeSize\"\n            :placeholder=\"placeholder\"\n            :clearable=\"clearable\"\n            :popup-visible=\"popupVisible\"\n            :multiple=\"multiple\"\n            :multiple-tags=\"multipleTags\"\n            :filterable=\"filterable\"\n            :popup-ref=\"popupRef\"\n            :card=\"card\"\n            @clear=\"handleClear\"\n            @filter=\"handleFilter\"\n            @tag-close=\"handleTagClose\"\n            @show=\"handlePopupVisibleChange(true)\"\n          />\n        </slot>\n      </template>\n\n      <template #content>\n        <BasePanel\n          v-if=\"!isQueryPattern\"\n          ref=\"popupRef\"\n          :render-columns=\"renderColumns\"\n          :selected-path=\"selectedPath\"\n          :active-key=\"activeKey\"\n          :multiple=\"multiple\"\n          :check-strictly=\"checkStrictly\"\n          :total-level=\"totalLevel\"\n          :show-footer=\"showFooter\"\n        />\n\n        <QueryPanel\n          v-if=\"isQueryPattern\"\n          ref=\"popupRef\"\n          :query-data-list=\"queryDataList\"\n          @on-tag=\"handleQueryTag\"\n        />\n      </template>\n    </Trigger>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Cascader from './src/cascader.vue'\n\nexport const Cascader = withInstall(_Cascader)\nexport type CascaderInstance = InstanceType<typeof _Cascader>\nexport * from './src/type'\nexport default Cascader\n","import type { InjectionKey } from 'vue'\n\nexport interface DescriptionsContext {\n  size: 'large' | 'default' | 'small'\n  border: boolean\n  cellHeight: number | string | undefined\n  direction: 'vertical' | 'horizontal'\n}\n\nexport const descriptionsInjectionKey: InjectionKey<DescriptionsContext> = Symbol('Descriptions')\n","import { computed, defineComponent, inject } from 'vue'\nimport type { PropType, CSSProperties, VNodeChild } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { isFunction, isUndefined } from '../../../utils/is'\nimport { addUnit } from '../../../shared/utils'\nimport { descriptionsInjectionKey } from './context'\n\nexport default defineComponent({\n  name: getComponentNamespace('DescriptionsItem'),\n  props: {\n    label: {\n      type: [String, Number],\n      default: ''\n    },\n    value: {\n      type: [String, Number],\n      default: ''\n    },\n    span: {\n      type: Number,\n      default: 1\n    },\n    align: {\n      type: String as PropType<'left' | 'center' | 'right'>,\n      default: 'left'\n    },\n    labelAlign: {\n      type: String as PropType<'left' | 'center' | 'right'>,\n      default: 'left'\n    },\n    valueClassName: {\n      type: String,\n      default: undefined\n    },\n    labelClassName: {\n      type: String,\n      default: undefined\n    },\n    renderTag: {\n      type: String as PropType<'th' | 'td'>,\n      default: 'td'\n    },\n    renderValue: {\n      type: Function as PropType<(data: Record<'value', any>) => VNodeChild>,\n      default: undefined\n    },\n    renderLabel: {\n      type: Function as PropType<(data: Record<'label', any>) => VNodeChild>,\n      default: undefined\n    }\n  },\n  setup(props, { slots }) {\n    const descriptionsContext = inject(descriptionsInjectionKey)\n    const ns = getNamespace('descriptions-item')\n    const cls = computed(() => {\n      return [\n        ns,\n        `${ns}__cell`,\n        descriptionsContext?.border && 'is-border',\n        `${ns}--${descriptionsContext?.size}`\n      ]\n    })\n\n    const cellStyle = computed(() => {\n      const style: CSSProperties = {}\n      if (!isUndefined(descriptionsContext?.cellHeight)) {\n        style.height = addUnit(descriptionsContext!.cellHeight)\n      }\n      return style\n    })\n\n    const valueAlginCls = computed(() => [`is-align-${props.align}`])\n    const labelAlginCls = computed(() => [`is-align-${props.labelAlign}`])\n\n    const renderValue = () => {\n      let value: string | VNodeChild = props.value\n      if (isFunction(props.renderValue)) {\n        value = props.renderValue({ value: props.value })\n      } else if (isFunction(slots.default)) {\n        value = slots.default({ value: props.value })\n      }\n      return value\n    }\n\n    const renderLabel = () => {\n      let label: string | VNodeChild = props.label\n      if (isFunction(props.renderLabel)) {\n        label = props.renderLabel({ label: props.label })\n      } else if (isFunction(slots.label)) {\n        label = slots.label({ label: props.label })\n      }\n      return label\n    }\n\n    const renderContent = () => {\n      if (descriptionsContext?.border) {\n        if (descriptionsContext?.direction === 'horizontal') {\n          return (\n            <>\n              <td\n                style={cellStyle.value}\n                class={[...cls.value, `${ns}__label`, labelAlginCls.value, props.labelClassName]}\n                colspan={1}\n              >\n                {renderLabel()}\n              </td>\n              <td\n                style={cellStyle.value}\n                class={[...cls.value, `${ns}__value`, valueAlginCls.value, props.valueClassName]}\n                colspan={props.span}\n              >\n                {renderValue()}\n              </td>\n            </>\n          )\n        }\n\n        if (props.renderTag === 'th') {\n          // 表头\n          return (\n            <th\n              style={cellStyle.value}\n              class={[...cls.value, `${ns}__label`, labelAlginCls.value, props.labelClassName]}\n              colspan={props.span}\n            >\n              {renderLabel()}\n            </th>\n          )\n        }\n\n        return (\n          <td\n            style={cellStyle.value}\n            class={[...cls.value, `${ns}__value`, valueAlginCls.value, props.valueClassName]}\n            colspan={props.span}\n          >\n            {renderValue()}\n          </td>\n        )\n      }\n\n      if (descriptionsContext?.direction === 'horizontal') {\n        return (\n          <td class={cls.value} colspan={props.span}>\n            <span class={[`${ns}__label`, props.labelClassName]}>{renderLabel()}</span>\n            <span class={[`${ns}__value`, props.valueClassName]}>{renderValue()}</span>\n          </td>\n        )\n      }\n\n      if (props.renderTag === 'th') {\n        return (\n          <th\n            class={[...cls.value, `${ns}__label`, labelAlginCls.value, props.labelClassName]}\n            colspan={props.span}\n          >\n            {renderLabel()}\n          </th>\n        )\n      }\n\n      return (\n        <td\n          class={[...cls.value, `${ns}__value`, valueAlginCls.value, props.valueClassName]}\n          colspan={props.span}\n        >\n          {renderValue()}\n        </td>\n      )\n    }\n\n    return () => {\n      return renderContent()\n    }\n  }\n})\n","import { cloneVNode, computed, defineComponent, provide, reactive, toRefs } from 'vue'\nimport type { VNode, PropType } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { getAllElements, isComponent } from '../../../utils/vue-utils'\nimport { deepClone } from '../../../shared/utils'\nimport { isFunction } from '../../../utils/is'\nimport { descriptionsInjectionKey } from './context'\nimport type { DescriptionsData } from './types'\nimport DescriptionsItem from './descriptions-item'\n\nexport default defineComponent({\n  name: getComponentNamespace('Descriptions'),\n  props: {\n    column: {\n      type: Number,\n      default: 2\n    },\n    direction: {\n      type: String as PropType<'vertical' | 'horizontal'>,\n      default: 'horizontal'\n    },\n    size: {\n      type: String as PropType<'large' | 'default' | 'small'>,\n      default: 'default'\n    },\n    border: {\n      type: Boolean,\n      default: false\n    },\n    cellHeight: {\n      type: [String, Number],\n      default: undefined\n    },\n    data: {\n      type: Array as PropType<Partial<DescriptionsData>[]>,\n      default: undefined\n    }\n  },\n  setup(props, { slots }) {\n    const ns = getNamespace('descriptions')\n    const cls = computed(() => [ns])\n\n    const addItemSpan = (vn: VNode, span: number) => {\n      if (!vn.props) {\n        vn.props = { span: 1 }\n      }\n      if (!props.border || props.direction === 'vertical') {\n        vn.props.span = span\n      } else {\n        vn.props.span = span * 2 - 1\n      }\n    }\n\n    // 根据column转成二维数组 [[vn,vn],[vn,vn]]\n    // 当border存在时 一个vn要渲染2个tr => [[tr,tr,tr,tr], [tr,tr,tr,tr]]\n    // 没有border => [[tr,tr], [tr,tr]]\n    const generateRows = (vns: VNode[]) => {\n      const rows: VNode[][] = []\n      let count = 0\n      let temp: VNode[] = []\n      vns.forEach((vn, index) => {\n        temp.push(vn)\n        if (index === vns.length - 1) {\n          // 最后一个vn添加处理过的span 为了能正确的合并表格td\n          addItemSpan(vn, props.column - count)\n          rows.push(temp)\n          return\n        }\n        const span = vn.props?.span || 1\n        const totalSpan = count + span\n        count = totalSpan > props.column ? props.column : totalSpan\n        // 当取余为0时，代表当前temp数组需要push到rows里面，组合成二维数组\n        if (!(count % props.column)) {\n          rows.push(temp)\n          // 最后一个vn需要做边界判断。重置span数值,合并表格td\n          addItemSpan(vn, span - (totalSpan - props.column))\n          temp = []\n          count = 0\n        } else {\n          // 给vn添加默认的span\n          addItemSpan(vn, span)\n        }\n      })\n      return rows\n    }\n    const { size, border, cellHeight, direction } = toRefs(props)\n    provide(\n      descriptionsInjectionKey,\n      reactive({\n        size,\n        border,\n        cellHeight,\n        direction\n      })\n    )\n\n    const getValueRender = (item: DescriptionsData) => {\n      if (item.renderValue) {\n        return (scoped: Record<'value', any>) => item.renderValue(scoped)\n      }\n      if (isFunction(slots[item.valueSlotName])) {\n        return (scoped: Record<'value', any>) => slots[item.valueSlotName]!(scoped)\n      }\n    }\n\n    const getLabelRender = (item: DescriptionsData) => {\n      if (item.renderLabel) {\n        return (scoped: Record<'label', any>) => item.renderLabel(scoped)\n      }\n      if (isFunction(slots[item.labelSlotName])) {\n        return (scoped: Record<'label', any>) => slots[item.labelSlotName]!(scoped)\n      }\n    }\n\n    const getChildren = () => {\n      if (!props.data) {\n        return getAllElements(slots.default?.()).filter(\n          (vn: VNode) => isComponent(vn, vn.type) && vn.type.name === 'BnDescriptionsItem'\n        )\n      }\n\n      return props.data.map((item: DescriptionsData) => (\n        <DescriptionsItem\n          value={item.value}\n          label={item.label}\n          span={item.span}\n          align={item.align}\n          labelAlign={item.labelAlign}\n          labelClassName={item.labelClassName}\n          valueClassName={item.valueClassName}\n          v-slots={{\n            default: getValueRender(item),\n            label: getLabelRender(item)\n          }}\n        />\n      ))\n    }\n\n    return () => {\n      const rows = generateRows(getChildren())\n      // 当排版为vertical时注入需要渲染的表格标签\n      const addRenderTag = (vn: VNode, tag: string) => {\n        vn = cloneVNode(vn)\n        if (!vn.props) vn.props = {}\n        vn.props = deepClone(vn.props)\n        vn.props!.renderTag = tag\n        return vn\n      }\n\n      const renderRows = () => {\n        return rows.map((row, rowIndex) => {\n          if (props.direction === 'vertical') {\n            return (\n              <>\n                <tr key={`render-tag-th-${rowIndex}`}>\n                  {row.map((itemVNode) => addRenderTag(itemVNode, 'th'))}\n                </tr>\n                <tr key={`render-tag-td-${rowIndex}`}>{row.map((itemVNode) => itemVNode)}</tr>\n              </>\n            )\n          }\n          return <tr key={rowIndex}>{row.map((itemVNode) => itemVNode)}</tr>\n        })\n      }\n\n      return (\n        <div class={cls.value}>\n          <table class={[`${ns}__table`]}>\n            <tbody>{renderRows()}</tbody>\n          </table>\n        </div>\n      )\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Descriptions from './src/descriptions'\n\nexport const Descriptions = withInstall(_Descriptions)\nexport type DescriptionsInstance = InstanceType<typeof _Descriptions>\nexport default Descriptions\n","import { withInstall } from '../../utils/vue-utils'\nimport _DescriptionsItem from '../descriptions/src/descriptions-item'\n\nexport const DescriptionsItem = withInstall(_DescriptionsItem)\nexport type DescriptionItemsInstance = InstanceType<typeof _DescriptionsItem>\nexport default DescriptionsItem\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref } from 'vue'\n  import type { PropType, StyleValue } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import Trigger from '../../trigger'\n  import { addUnit } from '../../../shared/utils'\n  import type { TriggerPosition } from '../../trigger/src/_trigger'\n  import { isUndefined } from '../../../utils/is'\n\n  export default defineComponent({\n    name: getComponentNamespace('Popup'),\n    components: {\n      Trigger\n    },\n    props: {\n      trigger: {\n        type: String as PropType<'click' | 'hover'>,\n        default: 'click'\n      },\n      minWidth: {\n        type: [String, Number],\n        default: 150\n      },\n      width: {\n        type: [String, Number],\n        default: 'auto'\n      },\n      placement: {\n        type: String as PropType<TriggerPosition>,\n        default: 'bottom'\n      },\n      showArrow: {\n        type: Boolean,\n        default: false\n      },\n      contentClass: {\n        type: String,\n        default: undefined\n      },\n      offset: {\n        type: Number,\n        default: undefined\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      }\n    },\n    emits: ['show', 'hide'],\n    setup(props, { expose }) {\n      const ns = getNamespace('popup')\n      const popupVisible = ref(false)\n\n      const contentCls = computed(() => [`${ns}__content`, props.contentClass])\n\n      const contentStyle = computed(() => {\n        const style: StyleValue = {}\n        style.minWidth = addUnit(props.minWidth)\n        style.width = addUnit(props.width)\n        return style\n      })\n\n      const arrowStyle = computed(() => {\n        const style: Record<string, string> = {\n          '--bn-trigger-arrow-background-color': '#fff'\n        }\n\n        return style\n      })\n\n      const computedOffset = computed(() => {\n        if (isUndefined(props.offset) && props.showArrow) return 12\n        if (isUndefined(props.offset)) return 6\n        return props.offset\n      })\n\n      const changePopupVisible = (visible: boolean) => {\n        popupVisible.value = visible\n      }\n\n      expose({\n        changePopupVisible\n      })\n\n      return {\n        ns,\n        contentCls,\n        contentStyle,\n        popupVisible,\n        arrowStyle,\n        computedOffset\n      }\n    }\n  })\n</script>\n\n<template>\n  <Trigger\n    v-model:popup-visible=\"popupVisible\"\n    :trigger=\"trigger\"\n    :position=\"placement\"\n    :show-arrow=\"showArrow\"\n    :popup-offset=\"computedOffset\"\n    :arrow-style=\"arrowStyle\"\n    :disabled=\"disabled\"\n    @show=\"$emit('show')\"\n    @hide=\"$emit('hide')\"\n  >\n    <template #default>\n      <slot name=\"trigger\" :show=\"popupVisible\"></slot>\n    </template>\n    <template #content>\n      <div :class=\"contentCls\" :style=\"contentStyle\">\n        <slot name=\"content\"></slot>\n      </div>\n    </template>\n  </Trigger>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _Popup from './src/popup.vue'\n\nexport const Popup = withInstall(_Popup)\n\nexport type PopupInstance = InstanceType<typeof _Popup>\nexport default PopupInstance\n","import type { InjectionKey } from 'vue'\nimport type { DropdownItemProxyData } from './types'\n\nexport interface DropdownContext {\n  command: string | number | undefined\n  size: 'small' | 'default'\n  handleDropdownItem(val: DropdownItemProxyData): void\n  dropdownItemCreate(proxy: DropdownItemProxyData): void\n  dropdownItemDestroy(proxy: DropdownItemProxyData): void\n}\n\nexport const dropdownContextKey: InjectionKey<DropdownContext> = Symbol('dropdown')\n","import {\n  computed,\n  defineComponent,\n  getCurrentInstance,\n  nextTick,\n  provide,\n  reactive,\n  ref,\n  toRefs,\n  watch\n} from 'vue'\nimport type { PropType } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport Trigger from '../../trigger'\nimport { isUndefined } from '../../../utils/is'\nimport { getAllElements, isComponent } from '../../../utils/vue-utils'\nimport { dropdownContextKey } from './context'\nimport type { DropdownItemProxyData } from './types'\n\nexport default defineComponent({\n  name: getComponentNamespace('Dropdown'),\n  props: {\n    command: {\n      type: [String, Number],\n      default: undefined\n    },\n    trigger: {\n      type: String as PropType<'click' | 'hover'>,\n      default: 'click'\n    },\n    showArrow: {\n      type: Boolean,\n      default: false\n    },\n    contentClass: {\n      type: String,\n      default: undefined\n    },\n    offset: {\n      type: Number,\n      default: undefined\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    size: {\n      type: String as PropType<'small' | 'default'>,\n      default: 'default'\n    },\n    hideOnClick: {\n      type: Boolean,\n      default: true\n    },\n    placement: {\n      type: String as PropType<'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br'>,\n      default: 'bl'\n    }\n  },\n  emits: ['show', 'hide', 'command', 'update:command'],\n  setup(props, { emit, slots }) {\n    const ns = getNamespace('dropdown')\n    const cacheDropdownItemMap = ref<Map<any, DropdownItemProxyData>>(new Map())\n    const popupVisible = ref<boolean>(false)\n    const computedCommand = computed<number | string | undefined>(() => props.command)\n\n    const contentCls = computed(() => [\n      `${ns}__content`,\n      props.contentClass,\n      `${ns}--${props.size}`\n    ])\n    const arrowStyle = computed(() => {\n      const style: Record<string, string> = {\n        '--bn-trigger-arrow-background-color': '#fff'\n      }\n      return style\n    })\n\n    const computedOffset = computed(() => {\n      if (isUndefined(props.offset) && props.showArrow) return 12\n      if (isUndefined(props.offset)) return 6\n      return props.offset\n    })\n\n    const onPopupVisibleChange = (value: boolean) => {\n      popupVisible.value = value\n    }\n\n    const instance = getCurrentInstance()\n\n    const isModelCommand = computed(() => instance?.vnode?.props?.['onUpdate:command'])\n\n    const currentDropdownItemData = ref({})\n\n    const updateCurrentDropdownItemData = async () => {\n      await nextTick()\n      const proxy = cacheDropdownItemMap.value.get(props.command)\n      currentDropdownItemData.value = {\n        label: proxy?.label,\n        command: proxy?.command\n      }\n    }\n\n    const handleDropdownItem = (proxy: DropdownItemProxyData) => {\n      if (proxy.disabled) return\n      if (props.hideOnClick) {\n        popupVisible.value = false\n      }\n      const { command } = proxy\n      emit('command', command)\n      if (isUndefined(command)) return\n      if (isModelCommand.value) {\n        emit('update:command', command)\n      }\n    }\n\n    const dropdownItemCreate = (proxy: DropdownItemProxyData) => {\n      cacheDropdownItemMap.value.set(proxy.command, proxy)\n    }\n\n    const dropdownItemDestroy = (proxy: DropdownItemProxyData) => {\n      if (cacheDropdownItemMap.value.get(proxy.command)) {\n        cacheDropdownItemMap.value.delete(proxy.command)\n      }\n    }\n\n    const { size } = toRefs(props)\n\n    provide(\n      dropdownContextKey,\n      reactive({\n        handleDropdownItem,\n        dropdownItemCreate,\n        dropdownItemDestroy,\n        command: computedCommand,\n        size\n      })\n    )\n\n    watch(\n      () => props.command,\n      (newCommand) => {\n        if (isUndefined(newCommand)) return\n        updateCurrentDropdownItemData()\n      },\n      { immediate: true }\n    )\n\n    watch(\n      () => slots.dropdown?.(),\n      () => {\n        updateCurrentDropdownItemData()\n      }\n    )\n\n    return () => {\n      const dropdownChildren = getAllElements(slots.dropdown?.())\n        .filter((vn) => isComponent(vn, vn.type) && vn.type.name === 'BnDropdownItem')\n        .map((vn) => {\n          if (!isUndefined(vn.props?.divided)) {\n            return [<div class={`${ns}-item__divided`} />, vn]\n          }\n          return vn\n        })\n      return (\n        <Trigger\n          popupVisible={popupVisible.value}\n          unmount-on-close={false}\n          trigger={props.trigger}\n          position={props.placement}\n          show-arrow={props.showArrow}\n          popup-offset={computedOffset.value}\n          arrow-style={arrowStyle.value}\n          disabled={props.disabled}\n          onShow={() => emit('show')}\n          onHide={() => emit('hide')}\n          onPopupVisibleChange={onPopupVisibleChange}\n          v-slots={{\n            default: () =>\n              slots.trigger?.({ show: popupVisible.value, data: currentDropdownItemData.value }),\n            content: () => <div class={contentCls.value}>{dropdownChildren}</div>\n          }}\n        ></Trigger>\n      )\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Dropdown from './src/dropdown'\n\nexport const Dropdown = withInstall(_Dropdown)\n\nexport type DropdownInstance = InstanceType<typeof _Dropdown>\nexport default DropdownInstance\n","<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    getCurrentInstance,\n    inject,\n    onMounted,\n    onUnmounted\n  } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { isUndefined } from '../../../utils/is'\n  import { dropdownContextKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('DropdownItem'),\n    props: {\n      disabled: {\n        type: Boolean,\n        default: false\n      },\n      command: {\n        type: [String, Number],\n        default: undefined\n      },\n      divided: {\n        type: Boolean,\n        default: false\n      },\n      label: {\n        type: [String, Number, Object],\n        default: undefined\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('dropdown-item')\n      const dropdownContext = inject(dropdownContextKey)\n      const selected = computed(\n        () => dropdownContext?.command === props.command && !isUndefined(props.command)\n      )\n      const cls = computed(() => [\n        ns,\n        props.disabled && 'is-disabled',\n        selected.value && 'is-selected',\n        `${ns}--${dropdownContext?.size}`\n      ])\n      const proxy = getCurrentInstance()?.proxy as any\n      const handleDropdownItem = () => {\n        dropdownContext?.handleDropdownItem(proxy)\n      }\n\n      onMounted(() => {\n        if (!isUndefined(props.command)) {\n          dropdownContext?.dropdownItemCreate(proxy)\n        }\n      })\n\n      onUnmounted(() => {\n        if (!isUndefined(props.command)) {\n          dropdownContext?.dropdownItemDestroy(proxy)\n        }\n      })\n\n      return {\n        ns,\n        cls,\n        handleDropdownItem\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\" @click=\"handleDropdownItem\">\n    <slot>\n      {{ label }}\n    </slot>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _DropdownItem from '../dropdown/src/dropdown-item.vue'\n\nexport const DropdownItem = withInstall(_DropdownItem)\n\nexport type DropdownItemInstance = InstanceType<typeof _DropdownItem>\nexport default DropdownItemInstance\n","<script lang=\"ts\">\n  import { computed, defineComponent, onMounted, onUnmounted, ref, watch } from 'vue'\n  import { getNamespace } from '../../utils/global-config'\n  import { Input } from '../input'\n  import type { InputInstance } from '../input'\n  import { BnIconCalendar } from '../icon'\n  import { isElement } from '../../utils/is'\n  import { definePropType } from '../../utils/vue-utils'\n\n  export default defineComponent({\n    name: 'DateTrigger',\n    components: {\n      Input,\n      BnIconCalendar\n    },\n    props: {\n      inputValue: {\n        type: definePropType<string[]>(Array),\n        default: () => []\n      },\n      clearable: {\n        type: Boolean,\n        default: false\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      },\n      rangeSeparator: {\n        type: String,\n        default: '~'\n      },\n      placeholder: {\n        type: String,\n        required: true\n      },\n      size: {\n        type: definePropType<'small' | 'default' | 'large'>(String),\n        required: true\n      },\n      popupRef: {\n        type: Object,\n        default: undefined\n      },\n      rangePattern: {\n        type: Boolean,\n        default: false\n      },\n      card: {\n        type: Boolean,\n        default: false\n      }\n    },\n    emits: ['clear'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-trigger')\n      const inputComponentRef = ref<InputInstance>()\n      const selectTriggerDomRef = ref()\n      const computedInputValue = computed(() => {\n        if (props.rangePattern) {\n          if (props.inputValue.length) {\n            return ' '\n          }\n          return ''\n        }\n        return props.inputValue[0]\n      })\n\n      const isFocus = ref(false)\n\n      const computedPlaceholder = computed(() => {\n        if (props.rangePattern) {\n          return ''\n        }\n        return props.placeholder\n      })\n\n      const computedReadonly = computed(() => true)\n\n      const inputRange = ref<{ l: string; r: string }>({ l: '', r: '' })\n\n      watch(\n        () => props.inputValue,\n        (values) => {\n          if (props.rangePattern) {\n            inputRange.value.l = values[0]\n            inputRange.value.r = values[1]\n          }\n        },\n        {\n          immediate: true\n        }\n      )\n\n      const handleClear = () => {\n        emit('clear')\n      }\n\n      const clickOutside = (e: MouseEvent) => {\n        const el = e.target as HTMLElement\n        const deps: HTMLElement[] = [popupTargetElement.value, selectTriggerDomRef.value]\n        const inner = deps.some((container) => container.contains(el))\n        requestAnimationFrame(() => {\n          inputComponentRef.value?.setFocus(inner)\n          isFocus.value = inner\n        })\n      }\n\n      const popupTargetElement = computed(() => {\n        if (isElement(props.popupRef)) return props.popupRef\n        if (isElement(props.popupRef?.$el)) return props.popupRef?.$el\n        return null\n      })\n\n      onMounted(() => {\n        document.documentElement.addEventListener('mousedown', clickOutside, true)\n      })\n\n      onUnmounted(() => {\n        document.documentElement.removeEventListener('mousedown', clickOutside, true)\n      })\n\n      return {\n        ns,\n        isFocus,\n        inputComponentRef,\n        selectTriggerDomRef,\n        computedInputValue,\n        computedPlaceholder,\n        computedReadonly,\n        inputRange,\n        handleClear\n      }\n    }\n  })\n</script>\n\n<template>\n  <div ref=\"selectTriggerDomRef\" :class=\"[ns]\">\n    <Input\n      ref=\"inputComponentRef\"\n      :model-value=\"computedInputValue\"\n      :validate-event=\"false\"\n      :readonly=\"computedReadonly\"\n      :placeholder=\"computedPlaceholder\"\n      :clearable=\"clearable\"\n      :size=\"size\"\n      :disabled=\"disabled\"\n      :card=\"card\"\n      @clear=\"handleClear\"\n    >\n      <template #suffix-icon>\n        <BnIconCalendar />\n      </template>\n    </Input>\n\n    <div\n      v-if=\"rangePattern\"\n      :class=\"[`${ns}__range`, disabled && 'is-disabled', isFocus && 'is-focus']\"\n    >\n      <input\n        v-model=\"inputRange.l\"\n        :class=\"[`${ns}__range-input`]\"\n        type=\"text\"\n        :disabled=\"disabled\"\n        placeholder=\"开始时间\"\n      />\n      <span :class=\"[`${ns}__range-separator`]\">{{ rangeSeparator }}</span>\n      <input\n        v-model=\"inputRange.r\"\n        :class=\"[`${ns}__range-input`]\"\n        type=\"text\"\n        :disabled=\"disabled\"\n        placeholder=\"结束时间\"\n      />\n    </div>\n  </div>\n</template>\n","import { definePropType } from '../../../utils/vue-utils'\nimport type { DateType } from './types'\n\nexport const datePickerProps = {\n  modelValue: {\n    type: [String, Date, Array, Number],\n    default: undefined\n  },\n  type: {\n    type: definePropType<DateType>(String),\n    default: 'date'\n  },\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  placeholder: {\n    type: String,\n    default: '请选择'\n  },\n  size: {\n    type: definePropType<'small' | 'default' | 'large'>(String),\n    default: 'default'\n  },\n  clearable: {\n    type: Boolean,\n    default: false\n  },\n  rangeSeparator: {\n    type: String,\n    default: '~'\n  },\n  dayStartOfWeek: {\n    type: definePropType<0 | 1 | 2 | 3 | 4 | 5 | 6>(Number),\n    default: 1\n  },\n  modelValueFormat: {\n    type: String,\n    default: undefined\n  },\n  inputLabelFormat: {\n    type: String,\n    default: undefined\n  },\n  disabledDate: {\n    type: definePropType<(date: Date) => boolean>(Function),\n    default: undefined\n  },\n  validateEvent: {\n    type: Boolean,\n    default: true\n  },\n  popupClass: {\n    type: String,\n    default: undefined\n  },\n  card: {\n    type: Boolean,\n    default: false\n  }\n}\n","import { isNumber, isSameArray } from '../../../utils/is'\nimport type { DateCell } from './types'\n\n// ymd => 不做任何处理 纯获取\nexport const getYMD = (date?: Date): number[] => {\n  if (!date) return []\n  const _date = new Date(date)\n  const y = _date.getFullYear()\n  const m = _date.getMonth()\n  const d = _date.getDate()\n  return [y, m, d]\n}\n\n// 获取当前月有多少天\nexport const daysOfMonth = (date?: Date) => {\n  const [y, m] = getYMD(date)\n  return new Date(y, m + 1, 0).getDate()\n}\n// 当前日期在本年是第几天\nexport const daysOfYear = (date?: Date) => {\n  const [y, m, d] = getYMD(date)\n  let day = d\n  for (let i = 0; i < m; i++) {\n    day += daysOfMonth(new Date(y, i, 1))\n  }\n  return day\n}\n\n// 获取当前月的第一天是星期几\nexport const firstDateIsWeekOfMonth = (date?: Date) => {\n  const [y, m] = getYMD(date)\n  return new Date(y, m, 1).getDay()\n}\n\n// date的加减计算\nexport const diffOfDate = (date: Date, diff?: number) => {\n  const [oldYear, oldMonth, oldDate] = getYMD(date)\n  const _date = new Date(oldYear, oldMonth, oldDate)\n  _date.setDate(oldDate + (diff ? diff : 0))\n  return _date\n}\n\n// 月份的加减计算\nexport const diffOfMonth = (date: Date, diff?: number) => {\n  const [oldYear, oldMonth] = getYMD(date)\n  const _date = new Date(oldYear, oldMonth, 1)\n  _date.setMonth(oldMonth + (diff ? diff : 0))\n  return _date\n}\n\n// 年份的加减计算\nexport const diffOfYear = (date: Date, diff?: number) => {\n  const [oldYear, oldMonth] = getYMD(date)\n  const _date = new Date(oldYear, oldMonth, 1)\n  _date.setFullYear(oldYear + (diff ? diff : 0))\n  return _date\n}\n\nexport const isSameDate = (a: Date | undefined, b: Date | undefined) => {\n  return isSameArray(getYMD(a), getYMD(b))\n}\n\nexport const isSameMonth = (a: Date | undefined, b: Date | undefined) => {\n  return isSameArray(getYMD(a).slice(0, 2), getYMD(b).slice(0, 2))\n}\n\nexport const isSameYear = (a: Date | undefined, b: Date | undefined) => {\n  return isSameArray(getYMD(a).slice(0, 1), getYMD(b).slice(0, 1))\n}\n\nexport const getDateRangeOfWeek = (date: Date, weeks: Array<{ label: string; value: number }>) => {\n  const dayOfWeek = date.getDay()\n  const index = weeks.findIndex((week) => week.value === dayOfWeek)\n  const range: Date[] = [date]\n  for (let i = 1; i <= index; i++) {\n    range.unshift(diffOfDate(date, -i))\n  }\n  for (let i = 1; i < 7 - index; i++) {\n    range.push(diffOfDate(date, i))\n  }\n  return range\n}\n\nexport const parseWeek2DateRange = (\n  year: number,\n  week: number,\n  weeks: Array<{ label: string; value: number }>\n) => {\n  const firstDay = new Date(year, 0, 1)\n  const index = weeks.findIndex((w) => w.value === firstDay.getDay())\n  const range = getDateRangeOfWeek(firstDay, weeks)\n  const start = range[0]\n  const end = range[range.length - 1]\n  const std = index > 3 ? diffOfDate(end, 1) : start\n  const s = diffOfDate(std, (week - 1) * 7)\n  const e = diffOfDate(std, week * 7 - 1)\n  return [s, e]\n}\n\nexport const weekOfYear = (\n  date: Date,\n  weeks: Array<{ label: string; value: number }>\n): { year: number; week: number } => {\n  const range = getDateRangeOfWeek(date, weeks)\n  const [prevYear] = getYMD(range[0])\n  const [nextYear] = getYMD(range[range.length - 1])\n  let stdYear = range[0].getFullYear()\n  if (prevYear !== nextYear) {\n    const prevDates = range.filter((d) => d.getFullYear() === prevYear)\n    const nextDates = range.filter((d) => d.getFullYear() === nextYear)\n    if (prevDates.length < nextDates.length) {\n      stdYear = range[range.length - 1].getFullYear()\n    }\n  }\n  const yearStartDate = new Date(stdYear, 0, 1)\n  const index = weeks.findIndex((week) => week.value === yearStartDate.getDay())\n  const start = index > 3 ? diffOfDate(yearStartDate, 6 - index) : diffOfDate(yearStartDate, -index)\n  const weekCounter = Math.floor((date.getTime() - start.getTime()) / (24 * 60 * 60 * 1000) / 7) + 1\n  return {\n    year: stdYear,\n    week: weekCounter\n  }\n}\n\n// format:yyyy-MM-dd hh:mm:ss\nexport const dateFormat = (date: any, format?: string) => {\n  if (!format) return date\n  if (typeof date === 'string') {\n    const mts = date.match(/(\\/Date\\((\\d+)\\)\\/)/)\n    if (mts && mts.length >= 3) {\n      date = parseInt(mts[2])\n    }\n  }\n  date = new Date(date)\n  if (!date || date.toUTCString() == 'Invalid Date') {\n    return ''\n  }\n  const map: Record<string, any> = {\n    M: date.getMonth() + 1, //月份\n    d: date.getDate(), // 日\n    h: date.getHours(), //小时\n    m: date.getMinutes(), //分\n    s: date.getSeconds(), //秒\n    q: Math.floor((date.getMonth() + 3) / 3), //季度\n    S: date.getMilliseconds() //毫秒\n  }\n  format = format.replace(/([yMdhmsqS])+/g, (all, t) => {\n    let v = map[t]\n    if (v !== undefined) {\n      if (all.length > 1) {\n        v = '0' + v\n        v = v.substr(v.length - 2)\n      }\n      return v\n    } else if (t === 'y') {\n      return (date.getFullYear() + '').slice(4 - all.length)\n    }\n    return all\n  })\n  return format\n}\n\nexport const genCell = (cell: Partial<DateCell>) => {\n  const _cell: DateCell = {\n    value: '',\n    label: '',\n    date: new Date(),\n    isCur: false,\n    isPrev: false,\n    isNext: false,\n    isRange: false,\n    isSelect: false,\n    isNow: false,\n    isRangeStart: false,\n    isRangeEnd: false,\n    isDisabled: false,\n    format: dateFormat\n  }\n  return Object.assign({}, _cell, cell)\n}\n\nexport const compareMonth = (newDate: Date | undefined, oldDate: Date | undefined) => {\n  const [newYear, newMonth] = getYMD(newDate)\n  const [, oldMonth] = getYMD(oldDate)\n  if (newMonth !== oldMonth && isNumber(newMonth)) {\n    return new Date(newYear, newMonth, 1)\n  }\n}\n\nexport const compareYear = (newDate: Date | undefined, oldDate: Date | undefined) => {\n  const [newYear] = getYMD(newDate)\n  const [oldYear] = getYMD(oldDate)\n  if (newYear !== oldYear && isNumber(newYear)) {\n    return new Date(newYear, 1, 1)\n  }\n}\n\nexport const transToStartTimestampOfDay = (date: Date) => {\n  const [y, m, d] = getYMD(date)\n  const _date = new Date(y, m, d) // 转化成 2023-08-01 00:00:00 格式\n  return _date.getTime()\n}\n\nexport const dateHasInRange = (dateRange: Date[], date: Date, type: 'range' | 'start' | 'end') => {\n  const time = transToStartTimestampOfDay(date)\n  const times = dateRange.map((d) => transToStartTimestampOfDay(d))\n  const max = Math.max(...times)\n  const min = Math.min(...times)\n  let ret = false\n  switch (type) {\n    case 'range':\n      ret = time >= min && time <= max\n      break\n    case 'start':\n      ret = time === min\n      break\n    case 'end':\n      ret = time === max\n      break\n  }\n  return ret\n}\n","import { computed } from 'vue'\nimport type { Ref } from 'vue'\nimport type { DateCell } from '../types'\nimport { genMatrix } from '../../../../shared/utils'\n\nimport {\n  daysOfMonth,\n  diffOfMonth,\n  firstDateIsWeekOfMonth,\n  genCell,\n  getYMD,\n  isSameDate,\n  dateHasInRange\n} from '../utils'\n\nconst WEEKS = [\n  { label: '日', value: 0 },\n  { label: '一', value: 1 },\n  { label: '二', value: 2 },\n  { label: '三', value: 3 },\n  { label: '四', value: 4 },\n  { label: '五', value: 5 },\n  { label: '六', value: 6 }\n]\n\nexport const useDateRows = ({\n  dayStartOfWeek,\n  date,\n  dateModel,\n  dateRange,\n  disabledDate,\n  dateRangeOfWeek\n}: {\n  dayStartOfWeek: Ref<number>\n  date?: Ref<Date | undefined>\n  dateModel?: Ref<Date[]>\n  dateRange?: Ref<Date[]>\n  disabledDate?: Ref<Function | undefined>\n  dateRangeOfWeek?: Ref<Date[]>\n}) => {\n  const weeks = computed(() => {\n    const weeksCopy = WEEKS.slice()\n    const index = WEEKS.findIndex((week) => week.value === dayStartOfWeek.value)\n    if (~index) {\n      const move = weeksCopy.slice(0, index)\n      const reset = weeksCopy.slice(index)\n      reset.push(...move)\n      return reset\n    }\n\n    return weeksCopy\n  })\n\n  const rows = computed(() => {\n    // 7 * 6\n    const COL = 6\n    const ROW = 7\n    const cells: DateCell[] = new Array(ROW * COL)\n    const days = daysOfMonth(date?.value)\n    const firstDateIsWeek = firstDateIsWeekOfMonth(date?.value)\n    const startIndex = weeks.value.findIndex((week) => week.value === firstDateIsWeek)\n    // 当前\n    const [cur_y, cur_m] = getYMD(date?.value)\n    for (let i = 0; i < days; i++) {\n      const day = i + 1\n      const dateEffect = new Date(cur_y, cur_m, day)\n      cells[startIndex + i] = genCell({\n        label: day,\n        value: day,\n        date: new Date(cur_y, cur_m, day),\n        isCur: true,\n        isNow: isSameDate(new Date(), dateEffect),\n        isRange: dateRange?.value?.length\n          ? dateHasInRange(dateRange!.value, dateEffect, 'range')\n          : false,\n        isSelect: dateModel?.value.some((d) => isSameDate(d, dateEffect)),\n        isRangeStart: dateRange?.value?.length\n          ? dateHasInRange(dateRange!.value, dateEffect, 'start')\n          : false,\n        isRangeEnd: dateRange?.value?.length\n          ? dateHasInRange(dateRange!.value, dateEffect, 'end')\n          : false,\n        isDisabled: disabledDate?.value?.(new Date(dateEffect))\n      })\n    }\n    // 补齐前一个月\n    const prevDate = diffOfMonth(date!.value!, -1)\n    const prevDays = daysOfMonth(prevDate)\n    const [prev_y, prev_m] = getYMD(prevDate)\n    for (let i = 0; i < startIndex; i++) {\n      const day = prevDays - i\n      const dateEffect = new Date(prev_y, prev_m, day)\n      cells[startIndex - i - 1] = genCell({\n        label: day,\n        value: day,\n        date: dateEffect,\n        isPrev: true,\n        isDisabled: disabledDate?.value?.(new Date(dateEffect)),\n        isRange: dateRangeOfWeek?.value?.length\n          ? dateHasInRange(dateRangeOfWeek!.value, dateEffect, 'range')\n          : false,\n        isRangeStart: dateRangeOfWeek?.value?.length\n          ? dateHasInRange(dateRangeOfWeek!.value, dateEffect, 'start')\n          : false,\n        isRangeEnd: dateRangeOfWeek?.value?.length\n          ? dateHasInRange(dateRangeOfWeek!.value, dateEffect, 'end')\n          : false\n      })\n    }\n    // 补齐后一个月\n    const nextDate = diffOfMonth(date!.value!, 1)\n    const [next_y, next_m] = getYMD(nextDate)\n    for (let i = startIndex + days, j = 0; i < ROW * COL; i++) {\n      const day = ++j\n      const dateEffect = new Date(next_y, next_m, day)\n      cells[i] = genCell({\n        label: day,\n        value: day,\n        date: dateEffect,\n        isNext: true,\n        isDisabled: disabledDate?.value?.(new Date(dateEffect)),\n        isRange: dateRangeOfWeek?.value?.length\n          ? dateHasInRange(dateRangeOfWeek!.value, dateEffect, 'range')\n          : false,\n        isRangeStart: dateRangeOfWeek?.value?.length\n          ? dateHasInRange(dateRangeOfWeek!.value, dateEffect, 'start')\n          : false,\n        isRangeEnd: dateRangeOfWeek?.value?.length\n          ? dateHasInRange(dateRangeOfWeek!.value, dateEffect, 'end')\n          : false\n      })\n    }\n\n    return genMatrix(cells, ROW)\n  })\n\n  return {\n    weeks,\n    rows\n  }\n}\n","<script lang=\"ts\">\n  import { defineComponent } from 'vue'\n  import type { PropType } from 'vue'\n  import { getNamespace } from '../../../../../utils/global-config'\n  import type { DateCell } from '../../types'\n  export default defineComponent({\n    name: 'PanelBody',\n    props: {\n      rows: {\n        type: Array as PropType<DateCell[][]>,\n        default: () => []\n      }\n    },\n    emits: ['onCellClick', 'onCellRowClick', 'onCellMouseenter', 'onCellRowMouseenter'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-picker')\n      const handleCell = (cell: DateCell) => {\n        if (cell.isDisabled) return\n        emit('onCellClick', cell)\n      }\n\n      const handleCellRowClick = (row: DateCell[]) => {\n        if (isRowDisabled(row)) return\n        emit('onCellRowClick', row)\n      }\n\n      const handleCellMouseenter = (cell: DateCell) => {\n        if (cell.isDisabled) return\n        emit('onCellMouseenter', cell)\n      }\n\n      const handleCellRowMouseenter = (row: DateCell[]) => {\n        if (isRowDisabled(row)) return\n        emit('onCellRowMouseenter', row)\n      }\n\n      const isRowDisabled = (row: DateCell[]) => {\n        const exist = row.some((cell) => cell.isDisabled)\n        if (exist) {\n          return 'is-disabled'\n        }\n      }\n\n      return {\n        ns,\n        handleCell,\n        handleCellRowClick,\n        handleCellMouseenter,\n        handleCellRowMouseenter,\n        isRowDisabled\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[`${ns}__body`]\">\n    <div\n      v-for=\"(row, rowIndex) in rows\"\n      :key=\"rowIndex\"\n      :class=\"[`${ns}__cell-row`, isRowDisabled(row)]\"\n      @mouseenter=\"handleCellRowMouseenter(row)\"\n      @click=\"handleCellRowClick(row)\"\n    >\n      <div\n        v-for=\"cell in row\"\n        :key=\"cell.value\"\n        :class=\"[\n          `${ns}__cell`,\n          {\n            'is-cur': cell.isCur,\n            'is-prev': cell.isPrev,\n            'is-next': cell.isNext,\n            'is-select': cell.isSelect,\n            'is-now': cell.isNow,\n            'is-range': cell.isRange,\n            'is-range-start': cell.isRangeStart,\n            'is-range-end': cell.isRangeEnd,\n            'is-disabled': cell.isDisabled\n          }\n        ]\"\n        @click=\"handleCell(cell)\"\n        @mouseenter=\"handleCellMouseenter(cell)\"\n      >\n        <slot name=\"cell\" v-bind=\"{ cell }\">\n          <span :class=\"[`${ns}__cell-text`]\">\n            {{ cell.label }}\n          </span>\n        </slot>\n      </div>\n    </div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { defineComponent } from 'vue'\n  import { getNamespace } from '../../../../../utils/global-config'\n  import {\n    BnIconSuperArrowLeft,\n    BnIconSuperArrowRight,\n    BnIconArrowLeft,\n    BnIconArrowRight\n  } from '../../../../icon'\n\n  export default defineComponent({\n    name: 'PanelHeader',\n    components: {\n      BnIconSuperArrowLeft,\n      BnIconSuperArrowRight,\n      BnIconArrowLeft,\n      BnIconArrowRight\n    },\n    props: {\n      content: {\n        type: String,\n        default: ''\n      },\n      actions: {\n        type: Array as PropType<string[]>,\n        default: () => ['prevSuper', 'prev', 'next', 'nextSuper']\n      }\n    },\n    emits: ['prevSuper', 'prev', 'next', 'nextSuper'],\n    setup(_props, { emit }) {\n      const ns = getNamespace('date-picker')\n\n      const handlePrevSuper = () => {\n        emit('prevSuper')\n      }\n      const handlePrev = () => {\n        emit('prev')\n      }\n      const handleNextSuper = () => {\n        emit('nextSuper')\n      }\n\n      const handleNext = () => {\n        emit('next')\n      }\n\n      return {\n        ns,\n        handlePrevSuper,\n        handleNextSuper,\n        handlePrev,\n        handleNext\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[`${ns}__header`]\">\n    <div :class=\"[`${ns}__header-left`]\">\n      <div :class=\"[`${ns}__header-icon`]\">\n        <BnIconSuperArrowLeft v-if=\"actions.includes('prevSuper')\" @click=\"handlePrevSuper\" />\n      </div>\n      <div :class=\"[`${ns}__header-icon`]\">\n        <BnIconArrowLeft v-if=\"actions.includes('prev')\" @click=\"handlePrev\" />\n      </div>\n    </div>\n    <div :class=\"[`${ns}__header-content`]\">{{ content }}</div>\n    <div :class=\"[`${ns}__header-right`]\">\n      <div :class=\"[`${ns}__header-icon`]\">\n        <BnIconArrowRight v-if=\"actions.includes('next')\" @click=\"handleNext\" />\n      </div>\n      <div :class=\"[`${ns}__header-icon`]\">\n        <BnIconSuperArrowRight v-if=\"actions.includes('nextSuper')\" @click=\"handleNextSuper\" />\n      </div>\n    </div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import { defineComponent } from 'vue'\n  import type { PropType } from 'vue'\n  import { getNamespace } from '../../../../../utils/global-config'\n  export default defineComponent({\n    name: 'PanelWeek',\n    props: {\n      weeks: {\n        type: Array as PropType<{ label: string; value: number }[]>,\n        default: () => []\n      }\n    },\n    setup() {\n      const ns = getNamespace('date-picker')\n      return {\n        ns\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[`${ns}__week`]\">\n    <div v-for=\"week in weeks\" :key=\"week.value\" :class=\"[`${ns}__week-cell`]\">{{\n      week.label\n    }}</div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, toRefs, watch } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { diffOfMonth, dateFormat, diffOfYear, compareMonth } from '../utils'\n  import type { DateCell } from '../types'\n  import { useDateRows } from '../hooks/use-date-rows'\n  import PanelBody from './layout/body.vue'\n  import PanelHeader from './layout/header.vue'\n  import PanelWeek from './layout/week.vue'\n\n  export default defineComponent({\n    name: 'DatePanel',\n    components: {\n      PanelHeader,\n      PanelBody,\n      PanelWeek\n    },\n    props: {\n      dayStartOfWeek: {\n        type: Number,\n        default: 0\n      },\n      modelValue: {\n        type: Date,\n        default: undefined\n      },\n      disabledDate: {\n        type: Function,\n        default: undefined\n      }\n    },\n    emits: ['update:modelValue'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-picker')\n\n      const date = ref<Date>()\n      const { dayStartOfWeek, disabledDate } = toRefs(props)\n      const dateModel = computed(() => (props.modelValue ? [props.modelValue] : []))\n      const { weeks, rows } = useDateRows({\n        dayStartOfWeek,\n        date,\n        dateModel,\n        disabledDate\n      })\n\n      const headerContent = computed(() => {\n        return dateFormat(date.value, 'yyyy 年 M 月')\n      })\n\n      const handleYearChange = (count: number) => {\n        date.value = diffOfYear(date.value!, count)\n      }\n\n      const handleMonthChange = (count: number) => {\n        date.value = diffOfMonth(date.value!, count)\n      }\n\n      const handleCellClick = (cell: DateCell) => {\n        emit('update:modelValue', cell.date)\n      }\n\n      // 同步选中状态\n      watch(\n        () => props.modelValue,\n        (newDate) => {\n          const d = newDate || new Date()\n          const ret = compareMonth(d, date.value)\n          if (ret) {\n            date.value = ret\n          }\n        },\n        { immediate: true }\n      )\n\n      return {\n        ns,\n        weeks,\n        rows,\n        headerContent,\n        handleYearChange,\n        handleMonthChange,\n        handleCellClick\n      }\n    }\n  })\n</script>\n\n<template>\n  <PanelHeader\n    :content=\"headerContent\"\n    @prev-super=\"handleYearChange(-1)\"\n    @next-super=\"handleYearChange(1)\"\n    @prev=\"handleMonthChange(-1)\"\n    @next=\"handleMonthChange(1)\"\n  />\n  <PanelWeek :weeks=\"weeks\" />\n  <PanelBody :rows=\"rows\" @on-cell-click=\"handleCellClick\">\n    <template #cell=\"scoped\">\n      <slot name=\"cell\" v-bind=\"scoped\"></slot>\n    </template>\n  </PanelBody>\n</template>\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { computed, defineComponent, ref, toRefs, watch } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { diffOfMonth, dateFormat, diffOfYear, getYMD, compareMonth, isSameMonth } from '../utils'\n  import type { DateCell } from '../types'\n  import { useDateRows } from '../hooks/use-date-rows'\n  import PanelBody from './layout/body.vue'\n  import PanelHeader from './layout/header.vue'\n  import PanelWeek from './layout/week.vue'\n\n  export default defineComponent({\n    name: 'DateRangePanel',\n    components: {\n      PanelHeader,\n      PanelBody,\n      PanelWeek\n    },\n    props: {\n      dayStartOfWeek: {\n        type: Number,\n        default: 0\n      },\n      modelValue: {\n        type: Array as PropType<Date[]>,\n        default: () => []\n      },\n      disabledDate: {\n        type: Function,\n        default: undefined\n      }\n    },\n    emits: ['update:modelValue'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-picker')\n\n      const { dayStartOfWeek } = toRefs(props)\n      const leftDate = ref<Date>()\n      const rightDate = ref<Date>()\n      const dateRange = ref<Date[]>([])\n      const dateModel = ref<Date[]>([])\n      const { disabledDate } = toRefs(props)\n\n      const { rows: leftRows, weeks: leftWeeks } = useDateRows({\n        date: leftDate,\n        dayStartOfWeek,\n        dateModel,\n        dateRange,\n        disabledDate\n      })\n\n      const { rows: rightRows, weeks: rightWeeks } = useDateRows({\n        date: rightDate,\n        dayStartOfWeek,\n        dateModel,\n        dateRange,\n        disabledDate\n      })\n\n      const headerContent = computed(() => {\n        return {\n          left: dateFormat(leftDate.value, 'yyyy 年 M 月'),\n          right: dateFormat(rightDate.value, 'yyyy 年 M 月')\n        }\n      })\n\n      const actions = computed(() => {\n        const [ly, lm] = getYMD(leftDate.value)\n        const [ry, rm] = getYMD(rightDate.value)\n        const left: string[] = []\n        const right: string[] = []\n        if (ly === ry && lm === rm - 1) {\n          left.push('prev', 'prevSuper')\n          right.push('next', 'nextSuper')\n        } else if ((ly === ry && lm < rm - 1) || (ly === ry - 1 && lm >= rm)) {\n          left.push('prev', 'prevSuper', 'next')\n          right.push('prev', 'next', 'nextSuper')\n        } else {\n          left.push('prev', 'prevSuper', 'next', 'nextSuper')\n          right.push('prev', 'prevSuper', 'next', 'nextSuper')\n        }\n        return {\n          left,\n          right\n        }\n      })\n\n      const leftDateOps = {\n        handleYearChange(count: number) {\n          leftDate.value = diffOfYear(leftDate.value!, count)\n        },\n        handleMonthChange(count: number) {\n          leftDate.value = diffOfMonth(leftDate.value!, count)\n          console.log(leftDate.value)\n        }\n      }\n\n      const rightDateOps = {\n        handleYearChange(count: number) {\n          rightDate.value = diffOfYear(rightDate.value!, count)\n        },\n        handleMonthChange(count: number) {\n          rightDate.value = diffOfMonth(rightDate.value!, count)\n        }\n      }\n\n      const handleCellClick = (cell: DateCell) => {\n        if (dateModel.value.length < 2) {\n          dateRange.value.push(cell.date)\n          dateModel.value.push(cell.date)\n        } else {\n          dateRange.value = [cell.date]\n          dateModel.value = [cell.date]\n        }\n\n        if (dateModel.value.length === 2) {\n          emit('update:modelValue', dateModel.value)\n        }\n      }\n\n      const handleCellMouseenter = (cell: DateCell) => {\n        if (dateModel.value.length === 1) {\n          const origin = dateRange.value.slice(0, 1)\n          origin.push(cell.date)\n          dateRange.value = origin\n        }\n      }\n\n      watch(\n        () => props.modelValue,\n        (newDate) => {\n          const [l = new Date(), r = diffOfMonth(l, 1)] = newDate ?? []\n          const leftRet = compareMonth(l, leftDate.value)\n          if (leftRet) {\n            leftDate.value = leftRet\n          }\n          const rightRet = compareMonth(r, rightDate.value)\n          if (isSameMonth(l, r)) {\n            rightDate.value = diffOfMonth(l, 1)\n          } else if (rightRet) {\n            rightDate.value = rightRet\n          }\n          dateRange.value = newDate.slice()\n          dateModel.value = newDate.slice()\n        },\n        {\n          immediate: true\n        }\n      )\n\n      return {\n        ns,\n        leftRows,\n        leftWeeks,\n        rightRows,\n        rightWeeks,\n        headerContent,\n        handleCellClick,\n        handleCellMouseenter,\n        leftDateOps,\n        rightDateOps,\n        actions\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[`${ns}__range`]\">\n    <div :class=\"[`${ns}__range-left`]\">\n      <PanelHeader\n        :content=\"headerContent.left\"\n        :actions=\"actions.left\"\n        @prev-super=\"leftDateOps.handleYearChange(-1)\"\n        @prev=\"leftDateOps.handleMonthChange(-1)\"\n        @next=\"leftDateOps.handleMonthChange(1)\"\n        @next-super=\"leftDateOps.handleYearChange(1)\"\n      />\n      <PanelWeek :weeks=\"leftWeeks\" />\n      <PanelBody\n        :rows=\"leftRows\"\n        @on-cell-click=\"handleCellClick\"\n        @on-cell-mouseenter=\"handleCellMouseenter\"\n      >\n        <template #cell=\"scoped\">\n          <slot name=\"cell\" v-bind=\"scoped\"></slot>\n        </template>\n      </PanelBody>\n    </div>\n    <div :class=\"[`${ns}__panel-right`]\">\n      <PanelHeader\n        :content=\"headerContent.right\"\n        :actions=\"actions.right\"\n        @prev-super=\"rightDateOps.handleYearChange(-1)\"\n        @prev=\"rightDateOps.handleMonthChange(-1)\"\n        @next=\"rightDateOps.handleMonthChange(1)\"\n        @next-super=\"rightDateOps.handleYearChange(1)\"\n      />\n      <PanelWeek :weeks=\"rightWeeks\" />\n      <PanelBody\n        :rows=\"rightRows\"\n        @on-cell-click=\"handleCellClick\"\n        @on-cell-mouseenter=\"handleCellMouseenter\"\n      >\n        <template #cell=\"scoped\">\n          <slot name=\"cell\" v-bind=\"scoped\"></slot>\n        </template>\n      </PanelBody>\n    </div>\n  </div>\n</template>\n","import type { Ref } from 'vue'\nimport { computed } from 'vue'\nimport { genCell, getYMD, isSameMonth, dateHasInRange } from '../utils'\nimport { genMatrix } from '../../../../shared/utils'\nimport type { DateCell } from '../types'\n\nconst MONTHS = [\n  '一月',\n  '二月',\n  '三月',\n  '四月',\n  '五月',\n  '六月',\n  '七月',\n  '八月',\n  '九月',\n  '十月',\n  '十一月',\n  '十二月'\n]\n\nexport const useMonthRows = ({\n  date,\n  dateModel,\n  dateRange,\n  disabledDate\n}: {\n  date: Ref<Date | undefined>\n  dateModel: Ref<Date[]>\n  dateRange?: Ref<Date[]>\n  disabledDate?: Ref<Function | undefined>\n}) => {\n  const rows = computed(() => {\n    const cells: DateCell[] = []\n    const ROW = 4\n    const [y] = getYMD(date.value)\n    for (let i = 0; i < 12; i++) {\n      const dateEffect = new Date(y, i, 1)\n      const cell = genCell({\n        value: i,\n        label: MONTHS[i],\n        date: dateEffect,\n        isCur: true,\n        isNow: isSameMonth(new Date(), dateEffect),\n        isSelect: dateModel.value.some((d) => isSameMonth(d, dateEffect)),\n        isDisabled: disabledDate?.value?.(new Date(dateEffect)),\n        isRange: dateRange?.value.length\n          ? dateHasInRange(dateRange!.value, dateEffect, 'range')\n          : false,\n        isRangeStart: dateRange?.value.length\n          ? dateHasInRange(dateRange!.value, dateEffect, 'start')\n          : false,\n        isRangeEnd: dateRange?.value.length\n          ? dateHasInRange(dateRange!.value, dateEffect, 'end')\n          : false\n      })\n      cells.push(cell)\n    }\n\n    return genMatrix(cells, ROW)\n  })\n\n  return {\n    rows\n  }\n}\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, toRefs, watch } from 'vue'\n  import { useMonthRows } from '../hooks/use-month-rows'\n\n  import type { DateCell } from '../types'\n  import { dateFormat, diffOfYear, compareYear } from '../utils'\n  import PanelBody from './layout/body.vue'\n  import PanelHeader from './layout/header.vue'\n\n  export default defineComponent({\n    name: 'MonthPanel',\n    components: {\n      PanelBody,\n      PanelHeader\n    },\n    props: {\n      modelValue: {\n        type: Date,\n        default: undefined\n      },\n      disabledDate: {\n        type: Function,\n        default: undefined\n      }\n    },\n    emits: ['update:modelValue'],\n    setup(props, { emit }) {\n      const date = ref<Date>()\n      const dateModel = computed(() => (props.modelValue ? [props.modelValue] : []))\n      const { disabledDate } = toRefs(props)\n      const { rows } = useMonthRows({\n        date,\n        dateModel,\n        disabledDate\n      })\n\n      const handleCellClick = (cell: DateCell) => {\n        emit('update:modelValue', cell.date)\n      }\n\n      const handleYearChange = (count: number) => {\n        date.value = diffOfYear(date.value!, count)\n      }\n\n      const headerContent = computed(() => {\n        return dateFormat(date.value, 'yyyy 年')\n      })\n\n      // 同步选中状态\n      watch(\n        () => props.modelValue,\n        (newDate) => {\n          const d = newDate || new Date()\n          const ret = compareYear(d, date.value)\n          if (ret) {\n            date.value = ret\n          }\n          date.value = d\n        },\n        { immediate: true }\n      )\n\n      return {\n        headerContent,\n        rows,\n        handleCellClick,\n        handleYearChange\n      }\n    }\n  })\n</script>\n\n<template>\n  <PanelHeader\n    :actions=\"['prevSuper', 'nextSuper']\"\n    :content=\"headerContent\"\n    @prev-super=\"handleYearChange(-1)\"\n    @next-super=\"handleYearChange(1)\"\n  />\n  <PanelBody :rows=\"rows\" @on-cell-click=\"handleCellClick\">\n    <template #cell=\"scoped\">\n      <slot name=\"cell\" v-bind=\"scoped\"> </slot>\n    </template>\n  </PanelBody>\n</template>\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { computed, defineComponent, ref, toRefs, watch } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { dateFormat, diffOfYear, getYMD, compareYear, isSameYear } from '../utils'\n  import type { DateCell } from '../types'\n  import { useMonthRows } from '../hooks/use-month-rows'\n\n  import PanelBody from './layout/body.vue'\n  import PanelHeader from './layout/header.vue'\n\n  export default defineComponent({\n    name: 'MonthRangePanel',\n    components: {\n      PanelHeader,\n      PanelBody\n    },\n    props: {\n      modelValue: {\n        type: Array as PropType<Date[]>,\n        default: () => []\n      },\n      disabledDate: {\n        type: Function,\n        default: undefined\n      }\n    },\n    emits: ['update:modelValue'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-picker')\n\n      const leftDate = ref<Date>()\n      const rightDate = ref<Date>()\n      const dateRange = ref<Date[]>([])\n      const dateModel = ref<Date[]>([])\n      const { disabledDate } = toRefs(props)\n\n      const { rows: leftRows } = useMonthRows({\n        date: leftDate,\n        dateModel,\n        dateRange,\n        disabledDate\n      })\n\n      const { rows: rightRows } = useMonthRows({\n        date: rightDate,\n        dateModel,\n        dateRange,\n        disabledDate\n      })\n\n      const headerContent = computed(() => {\n        return {\n          left: dateFormat(leftDate.value, 'yyyy 年'),\n          right: dateFormat(rightDate.value, 'yyyy 年')\n        }\n      })\n\n      const actions = computed(() => {\n        const [ly] = getYMD(leftDate.value)\n        const [ry] = getYMD(rightDate.value)\n        const left: string[] = []\n        const right: string[] = []\n        if (ly === ry - 1) {\n          left.push('prevSuper')\n          right.push('nextSuper')\n        } else {\n          left.push('prevSuper', 'nextSuper')\n          right.push('prevSuper', 'nextSuper')\n        }\n        return {\n          left,\n          right\n        }\n      })\n\n      const leftDateOps = {\n        handleYearChange(count: number) {\n          leftDate.value = diffOfYear(leftDate.value!, count)\n        },\n        handleMonthChange(count: number) {\n          leftDate.value = diffOfYear(leftDate.value!, count)\n          console.log(leftDate.value)\n        }\n      }\n\n      const rightDateOps = {\n        handleYearChange(count: number) {\n          rightDate.value = diffOfYear(rightDate.value!, count)\n        },\n        handleMonthChange(count: number) {\n          rightDate.value = diffOfYear(rightDate.value!, count)\n        }\n      }\n\n      const handleCellClick = (cell: DateCell) => {\n        if (dateModel.value.length < 2) {\n          dateRange.value.push(cell.date)\n          dateModel.value.push(cell.date)\n        } else {\n          dateRange.value = [cell.date]\n          dateModel.value = [cell.date]\n        }\n\n        if (dateModel.value.length === 2) {\n          emit('update:modelValue', dateModel.value.slice())\n        }\n      }\n\n      const handleCellMouseenter = (cell: DateCell) => {\n        if (dateModel.value.length === 1) {\n          const origin = dateRange.value.slice(0, 1)\n          origin.push(cell.date)\n          dateRange.value = origin\n        }\n      }\n\n      watch(\n        () => props.modelValue,\n        (newDate) => {\n          const [l = new Date(), r = diffOfYear(l, 1)] = newDate ?? []\n          const leftRet = compareYear(l, leftDate.value)\n          if (leftRet) {\n            leftDate.value = leftRet\n          }\n          const rightRet = compareYear(r, rightDate.value)\n          if (isSameYear(l, r)) {\n            rightDate.value = diffOfYear(l, 1)\n          } else if (rightRet) {\n            rightDate.value = rightRet\n          }\n          dateRange.value = newDate.slice()\n          dateModel.value = newDate.slice()\n        },\n        {\n          immediate: true\n        }\n      )\n\n      return {\n        ns,\n        leftRows,\n        rightRows,\n        headerContent,\n        handleCellClick,\n        handleCellMouseenter,\n        leftDateOps,\n        rightDateOps,\n        actions\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"[`${ns}__range`]\">\n    <div :class=\"[`${ns}__range-left`]\">\n      <PanelHeader\n        :actions=\"actions.left\"\n        :content=\"headerContent.left\"\n        @prev-super=\"leftDateOps.handleYearChange(-1)\"\n        @next-super=\"leftDateOps.handleYearChange(1)\"\n      />\n      <PanelBody\n        :rows=\"leftRows\"\n        @on-cell-click=\"handleCellClick\"\n        @on-cell-mouseenter=\"handleCellMouseenter\"\n      >\n        <template #cell=\"scoped\">\n          <slot name=\"cell\" v-bind=\"scoped\"> </slot>\n        </template>\n      </PanelBody>\n    </div>\n    <div :class=\"[`${ns}__panel-right`]\">\n      <PanelHeader\n        :actions=\"actions.right\"\n        :content=\"headerContent.right\"\n        @prev-super=\"rightDateOps.handleYearChange(-1)\"\n        @next-super=\"rightDateOps.handleYearChange(1)\"\n      />\n      <PanelBody\n        :rows=\"rightRows\"\n        @on-cell-click=\"handleCellClick\"\n        @on-cell-mouseenter=\"handleCellMouseenter\"\n      >\n        <template #cell=\"scoped\">\n          <slot name=\"cell\" v-bind=\"scoped\"> </slot>\n        </template>\n      </PanelBody>\n    </div>\n  </div>\n</template>\n","<script lang=\"ts\">\n  import { computed, defineComponent, ref, toRefs, watch } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { diffOfMonth, dateFormat, diffOfYear, compareMonth } from '../utils'\n  import type { DateCell } from '../types'\n  import { useDateRows } from '../hooks/use-date-rows'\n  import PanelBody from './layout/body.vue'\n  import PanelHeader from './layout/header.vue'\n  import PanelWeek from './layout/week.vue'\n\n  export default defineComponent({\n    name: 'DatePanel',\n    components: {\n      PanelHeader,\n      PanelBody,\n      PanelWeek\n    },\n    props: {\n      dayStartOfWeek: {\n        type: Number,\n        default: 0\n      },\n      modelValue: {\n        type: Array,\n        default: () => []\n      },\n      disabledDate: {\n        type: Function,\n        default: undefined\n      }\n    },\n    emits: ['update:modelValue'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-picker')\n\n      const date = ref<Date>()\n      const { dayStartOfWeek, disabledDate } = toRefs(props)\n      const dateModel = ref<Date[]>([])\n\n      const { weeks, rows } = useDateRows({\n        dayStartOfWeek,\n        date,\n        dateModel,\n        disabledDate,\n        dateRange: dateModel,\n        dateRangeOfWeek: dateModel\n      })\n\n      const headerContent = computed(() => {\n        return dateFormat(date.value, 'yyyy 年 M 月')\n      })\n\n      const handleYearChange = (count: number) => {\n        date.value = diffOfYear(date.value!, count)\n      }\n\n      const handleMonthChange = (count: number) => {\n        date.value = diffOfMonth(date.value!, count)\n      }\n\n      const handleCellRowClick = (row: DateCell[]) => {\n        emit('update:modelValue', [row[0].date, row[row.length - 1].date])\n      }\n\n      // 同步选中状态\n      watch(\n        () => props.modelValue,\n        (newDate: Date[]) => {\n          const std = newDate[1] ?? new Date()\n          const ret = compareMonth(std, date.value)\n          if (ret) {\n            date.value = ret\n          }\n          dateModel.value = newDate.slice()\n        },\n        { immediate: true }\n      )\n\n      return {\n        ns,\n        weeks,\n        rows,\n        headerContent,\n        handleYearChange,\n        handleMonthChange,\n        handleCellRowClick\n      }\n    }\n  })\n</script>\n\n<template>\n  <PanelHeader\n    :content=\"headerContent\"\n    @prev-super=\"handleYearChange(-1)\"\n    @next-super=\"handleYearChange(1)\"\n    @prev=\"handleMonthChange(-1)\"\n    @next=\"handleMonthChange(1)\"\n  />\n  <PanelWeek :weeks=\"weeks\" />\n  <PanelBody :rows=\"rows\" @on-cell-row-click=\"handleCellRowClick\">\n    <template #cell=\"scoped\">\n      <slot name=\"cell\" v-bind=\"scoped\"></slot>\n    </template>\n  </PanelBody>\n</template>\n","import type { VNode } from 'vue'\nimport { computed, defineComponent, ref, toRef, watch } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport Trigger from '../../trigger/src/trigger'\nimport DateTrigger from '../../common/date-trigger.vue'\nimport { isArray, isString } from '../../../utils/is'\nimport { useFormItem } from '../../form/src/hooks/use-form-item'\nimport { NOOP } from '../../../shared/utils'\nimport { datePickerProps } from './props'\n\nimport { useDateRows } from './hooks/use-date-rows'\n\nimport DatePanel from './panels/date-panel.vue'\nimport DateRangePanel from './panels/date-range-panel.vue'\nimport MonthPanel from './panels/month-panel.vue'\nimport MonthRangePanel from './panels/month-range-panel.vue'\nimport WeekPanel from './panels/week-panel.vue'\n\nimport { dateFormat, parseWeek2DateRange, weekOfYear } from './utils'\nimport type { DateType } from './types'\n\nexport default defineComponent({\n  name: getComponentNamespace('DatePicker'),\n  props: datePickerProps,\n  emits: ['update:modelValue', 'change', 'show', 'hide'],\n  setup(props, { emit, slots }) {\n    const ns = getNamespace('date-picker')\n    const { formItem } = useFormItem()\n    const popupVisible = ref(false)\n    const mergeDisabled = computed(() => props.disabled)\n    const popupRef = ref()\n    const pickerVisible = ref(false)\n    const rangePattern = computed(() => props.type.endsWith('range'))\n\n    const { weeks } = useDateRows({ dayStartOfWeek: toRef(props, 'dayStartOfWeek') })\n\n    const handlePopupVisibleChange = (visible: boolean) => {\n      popupVisible.value = visible\n    }\n\n    const transDateValue = (date: any): any => {\n      let ret\n      switch (props.type) {\n        case 'date':\n        case 'month':\n          if (date) {\n            ret = new Date(date)\n          }\n          break\n        case 'daterange':\n        case 'monthrange':\n          if (isArray(date)) {\n            ret = date.map((d) => (d ? new Date(d) : undefined))\n          }\n          if (!date) {\n            ret = []\n          }\n          break\n        case 'week':\n          if (isArray(date)) {\n            ret = date.map((d) => (d ? new Date(d) : undefined))\n          }\n\n          if (isString(date) && date) {\n            const matcher = date.match(/(\\d+)(?:年|[yY]ear|\\s*)[\\/-]*(?:\\s*)(\\d+)(?:周|[wW]eek)/)\n            if (matcher) {\n              ret = parseWeek2DateRange(+matcher[1], +matcher[2], weeks.value)\n            } else {\n              throw new Error('week模式下v-model格式错误，请查阅文档')\n            }\n          }\n          if (!date) {\n            ret = []\n          }\n          break\n      }\n      return ret\n    }\n\n    const dateFormatEnhanced = (date: Date, formatter?: string) => {\n      if (formatter === 'timestamp') {\n        return date.getTime()\n      }\n      return dateFormat(date, formatter)\n    }\n\n    const formatModelValue = (date: Date | Date[]) => {\n      let ret: any = date\n      if (isArray(date)) {\n        // 从小到大排序下\n        const _date = date.slice().sort((a, b) => a.getTime() - b.getTime())\n        ret = _date.map((d) => dateFormatEnhanced(d, props.modelValueFormat))\n      } else {\n        ret = dateFormatEnhanced(date, props.modelValueFormat)\n      }\n      return ret\n    }\n\n    const dateModel = computed({\n      get() {\n        return transDateValue(props.modelValue)\n      },\n      set(date: Date | Date[]) {\n        emit('update:modelValue', formatModelValue(date))\n        emit('change', date)\n        handlePopupVisibleChange(false)\n      }\n    })\n\n    // 表单验证\n    watch(\n      () => props.modelValue,\n      () => {\n        // 表单验证\n        if (props.validateEvent) {\n          formItem?.validate?.('change').catch(NOOP)\n        }\n      }\n    )\n\n    const onPopupHide = () => {\n      // 在popup关闭的时候同步状态给picker\n      pickerVisible.value = false\n      emit('hide')\n    }\n\n    const onPopupShow = () => {\n      emit('show')\n    }\n\n    watch(\n      () => popupVisible.value,\n      (visible) => {\n        //  同步状态给picker\n        if (visible) {\n          pickerVisible.value = visible\n        }\n      },\n      { immediate: true }\n    )\n\n    const defaultFormat = (formatter: string) => {\n      return props.inputLabelFormat ? props.inputLabelFormat : formatter\n    }\n    const inputValue = computed(() => {\n      const date = dateModel.value\n      let ret: string[] = []\n      switch (props.type) {\n        case 'date': {\n          ret = [dateFormat(date, defaultFormat('yyyy-MM-dd'))]\n          break\n        }\n        case 'daterange': {\n          ret = date.map((d: Date) => dateFormat(d, defaultFormat('yyyy-MM-dd')))\n          break\n        }\n        case 'month': {\n          ret = [dateFormat(date, defaultFormat('yyyy-MM'))]\n          break\n        }\n        case 'monthrange': {\n          ret = date.map((d: Date) => dateFormat(d, defaultFormat('yyyy-MM')))\n          break\n        }\n        case 'week': {\n          const stdDate = date[0]\n          if (stdDate) {\n            const { year, week } = weekOfYear(stdDate, weeks.value)\n            const formatter = props.inputLabelFormat || 'yyyy年-ww周'\n            const label = formatter.replace(/([yw])+/g, (all: any, t: any) => {\n              if (t === 'w') return String(week).slice(2 - all.length)\n              if (t === 'y') return String(year).slice(4 - all.length)\n              return all\n            })\n            ret = [label]\n          } else {\n            ret = []\n          }\n          break\n        }\n      }\n      return ret\n    })\n\n    const handleClear = () => {\n      let reset: any = ''\n      if (['week', 'range'].some((s) => props.type.includes(s))) {\n        reset = []\n      }\n      emit('update:modelValue', reset)\n      handlePopupVisibleChange(false)\n    }\n\n    const renderMap: Record<DateType, () => VNode> = {\n      date() {\n        return (\n          <DatePanel\n            v-model={dateModel.value}\n            day-start-of-week={props.dayStartOfWeek}\n            disabledDate={props.disabledDate}\n            v-slots={{\n              cell: (scoped: any) => slots.cell?.(scoped)\n            }}\n          />\n        )\n      },\n      daterange() {\n        return (\n          <DateRangePanel\n            v-model={dateModel.value}\n            day-start-of-week={props.dayStartOfWeek}\n            disabledDate={props.disabledDate}\n            v-slots={{\n              cell: (scoped: any) => slots.cell?.(scoped)\n            }}\n          />\n        )\n      },\n      month() {\n        return (\n          <MonthPanel\n            v-model={dateModel.value}\n            disabledDate={props.disabledDate}\n            v-slots={{\n              cell: (scoped: any) => slots.cell?.(scoped)\n            }}\n          />\n        )\n      },\n      monthrange() {\n        return (\n          <MonthRangePanel\n            v-model={dateModel.value}\n            disabledDate={props.disabledDate}\n            v-slots={{\n              cell: (scoped: any) => slots.cell?.(scoped)\n            }}\n          />\n        )\n      },\n      week() {\n        return (\n          <WeekPanel\n            v-model={dateModel.value}\n            day-start-of-week={props.dayStartOfWeek}\n            disabledDate={props.disabledDate}\n            v-slots={{\n              cell: (scoped: any) => slots.cell?.(scoped)\n            }}\n          ></WeekPanel>\n        )\n      }\n    }\n\n    const renderContent = () => {\n      try {\n        return renderMap[props.type]()\n      } catch (error) {\n        console.log('无效的type属性')\n      }\n    }\n\n    return () => {\n      return (\n        <div class={[ns, rangePattern.value && 'is-range']}>\n          <Trigger\n            v-model:popupVisible={popupVisible.value}\n            position=\"bl\"\n            trigger=\"click\"\n            unmount-on-close={false}\n            animation-name=\"bn-slide-dynamic-origin\"\n            popup-offset={8}\n            disabled={mergeDisabled.value}\n            onHide={onPopupHide}\n            onShow={onPopupShow}\n            v-slots={{\n              default: () => (\n                <DateTrigger\n                  popup-ref={popupRef.value}\n                  input-value={inputValue.value}\n                  clearable={props.clearable}\n                  placeholder={props.placeholder}\n                  disabled={mergeDisabled.value}\n                  size={props.size}\n                  rangePattern={rangePattern.value}\n                  onClear={handleClear}\n                  card={props.card}\n                />\n              ),\n              content: () => (\n                <div ref={popupRef} class={[`${ns}__panel`, `is-${props.type}`, props.popupClass]}>\n                  {renderContent()}\n                </div>\n              )\n            }}\n          ></Trigger>\n        </div>\n      )\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _DatePicker from './src/date-picker'\n\nexport const DatePicker = withInstall(_DatePicker)\nexport type DatePickerInstance = InstanceType<typeof _DatePicker>\nexport default DatePicker\n","import { definePropType } from '../../../utils/vue-utils'\nimport type { TreeData } from './type'\n\nexport const treeProps = {\n  data: {\n    type: definePropType<TreeData[]>(Array),\n    default: () => []\n  },\n  // 是否开启多选模式\n  multiple: {\n    type: Boolean,\n    default: false\n  },\n  // 点击选中的节点集合\n  selected: {\n    type: definePropType<(string | number)[] | undefined>(Array),\n    default: undefined\n  },\n  checked: {\n    type: definePropType<(string | number)[] | undefined>(Array),\n    default: undefined\n  },\n  // 是否显示线型树结构\n  showLine: {\n    type: Boolean,\n    default: false\n  },\n  // 默认展开全部\n  defaultUnfoldAll: {\n    type: Boolean,\n    default: false\n  },\n  // 默认展开node节点的value集合\n  defaultUnfoldValues: {\n    type: definePropType<(string | number)[]>(Array),\n    default: () => []\n  },\n  // 是否显示复选框\n  showCheckbox: {\n    type: Boolean,\n    default: false\n  },\n  // checkbox模式下，checkStrictly为true时父子节点相互不受影响\n  checkStrictly: {\n    type: Boolean,\n    default: false\n  },\n  // 手风琴\n  accordion: {\n    type: Boolean,\n    default: false\n  },\n  // 点击node时候是否展开\n  unfoldOnClickNode: {\n    type: Boolean,\n    default: true\n  },\n  // 点击node时候是否触发checked\n  checkedOnClickNode: {\n    type: Boolean,\n    default: false\n  },\n  filterNodeMethod: {\n    type: definePropType<(query: string, data: TreeData) => boolean>(Function),\n    default: undefined\n  }\n}\n","import type { InjectionKey, Slots } from 'vue'\nimport type { TreeNode } from './type'\n\nexport interface TreeContext {\n  showLine: boolean\n  rootSlots: Slots\n  showCheckbox: boolean\n  checkStrictly: boolean\n  selectedValues: (number | string | undefined)[]\n  checkedNodeKeys: string[]\n  nodeKeyMap: Map<string, TreeNode>\n  focusNodeValues: (number | string | undefined)[]\n  unfoldOnClickNode: boolean\n  checkedOnClickNode: boolean\n  toggleNodeUnfoldOrFold(node: TreeNode): void\n  handleNodeSelected(node: TreeNode): void\n  toggleNodeCheckStatus(node: TreeNode, checked: boolean): void\n  clickNode(node: TreeNode): void\n}\n\nexport const treeInjectKey: InjectionKey<TreeContext> = Symbol('Tree')\n","import type { PropType, VNodeTypes } from 'vue'\nimport { defineComponent } from 'vue'\n\nexport type RenderFunc = (props: Record<string, unknown>) => VNodeTypes\n\nexport default defineComponent({\n  name: 'RenderRootSlot',\n  props: {\n    slotFn: {\n      type: Function as PropType<RenderFunc>,\n      default: undefined\n    }\n  },\n  render() {\n    return this.slotFn ? this.slotFn(this.$attrs) : this.$slots.default?.(this.$attrs)\n  }\n})\n","// 深度优先遍历\nexport const dfs = <T extends { children?: T[] }>(\n  data: T[],\n  { visitor }: { visitor: (node: T, done?: () => void) => void }\n) => {\n  const stack = [...data]\n  let _break = false\n  while (stack.length) {\n    if (_break) break\n    const node = stack.shift()\n    visitor(node!, () => {\n      _break = true\n    })\n    const children = node?.children\n    if (children) {\n      for (let i = children.length - 1; i >= 0; i--) {\n        stack.unshift(children[i])\n      }\n    }\n  }\n}\n\n// 广度优先遍历\nexport const bfs = <T extends { children?: T[] }>(\n  data: T[],\n  { visitor }: { visitor: (node: T, done?: () => void) => void }\n) => {\n  const stack = [...data]\n  let _break = false\n  while (stack.length) {\n    if (_break) break\n    const node = stack.shift()\n    visitor(node!, () => {\n      _break = true\n    })\n    const children = node?.children\n    if (children) {\n      for (let i = 0; i < children.length; i++) {\n        stack.push(children[i])\n      }\n    }\n  }\n}\n","import { isArray, isNumber } from '../../../utils/is'\nimport { dfs } from '../../../utils/tree-traverse'\nimport type { TreeData, TreeNode } from './type'\n\n// 双向链表\nexport const transDataToNodes = (\n  data: TreeData[],\n  {\n    nodeValueMap,\n    nodeKeyMap,\n    checkStrictly\n  }: {\n    nodeValueMap: Map<string | number, TreeNode>\n    nodeKeyMap: Map<string | number, TreeNode>\n    checkStrictly: boolean\n  }\n) => {\n  const traverse = (data: TreeData[], parent: null | TreeNode, deep: number) => {\n    return data.map((item, index) => {\n      const node: TreeNode = {\n        key: '',\n        deep,\n        label: item.label,\n        value: item.value,\n        disabled: item.disabled,\n        unfold: false,\n        lasted: false,\n        filter: false,\n        hasChildren: false,\n        indents: [],\n        pathValue: [],\n        pathNode: [],\n        pathLabel: [],\n        data: item,\n        parent\n      }\n      const oldNode = nodeValueMap.get(item.value)\n\n      node.pathValue = parent ? parent.pathValue.concat([item.value]) : [item.value]\n      node.pathNode = parent ? parent.pathNode.concat([node]) : [node]\n      node.pathLabel = parent ? parent.pathLabel.concat([item.label]) : [item.label]\n      node.lasted = index === data.length - 1\n      node.indents = parent ? parent.indents.concat([!parent.lasted ? 1 : 0]) : []\n\n      const key = node.pathValue.join('-')\n      node.key = key\n\n      if (!checkStrictly) {\n        node.disabled = parent?.disabled ? parent.disabled : item.disabled\n      }\n\n      if (oldNode) {\n        node.unfold = oldNode.unfold\n      }\n\n      nodeValueMap.set(node.value, node)\n      nodeKeyMap.set(key, node)\n\n      if (isArray(item.children) && item.children.length) {\n        node.children = traverse(item.children, node, deep + 1)\n        node.hasChildren = true\n\n        if (!node.disabled) {\n          node.totalLeafNumber = node.children.reduce((pre, n) => {\n            if (isNumber(n.totalLeafNumber)) {\n              return pre + n.totalLeafNumber\n            }\n            if (n.disabled) {\n              return pre\n            }\n            return pre + (n.isLeaf ? 1 : 0)\n          }, 0)\n        }\n      } else {\n        node.isLeaf = true\n      }\n\n      return node\n    })\n  }\n\n  const nodes = traverse(data, null, 0)\n\n  return nodes\n}\n\n// 通过unfold状态的不同，来组装扁平化列表\nexport const transToFlattenNodes = (nodes: TreeNode[]) => {\n  const seqNodeList: TreeNode[] = []\n  const traverse = (nodes: TreeNode[]) => {\n    nodes.forEach((node) => {\n      if (!node.parent) {\n        seqNodeList.push(node)\n      }\n      if (node.parent && node.parent.unfold) {\n        seqNodeList.push(node)\n      }\n      if (node.unfold && node.children) {\n        traverse(node.children)\n      }\n    })\n  }\n\n  traverse(nodes)\n  return seqNodeList\n}\n\nexport const findParentNodeByValue = (\n  value: string | number,\n  nodes: TreeNode[]\n): TreeNode | null => {\n  let parent = null\n  dfs<TreeNode>(nodes, {\n    visitor(node, done) {\n      if (node.value === value) {\n        parent = node.parent as null\n        done && done()\n      }\n    }\n  })\n  return parent\n}\n\nexport const getCheckedStatus = (\n  node: TreeNode,\n  nodeKeys: string[] | undefined,\n  nodeKeyMap: Map<string, TreeNode> | undefined\n) => {\n  let checked = false\n  let indeterminate = false\n\n  if (node.isLeaf) {\n    if (nodeKeys?.includes(node.key)) {\n      checked = true\n    }\n  } else {\n    const reg = new RegExp(`^${node.key}(-|$)`)\n    const checkedLeafNumber = nodeKeys?.reduce((pre, key) => {\n      if (reg.test(key) && !nodeKeyMap?.get(key)?.disabled) {\n        return (pre as number) + 1\n      }\n      return pre\n    }, 0) as number\n\n    if (checkedLeafNumber >= (node.totalLeafNumber ?? 1) && checkedLeafNumber !== 0) {\n      checked = true\n    } else if (checkedLeafNumber > 0) {\n      indeterminate = true\n    }\n  }\n\n  return {\n    checked,\n    indeterminate\n  }\n}\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { defineComponent, computed, inject } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import type { TreeNode } from '../type'\n  import { treeInjectKey } from '../context'\n  import { BnIconArrowRight } from '../../../icon'\n  import { Checkbox } from '../../../checkbox'\n  import RenderSlotFunction from '../../../common/render-slot-function'\n  import { getCheckedStatus } from '../utils'\n\n  export default defineComponent({\n    name: 'TreeNode',\n    components: {\n      BnIconArrowRight,\n      Checkbox,\n      RenderSlotFunction\n    },\n    props: {\n      node: {\n        type: Object as PropType<TreeNode>,\n        default: () => ({})\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('tree')\n      const treeContext = inject(treeInjectKey)\n      const cls = computed(() => [\n        `${ns}__node`,\n        props.node.isLeaf && 'is-leaf',\n        isSelected.value && 'is-selected',\n        isFocus.value && 'is-focus'\n      ])\n\n      const showLine = computed(() => treeContext?.showLine)\n      const isSelected = computed(() => treeContext?.selectedValues.includes(props.node.value))\n      const showCheckbox = computed(() => treeContext?.showCheckbox)\n      const rootSlots = computed(() => treeContext?.rootSlots)\n      const isFocus = computed(() => treeContext?.focusNodeValues.includes(props.node.value))\n\n      const unfoldOnClickNode = computed(() => treeContext?.unfoldOnClickNode)\n      const checkedOnClickNode = computed(() => treeContext?.checkedOnClickNode)\n\n      const handleNodeSelected = () => {\n        treeContext?.handleNodeSelected(props.node)\n      }\n\n      const toggleNodeUnfoldOrFold = () => {\n        treeContext?.toggleNodeUnfoldOrFold(props.node)\n      }\n\n      const toggleNodeCheckStatus = (checked: boolean) => {\n        treeContext?.toggleNodeCheckStatus(props.node, checked)\n      }\n\n      const handleNodeItem = () => {\n        if (props.node.disabled) return\n        treeContext?.clickNode(props.node)\n        if (unfoldOnClickNode.value) {\n          toggleNodeUnfoldOrFold()\n        }\n        if (checkedOnClickNode.value) {\n          toggleNodeCheckStatus(!checkedStatus.value.checked)\n        }\n        handleNodeSelected()\n      }\n\n      const hasIndentVerticalLine = (indent: number) => {\n        return showLine.value && indent\n      }\n\n      const hasPlaceholderBottomVerticalLine = () => {\n        return showLine.value && !props.node.hasChildren && !props.node.lasted\n      }\n\n      const checkedStatus = computed(() => {\n        // 父子节点无关联关系\n        if (treeContext?.checkStrictly) {\n          return {\n            checked: treeContext.checkedNodeKeys.includes(props.node.key),\n            indeterminate: false\n          }\n        }\n        // 父子存在关联关系\n        return getCheckedStatus(props.node, treeContext?.checkedNodeKeys, treeContext?.nodeKeyMap)\n      })\n\n      return {\n        ns,\n        cls,\n        showLine,\n        showCheckbox,\n        rootSlots,\n        checkedStatus,\n        handleNodeItem,\n        toggleNodeCheckStatus,\n        toggleNodeUnfoldOrFold,\n        hasIndentVerticalLine,\n        hasPlaceholderBottomVerticalLine\n      }\n    }\n  })\n</script>\n\n<template>\n  <div\n    v-show=\"!node.filter\"\n    :class=\"[cls]\"\n    :date-key=\"node.key\"\n    :data-deep=\"node.deep\"\n    @click=\"handleNodeItem\"\n  >\n    <div :class=\"`${ns}__indent`\">\n      <span\n        v-for=\"(indent, indentIndex) in node.indents\"\n        :key=\"indentIndex\"\n        :class=\"[`${ns}__indent-block`, { 'is-line': hasIndentVerticalLine(indent) }]\"\n      ></span>\n    </div>\n    <div\n      :class=\"[\n        `${ns}__placeholder`,\n        {\n          'is-bottom-line': hasPlaceholderBottomVerticalLine(),\n          'is-leaf': !node.hasChildren\n        }\n      ]\"\n      @click.stop=\"toggleNodeUnfoldOrFold\"\n    >\n      <RenderSlotFunction :slot-fn=\"rootSlots?.['node-icon']\" :node=\"node\">\n        <BnIconArrowRight v-if=\"node.hasChildren\" :rotate=\"!node.unfold ? 0 : 90\" />\n      </RenderSlotFunction>\n    </div>\n    <div v-if=\"showCheckbox\" :class=\"[`${ns}__checkbox`]\">\n      <Checkbox\n        :disabled=\"node.disabled\"\n        :model-value=\"checkedStatus.checked\"\n        :indeterminate=\"checkedStatus.indeterminate\"\n        :validate-event=\"false\"\n        @change=\"toggleNodeCheckStatus\"\n        @click.stop\n      />\n    </div>\n    <div\n      :class=\"[\n        `${ns}__node-label`,\n        {\n          'is-disabled': node.disabled\n        }\n      ]\"\n    >\n      <RenderSlotFunction :slot-fn=\"rootSlots?.['node-label']\" :node=\"node\">\n        {{ node.label }}\n      </RenderSlotFunction>\n    </div>\n\n    <div v-if=\"rootSlots?.['node-extra']\" :class=\"[`${ns}__node-extra`]\" @click.stop>\n      <RenderSlotFunction :slot-fn=\"rootSlots?.['node-extra']\" :node=\"node\" />\n    </div>\n  </div>\n</template>\n","import type { Ref } from 'vue'\nimport { ref, watch, getCurrentInstance, computed } from 'vue'\nimport type { TreeNode, TreeData } from '../type'\nimport { transToFlattenNodes, findParentNodeByValue } from '../utils'\nimport { isArray, isFunction } from '../../../../utils/is'\nimport { compose } from '../../../../shared/utils'\nimport { dfs } from '../../../../utils/tree-traverse'\n\nexport const useRenderFlattenNodes = ({\n  nodes,\n  nodeValueMap,\n  originData,\n  defaultUnfoldAll,\n  defaultUnfoldValues,\n  accordion,\n  filterNodeMethod\n}: {\n  nodes: Ref<TreeNode[]>\n  nodeValueMap: Map<string | number, TreeNode>\n  originData: Ref<TreeData[]>\n  defaultUnfoldAll: Ref<boolean>\n  defaultUnfoldValues: Ref<(string | number)[]>\n  accordion: Ref<boolean>\n  filterNodeMethod: ((q: string, data: TreeData) => boolean) | undefined\n}) => {\n  const renderFlattenNodes = ref<TreeNode[]>([])\n\n  const flattenNodes = computed(() => [...nodeValueMap.values()])\n\n  const updateRenderFlattenNodes = (nodes: TreeNode[]) => {\n    renderFlattenNodes.value = compose(transToFlattenNodes, (nodes) => {\n      if (defaultUnfoldAll.value) {\n        dfs<TreeNode>(nodes, {\n          visitor(node) {\n            if (!node.isLeaf) {\n              node.unfold = true\n            }\n          }\n        })\n      } else if (isArray(defaultUnfoldValues.value)) {\n        defaultUnfoldValues.value.forEach((value) => {\n          const node = nodeValueMap.get(value)\n          if (node) {\n            node.pathNode.forEach((n) => {\n              n.unfold = true\n            })\n          }\n        })\n      }\n      return nodes\n    })(nodes)\n  }\n\n  watch(() => nodes.value, updateRenderFlattenNodes)\n\n  const instance = getCurrentInstance()\n\n  const exposed: Record<string, Function> = {\n    // 展开节点\n    unfoldNodes(values?: (number | string)[]) {\n      renderFlattenNodes.value = compose(transToFlattenNodes, (nodes) => {\n        if (isArray(values)) {\n          values.forEach((value) => {\n            const node = nodeValueMap.get(value)\n            if (node) {\n              node.pathNode.forEach((n) => {\n                n.unfold = true\n              })\n            }\n          })\n        } else {\n          flattenNodes.value.forEach((node) => {\n            node.unfold = true\n          })\n        }\n        return nodes\n      })(nodes.value)\n    },\n    // 折叠节点\n    foldNodes(values?: (number | string)[]) {\n      renderFlattenNodes.value = compose(transToFlattenNodes, (nodes) => {\n        if (isArray(values)) {\n          values.forEach((value) => {\n            const node = nodeValueMap.get(value)\n            if (node) {\n              node.unfold = false\n            }\n          })\n        } else {\n          flattenNodes.value.forEach((node) => {\n            node.unfold = false\n          })\n        }\n        return nodes\n      })(nodes.value)\n    },\n    // 新增node\n    insertNodes(parentValue: number | string, data: TreeData[]) {\n      if (!parentValue) {\n        originData.value.push(...data)\n        return\n      }\n      const node = flattenNodes.value.find((n) => n.value === parentValue)\n      if (!node) return\n      const dataChildren = node.data.children\n      if (dataChildren) {\n        dataChildren.push(...data)\n      } else {\n        node.data.children = [...data]\n      }\n    },\n    // 删除node\n    removeNodes(values: (number | string)[]) {\n      values.forEach((value) => {\n        const parent = findParentNodeByValue(value, nodes.value)\n        const children = parent ? parent.data.children : originData.value\n        if (!children) return\n        const index = children.findIndex((n) => n.value === value)\n        if (~index) {\n          children.splice(index, 1)\n        }\n        const node = nodeValueMap.get(value)\n        if (!node) return\n        dfs<TreeNode>([node!], {\n          visitor(node) {\n            if (nodeValueMap.has(node.value)) {\n              nodeValueMap.delete(node.value)\n            }\n          }\n        })\n      })\n    },\n    // 过滤\n    filter(query: string) {\n      const _nodes = nodes.value.slice()\n      dfs<TreeNode>(_nodes, {\n        visitor(node) {\n          if (!query) {\n            node.filter = false\n            return\n          }\n          const RE = new RegExp(`${query}`, 'ig')\n          let ret = RE.test(String(node.label))\n          if (isFunction(filterNodeMethod)) {\n            ret = filterNodeMethod(query, node.data)\n          }\n          if (ret) {\n            let cur = node\n            while (cur) {\n              cur.filter = false\n              cur = cur.parent as any\n            }\n          } else {\n            node.filter = true\n          }\n        }\n      })\n      updateRenderFlattenNodes(_nodes)\n    }\n  }\n\n  if (instance?.exposed) {\n    Object.keys(exposed).forEach((method) => {\n      instance.exposed![method] = exposed[method]\n    })\n  }\n\n  const emitEvent = (node: TreeNode) => {\n    instance?.emit(node.unfold ? 'unfold-node' : 'fold-node', node)\n  }\n\n  const toggleNodeUnfoldOrFold = (node: TreeNode) => {\n    if (node.isLeaf) return\n    renderFlattenNodes.value = compose(transToFlattenNodes, (nodes) => {\n      if (accordion.value) {\n        const parent = findParentNodeByValue(node.value, nodes)\n        const children = parent ? parent.children : nodes\n        children?.forEach((n) => {\n          if (n.value !== node.value) {\n            n.unfold = false\n          }\n        })\n      }\n      node.unfold = !node.unfold\n      return nodes\n    })(nodes.value)\n    emitEvent(node)\n  }\n\n  return {\n    renderFlattenNodes,\n    toggleNodeUnfoldOrFold\n  }\n}\n","import { computed, getCurrentInstance, ref } from 'vue'\nimport type { Ref } from 'vue'\nimport type { TreeNode } from '../type'\nimport { isArray } from '../../../../utils/is'\n\nexport const useSelected = ({\n  selected,\n  multiple,\n  nodeValueMap\n}: {\n  selected: Ref<(string | number)[] | undefined>\n  multiple: Ref<boolean>\n  nodeValueMap: Map<string | number, TreeNode>\n}) => {\n  const instance = getCurrentInstance()\n\n  const hasUpdateSelectedEvent = computed(() => instance?.vnode?.props?.['onUpdate:selected'])\n  const innerSelectedValues = ref<(string | number)[]>([])\n  const focusNodeValues = ref<(string | number)[]>([])\n\n  const selectedValues = computed(() => {\n    const values = selected.value ?? innerSelectedValues.value\n    return isArray(values) ? values : [values]\n  })\n\n  const updateSelectedValues = (values: (string | number)[]) => {\n    if (hasUpdateSelectedEvent.value) {\n      instance?.emit('update:selected', values)\n    }\n\n    instance?.emit('change-selected', values)\n  }\n\n  const exposed: Record<string, Function> = {\n    getSelectedNodes() {\n      return selectedValues.value.map((value) => nodeValueMap.get(value))\n    },\n    getNodesByValues(values: (string | number)[]) {\n      return values.map((value) => nodeValueMap.get(value))\n    }\n  }\n\n  if (instance?.exposed) {\n    Object.keys(exposed).forEach((method) => {\n      instance.exposed![method] = exposed[method]\n    })\n  }\n\n  const handleNodeSelected = (node: TreeNode) => {\n    const value = node.value\n    if (multiple.value) {\n      const origin = selectedValues.value.slice()\n      const index = origin.findIndex((val) => val === value)\n      if (~index) {\n        origin.splice(index, 1)\n      } else {\n        origin.push(value)\n      }\n      updateSelectedValues(origin)\n    } else {\n      updateSelectedValues([value])\n    }\n\n    focusNodeValues.value = [value]\n  }\n\n  return { handleNodeSelected, selectedValues, focusNodeValues }\n}\n","import type { Ref } from 'vue'\nimport { computed, getCurrentInstance, ref } from 'vue'\nimport type { TreeNode } from '../type'\nimport { dfs } from '../../../../utils/tree-traverse'\nexport const useChecked = ({\n  checked,\n  nodeValueMap,\n  nodeKeyMap,\n  checkStrictly\n}: {\n  checked: Ref<(string | number)[] | undefined>\n  nodeValueMap: Map<string | number, TreeNode>\n  nodeKeyMap: Map<string | number, TreeNode>\n  checkStrictly: Ref<boolean>\n}) => {\n  const instance = getCurrentInstance()\n  const innerCheckedValues = ref<(string | number)[]>([])\n  const hasUpdateCheckedEvent = computed(() => instance?.vnode?.props?.['onUpdate:checked'])\n  const checkedNodeKeys = computed(() => {\n    return transToNodeKeys(checked.value ?? innerCheckedValues.value)\n  })\n  const flattenNodes = computed(() => [...nodeValueMap.values()])\n\n  const getAllLeafNodes = (nodes: TreeNode[]) => {\n    const leafNodes: TreeNode[] = []\n    dfs(nodes, {\n      visitor(node) {\n        // 这里要去重\n        if (node.isLeaf && !leafNodes.includes(node)) {\n          leafNodes.push(node)\n        }\n      }\n    })\n    return leafNodes\n  }\n\n  const transToNodeKeys = (values: (string | number)[]) => {\n    if (checkStrictly.value) {\n      return values.map((value) => nodeValueMap.get(value)?.key).filter(Boolean) as string[]\n    } else {\n      const nodes = flattenNodes.value.filter((node) => values.includes(node.value))\n      const leafNodes = getAllLeafNodes(nodes)\n      return leafNodes.map((node) => node.key)\n    }\n  }\n\n  const updateCheckedNodeKeys = (keys: string[]) => {\n    // keys => values\n    const values = keys.map((key) => nodeKeyMap.get(key)).map((n) => n!.value)\n    if (hasUpdateCheckedEvent.value) {\n      instance?.emit('update:checked', values)\n    } else {\n      innerCheckedValues.value = values\n    }\n    instance?.emit('change-checked', values)\n  }\n\n  const toggleNodeCheckStatus = (node: TreeNode, checked: boolean) => {\n    const originKeys = checkedNodeKeys.value\n\n    let keys: string[] = []\n    if (!checkStrictly.value) {\n      // 产生关联关系\n      keys = getAllLeafNodes([node])\n        .filter((n) => !n.disabled)\n        .map((n) => n.key)\n    } else {\n      keys = [node.key]\n    }\n\n    if (checked) {\n      updateCheckedNodeKeys([...new Set(originKeys.concat(keys))])\n    } else {\n      updateCheckedNodeKeys(originKeys.filter((key) => !keys.includes(key)))\n    }\n  }\n\n  return {\n    checkedNodeKeys,\n    toggleNodeCheckStatus\n  }\n}\n","import { defineComponent, onUnmounted, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { isArray } from '../../../utils/is'\nimport { treeProps } from './props'\nimport TreeNodeComp from './layout/node.vue'\nimport { transDataToNodes } from './utils'\nimport type { TreeData, TreeNode } from './type'\nimport { treeInjectKey } from './context'\n\nimport { useRenderFlattenNodes } from './hooks/use-render-flatten-nodes'\nimport { useSelected } from './hooks/use-selected'\nimport { useChecked } from './hooks/use-checked'\n\nexport default defineComponent({\n  name: getComponentNamespace('Tree'),\n  props: treeProps,\n  emits: [\n    'update:selected',\n    'change-selected',\n    'update:checked',\n    'change-checked',\n    'click-node',\n    'unfold-node',\n    'fold-node'\n  ],\n  setup(props, { slots, expose, emit }) {\n    const {\n      selected,\n      checked,\n      checkStrictly,\n      showLine,\n      defaultUnfoldAll,\n      defaultUnfoldValues,\n      multiple,\n      showCheckbox,\n      data,\n      accordion,\n      unfoldOnClickNode,\n      checkedOnClickNode\n    } = toRefs(props)\n    const ns = getNamespace('tree')\n\n    const nodes = ref<TreeNode[]>([])\n    // 以value作为key的map\n    const nodeValueMap = reactive(new Map<string, TreeNode>())\n    const nodeKeyMap = reactive(new Map<string, TreeNode>())\n\n    expose({})\n\n    const { renderFlattenNodes, toggleNodeUnfoldOrFold } = useRenderFlattenNodes({\n      nodes,\n      nodeValueMap,\n      originData: data,\n      defaultUnfoldAll,\n      defaultUnfoldValues,\n      accordion,\n      filterNodeMethod: props.filterNodeMethod\n    })\n\n    const { handleNodeSelected, selectedValues, focusNodeValues } = useSelected({\n      selected,\n      multiple,\n      nodeValueMap\n    })\n\n    const { toggleNodeCheckStatus, checkedNodeKeys } = useChecked({\n      checked,\n      nodeValueMap,\n      nodeKeyMap,\n      checkStrictly\n    })\n\n    const clickNode = (node: TreeNode) => {\n      emit('click-node', node)\n    }\n\n    provide(\n      treeInjectKey,\n      reactive({\n        showLine,\n        showCheckbox,\n        checkStrictly,\n        unfoldOnClickNode,\n        checkedOnClickNode,\n        selectedValues,\n        focusNodeValues,\n        checkedNodeKeys,\n        nodeKeyMap,\n        rootSlots: slots,\n        toggleNodeUnfoldOrFold,\n        handleNodeSelected,\n        toggleNodeCheckStatus,\n        clickNode\n      })\n    )\n\n    const updateNodes = () => {\n      if (isArray(props.data)) {\n        nodes.value = transDataToNodes(props.data, {\n          nodeValueMap,\n          nodeKeyMap,\n          checkStrictly: props.checkStrictly\n        })\n      }\n    }\n\n    watch(\n      () => props.data,\n      () => {\n        updateNodes()\n      },\n      { immediate: true, deep: true }\n    )\n\n    watch(\n      () => props.checkStrictly,\n      () => {\n        updateNodes()\n      }\n    )\n\n    onUnmounted(() => {\n      nodeValueMap.clear()\n      nodeKeyMap.clear()\n      nodes.value = []\n    })\n\n    return () => {\n      return (\n        <div class={ns}>\n          {renderFlattenNodes.value?.map((node) => (\n            <TreeNodeComp node={node} key={node.key} />\n          ))}\n        </div>\n      )\n    }\n  },\n  methods: {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getNodesByValues(values: (string | number)[]): TreeNode[] {\n      return []\n    },\n    getSelectedNodes(): TreeNode[] {\n      return []\n    },\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    unfoldNodes(values?: (number | string)[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    foldNodes(values?: (number | string)[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    insertNodes(parentValue: number | string, data: TreeData[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    removeNodes(values: (number | string)[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    filter(query: string) {}\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Tree from './src/tree'\n\nexport const Tree = withInstall(_Tree)\nexport type TreeInstance = InstanceType<typeof _Tree>\nexport * from './src/type'\nexport default Tree\n","import { definePropType } from '../../../utils/vue-utils'\nimport type { TreeData } from '../../tree'\n\nexport const treeSelectProps = {\n  modelValue: {\n    type: definePropType(Array),\n    default: () => []\n  },\n  data: {\n    type: definePropType<TreeData[]>(Array),\n    default: () => []\n  },\n  disabled: Boolean,\n  multiple: {\n    type: Boolean,\n    default: false\n  },\n  clearable: {\n    type: Boolean,\n    default: false\n  },\n  size: {\n    type: definePropType<'small' | 'default' | 'large'>(String),\n    default: 'default'\n  },\n  placeholder: {\n    type: String,\n    default: '请选择'\n  },\n  popupClass: {\n    type: String,\n    default: undefined\n  },\n  //表单验证\n  validateEvent: {\n    type: Boolean,\n    default: true\n  },\n  noDataText: {\n    type: String,\n    default: '暂无数据'\n  },\n  unfoldOnClickNode: {\n    type: Boolean,\n    default: false\n  },\n  checkedOnClickNode: {\n    type: Boolean,\n    default: true\n  },\n  checkStrictly: {\n    type: Boolean,\n    default: false\n  },\n  // 是否显示线型树结构\n  showLine: {\n    type: Boolean,\n    default: false\n  },\n  // 手风琴模式\n  accordion: {\n    type: Boolean,\n    default: false\n  },\n  // 默认展开全部\n  defaultUnfoldAll: {\n    type: Boolean,\n    default: false\n  },\n  // 默认展开node节点的value集合\n  defaultUnfoldValues: {\n    type: definePropType<(string | number)[]>(Array),\n    default: () => []\n  },\n  filterable: {\n    type: Boolean,\n    default: false\n  },\n  filterMethod: {\n    type: Function,\n    default: undefined\n  },\n  card: {\n    type: Boolean,\n    default: false\n  },\n  maxTag: {\n    type: Number,\n    default: undefined\n  }\n}\n","<script lang=\"ts\">\n  import type { WritableComputedRef } from 'vue'\n  import { computed, defineComponent, nextTick, ref, watch } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import Trigger from '../../trigger/src/trigger'\n  import SelectTrigger from '../../common/select-trigger.vue'\n  import { Scrollbar } from '../../scrollbar'\n  import type { TreeData, TreeInstance } from '../../tree'\n  import { Tree } from '../../tree'\n  import { Empty } from '../../empty'\n  import { BnIconEmpty } from '../../icon'\n  import { debounce } from '../../../utils/throttle-debounce'\n\n  // 表单\n  import { useFormItem } from '../../form/src/hooks/use-form-item'\n  import { NOOP } from '../../../shared/utils'\n  import { treeSelectProps } from './props'\n\n  export default defineComponent({\n    name: getComponentNamespace('TreeSelect'),\n    components: {\n      Trigger,\n      SelectTrigger,\n      Scrollbar,\n      Tree,\n      Empty,\n      BnIconEmpty\n    },\n    props: treeSelectProps,\n    emits: ['update:modelValue', 'show', 'hide', 'change', 'clear'],\n    setup(props, { emit }) {\n      const ns = getNamespace('tree-select')\n\n      const popupVisible = ref(false)\n\n      const mergeDisabled = computed(() => props.disabled)\n      const mergeSize = computed(() => props.size)\n      const placeholder = computed(() => props.placeholder)\n\n      const changePopupVisible = (visible: boolean) => {\n        popupVisible.value = visible\n      }\n\n      const popupRef = ref<HTMLElement>()\n      const inputValue = ref('')\n      const multipleTags = ref<\n        {\n          key: string\n          label: string\n        }[]\n      >([])\n\n      const isEmpty = computed(() => props.data.length === 0)\n\n      // tree\n      const treeRef = ref<TreeInstance>()\n      const modelType = computed(() => (props.multiple ? 'checked' : 'selected'))\n      const selected: WritableComputedRef<(number | string)[]> = computed({\n        get() {\n          return props.modelValue\n        },\n        set(val) {\n          emit('update:modelValue', val)\n        }\n      })\n      const treeDataCache = ref<TreeData[]>([])\n      const treeRenderData = ref<TreeData[]>([])\n\n      const onChangeChecked = (values: (number | string)[]) => {\n        selected.value = values\n        emit('change', values)\n      }\n\n      const onChangeSelected = (values: (number | string)[]) => {\n        selected.value = values\n        emit('change', values)\n        changePopupVisible(false)\n      }\n      const treeBindEvents = computed(() => {\n        const events: Record<string, (values: (number | string)[]) => void> = {}\n        if (props.multiple) {\n          events.changeChecked = onChangeChecked\n        } else {\n          events.changeSelected = onChangeSelected\n        }\n        return events\n      })\n      // 表单验证\n      const { formItem } = useFormItem()\n\n      watch(\n        () => selected.value,\n        async (values) => {\n          await nextTick()\n          const nodes = treeRef.value?.getNodesByValues(values)\n          if (!props.multiple) {\n            inputValue.value = nodes?.[0]?.label as string\n          } else {\n            multipleTags.value = nodes?.map((node) => {\n              return {\n                key: node.value,\n                label: node.label\n              }\n            }) as {\n              key: string\n              label: string\n            }[]\n          }\n        },\n        { immediate: true }\n      )\n\n      watch(\n        () => props.data,\n        (newData) => {\n          treeDataCache.value = newData.slice()\n          treeRenderData.value = newData.slice()\n        },\n        { immediate: true }\n      )\n\n      const onShow = () => {\n        emit('show')\n      }\n      const onHide = () => {\n        emit('hide')\n      }\n      const handleClear = () => {\n        emit('update:modelValue', [])\n        emit('clear')\n        emit('change', [])\n      }\n      const handleTagClose = (tag: { key: string; label: string }) => {\n        const tags = multipleTags.value.slice()\n        const originSelectedValues = selected.value.slice()\n        const key = tag.key\n        const index = tags.findIndex((tag) => tag.key === key)\n        if (~index) {\n          tags.splice(index, 1)\n          originSelectedValues.splice(index, 1)\n          multipleTags.value = tags\n\n          emit('update:modelValue', originSelectedValues)\n\n          emit('change', originSelectedValues)\n        }\n      }\n\n      const handleFilter = debounce(\n        (query: string) => {\n          const stack = treeDataCache.value.slice()\n          if (!query) {\n            treeRenderData.value = stack\n            return\n          }\n\n          const matcher: TreeData[] = []\n          const filterMethod = props.filterMethod\n\n          while (stack.length) {\n            const item = stack.shift() as TreeData\n            const RE = new RegExp(`${query}`, 'ig')\n            let existing = true\n\n            if (filterMethod) {\n              existing = filterMethod(treeRef.value?.getNodesByValues([item.value])[0], query)\n            } else {\n              existing = RE.test(item.label as string)\n            }\n\n            if (existing) {\n              matcher.push(item)\n            } else {\n              const children = item?.children\n              if (children) {\n                for (let i = 0; i < children.length; i++) {\n                  stack.push(children[i])\n                }\n              }\n            }\n          }\n          treeRenderData.value = matcher\n\n          nextTick(() => {\n            treeRef.value?.unfoldNodes()\n          })\n        },\n        0,\n        true\n      )\n\n      const handleShowPopup = () => {\n        changePopupVisible(true)\n      }\n\n      // 表单验证\n      watch(\n        () => selected.value,\n        () => {\n          if (props.validateEvent) {\n            formItem?.validate('change').catch(NOOP)\n          }\n        }\n      )\n      const stopEvent = (event: Event) => {\n        console.log('EVENT_', event)\n\n        // 阻止事件的默认行为\n        event.preventDefault()\n        // 阻止事件传播\n        event.stopPropagation()\n        // 阻止事件捕获和冒泡\n        event.stopImmediatePropagation()\n      }\n      return {\n        ns,\n        popupVisible,\n        mergeDisabled,\n        mergeSize,\n        placeholder,\n        popupRef,\n        isEmpty,\n\n        multipleTags,\n        inputValue,\n\n        treeRef,\n        selected,\n        modelType,\n        treeRenderData,\n        treeBindEvents,\n\n        onShow,\n        onHide,\n        handleClear,\n        handleTagClose,\n        handleFilter,\n        handleShowPopup,\n\n        stopEvent\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"ns\">\n    <Trigger\n      v-model:popup-visible=\"popupVisible\"\n      position=\"bl\"\n      trigger=\"click\"\n      :unmount-on-close=\"false\"\n      animation-name=\"bn-slide-dynamic-origin\"\n      auto-fit-popup-min-width\n      :popup-offset=\"8\"\n      :disabled=\"mergeDisabled\"\n      @show=\"onShow\"\n      @hide=\"onHide\"\n    >\n      <template #default>\n        <SelectTrigger\n          :input-value=\"inputValue\"\n          :disabled=\"mergeDisabled\"\n          :size=\"mergeSize\"\n          :placeholder=\"placeholder\"\n          :clearable=\"clearable\"\n          :popup-visible=\"popupVisible\"\n          :multiple=\"multiple\"\n          :multiple-tags=\"multipleTags\"\n          :filterable=\"filterable\"\n          :popup-ref=\"popupRef\"\n          :card=\"card\"\n          :max-tag=\"maxTag\"\n          @clear=\"handleClear\"\n          @tag-close=\"handleTagClose\"\n          @filter=\"handleFilter\"\n          @show=\"handleShowPopup\"\n        />\n      </template>\n\n      <template #content>\n        <div ref=\"popupRef\" :class=\"[`${ns}__menu`, popupClass]\">\n          <Scrollbar v-if=\"!isEmpty\" style=\"max-height: 224px\">\n            <Tree\n              ref=\"treeRef\"\n              :[modelType]=\"selected\"\n              :data=\"treeRenderData\"\n              :multiple=\"multiple\"\n              :unfold-on-click-node=\"unfoldOnClickNode\"\n              :checked-on-click-node=\"checkedOnClickNode\"\n              :show-checkbox=\"modelType === 'checked'\"\n              :check-strictly=\"checkStrictly\"\n              :show-line=\"showLine\"\n              :default-unfold-all=\"defaultUnfoldAll\"\n              :default-unfold-values=\"defaultUnfoldValues\"\n              :accordion=\"accordion\"\n              v-on=\"treeBindEvents\"\n            >\n              <template v-if=\"$slots['node-icon']\" #node-icon=\"scoped\">\n                <slot name=\"node-icon\" v-bind=\"scoped\"></slot>\n              </template>\n              <template v-if=\"$slots['node-label']\" #node-label=\"scoped\">\n                <slot name=\"node-label\" v-bind=\"scoped\"></slot>\n              </template>\n              <template v-if=\"$slots['node-extra']\" #node-extra=\"scoped\">\n                <slot name=\"node-extra\" v-bind=\"scoped\"></slot>\n              </template>\n            </Tree>\n          </Scrollbar>\n          <div v-if=\"isEmpty\" :class=\"[`${ns}__empty`]\">\n            <slot name=\"empty\">\n              <Empty :description=\"noDataText\">\n                <template #image>\n                  <BnIconEmpty size=\"38\" />\n                </template>\n              </Empty>\n            </slot>\n          </div>\n\n          <div v-if=\"!isEmpty && !treeRenderData.length\" :class=\"[`${ns}__empty`, 'is-no-matcher']\">\n            <slot name=\"empty\">\n              <Empty description=\"暂无匹配项\">\n                <template #image>\n                  <BnIconEmpty size=\"38\" />\n                </template>\n              </Empty>\n            </slot>\n          </div>\n        </div>\n      </template>\n    </Trigger>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _TreeSelect from './src/tree-select.vue'\n\nexport const TreeSelect = withInstall(_TreeSelect)\nexport type TreeSelectInstance = InstanceType<typeof _TreeSelect>\nexport default TreeSelect\n","import type { PropType } from 'vue'\nimport type { CSSColor, LineType } from './types'\n\n/**\n * @description Timeline Props\n */\nexport const timelineProps = {\n  /**\n   * @description 是否倒序\n   */\n  reverse: {\n    type: Boolean\n  },\n  /**\n   * @description 轴线样式\n   */\n  lineType: {\n    type: String as PropType<LineType>,\n    default: 'dotted'\n  }\n}\n\n/**\n * @description Item Props\n */\nexport const timelineItemProps = {\n  /**\n   * @description 小圆点颜色\n   */\n  dotColor: {\n    type: String as PropType<CSSColor>\n  }\n}\n","import type { InjectionKey } from 'vue'\nimport type { LineType } from './types'\nexport interface TimelineContext {\n  reverse: boolean\n  parentCls: string\n  count: number\n  lineType: LineType\n}\n\n/**\n * @description 之所以命名为context从行为上讲Provide和Inject形似上下文\n */\nexport const timelineInjectionKey: InjectionKey<TimelineContext> = Symbol('timelineKey')\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { timelineProps } from './props'\nimport { timelineInjectionKey } from './context'\nconst childrenName = getComponentNamespace('TimelineItem')\n\nexport default defineComponent({\n  name: getComponentNamespace('Timeline'),\n  components: {},\n  props: timelineProps,\n  emits: ['update:current', 'change'],\n  setup(props, { slots }) {\n    // 定义组件命名\n    const ns = getNamespace('timeline')\n    // 组件class\n    const cls = computed(() => [ns, props.reverse && `is-reverse`])\n    // 顺序反转\n    const { reverse: reverseRef, lineType: lineTypeRef } = toRefs(props)\n    const componentCount = ref(0)\n    /**\n     * @description 获取Timeline真实子组件\n     */\n    const getChildren = (slotsDefault: any) => {\n      if (Array.isArray(slotsDefault) && slotsDefault.length > 0) {\n        return slotsDefault.filter((item) => {\n          if (\n            Array.isArray(item.children) &&\n            item.children.length > 0 &&\n            typeof item['type'] === 'symbol'\n          ) {\n            item.children = getChildren(item.children)\n            return item.children.length > 0 ? item : null\n          }\n          if ((item?.type as any)?.name === childrenName) {\n            return item\n          }\n        })\n      }\n      return []\n    }\n    // 获取数组有多少个叶子节点\n    const getLeafCount = (children: any[]) => {\n      let count = 0\n      children.forEach((item) => {\n        if (Array.isArray(item.children)) {\n          count += getLeafCount(item.children)\n        } else {\n          count += 1\n        }\n      })\n      return count\n    }\n\n    const components = (slotsDefault: any) => {\n      const items = getChildren(slotsDefault)\n      componentCount.value = getLeafCount(items)\n      return items\n    }\n    /**\n     * @description 响应式传递\n     */\n    const provideContext = reactive({\n      reverse: reverseRef,\n      parentCls: ns,\n      count: componentCount,\n      lineType: lineTypeRef\n    })\n    provide(timelineInjectionKey, provideContext)\n    return () => {\n      return <div class={cls.value}>{components(slots.default?.())}</div>\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Timeline from './src/timeline'\n\nexport const Timeline = withInstall(_Timeline)\nexport type TimelineInstance = InstanceType<typeof _Timeline>\nexport default Timeline\n","import type { Ref } from 'vue'\nimport { computed, onMounted, onUpdated, ref, watch } from 'vue'\nimport { isUndefined } from '../utils/is'\n\nexport const useIndex = ({\n  itemRef,\n  selector,\n  index,\n  parentClassName\n}: {\n  itemRef: Ref<HTMLElement | undefined>\n  selector: string\n  index?: Ref<number | undefined>\n  parentClassName?: string\n}) => {\n  const _index = ref(-1)\n  const innerIndex = computed(() => index?.value ?? _index.value)\n\n  const parent = ref<HTMLElement>()\n\n  const getParent = () => {\n    let parent = itemRef.value?.parentElement ?? undefined\n    if (parentClassName) {\n      while (parent && !parent.className.includes(parentClassName)) {\n        parent = parent.parentElement ?? undefined\n      }\n    }\n    return parent\n  }\n\n  const getIndex = () => {\n    if (isUndefined(index?.value) && parent.value && itemRef.value) {\n      const index = Array.from(parent.value.querySelectorAll(selector)).indexOf(itemRef.value)\n      if (index !== _index.value) {\n        _index.value = index\n      }\n    }\n  }\n\n  watch(itemRef, () => {\n    if (itemRef.value && !parent.value) {\n      parent.value = getParent()\n    }\n  })\n\n  onMounted(() => {\n    if (itemRef.value) {\n      parent.value = getParent()\n    }\n    getIndex()\n  })\n  onUpdated(() => getIndex())\n\n  return {\n    innerIndex\n  }\n}\n","<script lang=\"ts\">\n  import { computed, defineComponent, inject, ref } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { useIndex } from '../../../hooks/use-index'\n  import { timelineItemProps } from './props'\n  import type { TimelineContext } from './context'\n  import { timelineInjectionKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('TimelineItem'),\n    components: {},\n    props: timelineItemProps,\n    emits: ['close'],\n    setup(props, { slots }) {\n      // 定义组件命名\n      const ns = getNamespace('timeline-item')\n      // 获取父级组件provide数据\n      const context = inject(timelineInjectionKey)\n      // Ref\n      const itemRef = ref<HTMLElement>()\n      // 点颜色\n      const innerDotColor = ref(props.dotColor)\n      // 内部Index\n      const { innerIndex } = useIndex({\n        itemRef,\n        selector: `.${ns}`,\n        parentClassName: context?.parentCls\n      })\n      // 是否为最后一个\n      const isLast = computed((): boolean => {\n        const { reverse, count } = context as TimelineContext\n        return !reverse ? innerIndex.value + 1 === count : innerIndex.value == 0\n      })\n      // 组件class\n      const cls = computed(() => [ns, isLast.value && 'is-last'])\n      // lineType\n      const lineType = computed(() => [\n        {\n          borderLeftStyle: context?.lineType\n        }\n      ])\n      // slotsIcon\n      const iconCls = computed(() =>\n        slots?.icon?.() ? [`${ns}__dot__icon`, 'is-slot-icon'] : [`${ns}__dot__icon`]\n      )\n      /**\n       * @description 待返回数据\n       */\n      return {\n        ns,\n        cls,\n        itemRef,\n        innerDotColor,\n        isLast,\n        lineType,\n        iconCls\n      }\n    }\n  })\n</script>\n\n<template>\n  <div ref=\"itemRef\" :class=\"cls\">\n    <div :class=\"`${ns}__dot`\">\n      <div v-if=\"!isLast\" :class=\"`${ns}__dot__line`\" :style=\"lineType\"></div>\n      <div :class=\"iconCls\">\n        <slot name=\"icon\">\n          <i class=\"icon\" :style=\"[{ backgroundColor: innerDotColor }]\"></i>\n        </slot>\n      </div>\n    </div>\n    <div :class=\"`${ns}__content`\">\n      <slot>\n        <div :class=\"`${ns}__content__label`\">\n          <slot name=\"label\"></slot>\n        </div>\n        <div :class=\"`${ns}__content__description`\">\n          <slot name=\"description\"></slot>\n        </div>\n      </slot>\n    </div>\n  </div>\n</template>\n","import { withInstall } from '../../utils/vue-utils'\nimport _TimelineItem from '../timeline/src/timeline-item.vue'\n\nexport const TimelineItem = withInstall(_TimelineItem)\nexport type TimelineItemInstance = InstanceType<typeof _TimelineItem>\nexport default TimelineItem\n","import type { PropType } from 'vue'\nimport type { StepsDirection, StepsType, LineType } from './types'\n\n/**\n * @description Steps Props\n */\nexport const stepsProps = {\n  modelValue: {\n    type: Number\n  },\n  /**\n   * @description 步骤条的类型\n   */\n  type: {\n    type: String as PropType<StepsType>,\n    default: 'default'\n  },\n  /**\n   * @description 步骤条的显示方向 默认水平\n   */\n  direction: {\n    type: String as PropType<StepsDirection>,\n    default: 'horizontal'\n  },\n  /**\n   * @description 显示默认的步骤数（非受控状态）\n   */\n  defaultCurrent: {\n    type: Number,\n    default: 1\n  },\n  /**\n   * @description 当前步骤数 (v-model)\n   */\n  current: {\n    type: Number as PropType<number>,\n    default: undefined\n  },\n  /**\n   * @description 是否可以点击切换\n   */\n  changeable: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   * @description 轴线样式\n   */\n  lineType: {\n    type: String as PropType<LineType>,\n    default: 'dotted'\n  }\n}\n\n/**\n * @description Step Props\n */\nexport const stepProps = {\n  /**\n   * @description 步骤的标题\n   */\n  title: {\n    type: String,\n    default: undefined\n  },\n  /**\n   * @description 步骤的描述信息\n   */\n  description: {\n    type: String,\n    default: undefined\n  },\n  /**\n   * @description 采用BN-ICON名称作为属性\n   */\n  icon: {\n    type: String,\n    default: undefined\n  },\n  /**\n   * @description 是否禁用\n   */\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   * @description 小圆点颜色\n   */\n  dotColor: {\n    type: String\n  }\n}\n","import type { InjectionKey } from 'vue'\nimport type { StepsType, StepData, LineType } from './types'\nexport interface StepsContext {\n  stepsType: StepsType\n  innerCurrent: number\n  parentCls: string\n  addItem(step: number, data: StepData): void\n  removeItem(step: number): void\n  onClick(step: number, ev: Event): void\n  count: number\n  lineType: LineType\n}\n\nexport const stepsInjectionKey: InjectionKey<StepsContext> = Symbol('stepsKey')\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { stepsProps } from './props'\nimport { stepsInjectionKey } from './context'\nimport type { StepData } from './types'\nconst childrenName = getComponentNamespace('Step')\n\nexport default defineComponent({\n  name: getComponentNamespace('Steps'),\n  props: stepsProps,\n  emits: ['update:current', 'change'],\n  setup(props, { emit, slots }) {\n    // 定义组件命名\n    const ns = getNamespace('steps')\n    // 组件class\n    const cls = computed(() => [ns, props.direction && `${ns}--${props.direction}`])\n    // 拿到非受控默认步数\n    const _current = ref(props.defaultCurrent)\n    // value\n    const { current: currentRef } = toRefs(props)\n    // 内部状态\n    const innerCurrent = computed(() => currentRef.value ?? _current.value)\n    /**\n     * Step Click\n     * @description 通过steps-item触发进行跳转\n     * @param step\n     * @param e\n     */\n    const handleClick = (step: number, e: Event) => {\n      // 允许通过点击切换\n      if (props.changeable) {\n        _current.value = step\n        emit('update:current', step)\n        emit('change', step, e)\n      }\n    }\n    /**\n     * @description step save\n     */\n    const stepMap = reactive(new Map<number, StepData>())\n    /**\n     * 添加步骤及步骤数据\n     * @param step\n     * @param data\n     */\n    const addItem = (step: number, data: StepData) => {\n      stepMap.set(step, data)\n    }\n    /**\n     * 移除步骤及步骤数据\n     * @param step\n     */\n    const removeItem = (step: number) => {\n      stepMap.delete(step)\n    }\n    const components = (slots.default?.() || []).filter((item) => {\n      return (item?.type as any)?.name === childrenName\n    })\n    const { lineType: lineTypeRef } = toRefs(props)\n    /**\n     * @description\n     */\n    provide(\n      stepsInjectionKey,\n      reactive({\n        stepsType: props.type,\n        innerCurrent,\n        addItem,\n        removeItem,\n        onClick: handleClick,\n        parentCls: ns,\n        count: components.length,\n        lineType: lineTypeRef\n      })\n    )\n    return () => {\n      return <div class={cls.value}>{components}</div>\n    }\n  }\n})\n","import { withInstall } from '../../utils/vue-utils'\nimport _Steps from './src/steps'\n\nexport const Steps = withInstall(_Steps)\nexport type StepsInstance = InstanceType<typeof _Steps>\nexport default Steps\n","<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    inject,\n    getCurrentInstance,\n    ref,\n    reactive,\n    onBeforeMount\n  } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { useIndex } from '../../../hooks/use-index'\n  import { BnIconCheck } from '../../icon'\n  import { stepProps } from './props'\n  import type { StepsContext } from './context'\n  import { stepsInjectionKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('Step'),\n    components: { BnIconCheck },\n    props: stepProps,\n    emits: ['close'],\n    setup(props, { slots }) {\n      // 定义组件命名\n      const ns = getNamespace('steps-item')\n      // 获取父级组件provide数据\n      const context = inject(stepsInjectionKey, {} as StepsContext)\n      const { stepsType, parentCls, addItem, removeItem, onClick } = context\n      // 获取组件内部实例\n      const instance = getCurrentInstance()\n      // Ref\n      const itemRef = ref<HTMLElement>()\n      // 点颜色\n      const innerDotColor = ref(props.dotColor)\n      // 内部Index\n      const { innerIndex } = useIndex({\n        itemRef,\n        selector: `.${ns}`,\n        parentClassName: parentCls\n      })\n      // 当前step步数\n      const stepNumber = computed(() => innerIndex.value + 1)\n      // 是否为最后一个\n      const isLast = computed((): boolean => {\n        const { count } = context as StepsContext\n        return innerIndex.value + 1 === count\n      })\n      // 组件class\n      const cls = computed(() => [\n        ns\n        // stepsType && `is-${stepsType}`,\n        // context.innerCurrent === stepNumber.value ? 'is-active' : ''\n      ])\n      const stepStatusCls = computed(() => [`is-${stepStatus.value.toLocaleLowerCase()}`])\n      // PREV NEXT\n      const stepStatus = computed(() => {\n        if (context.innerCurrent > stepNumber.value) {\n          return 'COMPLETE'\n        } else if (context.innerCurrent === stepNumber.value) {\n          return 'ACTIVE'\n        } else {\n          return 'WAITING'\n        }\n      })\n      if (instance) {\n        addItem(\n          instance.uid,\n          reactive({\n            step: stepNumber\n          })\n        )\n      }\n      /**\n       * @description 注册一个钩子，在组件被挂载之前被调用。\n       */\n      onBeforeMount(() => {\n        removeItem(instance?.uid as number)\n      })\n      /**\n       * @description step点击切换\n       * @param e\n       */\n      const handleClick = (e: Event) => {\n        if (!props.disabled) {\n          onClick(stepNumber.value, e)\n        }\n      }\n      // lineType\n      const lineType = computed(() => [\n        {\n          borderBottomStyle: context?.lineType\n        }\n      ])\n      // slotsIcon\n      const iconCls = computed(() =>\n        slots?.icon?.() ? [`${ns}__icon`, ...stepStatusCls.value] : [`${ns}__icon`]\n      )\n      return {\n        ns,\n        cls,\n        stepsType,\n        itemRef,\n        stepNumber,\n        handleClick,\n        isLast,\n        lineType,\n        iconCls,\n        innerDotColor,\n        stepStatus,\n        stepStatusCls\n      }\n    }\n  })\n</script>\n\n<template>\n  <div ref=\"itemRef\" :class=\"cls\" @click=\"handleClick\">\n    <div v-if=\"stepsType === 'icon' && !icon\" :class=\"`${ns}__node`\">\n      <div :class=\"iconCls\">\n        <slot name=\"icon\">\n          <i class=\"icon\" :style=\"[{ backgroundColor: innerDotColor }]\"></i>\n        </slot>\n      </div>\n    </div>\n    <div v-if=\"stepsType === 'icon'\" :class=\"`${ns}__dot`\">\n      <div class=\"dot\" :class=\"stepStatusCls\"></div>\n      <div v-if=\"!isLast\" :class=\"`${ns}__dot__line`\" :style=\"lineType\"></div>\n    </div>\n    <div v-else :class=\"`${ns}__serial-number`\">\n      <div class=\"step-mark\" :class=\"stepStatusCls\">\n        <div v-if=\"stepStatus === 'COMPLETE'\" class=\"diy-icon\">\n          <slot name=\"complete-icon\">\n            <BnIconCheck></BnIconCheck>\n          </slot>\n        </div>\n        <div v-else class=\"number\">{{ stepNumber }}</div>\n      </div>\n      <div v-if=\"!isLast\" :class=\"`${ns}__serial-number__line`\" :style=\"lineType\"></div>\n    </div>\n    <div :class=\"[`${ns}__content`, ...stepStatusCls]\">\n      <div :class=\"`${ns}__title`\">\n        <slot>{{ title }}</slot>\n      </div>\n      <div v-if=\"description\" :class=\"[`${ns}__description`]\">\n        <slot name=\"description\">{{ description }}</slot>\n      </div>\n    </div>\n  </div>\n</template>\n./context\n","import { withInstall } from '../../utils/vue-utils'\nimport _Step from '../steps/src/step.vue'\n\nexport const Step = withInstall(_Step)\nexport type StepInstance = InstanceType<typeof _Step>\nexport default Step\n","import type { RenderFunction, VNode } from 'vue'\n\nexport const messageTypes = ['success', 'warning', 'error', 'strong', 'info'] as const\n\nexport type IMessageType = (typeof messageTypes)[number]\n\nexport type IMessage = string | number | VNode | RenderFunction\n\nexport interface IMessageOptions {\n  id?: string\n  message?: IMessage\n  type?: IMessageType\n  duration?: number\n  center?: boolean\n  onClose?: (vm?: VNode) => void\n  offset?: number\n  renderTo?: string | HTMLElement\n  showClose?: Boolean\n  useHTML?: Boolean\n  popupClass?: string\n}\n\nexport interface IMessageHandler {\n  close: () => void\n}\n\nexport interface IMessageCaller {\n  (options: IMessageParams): IMessageHandler\n}\n\nexport interface IMessageMethods extends IMessageCaller {\n  success(message: IMessage | IMessageOptions): IMessageHandler\n  error(message: IMessage | IMessageOptions): IMessageHandler\n  warning(message: IMessage | IMessageOptions): IMessageHandler\n  strong(message: IMessage | IMessageOptions): IMessageHandler\n  info(message: IMessage | IMessageOptions): IMessageHandler\n}\n\nexport type IMessageParams = IMessageOptions | string\n","<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { defineComponent, computed, ref, onMounted, onUnmounted } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import usePopupManager from '../../../hooks/use-popup-manager'\n  import type { IMessageType, IMessage } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Message'),\n    props: {\n      id: {\n        type: String,\n        default: ''\n      },\n      message: {\n        type: [String, Number, Object] as PropType<IMessage>,\n        default: ''\n      },\n      type: {\n        type: String as PropType<IMessageType>,\n        default: 'success'\n      },\n      duration: {\n        type: Number,\n        default: 1500\n      },\n      center: {\n        type: Boolean,\n        default: false\n      },\n      onClose: {\n        type: Function as PropType<() => void>,\n        default: () => {}\n      },\n      offset: {\n        type: Number,\n        default: 20\n      },\n      zIndex: {\n        type: Number,\n        default: 0\n      },\n      showClose: {\n        type: Boolean,\n        default: false\n      },\n      useHTML: Boolean,\n      popupClass: {\n        type: String,\n        default: undefined\n      }\n    },\n    emits: ['destroy'],\n    setup(props) {\n      const ns = getNamespace('message')\n      const cls = computed(() => {\n        return [\n          ns,\n          `${ns}--${props.type}`,\n          props.center && 'is-center',\n          props.showClose && !props.center && `${ns}__show-close`,\n          props.popupClass && props.popupClass\n        ]\n      })\n      const visible = ref(false)\n\n      let timer: any = null\n      const startTimer = () => {\n        timer = setTimeout(() => {\n          visible.value = false\n        }, props.duration)\n      }\n\n      onMounted(() => {\n        visible.value = true\n        if (props.duration !== 0) {\n          startTimer()\n        }\n      })\n\n      onUnmounted(() => {\n        clearTimeout(timer)\n      })\n\n      const { zIndex } = usePopupManager('message', { runOnMounted: true })\n\n      const styles = computed(() => {\n        return {\n          top: `${props.offset}px`,\n          zIndex: zIndex.value\n        }\n      })\n\n      const handleClose = () => {\n        visible.value = false\n      }\n\n      return {\n        ns,\n        cls,\n        styles,\n        visible,\n        handleClose\n      }\n    }\n  })\n</script>\n\n<template>\n  <transition name=\"bn-message-slide-top\" @before-leave=\"onClose\" @after-leave=\"$emit('destroy')\">\n    <div v-show=\"visible\" :class=\"cls\" :style=\"styles\">\n      <slot>\n        <span v-if=\"useHTML\" v-html=\"message\"></span>\n        <span v-else>{{ message }}</span>\n        <span v-if=\"showClose\" :class=\"[`${ns}__close-icon`]\" @click=\"handleClose\"></span>\n      </slot>\n    </div>\n  </transition>\n</template>\n","import { createVNode, render, isVNode } from 'vue'\nimport type { VNode } from 'vue'\nimport { isFunction, isObject } from '../../../utils/is'\nimport { getElement } from '../../../utils/dom'\nimport { messageTypes } from './types'\nimport type {\n  IMessageParams,\n  IMessage,\n  IMessageOptions,\n  IMessageMethods,\n  IMessageType,\n  IMessageHandler,\n  IMessageCaller\n} from './types'\nimport MessageComponent from './message.vue'\n\nconst domMap = new WeakMap()\n\nconst Message: Partial<IMessageMethods> & IMessageCaller = (\n  options: IMessageParams\n): IMessageHandler => {\n  if (typeof options === 'string' || isVNode(options)) {\n    options = {\n      message: options\n    }\n  }\n\n  const renderContainer: HTMLElement = getElement(options.renderTo || 'body') as HTMLElement\n\n  if (!domMap.has(renderContainer)) {\n    domMap.set(renderContainer, [] as VNode[])\n  }\n\n  const instances: VNode[] = domMap.get(renderContainer)\n\n  let offset = options.offset || 20\n\n  instances.forEach((vm: VNode) => {\n    offset += vm.el?.offsetHeight + 20\n  })\n\n  const userClose = options.onClose\n\n  let props: Record<string, any> = {}\n\n  const onClose = () => {\n    const index = instances.findIndex((_vm: VNode) => _vm === vm)\n    if (index < 0) return\n    const closingInstanceOffset = vm.el?.offsetHeight + 20\n    // 找到当前关闭的message实例位置 从它开始后面的message实例top都要减去当前关闭的message实例offsetHeight + 20\n    instances.slice(index + 1).forEach((_vm: VNode) => {\n      const top = _vm.component?.props.offset as number\n      _vm.component!.props.offset = top - closingInstanceOffset\n    })\n    instances.splice(index, 1)\n    userClose && userClose(vm)\n  }\n  const onDestroy = () => {\n    render(null, container)\n  }\n\n  props = { ...options, onClose, onDestroy, offset }\n\n  const vm = createVNode(\n    MessageComponent,\n    props,\n    isFunction(props.message) || isVNode(props.message)\n      ? {\n          default: isFunction(props.message) ? props.message : () => props.message\n        }\n      : null\n  )\n\n  const container = document.createElement('div')\n  render(vm, container)\n\n  if (renderContainer.tagName === 'BODY') {\n    vm.el!.style.position = 'fixed'\n  } else {\n    // TODO 获取挂在对象的position 没有的话就设置个relative\n    renderContainer!.style.position = 'relative'\n    vm.el!.style.position = 'absolute'\n  }\n\n  renderContainer!.appendChild(container.firstElementChild!)\n\n  instances.push(vm)\n\n  const close = () => {\n    ;(vm.component!.proxy as any).handleClose()\n  }\n\n  return {\n    close\n  }\n}\n\nconst registerAllMethods = () => {\n  messageTypes.forEach((method: IMessageType) => {\n    Message[method] = (message: IMessage | IMessageOptions) => {\n      if (isObject(message)) {\n        return Message({\n          type: method,\n          ...message\n        })\n      }\n      return Message({\n        message: message as string,\n        type: method\n      })\n    }\n  })\n}\n\nregisterAllMethods()\n\nexport default Message as IMessageMethods\n","import { withInstallFunction } from '../../utils/vue-utils'\nimport _Message from './src/message'\n\nexport const Message = withInstallFunction(_Message, '$message')\n\nexport * from './src/types'\n\nexport default Message\n","import type { RenderFunction, VNode } from 'vue'\n\nexport const messageBoxStaticMethods = ['info', 'success', 'warning', 'strong', 'error'] as const\n\nexport type MessageBoxStaticMethod = (typeof messageBoxStaticMethods)[number]\n\nexport type MessageBoxBeforeAction = () => boolean | Promise<boolean>\n\nexport type MessageBoxContent = string | number | VNode | RenderFunction\n\nexport interface MessageBoxOptions {\n  title?: MessageBoxContent\n  type?: MessageBoxStaticMethod\n  content?: MessageBoxContent\n  footer?: boolean | ((scoped: MessageBoxFooterScoped) => VNode)\n  okText?: string\n  cancelText?: string\n  mask?: boolean\n  maskToClose?: boolean\n  onOk?: (e: Event) => void\n  beforeOnOk?: MessageBoxBeforeAction\n  onCancel?: (e: Event) => void\n  beforeOnCancel?: MessageBoxBeforeAction\n  width?: number | string\n  height?: number | string\n  top?: number | string\n  center?: boolean\n  renderTo?: string | HTMLElement\n  hideCancel?: boolean\n  hideOk?: boolean\n  popupClass?: string\n}\n\nexport type MessageBoxFooterAction = 'cancel' | 'ok'\n\nexport interface MessageBoxFooterScoped {\n  cancel(): void\n  ok(): void\n  loadingObj?: { ok: boolean; cancel: boolean }\n}\n\nexport interface MessageBoxCaller {\n  (options: MessageBoxOptions): void\n}\n\nexport type MessageBoxChainArgs = [() => boolean | Promise<boolean>, () => void] | [() => void]\n\nexport interface MessageBoxMethodReturn {\n  ok(...args: MessageBoxChainArgs): any\n  cancel(...args: MessageBoxChainArgs): any\n}\n\nexport interface MessageBoxMethods extends MessageBoxCaller {\n  info(title: MessageBoxContent, content?: MessageBoxContent): MessageBoxMethodReturn\n  success(title: MessageBoxContent, content?: MessageBoxContent): MessageBoxMethodReturn\n  warning(title: MessageBoxContent, content?: MessageBoxContent): MessageBoxMethodReturn\n  strong(title: MessageBoxContent, content?: MessageBoxContent): MessageBoxMethodReturn\n  error(title: MessageBoxContent, content?: MessageBoxContent): MessageBoxMethodReturn\n}\n\nexport type MessageBoxMethodOption = string | MessageBoxOptions\n","import { createVNode, render, isVNode } from 'vue'\nimport type { VNode } from 'vue'\nimport _Dialog from '../../dialog/src/dialog.vue'\nimport BnButton from '../../button/src/button.vue'\nimport BnSpace from '../../space/src/space.vue'\n\nimport { BnIconWarningFill, BnIconPrompt, BnIconCheckFill, BnIconCloseFill } from '../../icon'\n\nimport { isFunction } from '../../../utils/is'\n\nimport type {\n  MessageBoxOptions,\n  MessageBoxFooterAction,\n  MessageBoxFooterScoped,\n  MessageBoxMethods,\n  MessageBoxStaticMethod,\n  MessageBoxCaller,\n  MessageBoxBeforeAction,\n  MessageBoxChainArgs,\n  MessageBoxContent\n} from './types'\nimport { messageBoxStaticMethods } from './types'\n\nconst MessageBox: Partial<MessageBoxMethods> & MessageBoxCaller = (\n  options: MessageBoxOptions\n): void => {\n  const vmMountContainer: HTMLElement = document.createElement('div')\n  const onDestroy = () => {\n    render(null, vmMountContainer)\n  }\n\n  const onBeforeCancel = (action: MessageBoxFooterAction) => {\n    if (action === 'cancel') {\n      if (options.beforeOnCancel) {\n        return options.beforeOnCancel()\n      }\n      return true\n    }\n    if (action === 'ok') {\n      if (options.beforeOnOk) {\n        return options.beforeOnOk()\n      }\n      return true\n    }\n  }\n\n  const onClose = (action: MessageBoxFooterAction, e: Event) => {\n    if (action === 'cancel') {\n      options.onCancel && options.onCancel(e)\n    }\n\n    if (action === 'ok') {\n      options.onOk && options.onOk(e)\n    }\n  }\n\n  const defaultRenderIcon = (type: MessageBoxStaticMethod) => {\n    let vnode: VNode\n    switch (type) {\n      case 'warning':\n        vnode = <BnIconWarningFill size=\"60px\" color=\"#f6c64b\" />\n        break\n      case 'strong':\n        vnode = <BnIconWarningFill size=\"60px\" color=\"#ff7125\" />\n        break\n      case 'error':\n        vnode = <BnIconCloseFill size=\"60px\" color=\"#e24f48\" />\n        break\n      case 'success':\n        vnode = <BnIconCheckFill size=\"60px\" color=\"#68d1ab\" />\n        break\n      case 'info':\n        vnode = <BnIconPrompt size=\"60px\" color=\"#2355f5\" />\n        break\n    }\n    return vnode!\n  }\n\n  const defaultHeader = () => {\n    return () => {\n      return defaultRenderIcon(options.type || 'success')\n    }\n  }\n\n  const defaultBody = () => {\n    const renderTitle = (title: any) => {\n      if (isVNode(title)) return title\n      if (isFunction(title)) {\n        const vnode = title()\n        return isVNode(vnode) ? vnode : null\n      }\n      return <div class=\"bn-message-box__title\"> {title} </div>\n    }\n\n    const renderContent = (content: any) => {\n      if (isVNode(content)) return content\n      if (isFunction(content)) {\n        const vnode = content()\n        return isVNode(vnode) ? vnode : null\n      }\n      return <div class=\"bn-message-box__content\"> {options.content} </div>\n    }\n\n    return () => (\n      <>\n        {options.title && renderTitle(options.title)}\n        {options.content && renderContent(options.content)}\n      </>\n    )\n  }\n\n  const defaultFooter = () => {\n    if (isVNode(options.footer)) return options.footer\n    if (isFunction(options.footer)) {\n      return options.footer\n    }\n\n    const cancelText = options?.cancelText || '取消'\n    const okText = options?.okText || '确认'\n    return (scoped: MessageBoxFooterScoped) => {\n      return (\n        <BnSpace size={12}>\n          {!options.hideCancel && (\n            <BnButton onClick={scoped.cancel} loading={scoped.loadingObj?.cancel}>\n              {cancelText}\n            </BnButton>\n          )}\n          {!options.hideOk && (\n            <BnButton type=\"primary\" onClick={scoped.ok} loading={scoped.loadingObj?.ok}>\n              {okText}\n            </BnButton>\n          )}\n        </BnSpace>\n      )\n    }\n  }\n\n  const vm = createVNode(\n    _Dialog,\n    {\n      messageBox: true,\n      width: options?.width ?? 460,\n      height: options?.height ?? 'auto',\n      modelValue: true,\n      renderTo: options?.renderTo,\n      center: options?.top ? false : options?.center ?? true,\n      top: options?.top ?? 0,\n      mask: options?.mask ?? true,\n      maskToClose: options?.maskToClose ?? true,\n      popupClass: options.popupClass,\n      onClose,\n      onBeforeCancel,\n      'onUpdate:modelValue': () => {\n        // hack:如果你有更好的写法 欢迎pr\n        vm.component!.props.modelValue = false\n      },\n      // 等待动画完全结束后销毁vm\n      onClosed: onDestroy,\n      onOpened: () => {}\n    },\n    {\n      title: defaultHeader(),\n      default: defaultBody(),\n      footer: defaultFooter()\n    }\n  )\n\n  render(vm, vmMountContainer)\n}\n\nconst registerAllMethods = () => {\n  messageBoxStaticMethods.forEach((method: MessageBoxStaticMethod) => {\n    MessageBox[method] = (title: MessageBoxContent, content: MessageBoxContent) => {\n      const okFnArr: Array<Function> = []\n      const cancelFnArr: Array<Function> = []\n      let _beforeOkFn: MessageBoxBeforeAction = () => true\n      let _beforeCancelFn: MessageBoxBeforeAction = () => true\n      setTimeout(() => {\n        MessageBox({\n          title,\n          content,\n          type: method,\n          beforeOnCancel: _beforeCancelFn,\n          beforeOnOk: _beforeOkFn,\n          onOk: () => {\n            okFnArr.forEach((fn) => isFunction(fn) && fn())\n          },\n          onCancel: () => {\n            cancelFnArr.forEach((fn) => isFunction(fn) && fn())\n          }\n        })\n      }, 0)\n      return {\n        ok(...args: MessageBoxChainArgs) {\n          if (args.length === 1) {\n            okFnArr.push(args[0])\n          }\n          if (args.length === 2) {\n            _beforeOkFn = args[0]\n            okFnArr.push(args[1])\n          }\n          return this\n        },\n        cancel(...args: MessageBoxChainArgs) {\n          if (args.length === 1) {\n            cancelFnArr.push(args[0])\n          }\n          if (args.length === 2) {\n            _beforeCancelFn = args[0]\n            cancelFnArr.push(args[1])\n          }\n          return this\n        }\n      }\n    }\n  })\n}\n\nregisterAllMethods()\n\nexport default MessageBox as MessageBoxMethods\n","import { withInstallFunction } from '../../utils/vue-utils'\nimport _MessageBox from './src/message-box'\n\nexport const MessageBox = withInstallFunction(_MessageBox, '$messageBox')\n\nexport default MessageBox\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport type { NotificationPosition, NotificationType } from './types'\n\nexport const notificationProps = {\n  position: {\n    type: String as PropType<NotificationPosition>,\n    default: 'top-right'\n  },\n  offset: {\n    type: Number,\n    default: 0\n  },\n  title: {\n    type: String,\n    default: ''\n  },\n  type: {\n    type: String as PropType<NotificationType>,\n    default: 'info'\n  },\n  message: {\n    type: String,\n    default: undefined\n  },\n  duration: {\n    type: Number,\n    default: 3000\n  },\n  showClose: {\n    type: Boolean,\n    default: true\n  },\n  onClose: {\n    type: Function as PropType<() => void>,\n    default: () => {}\n  },\n  renderToBody: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type NotificationProps = ExtractPropTypes<typeof notificationProps>\n","<script lang=\"ts\">\n  import { computed, defineComponent, onMounted, ref, onUnmounted } from 'vue'\n  import type { StyleValue } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n\n  import { BnIconPrompt, BnIconWarningFill, BnIconCheckFill, BnIconCloseFill } from '../../icon'\n\n  import usePopupManager from '../../../hooks/use-popup-manager'\n  import { notificationProps } from './props'\n\n  export default defineComponent({\n    name: getComponentNamespace('Notification'),\n    props: notificationProps,\n    emits: ['close', 'destroy'],\n    setup(props) {\n      const ns = getNamespace('notification')\n      const cls = computed(() => [ns, `is-${positionPropMap.value.ver}`])\n\n      const { zIndex } = usePopupManager('message', { runOnMounted: true })\n\n      const positionPropMap = computed(() => {\n        const keys = props.position.split('-')\n        return {\n          hor: keys[1],\n          ver: keys[0]\n        }\n      })\n\n      const animationClsName = computed(() => `bn-notification-slide-${positionPropMap.value.hor}`)\n\n      const positionStyle = computed(() => {\n        const style: StyleValue = {}\n        style.position = props.renderToBody ? 'fixed' : 'absolute'\n        style.zIndex = zIndex.value\n        style[positionPropMap.value.hor as 'left' | 'right'] = '20px'\n        style[positionPropMap.value.ver as 'top' | 'bottom'] = `${props.offset}px`\n        return style\n      })\n\n      const visible = ref(false)\n\n      let timer = 0\n\n      const startTimer = () => {\n        timer = setTimeout(() => {\n          visible.value = false\n        }, props.duration)\n      }\n\n      const currentIcon = computed(() => {\n        if (props.type === 'info') return BnIconPrompt\n        if (props.type === 'warning') return BnIconWarningFill\n        if (props.type === 'strong') return BnIconWarningFill\n        if (props.type === 'success') return BnIconCheckFill\n        if (props.type === 'error') return BnIconCloseFill\n        return ''\n      })\n\n      const handleClose = () => {\n        visible.value = false\n      }\n\n      onMounted(() => {\n        if (props.duration !== 0) {\n          startTimer()\n        }\n        visible.value = true\n      })\n\n      onUnmounted(() => {\n        clearTimeout(timer)\n      })\n\n      return {\n        ns,\n        cls,\n        animationClsName,\n        positionStyle,\n        visible,\n        positionPropMap,\n        currentIcon,\n        handleClose\n      }\n    }\n  })\n</script>\n\n<template>\n  <transition\n    :name=\"animationClsName\"\n    @before-leave=\"$emit('close')\"\n    @after-leave=\"$emit('destroy')\"\n  >\n    <div v-show=\"visible\" :class=\"cls\" :style=\"positionStyle\">\n      <div :class=\"[`${ns}__header`]\">\n        <component :is=\"currentIcon\" :class=\"[`${ns}__icon`, `is-${type}`]\" :size=\"18\"></component>\n        <div>\n          <div :class=\"[`${ns}__title`]\">\n            {{ title }}\n          </div>\n          <div :class=\"[`${ns}__message`]\">\n            <slot>{{ message }}</slot>\n          </div>\n        </div>\n      </div>\n\n      <span v-if=\"showClose\" :class=\"[`${ns}__close-icon`]\" @click.self=\"handleClose\"></span>\n    </div>\n  </transition>\n</template>\n","import { createVNode, isVNode, render } from 'vue'\nimport type { VNode } from 'vue'\nimport { getElement } from '../../../utils/dom'\nimport { isFunction } from '../../../utils/is'\nimport type { NotificationOptions } from './types'\nimport _Notification from './notification.vue'\n\nconst domMap = new WeakMap()\n\nconst Notification = (options: NotificationOptions) => {\n  const renderTo = getElement(options.renderTo || 'body') as HTMLElement\n  const container = document.createElement('div')\n\n  if (!domMap.get(renderTo)) {\n    domMap.set(renderTo, {})\n  }\n\n  if (!domMap.get(renderTo)[options.position!]) {\n    domMap.get(renderTo)[options.position!] = []\n  }\n  const instances: VNode[] = domMap.get(renderTo)[options.position!]\n\n  let offset = options.offset || 20\n  instances.forEach((vm: VNode) => {\n    offset += vm.el?.offsetHeight + 20\n  })\n\n  const renderToBody = renderTo.tagName === 'BODY'\n\n  if (!renderToBody) {\n    renderTo.style.position = 'relative'\n    renderTo.style.overflowX = 'hidden'\n  }\n\n  const userClose = options.onClose\n\n  const onClose = () => {\n    const index = instances.findIndex((_vm: VNode) => _vm === vm)\n    if (index < 0) return\n    const closingInstanceOffset = vm.el?.offsetHeight + 20\n    instances.slice(index + 1).forEach((_vm: VNode) => {\n      const top = _vm.component?.props.offset as number\n      _vm.component!.props.offset = top - closingInstanceOffset\n    })\n    instances.splice(index, 1)\n\n    userClose && userClose(vm)\n  }\n\n  const onDestroy = () => {\n    render(null, container)\n  }\n\n  const vm = createVNode(\n    _Notification,\n    {\n      message: options.message,\n      title: options.title,\n      type: options.type,\n      offset,\n      renderToBody,\n      position: options.position,\n      duration: options.duration ?? 3000,\n      showClose: options.showClose ?? true,\n      onClose,\n      onDestroy\n    },\n    isFunction(options.message) || isVNode(options.message)\n      ? {\n          default: isFunction(options.message) ? options.message : () => options.message\n        }\n      : null\n  )\n\n  render(vm, container)\n\n  instances.push(vm)\n\n  renderTo?.appendChild(container.firstChild!)\n}\n\nexport default Notification\n","import { withInstallFunction } from '../../utils/vue-utils'\nimport _Notification from './src/notification'\n\nexport const Notification = withInstallFunction(_Notification, '$notification')\n\nexport default Notification\n","import type { App, Plugin } from 'vue'\nimport { Button } from './components/button'\nimport { ButtonGroup } from './components/button-group'\nimport { Checkbox } from './components/checkbox'\nimport { CheckboxGroup } from './components/checkbox-group'\nimport { Radio } from './components/radio'\nimport { RadioGroup } from './components/radio-group'\nimport { Input } from './components/input'\nimport { Space } from './components/space'\nimport { Switch } from './components/switch'\nimport { Form } from './components/form'\nimport { FormItem } from './components/form-item'\nimport { Trigger } from './components/trigger'\nimport { Select } from './components/select'\nimport { Option } from './components/select-option'\nimport { Scrollbar } from './components/scrollbar'\nimport { Pagination } from './components/pagination'\nimport { Dialog } from './components/dialog'\nimport { Tooltip } from './components/tooltip'\nimport { Drawer } from './components/drawer'\nimport { Table } from './components/table'\nimport { Empty } from './components/empty'\nimport { Tabs } from './components/tabs'\nimport { TabPane } from './components/tab-pane'\nimport { Popconfirm } from './components/popconfirm'\nimport { Loading } from './components/loading'\nimport { Progress } from './components/progress'\nimport { Tag } from './components/tag'\nimport { Badge } from './components/badge'\nimport { Cascader } from './components/cascader'\nimport { Descriptions } from './components/descriptions'\nimport { DescriptionsItem } from './components/descriptions-item'\nimport { Popup } from './components/popup'\nimport { Dropdown } from './components/dropdown'\nimport { DropdownItem } from './components/dropdown-item'\nimport { DatePicker } from './components/date-picker'\nimport { Tree } from './components/tree'\nimport { TreeSelect } from './components/tree-select'\n\nimport { Timeline } from './components/timeline'\nimport { TimelineItem } from './components/timeline-item'\nimport { Steps } from './components/steps'\nimport { Step } from './components/step'\n\n// plugin\nimport { Message } from './components/message'\nimport { MessageBox } from './components/message-box'\nimport { Notification } from './components/notification'\n\n// Tripartite dependencies\n\nconst components = [\n  Button,\n  ButtonGroup,\n  Space,\n  Input,\n  Checkbox,\n  CheckboxGroup,\n  Radio,\n  RadioGroup,\n  Switch,\n  Form,\n  FormItem,\n  Trigger,\n  Select,\n  Option,\n  Scrollbar,\n  Pagination,\n  Dialog,\n  Tooltip,\n  Drawer,\n  Table,\n  Empty,\n  Tabs,\n  TabPane,\n  Popconfirm,\n  Progress,\n  Tag,\n  Badge,\n  Cascader,\n  Descriptions,\n  DescriptionsItem,\n  Popup,\n  Dropdown,\n  DropdownItem,\n  DatePicker,\n  Tree,\n  TreeSelect,\n  Timeline,\n  TimelineItem,\n  Steps,\n  Step\n] as Plugin[]\n\nconst plugins = [Message, MessageBox, Notification, Loading]\n\nconst tripartiteDependencies: Plugin[] = []\n\nexport const install = function (app: App) {\n  // 组件注册\n  components.forEach((component) => app.use(component))\n  // 插件注册\n  plugins.forEach((plugin) => app.use(plugin))\n  // 三方依赖\n  tripartiteDependencies.forEach((item) => app.use(item))\n}\n\nexport default {\n  install\n}\n"],"names":["opt","isArray","obj","isNull","isBoolean","isObject","isPromise","isString","isNumber","isUndefined","isFunction","isComponentInstance","value","isElement","element","isSameArray","a","b","i","ShapeFlags","r","vn","isComponent","type","isTextChildren","child","children","isArrayChildren","isSlotsChildren","getAllElements","includeText","_a","_b","results","item","getChildrenArray","getFirstElementFromVNode","ele","getFirstElementFromChildren","mergeFirstChild","extraProps","props","cloneVNode","_children","getFirstElement","result","withInstall","main","extra","app","comp","key","withInstallFunction","fn","name","definePropType","val","COMPONENT_PREFIX","NAMESPACE_PREFIX","COMPONENT_INSTALLED_KEY","getNamespace","getComponentNamespace","getProp","target","path","defVal","f","v","e","setProp","paths","deepClone","set","Ctor","newObj","NOOP","unitArr","addUnit","unit","str","u","upperFirstChar","text","compose","fns","args","findLastIndex","arr","callback","lastIndex","getRandom","start","end","getUniqueId","size","code","ret","genMatrix","list","row","offset","rows","sleep","delay","resolve","l$g","defineComponent","ns","styles","computed","_sfc_render","_ctx","cls","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","_cache","_createElementVNode","l$f","t$C","l$e","r$I","t$B","t$A","o$r","t$z","t$y","t$x","r$H","r$G","t$w","r$F","r$E","l$c","r$D","c$a","t$v","l$b","r$C","t$u","s$5","o$q","o$p","a$f","t$s","o$o","r$B","r$A","r$z","r$y","r$x","r$w","r$v","r$u","o$n","r$t","r$s","r$r","r$q","r$p","r$o","t$r","o$m","r$n","r$m","r$l","t$q","r$k","r$j","r$i","r$h","o$l","r$g","r$f","o$k","r$e","o$j","o$i","o$h","l$a","r$d","o$g","r$c","r$b","o$f","t$p","r$a","o$e","r$9","r$8","r$7","components","BnIconArrowDown","BnIconArrowLeft","BnIconArrowRight","BnIconArrowUp","BnIconCalendar","BnIconCaretFill","BnIconCaret","BnIconCheckFill","BnIconCheck","BnIconClock","BnIconCloseFill","BnIconClose","BnIconDelete","BnIconDocument","BnIconEmpty","BnIconFolderOpen","BnIconFolder","BnIconHide","BnIconLoading","BnIconMinus","BnIconMoreFill","BnIconPlus","BnIconPrompt","BnIconSearch","BnIconSetting","BnIconSuperArrowLeft","BnIconSuperArrowRight","BnIconView","BnIconWarningFill","BnIconWarning","BnIconAppBi","BnIconAppBuilding","BnIconAppCleat","BnIconAppCustomer","BnIconAppHome","BnIconAppMarket","BnIconAppMoney","BnIconAppOa","BnIconAppPie","BnIconAppSem","BnIconAppAddress","BnIconAppArrowUp","BnIconAppCallUp","BnIconAppCall","BnIconAppCopy","BnIconAppDownload","BnIconAppDrag","BnIconAppEdit","BnIconAppEnterprise","BnIconAppExclamationPoint","BnIconAppFax","BnIconAppIphone","BnIconAppLetter","BnIconAppLove2","BnIconAppLove","BnIconAppMinus","BnIconAppNewPage","BnIconAppOaBirthday","BnIconAppOaCircle","BnIconAppOaLocation","BnIconAppOaSend","BnIconAppOaTelephone","BnIconAppOverview","BnIconAppPc2","BnIconAppPc","BnIconAppPlus","BnIconAppQq","BnIconAppQuery","BnIconAppQuestion","BnIconAppSearch2","BnIconAppSearch","BnIconAppSetting","BnIconAppTodo","BnIconAppWechat","install","component","index$1","getCollapsedWidth","node","style","width","opacity","transform","getRealWidth","nextTick","transition","scrollWidth","resetStyle","E$2","loading","Boolean","String","setup","_createVNode","Transition","setTimeout","default","LoadingIcon","state","reactive","isLoading","instance","getCurrentInstance","execFn","event","clickFn","_d","_c","_resolveComponent","_renderSlot","_component_LoadingIcon","Button","_Button","ButtonGroup","_ButtonGroup","formContextKey","formItemContextKey","useFormItem","form","inject","formItem","checkboxGroupContextKey","checkboxProps","F$3","isChecked","indeterminate","RenderIcon","emit","slots","checkboxGroup","isGroup","selfModel","ref","model","isFocused","isShowLabel","handleChange","changeValue","validateEvent","watch","_component_RenderIcon","$event","label","_hoisted_1","Checkbox","_Checkbox","o$b","ctx","modelValue","changeEvent","provide","CheckboxGroup","_CheckboxGroup","radioGroupKey","n$4","radioGroup","radioRef","shallowRef","store","disabled","Radio","_Radio","o$9","RadioGroup","_RadioGroup","isClient","isFirefox","nativeProps","inputProps","hiddenTextarea","HIDDEN_STYLE","CONTEXT_STYLE","calculateNodeStyling","targetElement","boxSizing","paddingSize","borderSize","calcTextareaHeight","minRows","maxRows","contextStyle","height","singleRowHeight","minHeight","maxHeight","g$4","attrs","inputNs","textareaNs","mergeDisable","inputWrapperCls","showInputInnerSuffixArea","isHover","isFocus","textareaWrapperCls","isPrependGroup","isAppendGroup","containerCls","isOverLimit","containerStyle","bindOthers","acc","eyeStatus","isComposing","currentRef","inputRef","textareaRef","setNativeInputValue","computedInputValue","nativeInputValue","inputType","handleEye","hasPrefixIcon","hasSuffixIcon","hasClearableIcon","hasPasswordIcon","currentValueLength","handleInput","handleFocus","handleBlur","onCompositionstart","onCompositionupdate","onCompositionend","handleMouseEnter","handleMouseLeave","handleClear","manualInputFocus","textareaCalcStyle","textareaBaseStyle","resizeTextarea","autosize","onMounted","focus","_createCommentVNode","$slots","_Fragment","placeholder","_mergeProps","readonly","maxlength","_withModifiers","showPassword","showWordLimit","_hoisted_2","Input","_Input","direction","Number","align","fill","getMargin","getMarginStyle","isLast","marginRight","marginBottom","filter","Comment","map","index","shouldRenderSplit","split","length","Space","_Space","switchProps","m$c","checked","mergeDisabled","coreCls","blockCls","isControlled","actualValue","inlineLabel","coreStyle","switchValue","beforeChange","beforeChangeRes","trueValue","inlinePrompt","_withKeys","_toDisplayString","_component_BnIconLoading","Switch","_Switch","formProps","filterFields","fields","field","t$l","addField","removeField","resetFields","properties","clearValidate","isValidatable","hasModel","obtainValidateFields","filteredFields","doValidateField","validationErrors","validateField","modelProps","validate","error","labelWidth","handleSubmit","res","toRefs","Form","_Form","_extends","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","_getPrototypeOf","o","p","_isNativeReflectConstruct","_construct","Parent","Class","Constructor","_isNativeFunction","_wrapNativeSuper","Wrapper","formatRegExp","warning","errors","convertFieldsError","format","template","_len","_key","len","x","_","isNativeStringType","isEmptyValue","asyncParallelArray","func","total","arrLength","count","asyncSerialArray","next","original","flattenObjArr","objArr","k","AsyncValidationError","_Error","_this","asyncMap","option","_pending","reject","flattenArr","firstFields","objArrKeys","objArrLength","pending","isErrorObj","getValue","complementError","rule","oe","fieldValue","deepMerge","s","required$1","options","whitespace","urlReg","getUrlRegex","word","v4","v6seg","v6","v46Exact","v4exact","v6exact","ip","protocol","auth","ipv4","ipv6","host","domain","tld","port","regex","pattern$2","types","type$1","custom","ruleType","range","min","max","spRegexp","num","ENUM$1","enumerable$1","pattern$1","_pattern","rules","string","method","number","_boolean","regexp","integer","floatFn","array","object","ENUM","enumerable","pattern","date","dateObject","required","any","validators","newMessages","cloned","messages","Schema","descriptor","_proto","_messages","source_","oc","_this2","complete","add","_errors","messages$1","series","keys","z","errorFields","data","doIt","deep","addFullField","schema","cb","errorList","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","messageIndex","validator","formItemValidateStates","formItemProps","REGEXPS","replaceValidatorToFunction","RE","validatorFn","registerCustomValidator","ruleItem","m$a","normalizedRules","formRules","formContext","_rules","requiredRules","validateEnabled","getFilteredRule","trigger","validateState","validateMessage","formItemRef","isRequired","forItemCls","contentCls","isNested","labelStyle","contentStyle","hasLabel","initialValue","currentLabel","setValidationState","shouldShowError","onValidationFailed","onValidationSucceeded","propString","doValidate","modelName","AsyncValidator","err","isResettingField","hasCallback","resetField","context","onBeforeUnmount","_withCtx","FormItem","_FormItem","POPUP_BASE_Z_INDEX","MESSAGE_BASE_Z_INDEX","Z_INDEX_STEP","P$2","zIndex","popupManager","PopupManager","usePopupManager","visible","runOnMounted","open","close","isLastDialog","useFirstElement","firstElement","onUpdated","MapShim","getIndex","entry","class_1","entries","_i","isBrowser","global$1","requestAnimationFrame$1","trailingTimeout","throttle","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","ResizeObserverController","observer","observers","changesDetected","activeObservers","propertyName","isReflowProperty","defineConfigurable","getWindowOf","ownerGlobal","emptyRect","createRectInit","toFloat","getBordersSize","positions","position","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getHTMLElementContentRect","clientWidth","clientHeight","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","getContentRect","createReadOnlyRect","y","Constr","rect","ResizeObservation","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","observations","observation","ResizeObserver","useResizeObserver","elementRef","onResize","resizeObserver","toCamelCase","match","p1","on","handler","off","querySelector","selectors","container","getElement","selector","isScroll","getScrollBarWidth","borderLeftWidth","borderRightWidth","borderWidth","getStyle","styleName","setStyle","prop","U$1","emits","createResizeObserver","observe","destroyResizeObserver","disconnect","debounce","immediate","timer","SCROLL_KEY","Symbol","targets","createParentScrollObserver","parentElement","tagName","scrollHeight","offsetHeight","push","forEach","scrollHandler","addEventListener","removeEventListener","createContainerSizeObserver","MutationObserver","document","body","subtree","childList","attributes","triggerProps","triggerInjectionKey","getDocumentSize","html","topBody","getViewPortSize","getElementScrollRect","containerRect","getBoundaryPosition","changePosition","getFitPosition","popupPosition","triggerRect","popupRect","translate","viewPortSize","viewPortBoundary","finalPosition","fitPosition","getPopupOffset","_translate","getTransformOrigin","originX","originY","getPopupStyle","customStyle","autoFitPosition","getArrowStyle","offsetLeft","offsetTop","teleportContainer","popupContainer","containerRef","documentElement","childrenRefs","Set","triggerCtx","undefined","popupRef","popupVisible","defaultPopupVisible","popupStyle","transformStyle","arrowStyle","computedVisible","triggerCls","openedClass","arrowRef","mousePosition","top","left","delayTimer","outsideListener","cleanDelayTimer","window","clearTimeout","updateMousePosition","alignPoint","pageX","pageY","updatePopupStyle","getBoundingClientRect","bottom","right","scrollTop","scrollBottom","scrollLeft","scrollRight","getPopupRect","popupOffset","popupTranslate","autoFitTransformOrigin","transformOrigin","autoFitPopupMinWidth","minWidth","autoFitPopupWidth","showArrow","handleResize","changeVisible","update","triggerMethods","concat","handleOutsideClick","contains","removeOutsideListener","clickOutsideToClose","mounted","addChildRef","removeChildRef","handleClick","clickToClose","includes","mouseEnterDelay","handleMouseEnterWithContext","onMouseenter","mouseLeaveDelay","handleMouseLeaveWithContext","onMouseleave","handleFocusin","focusDelay","handleFocusout","onFocusout","blurToClose","handleContextmenu","preventDefault","handlePopupMouseDown","preventFocus","delete","isAnimation","onAnimationStart","handleShow","handleHide","class","onClick","onFocusin","onContextmenu","autoFixPosition","ParentScrollObserver","Teleport","renderToBody","unmountOnClose","pointerEvents","animationName","duration","_withDirectives","contentClass","content","arrowClass","_vShow","Trigger","_Trigger","BnInput","selectTriggerDomRef","inputComponentRef","multipleInputRef","multipleInputReadonly","query","multipleQuery","setBnInputHeight","multipleTagsRef","inputElement","computedPlaceholder","handleSelectTrigger","resetQuery","onInputEvent","popupTargetElement","clickOutside","el","inner","handleMultipleInput","onUnmounted","transitionEvent","multipleTagsView","clearable","card","_component_BnIconCaret","multiple","_toHandlers","_renderList","tag","_component_BnIconClose","maxTag","filterable","scrollbarProps","TRACK_SIZE","thumbProps","s$1","track_ns","trackCls","thumb_ns","thumbCls","isDragging","trackRef","thumbRef","thumbMap","mouseOffset","thumbStyle","handleThumbMouseDown","ev","handleMouseMove","handleMouseUp","handleTrackClick","_offset","getLegalOffset","m$7","Thumb","isBoth","horizontalData","verticalData","horizontalThumbRef","verticalThumbRef","_hasHorizontalScrollbar","_hasVerticalScrollbar","hasHorizontalScrollbar","hasVerticalScrollbar","getContainerSize","offsetWidth","horizontalTrackWidth","verticalTrackHeight","horizontalThumbWidth","maxHorizontalOffset","horizontalRatio","verticalThumbHeight","maxVerticalOffset","verticalRatio","verticalOffset","horizontalOffset","_e","_f","handleVerticalScroll","handleHorizontalScroll","handleScroll","$attrs","_component_ResizeObserver","hide","_createBlock","_component_Thumb","Scrollbar","_Scrollbar","l$4","imageStyle","iconSize","w","h","Empty","_Empty","selectInjectKey","o$6","selectContext","selectProps","cacheValues","optionsVns","values","createCommentVNode","ge","Array","S$3","SelectMenu","SelectTrigger","OptionsExtract","OptionsRender","mergeSize","optionValues","selectedLabelOnlySingle","multipleTags","currentSelected","cachedOptionsVmProxies","selectTriggerRef","scrollbarRef","cachedOptionsVmProxiesToArray","isEmpty","getOptionByValue","handleClosePopup","emitSelectValue","selected","handleShowPopup","optionItemCreate","optVmProxy","optionItemDestroy","optionItemSelect","origin","optionItemHoverChange","optProxy","getMultipleTags","_selected","handleTagClose","onUpdateOptionsVns","vns","whetherResetOptionVns","setSelected","optVmProxies","handleFilter","updateOptionItemToVisible","_currentSelected","visibleHeight","elHeight","_component_SelectTrigger","_component_SelectMenu","_component_Scrollbar","_component_OptionsRender","_component_Empty","_component_OptionsExtract","Select","_Select","i$8","isSelected","currentValue","_component_BnIconCheck","Option","_Option","paginationProps","t$h","showPrevMore","showNextMore","pagers","pagerCount","halfPagerCount","currentPage","pageCount","startPage","onPagerClick","newPage","pagerCountOffset","watchEffect","pager","r$6","NextIcon","canNext","PrevIcon","canPrev","r$5","pageSize","pageSizeModel","pageSizesTrans","_component_Option","pageModel","page","_page","formatter","_component_Input","o$4","pageConfig","currentPageBridge","get","newCurrentPage","pageCountBridge","pageSizeBridge","Math","ceil","handleSizeChange","newPageCount","handleCurrentChange","prev","layout","renderChildren","layoutRenderMap","jumper","LayoutComponentJumper","onChange","sizes","LayoutComponentSizes","pageSizes","LayoutComponentPrev","LayoutComponentNext","LayoutComponentPager","LayoutComponentTotal","needRenderComponents","trim","layoutName","Pagination","_Pagination","useOverflow","targetRef","isSetOverflow","originStyle","isBody","setOverflowHidden","scrollBarWidth","offsetX","resetOverflow","KEYBOARD_KEY","dialogProps","styleProps","messageBoxNs","dialogRef","teleportDisabled","dialogStyle","animation","modelVisible","mergeVisible","emitToClose","action","afterLeave","afterEnter","loadingObj","interceptClose","handleMaskClick","handleCancel","handleOk","globalKeyDownListener","handleGlobalKeyDown","addGlobalKeyDownListener","removeGlobalKeyDownListener","_Teleport","destroyOnClosed","_Transition","showHeaderBottomLine","title","showClose","Dialog","_Dialog","i$5","tooltipProps","innerVisible","defaultSlot","popupTarget","vm","renderTo","createElement","triggerTarget","triggerScrollRect","getPopupScrollRect","mini","popupTargetStyle","arrowNode","effect","backgroundColor","popupClass","createTooltip","createVNode","Popup","beforeClose","onClose","onDestroy","destroyTooltip","render","firstChild","appendChild","cursor","Tooltip","_Tooltip","drawerProps","S$2","BnButton","BnSpace","drawerRef","drawerBodyStyle","drawerStyle","fnKey","interceptFn","handleMask","showFooter","_component_BnSpace","Drawer","_Drawer","tableProps","C$3","rowHeight","uniqueIndex","_style","tableColumnTypes","tableInjectionKey","tableColumnInjectionKey","getLeft","dataColumns","getRight","useColumnFixed","column","leftFixedLastIndex","_column","rightFixedFirstIndex","fixedIndex","isLeftFixedLast","isRightFixedFirst","rowIndex","record","Object","colSpan","rowSpan","showExpandBtn","indentSize","empty","defaultEmptyFill","fixedStyle","tableContext","propHasResizing","resizeStore","horScrollPosition","scroll","fixed","isOpsType","renderContent","raw","tableCellSlot","slotName","renderCell","renderOpsMap","checkbox","isLeaf","opsStore","selectionRowKeys","toggleSelect","stopPropagation","renderIndex","renderOps","colspan","sortChange","Function","activeSort","hitColumnProp","resizable","checkboxStatus","_g","unDisabledSelection","selectionRows","allEnabledSelectionNumber","allEnabledSelectionRows","every","tData","hiddenCheckboxAll","selectAll","sortStore","activeProp","isSortPopup","handlerSort","handleSortChange","renderSortIcon","defColor","activeColor","popupDefColor","_render","CaretArrow","onPopupVisibleChange","handleSortChangeInPopup","renderTitle","tableHeaderSlot","headerSlotName","renderHeader","sortable","SorterPopup","handleMouseDown","handleThMouseDown","rowspan","I$1","columnWidth","r$3","tableColumnContext","groupColumns","initMap","Map","columnsList","handleCheckboxChange","status","hidden","assign","clear","handleConfirm","columnProps","handleUpdateColumn","_columns","updateColumnsList","sourceIndex","targetIndex","splice","dragState","dragging","clearDragState","dragSourceEvent","draggable","onDragstart","dataTransfer","effectAllowed","className","setDragImage","onDragend","dropEffect","dragTargetEvent","onDragenter","onDragover","onDrop","_createTextVNode","popupHideCallback","handlePopupVisibleChange","onHide","SettingPopup","Se","injectPrivatePropToTableData","travel","_record","splitColumns","columns","normal","cloneColumnAddProp","transformColumns","injectPrivatePropToTableColumnData","genSortFn","order","compare","reserve","v1","v2","sortFn","useSelection","selection","innerSelection","keepSelection","useSelectedKeys","toggleSelectAll","_allEnabledSelectionRows","_selection","originSelection","useColumnResize","thRefs","resizingProp","handleThMouseMoving","handleThMouseUp","clientX","useScroll","renderDataColumns","tbodyComRef","theadComRef","onTbodyScroll","setHorScrollPosition","scrollContainer","horScrollWidth","updateHorScrollPosition","sortDirection","getDirection","useSorter","sort","popup","_isSlot","prototype","toString","call","_isVNode","t$f","flattenData","renderData","renderGroupColumns","defaultSort","updateRenderData","updateRenderColumnsData","columnPropSortArray","_renderDataColumns","temp","findIndex","regroupColumns","_slot2","Component","tableLayout","ColGroup","Thead","_slot","Tr","border","columnResizable","Th","ins","$el","config","setting","SettingIcon","renderRecord","_slot3","currentKey","uniqueKey","primaryKey","Td","tableBodyStyle","renderEmpty","calcTableBodyMinWidth","join","renderBody","Tbody","renderFooter","toRef","renderTable","hover","stripe","header","footer","Loading","Table","_Table","tabsProps","tabsInjectionKey","f$5","tabs","activeKey","changeActiveKey","tabWarp","navInkStyle","arrangeStyle","navItemRefs","viewportRef","arrangeRef","translateX","prevDisabled","nextDisabled","viewportWidth","arrangeWidth","updateController","floor","boundaryProcessing","updateCenterPosition","navEl","tagWidth","updateNavInkPosition","handleSlide","arrangeNode","matcher","abs","handleNavItem","handleMouseenter","currentTarget","handleMouseleave","showNavInk","console","log","paneSlots","e$5","destroyOnHide","_activeKey","panesMap","renderTabsNavsData","from","panesKeys","computedActiveKey","addPane","uid","paneData","removePane","activeIndex","indexOf","renderPanes","hidePanes","renderNav","handleChangeActiveKey","TabNavs","paneChildren","Tabs","_Tabs","o$3","tabsContext","isActive","mergeDestroyOnHide","active","TabPane","_TabPane","popupCls","beforeOk","valid","beforeCancel","beforeLeave","_component_BnIconPrompt","_component_BnButton","popconfirmProps","removeClickOutside","onCancel","onOk","handleOutside","listenerClickOutside","popupProps","createPopup","addStyle","color","userSelect","Popconfirm","_Popconfirm","getResolveOptions","_options","background","customClass","fullScreen","createLoadingComponent","resolveOptions","mountEle","loadingRef","destroy","parentNode","removeChild","unmount","LoadingComponent","createApp","mount","cancelLoading","appendLoading","updateText","LOADING_KEY","createInstance","binding","getAttributeValue","getBindingValue","vLoading","_instance","DEFAULT_STROKE_WIDTH","computedStrokeWidth","trackStyle","getBarColor","barStyle","barBgColor","bufferStyle","percent","showText","SIZE_MAP","DEFAULT_STROKE_MAP","mergedWidth","mergedStrokeWidth","mergedPathStrokeWidth","radius","perimeter","center","getStrokeDashoffset","getStroke","trackColor","_hoisted_3","_hoisted_4","progressProps","e$4","computedPercent","toFixed","ProgressLine","strokeWidth","formatText","ProgressCircle","Progress","_Progress","tagProps","c$3","icon","_resolveDynamicComponent","closeable","Tag","_Tag","badgeProps","t$c","Badge","_Badge","cascaderInjectionKey","transDataToNodes","nodesMap","totalLevel","innerLevel","traverse","parent","level","n","pre","nodes","getNodeKey","formatModelValue","m","getCheckedStatus","nodeKeys","reg","checkedLeafOptionNumber","getLeafNodes","leafNodes","getAllLeafNodesByQuery","stack","$$1","checkStrictly","cascaderContext","events","_events","setSelectedPath","emitPath","checkedStatus","handleCheckedChange","renderContentRightIcon","renderColumns","selectedPath","renderColumn","image","TransitionGroup","ok","cancel","cascaderProps","useSelectedPath","dataTree","expandChild","getTargetNode","nodeKey","k$2","queryDataList","queryData","f$3","BasePanel","QueryPanel","nodesData","isQueryPattern","computedModelValue","pathValueToNodeKeys","setActiveKey","currentTagLabel","lastNodeKey","newData","updatePathValue","pathValue","handleQueryTag","selectMultiple","prevSelectTag","selectSingle","originPathValue","pathValues","_component_BasePanel","_component_QueryPanel","Cascader","_Cascader","descriptionsInjectionKey","span","labelAlign","valueClassName","labelClassName","renderTag","renderValue","renderLabel","descriptionsContext","cellStyle","cellHeight","valueAlginCls","labelAlginCls","addItemSpan","generateRows","totalSpan","getValueRender","scoped","valueSlotName","getLabelRender","labelSlotName","getChildren","DescriptionsItem","addRenderTag","renderRows","itemVNode","Descriptions","_Descriptions","_DescriptionsItem","i$3","expose","computedOffset","_Popup","dropdownContextKey","command","hideOnClick","placement","cacheDropdownItemMap","computedCommand","isModelCommand","vnode","currentDropdownItemData","updateCurrentDropdownItemData","handleDropdownItem","dropdownItemCreate","dropdownItemDestroy","newCommand","dropdown","dropdownChildren","divided","onShow","show","Dropdown","_Dropdown","t$8","dropdownContext","DropdownItem","_DropdownItem","c$2","computedReadonly","inputRange","rangePattern","_vModelText","rangeSeparator","datePickerProps","getYMD","_date","d","daysOfMonth","firstDateIsWeekOfMonth","diffOfDate","diff","oldYear","oldMonth","oldDate","diffOfMonth","diffOfYear","isSameDate","isSameMonth","isSameYear","getDateRangeOfWeek","weeks","dayOfWeek","week","parseWeek2DateRange","year","firstDay","std","weekOfYear","prevYear","nextYear","stdYear","prevDates","nextDates","yearStartDate","weekCounter","dateFormat","mts","all","t","genCell","cell","compareMonth","newDate","newYear","newMonth","compareYear","transToStartTimestampOfDay","dateHasInRange","dateRange","time","times","WEEKS","useDateRows","dayStartOfWeek","dateModel","disabledDate","dateRangeOfWeek","weeksCopy","move","reset","_h","_j","_k","_l","cells","days","firstDateIsWeek","startIndex","cur_y","cur_m","day","dateEffect","prevDate","prevDays","prev_y","prev_m","nextDate","next_y","next_m","j","u$2","handleCell","handleCellRowClick","isRowDisabled","handleCellMouseenter","handleCellRowMouseenter","p$2","_props","actions","handlePrevSuper","_component_BnIconSuperArrowLeft","_component_BnIconArrowLeft","_component_BnIconArrowRight","_component_BnIconSuperArrowRight","t$6","p$1","PanelHeader","PanelBody","PanelWeek","headerContent","handleYearChange","handleMonthChange","handleCellClick","_component_PanelHeader","_component_PanelBody","leftDate","rightDate","leftRows","leftWeeks","rightRows","rightWeeks","ly","lm","ry","rm","leftDateOps","rightDateOps","l","leftRet","rightRet","MONTHS","useMonthRows","u$1","t$5","pickerVisible","endsWith","transDateValue","Date","Error","dateFormatEnhanced","getTime","slice","modelValueFormat","catch","onPopupHide","onPopupShow","defaultFormat","inputLabelFormat","inputValue","stdDate","replace","some","renderMap","DatePanel","daterange","DateRangePanel","month","MonthPanel","monthrange","MonthRangePanel","WeekPanel","DateTrigger","DatePicker","_DatePicker","treeProps","treeInjectKey","t$4","slotFn","dfs","visitor","_break","nodeValueMap","nodeKeyMap","oldNode","transToFlattenNodes","seqNodeList","findParentNodeByValue","done","checkedLeafNumber","RenderSlotFunction","treeContext","showLine","showCheckbox","rootSlots","unfoldOnClickNode","checkedOnClickNode","handleNodeSelected","toggleNodeUnfoldOrFold","toggleNodeCheckStatus","handleNodeItem","hasIndentVerticalLine","indent","hasPlaceholderBottomVerticalLine","_component_Checkbox","indentIndex","useRenderFlattenNodes","originData","defaultUnfoldAll","defaultUnfoldValues","accordion","filterNodeMethod","renderFlattenNodes","flattenNodes","updateRenderFlattenNodes","exposed","parentValue","dataChildren","_nodes","cur","emitEvent","useSelected","hasUpdateSelectedEvent","innerSelectedValues","focusNodeValues","selectedValues","updateSelectedValues","useChecked","innerCheckedValues","hasUpdateCheckedEvent","checkedNodeKeys","transToNodeKeys","getAllLeafNodes","updateCheckedNodeKeys","originKeys","t$3","clickNode","updateNodes","TreeNodeComp","methods","getNodesByValues","getSelectedNodes","unfoldNodes","foldNodes","insertNodes","removeNodes","Tree","_Tree","treeSelectProps","changePopupVisible","treeRef","modelType","treeDataCache","treeRenderData","onChangeChecked","onChangeSelected","treeBindEvents","tags","originSelectedValues","filterMethod","existing","_component_Tree","_createSlots","TreeSelect","_TreeSelect","timelineProps","timelineItemProps","timelineInjectionKey","childrenName","reverse","reverseRef","lineType","lineTypeRef","componentCount","slotsDefault","getLeafCount","items","provideContext","parentCls","Timeline","_Timeline","useIndex","itemRef","parentClassName","_index","innerIndex","getParent","innerDotColor","iconCls","TimelineItem","_TimelineItem","stepsProps","stepProps","stepsInjectionKey","e$1","_current","defaultCurrent","current","innerCurrent","step","changeable","stepMap","addItem","removeItem","stepsType","Steps","_Steps","stepNumber","stepStatusCls","stepStatus","onBeforeMount","description","Step","_Step","messageTypes","r$2","startTimer","message","domMap","Message","isVNode","renderContainer","instances","userClose","_vm","closingInstanceOffset","MessageComponent","registerAllMethods","_Message","messageBoxStaticMethods","MessageBox","vmMountContainer","onBeforeCancel","beforeOnCancel","beforeOnOk","defaultRenderIcon","defaultHeader","defaultBody","defaultFooter","cancelText","okText","hideCancel","hideOk","messageBox","mask","maskToClose","onUpdate:modelValue","onClosed","onOpened","okFnArr","cancelFnArr","_beforeOkFn","_beforeCancelFn","_MessageBox","notificationProps","r$1","positionPropMap","animationClsName","positionStyle","currentIcon","handleClose","Notification","_Notification","plugins","tripartiteDependencies","plugin"],"mappings":"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","x_google_ignoreList":[112,120]}