{"version":3,"file":"build.es.ts","sources":["../src/utils/domHelper.ts","../src/utils/is.ts","../src/utils/error.ts","../src/utils/log.ts","../src/utils/nodeType.ts","../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.mjs","../node_modules/.pnpm/vue-types@4.2.1_vue@3.2.25/node_modules/vue-types/dist/vue-types.modern.js","../src/utils/propTypes.ts","../src/utils/style.ts","../src/utils/treeHelper.ts","../src/utils/uuid.ts","../src/utils/tsxHelper.tsx","../src/utils/domUtils.ts","../node_modules/.pnpm/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../src/utils/event/index.ts","../src/utils/dateUtil.ts","../src/utils/index.ts","../src/constant/index.ts","../src/package/other/component/ScHelp.vue","../src/package/other/index.ts","../node_modules/.pnpm/@vueuse+shared@9.4.0_vue@3.2.25/node_modules/@vueuse/shared/index.mjs","../node_modules/.pnpm/@vueuse+core@9.4.0_vue@3.2.25/node_modules/@vueuse/core/index.mjs","../src/package/steps/component/type.ts","../src/package/steps/component/ScSteps.vue","../src/package/steps/component/ScStep.vue","../src/package/steps/index.ts","../src/package/tabs/component/ScTabs.vue","../src/package/tabs/index.ts","../src/package/radio/components/ScRadioGroup.vue","../src/package/radio/components/ScRadioTooltipGroup.vue","../src/package/radio/index.ts","../src/package/alert/component/type.ts","../src/package/alert/component/ScAlert.vue","../src/package/alert/index.ts","../src/package/modal/hooks/useModalDraggable.ts","../src/package/button/type/index.ts","../src/hooks/useAttrs.ts","../src/utils/hextorgba.ts","../src/package/button/component/ScButton.vue","../src/package/button/index.ts","../src/tokens/scrollbar.ts","../src/package/scrollbar/component/util.ts","../src/package/scrollbar/component/thumb.ts","../src/package/scrollbar/component/thumb.vue","../src/package/scrollbar/component/bar.ts","../src/package/scrollbar/component/bar.vue","../src/package/scrollbar/component/scrollbar.ts","../src/package/scrollbar/component/scrollbar.vue","../src/package/scrollbar/index.ts","../src/package/modal/component/type.ts","../src/utils/supportsPassive.ts","../src/utils/dom/addEventListener.ts","../src/locale/en.ts","../src/locale/zh.ts","../src/hooks/useLocale.ts","../src/enums/sizeEnum.ts","../src/assets/gif/loading.gif","../src/package/loading/component/Loading.vue","../src/package/loading/component/createLoading.ts","../src/directives/loading.ts","../src/package/modal/component/ScModal.vue","../src/package/picker/locale/en_US.ts","../src/package/timePicker/locale/en_US.tsx","../src/package/datePicker/locale/en_US.tsx","../src/locale/default.tsx","../src/package/modal/component/locale.ts","../src/package/modal/component/ConfirmDialog.tsx","../node_modules/.pnpm/omit.js@2.0.2/node_modules/omit.js/es/index.js","../src/package/modal/component/Confirm.tsx","../src/hooks/core/useContext.ts","../src/package/modal/hooks/useModalContext.ts","../src/package/modal/hooks/useModal.ts","../src/package/modal/index.tsx","../src/package/select/component/type.ts","../src/utils/dom/isVisible.ts","../src/utils/raf.ts","../src/utils/dom/waitElementReady.ts","../src/package/select/component/ScSelect.vue","../src/package/select/index.ts","../src/package/table/types/column.ts","../src/package/table/hooks/uesDialog.ts","../src/package/table/component/CheckoutBtn.vue","../src/package/table/component/ColumnDialog.vue","../src/package/table/component/TableFilter.vue","../src/package/table/component/TableAction.vue","../src/package/loading/component/useLoading.ts","../src/package/loading/index.ts","../src/package/input/component/type.ts","../src/package/input/component/ScInput.vue","../src/package/input/index.ts","../src/package/ellipsis/component/type.ts","../src/package/ellipsis/component/ScEllipsis.vue","../src/package/ellipsis/index.ts","../src/package/table/component/FilterDropDown.vue","../src/package/table/component/Empty.vue","../src/package/table/component/FilterTags.vue","../src/package/table/component/Td/TdCopy.vue","../src/package/table/component/Td/TdEllipsis.vue","../src/package/table/component/Td/TdHandle.vue","../src/package/table/component/Td/TdStatus.vue","../src/package/table/component/Td/TdTooltip.vue","../src/package/table/component/Td/index.ts","../src/package/table/component/Th/ThDescribe.vue","../src/package/table/component/Th/ThUnit.vue","../src/package/table/component/Th/index.ts","../src/package/table/types/table.ts","../src/package/table/hooks/usePagination.ts","../src/package/table/hooks/useTableExpand.ts","../src/package/table/hooks/useFIlter.ts","../src/package/table/hooks/useRowSelection.ts","../src/package/table/hooks/useLoading.ts","../src/hooks/useTimeoutFn.ts","../src/package/table/hooks/useDataSource.ts","../src/package/table/hooks/useActions.ts","../src/package/table/hooks/uesColumn.ts","../src/hooks/event/useWindowSizeFn.ts","../src/hooks/core/onMountedOrActivated.ts","../src/package/table/hooks/useTableScroll.ts","../src/package/table/hooks/useTableContext.ts","../src/package/table/component/ScTable.vue","../src/package/table/hooks/useTable.ts","../src/package/table/index.ts","../src/package/inputNumber/component/type.ts","../src/package/inputNumber/component/ScInputNumber.vue","../src/package/inputNumber/index.ts","../src/package/switch/component/type.ts","../src/package/switch/component/ScSwitch.vue","../src/package/switch/index.ts","../src/package/contextMenu/component/ScContextMenu.vue","../src/package/contextMenu/component/createContextMenu.ts","../src/package/contextMenu/hooks/useContextMenu.ts","../src/package/dropdown/component/ScDropDown.vue","../src/package/dropdown/index.ts","../src/package/popconfirm/component/type.ts","../src/package/popconfirm/component/ScPopconfirm.vue","../src/package/popconfirm/index.ts","../src/package/cascader/component/type.ts","../src/package/cascader/component/ScCascader.vue","../src/package/cascader/index.ts","../node_modules/.pnpm/@vue+shared@3.2.41/node_modules/@vue/shared/dist/shared.esm-bundler.js","../src/package/cascaderPanel/utils/index.ts","../src/package/cascaderPanel/component/node-content.ts","../src/package/cascaderPanel/component/types.ts","../src/package/cascaderPanel/component/node.vue","../src/package/cascaderPanel/component/menu.vue","../src/package/cascaderPanel/component/node.ts","../src/package/cascaderPanel/component/store.ts","../src/package/cascaderPanel/component/config.ts","../src/package/cascaderPanel/component/utils.ts","../src/package/cascaderPanel/component/index.vue","../src/package/cascaderPanel/index.ts","../src/package/tag/component/type.ts","../src/package/tag/component/ScTag.vue","../src/package/tag/index.ts","../src/directives/clickOutside.ts","../src/package/scCascader/component/utils.ts","../src/package/scCascader/component/type.ts","../src/package/scCascader/component/index.vue","../src/package/scCascader/index.ts","../src/package/breadcrumb/component/type.ts","../src/package/breadcrumb/component/ScBreadcrumb.vue","../src/package/breadcrumb/component/ScBreadcrumbItem.vue","../src/package/breadcrumb/index.ts","../src/hooks/useMessage.ts","../src/enums/breakpointEnum.ts","../src/hooks/event/useBreakpoint.ts","../src/hooks/useIcon.ts","../src/utils/warning.ts","../src/utils/devWarning.ts","../src/package/form/FormItemContext.ts","../node_modules/.pnpm/vue-slider-component@4.1.0-beta.7/node_modules/vue-slider-component/dist-css/vue-slider-component.umd.min.js","../src/package/slider/component/type.ts","../src/package/slider/hooks/index.tsx","../src/package/slider/component/ScSlider.vue","../src/package/slider/index.ts","../src/package/icon/component/index.tsx","../src/package/icon/index.ts","../src/package/link/component/type.ts","../src/package/link/component/ScLink.vue","../src/package/link/index.ts","../src/package/badge/component/type.ts","../src/package/badge/component/ScBadge.vue","../src/package/badge/index.ts","../src/package/image/components/index.vue","../src/package/image/index.tsx","../src/package/picker/generate/dayjs.ts","../src/package/datePicker/PickerButton.tsx","../src/package/datePicker/PickerTag.tsx","../src/package/picker/hooks/useMergeProps.ts","../src/package/picker/PanelContext.tsx","../src/package/picker/panels/Header.tsx","../src/package/picker/panels/DecadePanel/DecadeHeader.tsx","../src/package/picker/utils/timeUtil.ts","../src/utils/classNames.ts","../src/package/picker/panels/PanelBody.tsx","../src/package/picker/panels/DecadePanel/DecadeBody.tsx","../src/utils/KeyCode.ts","../src/package/picker/utils/uiUtil.ts","../src/package/picker/panels/DecadePanel/index.tsx","../src/package/picker/utils/dateUtil.ts","../src/package/picker/panels/TimePanel/TimeHeader.tsx","../src/package/picker/panels/TimePanel/TimeUnitColumn.tsx","../src/package/picker/utils/miscUtil.ts","../src/utils/util.ts","../src/utils/isValid.ts","../src/utils/props-util/index.ts","../src/utils/vnode.ts","../src/package/picker/panels/TimePanel/TimeBody.tsx","../src/package/picker/panels/TimePanel/index.tsx","../src/package/picker/hooks/useCellClassName.ts","../src/package/picker/RangeContext.tsx","../src/package/picker/panels/DatePanel/DateBody.tsx","../src/package/picker/panels/DatePanel/DateHeader.tsx","../src/package/picker/panels/DatePanel/index.tsx","../src/package/picker/panels/DatetimePanel/index.tsx","../src/package/picker/panels/WeekPanel/index.tsx","../src/package/picker/panels/MonthPanel/MonthHeader.tsx","../src/package/picker/panels/MonthPanel/MonthBody.tsx","../src/package/picker/panels/MonthPanel/index.tsx","../src/package/picker/panels/QuarterPanel/QuarterHeader.tsx","../src/package/picker/panels/QuarterPanel/QuarterBody.tsx","../src/package/picker/panels/QuarterPanel/index.tsx","../src/package/picker/panels/YearPanel/YearHeader.tsx","../src/package/picker/panels/YearPanel/YearBody.tsx","../src/package/picker/panels/YearPanel/index.tsx","../src/package/picker/utils/getExtraFooter.tsx","../src/package/picker/utils/getRanges.tsx","../src/hooks/useMergedState.ts","../src/package/picker/PickerPanel.tsx","../src/utils/dom/contains.ts","../src/utils/getRequestAnimationFrame.ts","../src/utils/requestAnimationTimeout.ts","../src/package/trigger/Popup/interface.ts","../src/package/trigger/utils/motionUtil.ts","../src/package/trigger/Popup/Mask.tsx","../src/package/trigger/Popup/MobilePopupInner.tsx","../src/package/trigger/Popup/useVisibleStatus.ts","../src/package/trigger/Popup/useStretchStyle.ts","../node_modules/.pnpm/dom-align@1.12.4/node_modules/dom-align/dist-web/index.js","../src/package/align/util.ts","../src/package/align/hooks/useBuffer.tsx","../src/package/align/Align.tsx","../src/utils/transition.tsx","../src/package/trigger/Popup/PopupInner.tsx","../src/package/trigger/Popup/index.tsx","../src/package/trigger/utils/alignUtil.ts","../src/utils/BaseMixin.ts","../src/package/trigger/context.ts","../src/utils/Portal.tsx","../src/package/trigger/Trigger.tsx","../src/package/picker/PickerTrigger.tsx","../src/package/picker/hooks/usePickerInput.ts","../src/package/picker/hooks/useTextValueMapping.ts","../src/hooks/useMemo.ts","../src/utils/shallowequal.ts","../src/package/picker/hooks/useValueTexts.ts","../src/package/picker/hooks/useHoverValue.ts","../src/package/picker/utils/warnUtil.ts","../src/package/picker/Picker.tsx","../src/package/picker/hooks/useRangeDisabled.ts","../src/package/picker/hooks/useRangeViewDates.ts","../src/hooks/useState.ts","../src/package/picker/RangePicker.tsx","../src/package/datePicker/util.ts","../src/locale-provider/LocaleReceiver.tsx","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/extends.js","../node_modules/.pnpm/vue-types@3.0.2_vue@3.2.25/node_modules/vue-types/dist/vue-types.m.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/vue-types/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/util.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/classNames.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/vc-pagination/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/vc-calendar/src/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/time-picker/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/date-picker/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/calendar/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/locale/default.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/locale-provider/default.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/locale-provider/LocaleReceiver.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/empty/empty.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/empty/simple.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/isValid.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/props-util/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/type.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/empty/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/config-provider/renderEmpty.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/interopDefault.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/modal/locale.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/vc-util/warning.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/_util/warning.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/locale-provider/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/lib/config-provider/index.js","../src/hooks/useConfigInject.ts","../src/package/datePicker/generatePicker/props.ts","../src/package/datePicker/generatePicker/generateSinglePicker.tsx","../src/utils/omit.ts","../src/package/datePicker/generatePicker/generateRangePicker.tsx","../src/package/datePicker/generatePicker/index.tsx","../src/package/datePicker/dayjs.tsx","../src/package/timePicker/time-picker.tsx","../src/package/timePicker/dayjs.tsx","../src/package/description/component/CollapseTransition.vue","../src/package/description/component/CollapseContainer.vue","../src/package/description/component/ScDescription.vue","../src/package/description/hooks/useDescription.ts","../src/package/description/index.ts","../src/package/form/hooks/useFormItem.ts","../src/package/form/component/ApiRadioGroup.vue","../src/package/form/component/RadioButtonGroup.vue","../src/package/form/component/ApiSelect.vue","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/vue-types/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/util.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/classNames.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/isValid.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/props-util/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-resize-observer/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/type.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/supportsPassive.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/Dom/addEventListener.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-pagination/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-calendar/src/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/time-picker/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/date-picker/locale/en_US.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/locale/default.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/locale-provider/LocaleReceiver.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/empty/empty.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/empty/simple.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/empty/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/config-provider/renderEmpty.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/interopDefault.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/modal/locale.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/warning.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/warning.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/locale-provider/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/config-provider/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/hooks/useConfigInject.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/raf.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/TransBtn.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/KeyCode.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/pickAttrs.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/createRef.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/Filler.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/Item.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/ScrollBar.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/hooks/useHeights.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/hooks/useScrollTo.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/utils/isFirefox.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/hooks/useOriginScroll.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/hooks/useFrameWheel.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/hooks/useMobileTouchMove.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-virtual-list/List.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/hooks/useMemo.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/OptionList.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/Option.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/OptGroup.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/utils/legacyUtil.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/utils/commonUtil.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/utils/valueUtil.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/vnode.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/antInputDirective.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/Selector/Input.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-overflow/context.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-overflow/Item.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-overflow/RawItem.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-overflow/Overflow.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/Selector/MultipleSelector.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/Selector/SingleSelector.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/hooks/useLock.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/Selector/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/Dom/contains.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/getRequestAnimationFrame.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/requestAnimationTimeout.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/Dom/isVisible.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-align/util.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-align/hooks/useBuffer.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-align/Align.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-trigger/LazyRenderBox.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-trigger/PopupInner.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/BaseMixin.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-trigger/utils.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/transition.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-trigger/Popup.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/Portal.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-trigger/Trigger.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/SelectTrigger.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/interface/generator.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/hooks/useDelayReset.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/hooks/useSelectTriggerControl.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/hooks/useCacheDisplayValue.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/hooks/useCacheOptions.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/props-util/initDefaultProps.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/isMobile.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/generate.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/utils/warningPropsUtil.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_parent.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnset.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_customOmitClone.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/omit.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-select/Select.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/select/utils/iconUtil.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/select/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/inputProps.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/ClearableLabeledInput.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/Input.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/Group.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/isMobile.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/css-animation/Event.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/wave.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/button/buttonTypes.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/devWarning.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/button/button.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/button/button-group.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/button/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/Search.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/calculateNodeHeight.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/ResizableTextArea.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/TextArea.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/Password.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/input/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/shallowequal.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/grid/context.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/grid/Col.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/col/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toFinite.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toInteger.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/indexOf.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/component-classes.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/css-animation/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/openAnimation.js","../node_modules/.pnpm/array-tree-filter@2.1.0/node_modules/array-tree-filter/lib/index.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-cascader/Menus.js","../node_modules/.pnpm/shallow-equal@1.2.1/node_modules/shallow-equal/arrays/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-cascader/Cascader.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/cascader/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree/src/TreeNode.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree/src/util.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree/src/Tree.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree/src/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree/Tree.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree/util.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree/DirectoryTree.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree/index.js","../node_modules/.pnpm/dom-scroll-into-view@2.0.1/node_modules/dom-scroll-into-view/dist-web/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-util/Dom/class.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/strategies.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/util.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/SelectTrigger.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/Base/BaseSelector.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/_util/BaseInput.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/SearchInput.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/Selector/SingleSelector.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/Selection.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/SelectNode.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/Base/BasePopup.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/Select.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/vc-tree-select/src/index.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree-select/interface.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree-select/utils.js","../node_modules/.pnpm/ant-design-vue@2.2.8_@vue+compiler-sfc@3.3.4_vue@3.2.25/node_modules/ant-design-vue/es/tree-select/index.js","../src/package/form/component/ApiTree.vue","../src/package/form/component/ApiTreeSelect.vue","../src/package/form/component/ApiCascader.vue","../src/package/form/componentMap.ts","../src/package/form/helper.ts","../src/package/form/hooks/useLabelWidth.ts","../src/package/form/component/FormItem.vue","../src/package/form/hooks/useFormContext.ts","../src/package/form/component/FormAction.vue","../node_modules/.pnpm/deepmerge@4.2.2/node_modules/deepmerge/dist/cjs.js","../src/package/form/hooks/useFormValues.ts","../src/package/form/hooks/useAdvanced.ts","../src/package/form/hooks/useFormEvents.ts","../src/package/form/hooks/useAutoFocus.ts","../src/package/form/props.ts","../src/package/form/ScForm.vue","../src/package/form/hooks/useForm.ts","../src/package/form/index.ts","../src/package/formIp/component/type.ts","../src/package/formIp/component/ScIp.vue","../src/package/formIp/index.ts","../src/package/drawer/component/props.ts","../src/package/drawer/component/ScDrawer.vue","../src/package/drawer/component/useDrawer.ts","../src/package/drawer/index.ts","../src/package/autoComplete/component/type.ts","../src/package/autoComplete/component/index.vue","../src/package/autoComplete/index.ts","../src/package/notification/component/ScNotification.tsx","../src/package/notification/index.tsx","../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/.pnpm/@sincerecloud+sc-utils@0.0.16/node_modules/@sincerecloud/sc-utils/dist/esm/index.js","../src/package/sensitiveOperations/component/type.ts","../src/package/sensitiveOperations/component/sensitiveOperations.vue","../src/package/sensitiveOperations/index.ts","../src/directives/textCollapse.ts","../src/directives/stopEvent.ts","../src/directives/index.ts","../src/index.ts"],"sourcesContent":["import { isFunction } from \"./is\";\nexport function findParentDom<T = any> (\n  currentDom: any,\n  level: number,\n  fn: (...args: any) => any\n): T | null {\n  let count = 0;\n\n  function recursion (dom:any, countLevel: number): T | null {\n    if (!dom) {\n      return null\n    }\n    if (countLevel >= level) {\n      return null\n    }\n    if (isFunction(fn)) {\n      if (fn(dom)) {\n        return fn(dom)\n      } else {\n        return recursion(dom.parentNode, ++count)\n      }\n    } else {\n      return dom\n    }\n  }\n  if (currentDom.parentNode) {\n    return recursion(currentDom, ++count)\n  } else {\n    return currentDom\n  }\n}\nexport function findChildrenDom<T = any> (\n  currentDom: any,\n  level: number,\n  fn: (...args: any) => any\n): T | null {\n  let count = 0;\n\n  function recursion (dom:any, countLevel: number): T | null {\n    if (!dom) {\n      return null\n    }\n    if (countLevel >= level) {\n      return null\n    }\n    if (isFunction(fn)) {\n      if (fn(dom)) {\n        return fn(dom)\n      } else {\n        return recursion(dom.children, ++count)\n      }\n    } else {\n      return dom\n    }\n  }\n  if (currentDom.parentNode) {\n    return recursion(currentDom.children, ++count)\n  } else {\n    return currentDom\n  }\n}\n\n// px转rem单位\nexport const pxToRem = (px:string) => {\n  // console.log('px: ', px);\n  if (isNaN(parseFloat(px))) {\n    return px\n  }\n  return (String(px).includes('%') || String(px).includes('rem') || String(px).includes('vh') || String(px).includes('vw') || String(px).includes('vw')) ? px : px + 'px'\n}","import { pxToRem } from './domHelper';\nconst toString = Object.prototype.toString;\n\nexport function is(val: unknown, type: string) {\n  return toString.call(val) === `[object ${type}]`;\n}\n\nexport function isEmptyText <T = string> (text: T): boolean{\n  if (text === null || text === undefined || text === '') {\n    return false\n  }\n  return true\n}\n\nexport function isDef<T = unknown>(val?: T): val is T {\n  return typeof val !== 'undefined';\n}\n\nexport function isUnDef<T = unknown>(val?: T): val is T {\n  return !isDef(val);\n}\n\nexport function isObject(val: any): val is Record<any, any> {\n  return val !== null && is(val, 'Object');\n}\n\nexport function isEmpty<T = unknown>(val: T): val is T {\n  if (isArray(val) || isString(val)) {\n    return val.length === 0;\n  }\n\n  if (val instanceof Map || val instanceof Set) {\n    return val.size === 0;\n  }\n\n  if (isObject(val)) {\n    return Object.keys(val).length === 0;\n  }\n\n  return false;\n}\n\nexport function transformPxtoRem (val: string | number) {\n  const newVal = (String(val).includes('%') || String(val).includes('rem') || String(val).includes('vh') || String(val).includes('vw') || String(val).includes('px')) ? val : pxToRem(val)\n  return newVal\n}\n\nexport function isDate(val: unknown): val is Date {\n  return is(val, 'Date');\n}\n\nexport function isNull(val: unknown): val is null {\n  return val === null;\n}\n\nexport function isNullAndUnDef(val: unknown): val is null | undefined {\n  return isUnDef(val) && isNull(val);\n}\n\nexport function isNullOrUnDef(val: unknown): val is null | undefined {\n  return isUnDef(val) || isNull(val);\n}\n\nexport function isNumber(val: unknown): val is number {\n  return is(val, 'Number');\n}\n\nexport function isPromise<T = any>(val: unknown): val is Promise<T> {\n  return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\n\nexport function isString(val: unknown): val is string {\n  return is(val, 'String');\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(val: unknown): val is Function {\n  return typeof val === 'function';\n}\n\nexport function isBoolean(val: unknown): val is boolean {\n  return is(val, 'Boolean');\n}\n\nexport function isRegExp(val: unknown): val is RegExp {\n  return is(val, 'RegExp');\n}\n\nexport function isArray(val: any): val is Array<any> {\n  return val && Array.isArray(val);\n}\n\nexport function isWindow(val: any): val is Window {\n  return typeof window !== 'undefined' && is(val, 'Window');\n}\n\n// export function isElement(val: unknown): val is Element {\n//   return isObject(val) && !!val.tagName;\n// }\n\nexport function isMap(val: unknown): val is Map<any, any> {\n  return is(val, 'Map');\n}\n\nexport const isServer = typeof window === 'undefined';\n\nexport const isClient = !isServer;\n\nexport function isUrl(path: string): boolean {\n  // eslint-disable-next-line no-useless-escape\n  const reg = /^http(s)?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- .\\/?%&=]*)?/;\n  return reg.test(path);\n}\n\nexport const isStringNumber = (val: string): boolean => {\n  if (!isString(val)) {\n    return false\n  }\n  return !Number.isNaN(Number(val))\n}","import { isString } from './is'\n\nclass ElementPlusError extends Error {\n  constructor(m: string) {\n    super(m)\n    this.name = 'ElementPlusError'\n  }\n}\n\nexport function throwError(scope: string, m: string): never {\n  throw new ElementPlusError(`[${scope}] ${m}`)\n}\n\nexport function debugWarn(err: Error): void\nexport function debugWarn(scope: string, message: string): void\nexport function debugWarn(scope: string | Error, message?: string): void {\n  if (process.env.NODE_ENV !== 'production') {\n    const error: Error = isString(scope)\n      ? new ElementPlusError(`[${scope}] ${message}`)\n      : scope\n    // eslint-disable-next-line no-console\n    console.warn(error)\n  }\n}\n","const projectName = import.meta.env.VITE_GLOB_APP_TITLE;\n\nexport function warn(message: string) {\n  console.warn(`[${projectName} warn]:${message}`);\n}\n\nexport function error(message: string) {\n  throw new Error(`[${projectName} error]:${message}`);\n}\n","import type { CSSProperties } from 'vue';\n\nexport interface BasicDataNode {\n  checkable?: boolean;\n  disabled?: boolean;\n  disableCheckbox?: boolean;\n  icon?: IconType;\n  isLeaf?: boolean;\n  selectable?: boolean;\n  switcherIcon?: IconType;\n\n  /** Set style of TreeNode. This is not recommend if you don't have any force requirement */\n  class?: string;\n  style?: CSSProperties;\n  slots?: Record<string, string>;\n  [key: string]: any;\n}\n\nexport interface DataNode extends BasicDataNode {\n  children?: DataNode[];\n  key: string | number;\n  title?: any;\n}\n\nexport interface EventDataNode extends DataNode {\n  expanded?: boolean;\n  selected?: boolean;\n  checked: boolean;\n  loaded?: boolean;\n  loading?: boolean;\n  halfChecked?: boolean;\n  dragOver?: boolean;\n  dragOverGapTop?: boolean;\n  dragOverGapBottom?: boolean;\n  pos?: string;\n  active?: boolean;\n  dataRef?: DataNode;\n  parent?: DataNode;\n  eventKey?: Key; // 兼容 v2， 推荐直接用 key\n}\n\nexport type IconType = any;\n\nexport type Key = string | number;\n\n// export type NodeElement = VNode<TreeNodeProps>;\n\nexport const isElement = (e: unknown): e is Element => {\n  if (typeof Element === 'undefined') return false\n  return e instanceof Element\n}\n\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n  return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n  var ctor,prot;\n\n  if (isObject(o) === false) return false;\n\n  // If has modified constructor\n  ctor = o.constructor;\n  if (ctor === undefined) return true;\n\n  // If has modified prototype\n  prot = ctor.prototype;\n  if (isObject(prot) === false) return false;\n\n  // If constructor does not have an Object-specific method\n  if (prot.hasOwnProperty('isPrototypeOf') === false) {\n    return false;\n  }\n\n  // Most likely a plain Object\n  return true;\n}\n\nexport { isPlainObject };\n","import{isPlainObject as e}from\"is-plain-object\";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}function r(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(i[r]=e[r]);return i}const n={silent:!1,logLevel:\"warn\"},i=[\"validator\"],o=Object.prototype,a=o.toString,s=o.hasOwnProperty,u=/^\\s*function (\\w+)/;function l(e){var t;const r=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(r){const e=r.toString().match(u);return e?e[1]:\"\"}return\"\"}const c=e,f=e=>e;let d=f;if(\"production\"!==process.env.NODE_ENV){const e=\"undefined\"!=typeof console;d=e?function(e,t=n.logLevel){!1===n.silent&&console[t](`[VueTypes warn]: ${e}`)}:f}const p=(e,t)=>s.call(e,t),y=Number.isInteger||function(e){return\"number\"==typeof e&&isFinite(e)&&Math.floor(e)===e},v=Array.isArray||function(e){return\"[object Array]\"===a.call(e)},h=e=>\"[object Function]\"===a.call(e),b=e=>c(e)&&p(e,\"_vueTypes_name\"),g=e=>c(e)&&(p(e,\"type\")||[\"_vueTypes_name\",\"validator\",\"default\",\"required\"].some(t=>p(e,t)));function O(e,t){return Object.defineProperty(e.bind(t),\"__original\",{value:e})}function m(e,t,r=!1){let n,i=!0,o=\"\";n=c(e)?e:{type:e};const a=b(n)?n._vueTypes_name+\" - \":\"\";if(g(n)&&null!==n.type){if(void 0===n.type||!0===n.type)return i;if(!n.required&&void 0===t)return i;v(n.type)?(i=n.type.some(e=>!0===m(e,t,!0)),o=n.type.map(e=>l(e)).join(\" or \")):(o=l(n),i=\"Array\"===o?v(t):\"Object\"===o?c(t):\"String\"===o||\"Number\"===o||\"Boolean\"===o||\"Function\"===o?function(e){if(null==e)return\"\";const t=e.constructor.toString().match(u);return t?t[1]:\"\"}(t)===o:t instanceof n.type)}if(!i){const e=`${a}value \"${t}\" should be of type \"${o}\"`;return!1===r?(d(e),!1):e}if(p(n,\"validator\")&&h(n.validator)){const e=d,o=[];if(d=e=>{o.push(e)},i=n.validator(t),d=e,!i){const e=(o.length>1?\"* \":\"\")+o.join(\"\\n* \");return o.length=0,!1===r?(d(e),i):e}}return i}function j(e,t){const r=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get(){return this.required=!0,this}},def:{value(e){return void 0===e?(p(this,\"default\")&&delete this.default,this):h(e)||!0===m(this,e,!0)?(this.default=v(e)?()=>[...e]:c(e)?()=>Object.assign({},e):e,this):(d(`${this._vueTypes_name} - invalid default value: \"${e}\"`),this)}}}),{validator:n}=r;return h(n)&&(r.validator=O(n,r)),r}function _(e,t){const r=j(e,t);return Object.defineProperty(r,\"validate\",{value(e){return h(this.validator)&&d(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\\n${JSON.stringify(this)}`),this.validator=O(e,this),this}})}function T(e,t,n){const o=function(e){const t={};return Object.getOwnPropertyNames(e).forEach(r=>{t[r]=Object.getOwnPropertyDescriptor(e,r)}),Object.defineProperties({},t)}(t);if(o._vueTypes_name=e,!c(n))return o;const{validator:a}=n,s=r(n,i);if(h(a)){let{validator:e}=o;e&&(e=null!==(l=(u=e).__original)&&void 0!==l?l:u),o.validator=O(e?function(t){return e.call(this,t)&&a.call(this,t)}:a,o)}var u,l;return Object.assign(o,s)}function $(e){return e.replace(/^(?!\\s*$)/gm,\"  \")}const w=()=>_(\"any\",{}),P=()=>_(\"function\",{type:Function}),x=()=>_(\"boolean\",{type:Boolean}),E=()=>_(\"string\",{type:String}),N=()=>_(\"number\",{type:Number}),q=()=>_(\"array\",{type:Array}),A=()=>_(\"object\",{type:Object}),V=()=>j(\"integer\",{type:Number,validator:e=>y(e)}),S=()=>j(\"symbol\",{validator:e=>\"symbol\"==typeof e}),k=()=>({type:null});function D(e,t=\"custom validation failed\"){if(\"function\"!=typeof e)throw new TypeError(\"[VueTypes error]: You must provide a function as argument\");return j(e.name||\"<<anonymous function>>\",{type:null,validator(r){const n=e(r);return n||d(`${this._vueTypes_name} - ${t}`),n}})}function L(e){if(!v(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument.\");const t=`oneOf - value should be one of \"${e.join('\", \"')}\".`,r=e.reduce((e,t)=>{if(null!=t){const r=t.constructor;-1===e.indexOf(r)&&e.push(r)}return e},[]);return j(\"oneOf\",{type:r.length>0?r:void 0,validator(r){const n=-1!==e.indexOf(r);return n||d(t),n}})}function F(e){if(!v(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument\");let t=!1,r=[];for(let n=0;n<e.length;n+=1){const i=e[n];if(g(i)){if(b(i)&&\"oneOf\"===i._vueTypes_name&&i.type){r=r.concat(i.type);continue}if(h(i.validator)&&(t=!0),!0===i.type||!i.type){d('oneOfType - invalid usage of \"true\" or \"null\" as types.');continue}r=r.concat(i.type)}else r.push(i)}r=r.filter((e,t)=>r.indexOf(e)===t);const n=r.length>0?r:null;return j(\"oneOfType\",t?{type:n,validator(t){const r=[],n=e.some(e=>{const n=m(b(e)&&\"oneOf\"===e._vueTypes_name?e.type||null:e,t,!0);return\"string\"==typeof n&&r.push(n),!0===n});return n||d(`oneOfType - provided value does not match any of the ${r.length} passed-in validators:\\n${$(r.join(\"\\n\"))}`),n}}:{type:n})}function Y(e){return j(\"arrayOf\",{type:Array,validator(t){let r=\"\";const n=t.every(t=>(r=m(e,t,!0),!0===r));return n||d(`arrayOf - value validation error:\\n${$(r)}`),n}})}function B(e){return j(\"instanceOf\",{type:e})}function I(e){return j(\"objectOf\",{type:Object,validator(t){let r=\"\";const n=Object.keys(t).every(n=>(r=m(e,t[n],!0),!0===r));return n||d(`objectOf - value validation error:\\n${$(r)}`),n}})}function J(e){const t=Object.keys(e),r=t.filter(t=>{var r;return!(null===(r=e[t])||void 0===r||!r.required)}),n=j(\"shape\",{type:Object,validator(n){if(!c(n))return!1;const i=Object.keys(n);if(r.length>0&&r.some(e=>-1===i.indexOf(e))){const e=r.filter(e=>-1===i.indexOf(e));return d(1===e.length?`shape - required property \"${e[0]}\" is not defined.`:`shape - required properties \"${e.join('\", \"')}\" are not defined.`),!1}return i.every(r=>{if(-1===t.indexOf(r))return!0===this._vueTypes_isLoose||(d(`shape - shape definition does not include a \"${r}\" property. Allowed keys: \"${t.join('\", \"')}\".`),!1);const i=m(e[r],n[r],!0);return\"string\"==typeof i&&d(`shape - \"${r}\" property validation error:\\n ${$(i)}`),!0===i})}});return Object.defineProperty(n,\"_vueTypes_isLoose\",{writable:!0,value:!1}),Object.defineProperty(n,\"loose\",{get(){return this._vueTypes_isLoose=!0,this}}),n}const M=[\"name\",\"validate\",\"getter\"],R=/*#__PURE__*/(()=>{var e;return(e=class{static get any(){return w()}static get func(){return P().def(this.defaults.func)}static get bool(){return x().def(this.defaults.bool)}static get string(){return E().def(this.defaults.string)}static get number(){return N().def(this.defaults.number)}static get array(){return q().def(this.defaults.array)}static get object(){return A().def(this.defaults.object)}static get integer(){return V().def(this.defaults.integer)}static get symbol(){return S()}static get nullable(){return{type:null}}static extend(e){if(v(e))return e.forEach(e=>this.extend(e)),this;const{name:t,validate:n=!1,getter:i=!1}=e,o=r(e,M);if(p(this,t))throw new TypeError(`[VueTypes error]: Type \"${t}\" already defined`);const{type:a}=o;if(b(a))return delete o.type,Object.defineProperty(this,t,i?{get:()=>T(t,a,o)}:{value(...e){const r=T(t,a,o);return r.validator&&(r.validator=r.validator.bind(r,...e)),r}});let s;return s=i?{get(){const e=Object.assign({},o);return n?_(t,e):j(t,e)},enumerable:!0}:{value(...e){const r=Object.assign({},o);let i;return i=n?_(t,r):j(t,r),r.validator&&(i.validator=r.validator.bind(i,...e)),i},enumerable:!0},Object.defineProperty(this,t,s)}}).defaults={},e.sensibleDefaults=void 0,e.config=n,e.custom=D,e.oneOf=L,e.instanceOf=B,e.oneOfType=F,e.arrayOf=Y,e.objectOf=I,e.shape=J,e.utils={validate:(e,t)=>!0===m(t,e,!0),toType:(e,t,r=!1)=>r?_(e,t):j(e,t)},e})();function z(e={func:()=>{},bool:!0,string:\"\",number:0,array:()=>[],object:()=>({}),integer:0}){var r;return(r=class extends R{static get sensibleDefaults(){return t({},this.defaults)}static set sensibleDefaults(r){this.defaults=!1!==r?t({},!0!==r?r:e):{}}}).defaults=t({},e),r}class C extends(z()){}export{w as any,q as array,Y as arrayOf,x as bool,n as config,z as createTypes,D as custom,C as default,T as fromType,P as func,B as instanceOf,V as integer,k as nullable,N as number,A as object,I as objectOf,L as oneOf,F as oneOfType,J as shape,E as string,S as symbol,j as toType,_ as toValidableType,m as validateType};\n//# sourceMappingURL=vue-types.modern.js.map\n","import { CSSProperties, VNodeChild } from 'vue'\nimport { createTypes, VueTypeValidableDef, VueTypesInterface } from 'vue-types'\nimport type { PropType } from 'vue'\n\nexport type VueNode = VNodeChild | JSX.Element;\n\ntype PropTypes = VueTypesInterface & {\n  readonly style: VueTypeValidableDef<CSSProperties>;\n  readonly VNodeChild: VueTypeValidableDef<VueNode>;\n  // readonly trueBool: VueTypeValidableDef<boolean>;\n};\n\nconst PropTypes = createTypes({\n  func: undefined,\n  bool: undefined,\n  string: undefined,\n  number: undefined,\n  object: undefined,\n  integer: undefined,\n}) as PropTypes;\n\nPropTypes.extend([\n  {\n    name: 'looseBool',\n    getter: true,\n    type: Boolean,\n    default: undefined,\n  },\n  {\n    name: 'style',\n    getter: true,\n    type: [String, Object],\n    default: undefined,\n  },\n  {\n    name: 'VNodeChild',\n    getter: true,\n    type: undefined,\n  },\n]);\n\nexport const definePropType = <T>(val: any): PropType<T> => val\n\nexport { PropTypes };\n","import { isNumber, isStringNumber, isString } from \"./is\"\nimport { debugWarn } from \"./error\"\nconst SCOPE = 'utils/style'\nexport function addUnit(value?: string | number, defaultUnit = 'px') {\n  if (!value) return ''\n  if (isNumber(value) || isStringNumber(value)) {\n    return `${value}${defaultUnit}`\n  } else if (isString(value)) {\n    return value\n  }\n  debugWarn(SCOPE, 'binding value must be a string or number')\n}","interface TreeHelperConfig {\n  id: string;\n  children: string;\n  pid: string;\n}\nconst DEFAULT_CONFIG: TreeHelperConfig = {\n  id: 'id',\n  children: 'children',\n  pid: 'pid',\n};\n\nconst getConfig = (config: Partial<TreeHelperConfig>) => Object.assign({}, DEFAULT_CONFIG, config);\n\n// tree from list\nexport function listToTree<T = any>(list: any[], config: Partial<TreeHelperConfig> = {}): T[] {\n  const conf = getConfig(config) as TreeHelperConfig;\n  const nodeMap = new Map();\n  const result: T[] = [];\n  const { id, children, pid } = conf;\n\n  for (const node of list) {\n    node[children] = node[children] || [];\n    nodeMap.set(node[id], node);\n  }\n  for (const node of list) {\n    const parent = nodeMap.get(node[pid]);\n    (parent ? parent[children] : result).push(node);\n  }\n  return result;\n}\n\nexport function treeToList<T = any>(tree: any, config: Partial<TreeHelperConfig> = {}): T {\n  config = getConfig(config);\n  const { children } = config;\n  const result: any = [...tree];\n  for (let i = 0; i < result.length; i++) {\n    if (!result[i][children!]) continue;\n    result.splice(i + 1, 0, ...result[i][children!]);\n  }\n  return result;\n}\n\nexport function findNode<T = any>(\n  tree: any,\n  func: Fn,\n  config: Partial<TreeHelperConfig> = {},\n): T | null {\n  config = getConfig(config);\n  const { children } = config;\n  const list = [...tree];\n  for (const node of list) {\n    if (func(node)) return node;\n    node[children!] && list.push(...node[children!]);\n  }\n  return null;\n}\n\nexport function findNodeAll<T = any>(\n  tree: any,\n  func: Fn,\n  config: Partial<TreeHelperConfig> = {},\n): T[] {\n  config = getConfig(config);\n  const { children } = config;\n  const list = [...tree];\n  const result: T[] = [];\n  for (const node of list) {\n    func(node) && result.push(node);\n    node[children!] && list.push(...node[children!]);\n  }\n  return result;\n}\n\nexport function findPath<T = any>(\n  tree: any,\n  func: Fn,\n  config: Partial<TreeHelperConfig> = {},\n): T | T[] | null {\n  config = getConfig(config);\n  const path: T[] = [];\n  const list = [...tree];\n  const visitedSet = new Set();\n  const { children } = config;\n  while (list.length) {\n    const node = list[0];\n    if (visitedSet.has(node)) {\n      path.pop();\n      list.shift();\n    } else {\n      visitedSet.add(node);\n      node[children!] && list.unshift(...node[children!]);\n      path.push(node);\n      if (func(node)) {\n        return path;\n      }\n    }\n  }\n  return null;\n}\n\nexport function findPathAll(tree: any, func: Fn, config: Partial<TreeHelperConfig> = {}) {\n  config = getConfig(config);\n  const path: any[] = [];\n  const list = [...tree];\n  const result: any[] = [];\n  const visitedSet = new Set(),\n    { children } = config;\n  while (list.length) {\n    const node = list[0];\n    if (visitedSet.has(node)) {\n      path.pop();\n      list.shift();\n    } else {\n      visitedSet.add(node);\n      node[children!] && list.unshift(...node[children!]);\n      path.push(node);\n      func(node) && result.push([...path]);\n    }\n  }\n  return result;\n}\n\nexport function filter<T = any>(\n  tree: T[],\n  func: (n: T) => boolean,\n  config: Partial<TreeHelperConfig> = {},\n): T[] {\n  config = getConfig(config);\n  const children = config.children as string;\n  function listFilter(list: T[]) {\n    return list\n      .map((node: any) => ({ ...node }))\n      .filter((node) => {\n        node[children] = node[children] && listFilter(node[children]);\n        return func(node) || (node[children] && node[children].length);\n      });\n  }\n  return listFilter(tree);\n}\n\nexport function forEach<T = any>(\n  tree: T[],\n  func: (n: T) => any,\n  config: Partial<TreeHelperConfig> = {},\n): void {\n  config = getConfig(config);\n  const list: any[] = [...tree];\n  const { children } = config;\n  for (let i = 0; i < list.length; i++) {\n    //func 返回true就终止遍历，避免大量节点场景下无意义循环，引起浏览器卡顿\n    if (func(list[i])) {\n      return;\n    }\n    children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]);\n  }\n}\n\n/**\n * @description: Extract tree specified structure\n */\nexport function treeMap<T = any>(treeData: T[], opt: { children?: string; conversion: Fn }): T[] {\n  return treeData.map((item) => treeMapEach(item, opt));\n}\n\n/**\n * @description: Extract tree specified structure\n */\nexport function treeMapEach(\n  data: any,\n  { children = 'children', conversion }: { children?: string; conversion: Fn },\n) {\n  const haveChildren = Array.isArray(data[children]) && data[children].length > 0;\n  const conversionData = conversion(data) || {};\n  if (haveChildren) {\n    return {\n      ...conversionData,\n      [children]: data[children].map((i: number) =>\n        treeMapEach(i, {\n          children,\n          conversion,\n        }),\n      ),\n    };\n  } else {\n    return {\n      ...conversionData,\n    };\n  }\n}\n\n/**\n * 递归遍历树结构\n * @param treeDatas 树\n * @param callBack 回调\n * @param parentNode 父节点\n */\nexport function eachTree(treeDatas: any[], callBack: Fn, parentNode = {}) {\n  treeDatas.forEach((element) => {\n    const newNode = callBack(element, parentNode) || element;\n    if (element.children) {\n      eachTree(element.children, callBack, newNode);\n    }\n  });\n}\n","const hexList: string[] = [];\nfor (let i = 0; i <= 15; i++) {\n  hexList[i] = i.toString(16);\n}\n\nexport function buildUUID(): string {\n  let uuid = '';\n  for (let i = 1; i <= 36; i++) {\n    if (i === 9 || i === 14 || i === 19 || i === 24) {\n      uuid += '-';\n    } else if (i === 15) {\n      uuid += 4;\n    } else if (i === 20) {\n      uuid += hexList[(Math.random() * 4) | 8];\n    } else {\n      uuid += hexList[(Math.random() * 16) | 0];\n    }\n  }\n  return uuid.replace(/-/g, '');\n}\n\nlet unique = 0;\nexport function buildShortUUID(prefix = ''): string {\n  const time = Date.now();\n  const random = Math.floor(Math.random() * 1000000000);\n  unique++;\n  return prefix + '_' + random + unique + String(time);\n}\n","import { Slots, isVNode, Fragment } from 'vue';\nimport { isFunction } from '../utils/is';\n\n/**\n * @description:  获取插槽以防止空错误\n */\nexport function getSlot(slots: Slots, slot = 'default', data?: any) {\n  if (!slots || !Reflect.has(slots, slot)) {\n    return null;\n  }\n  if (!isFunction(slots[slot])) {\n    console.error(`${slot} is not a function!`);\n    return null;\n  }\n  const slotFn = slots[slot];\n  if (!slotFn) return null;\n  return slotFn(data);\n}\n\nexport function isEmptyElement(c) {\n  return (\n    c &&\n    (c.type === Comment ||\n      (c.type === Fragment && c.children.length === 0) ||\n      (c.type === Text && c.children.trim() === ''))\n  );\n}\n\nconst isValid = (value: any): boolean => {\n  return value !== undefined && value !== null && value !== '';\n};\n\nexport function isValidElement(element) {\n  if (Array.isArray(element) && element.length === 1) {\n    element = element[0];\n  }\n  return element && element.__v_isVNode && typeof element.type !== 'symbol'; // remove text node\n}\n\nexport const flattenChildren = (children = [], filterEmpty = true) => {\n  const temp = Array.isArray(children) ? children : [children];\n  const res = [];\n  temp.forEach(child => {\n    if (Array.isArray(child)) {\n      res.push(...flattenChildren(child, filterEmpty));\n    } else if (child && child.type === Fragment) {\n      res.push(...flattenChildren(child.children, filterEmpty));\n    } else if (child && isVNode(child)) {\n      if (filterEmpty && !isEmptyElement(child)) {\n        res.push(child);\n      } else if (!filterEmpty) {\n        res.push(child);\n      }\n    } else if (isValid(child)) {\n      res.push(child);\n    }\n  });\n  return res;\n};\n\n/**\n * 扩展 插槽\n * @param slots\n * @param excludeKeys\n */\nexport function extendSlots(slots: Slots, excludeKeys: string[] = []) {\n  const slotKeys = Object.keys(slots);\n  const ret: any = {};\n  slotKeys.map((key) => {\n    if (excludeKeys.includes(key)) {\n      return null;\n    }\n    ret[key] = (data?: any) => getSlot(slots, key, data);\n  });\n  return ret;\n}\n","export interface ViewportOffsetResult {\n  left: number;\n  top: number;\n  right: number;\n  bottom: number;\n  rightIncludeBody: number;\n  bottomIncludeBody: number;\n}\n\nexport function getPopupContainer(node?: HTMLElement): HTMLElement {\n  return (node?.parentNode as HTMLElement) ?? document.body;\n}\n\nexport function getBoundingClientRect(element: Element): DOMRect | number {\n  if (!element || !element.getBoundingClientRect) {\n    return 0;\n  }\n  return element.getBoundingClientRect();\n}\n\nfunction trim(string: string) {\n  return (string || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n}\n\n/* istanbul ignore next */\nexport function hasClass(el: Element, cls: string) {\n  if (!el || !cls) return false;\n  if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n  if (el.classList) {\n    return el.classList.contains(cls);\n  } else {\n    return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;\n  }\n}\n\n/* istanbul ignore next */\nexport function addClass(el: Element, cls: string) {\n  if (!el) return;\n  let curClass = el.className;\n  const classes = (cls || '').split(' ');\n\n  for (let i = 0, j = classes.length; i < j; i++) {\n    const clsName = classes[i];\n    if (!clsName) continue;\n\n    if (el.classList) {\n      el.classList.add(clsName);\n    } else if (!hasClass(el, clsName)) {\n      curClass += ' ' + clsName;\n    }\n  }\n  if (!el.classList) {\n    el.className = curClass;\n  }\n}\n\n/* istanbul ignore next */\nexport function removeClass(el: Element, cls: string) {\n  if (!el || !cls) return;\n  const classes = cls.split(' ');\n  let curClass = ' ' + el.className + ' ';\n\n  for (let i = 0, j = classes.length; i < j; i++) {\n    const clsName = classes[i];\n    if (!clsName) continue;\n\n    if (el.classList) {\n      el.classList.remove(clsName);\n    } else if (hasClass(el, clsName)) {\n      curClass = curClass.replace(' ' + clsName + ' ', ' ');\n    }\n  }\n  if (!el.classList) {\n    el.className = trim(curClass);\n  }\n}\n/**\n      获取当前元素的左上偏移\n  * left：最左边的元素到文档左边的距离\n  * top：元素顶部到文档顶部的距离\n  * right：元素最右边到文档右边的距离\n  * bottom：元素底部到文档底部的距离\n  * rightIncludeBody：文档最左边的元素到右边的距离\n  * bottomIncludeBody：元素底部到文档底部的距离\n *\n * @description:\n */\nexport function getViewportOffset(element: Element): ViewportOffsetResult {\n  const doc = document.documentElement;\n\n  const docScrollLeft = doc.scrollLeft;\n  const docScrollTop = doc.scrollTop;\n  const docClientLeft = doc.clientLeft;\n  const docClientTop = doc.clientTop;\n\n  const pageXOffset = window.pageXOffset;\n  const pageYOffset = window.pageYOffset;\n\n  const box = getBoundingClientRect(element);\n\n  const { left: retLeft, top: rectTop, width: rectWidth, height: rectHeight } = box as DOMRect;\n\n  const scrollLeft = (pageXOffset || docScrollLeft) - (docClientLeft || 0);\n  const scrollTop = (pageYOffset || docScrollTop) - (docClientTop || 0);\n  const offsetLeft = retLeft + pageXOffset;\n  const offsetTop = rectTop + pageYOffset;\n\n  const left = offsetLeft - scrollLeft;\n  const top = offsetTop - scrollTop;\n\n  const clientWidth = window.document.documentElement.clientWidth;\n  const clientHeight = window.document.documentElement.clientHeight;\n  return {\n    left: left,\n    top: top,\n    right: clientWidth - rectWidth - left,\n    bottom: clientHeight - rectHeight - top,\n    rightIncludeBody: clientWidth - left,\n    bottomIncludeBody: clientHeight - top,\n  };\n}\n\n/* istanbul ignore next */\nexport function on(\n  element: Element | HTMLElement | Document | Window,\n  event: string,\n  handler: EventListenerOrEventListenerObject,\n): void {\n  if (element && event && handler) {\n    element.addEventListener(event, handler, false);\n  }\n}\n\n/* istanbul ignore next */\nexport function off(\n  element: Element | HTMLElement | Document | Window,\n  event: string,\n  handler: Fn,\n): void {\n  if (element && event && handler) {\n    element.removeEventListener(event, handler, false);\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 ResizeObserver from 'resize-observer-polyfill';\n\nconst isServer = typeof window === 'undefined';\n\n/* istanbul ignore next */\nfunction resizeHandler(entries: any[]) {\n  for (const entry of entries) {\n    const listeners = entry.target.__resizeListeners__ || [];\n    if (listeners.length) {\n      listeners.forEach((fn: () => any) => {\n        fn();\n      });\n    }\n  }\n}\n\n/* istanbul ignore next */\nexport function addResizeListener(element: any, fn: () => any) {\n  if (isServer) return;\n  if (!element.__resizeListeners__) {\n    element.__resizeListeners__ = [];\n    element.__ro__ = new ResizeObserver(resizeHandler);\n    element.__ro__.observe(element);\n  }\n  element.__resizeListeners__.push(fn);\n}\n\n/* istanbul ignore next */\nexport function removeResizeListener(element: any, fn: () => any) {\n  if (!element || !element.__resizeListeners__) return;\n  element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n  if (!element.__resizeListeners__.length) {\n    element.__ro__.disconnect();\n  }\n}\n\nexport function triggerWindowResize() {\n  const event = document.createEvent('HTMLEvents');\n  event.initEvent('resize', true, true);\n  (event as any).eventType = 'message';\n  window.dispatchEvent(event);\n}\n","import dayjs from 'dayjs';\n\nconst DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';\nconst DATE_FORMAT = 'YYYY-MM-DD';\n\nexport function formatToDateTime(date?: dayjs.ConfigType, format = DATE_TIME_FORMAT): string {\n  return dayjs(date).format(format);\n}\n\nexport function formatToDate(date?: dayjs.ConfigType, format = DATE_FORMAT): string {\n  return dayjs(date).format(format);\n}\n\nexport const dateUtil = dayjs;\n","import { App, Plugin, Component, PropType, VNode, unref } from 'vue'\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\nimport { EventDataNode } from './nodeType'\nimport { isObject } from './is'\nexport * from './domHelper'\nexport * from './error'\nexport * from './is'\nexport * from './log'\nexport * from './nodeType'\nexport * from './propTypes'\nexport * from './style'\nexport * from './treeHelper'\nexport * from './uuid'\nexport * from './tsxHelper'\nexport * from './domUtils'\nexport * from './event/index'\nexport * from './dateUtil'\nexport * from './tsxHelper'\n\nconst cloneDeep = lodash\n\nexport const withInstall = <T>(component: T, alias?: string) => {\n  const comp = component as any\n  comp.install = (app: App) => {\n    app.component(comp.name || comp.displayName, component as Component);\n    if (alias) {\n      app.config.globalProperties[alias] = component;\n    }\n  }\n  return component as T & Plugin;\n}\n\nexport const isType = (source:any, typeStr: string) => {\n  return Object.prototype.toString.call(source) === '[object ' + typeStr.toLocaleUpperCase() + ']'\n}\n\nexport function deepMerge<T = any>(src: any = {}, target: any = {}): T {\n  let key: string;\n  const res: any = cloneDeep(src);\n  for (key in target) {\n    res[key] = isObject(res[key]) ? deepMerge(res[key], target[key]) : (res[key] = target[key]);\n  }\n  return res;\n}\n\nexport const definePropType = <T>(val: any): PropType<T> => val\n\nexport const iconPropType = definePropType<string | Component>([\n  String,\n  Object,\n  Function,\n])\n\nexport const tuple = <T extends string[]>(...args: T) => args;\n\nexport const tupleNum = <T extends number[]>(...args: T) => args;\n\nexport type NodeMouseEventHandler = (e: MouseEvent, node: EventDataNode) => void;\n\ndeclare type VNodeChildAtom = VNode | string | number | boolean | null | undefined | void;\nexport type VueNode = VNodeChildAtom | VNodeChildAtom[] | JSX.Element;\n\nexport function getDynamicProps<T, U>(props: T): Partial<U> {\n  const ret: Recordable = {};\n  // @ts-ignore\n  Object.keys(props).map((key) => {\n    ret[key] = unref((props as Recordable)[key]);\n  });\n\n  return ret as Partial<U>;\n}\n\nconst isBrowser = () => typeof window !== 'undefined';","export const UPDATE_MODEL_EVENT = 'update:modelValue'\nexport const CHANGE_EVENT = 'change'\nexport const INPUT_EVENT = 'input'\nexport const basePrefixCls = 'sc'\nexport const PAGE_SIZE = 10\nexport const ROW_KEY = 'key'\nexport const SELECTION_ROW_KEY = 'selectionRowKey'\nexport const PAGE_SIZE_OPTIONS = [10, 20, 50, 80, 100]\nexport const FETCH_SETTING = {\n  pageField: 'current',\n  sizeField: 'size',\n  listField: 'records',\n  totalField: 'total',\n}","<script lang=\"tsx\">\n  import type { CSSProperties, PropType } from 'vue';\n  import { defineComponent, computed, unref } from 'vue';\n  import { Tooltip } from 'ant-design-vue';\n  // import { InfoCircleOutlined } from '@ant-design/icons-vue';\n  import { getPopupContainer, isString, isArray, getSlot } from '../../../utils';\n  import { basePrefixCls } from '../../../constant'\n\n\n  const props = {\n    /**\n     * 最大宽度\n     * @default: 600px\n     */\n    maxWidth: { type: String, default: '600px' },\n    /**\n     * 是否显示序号,在 text 为 string[]情况下生效\n     * @default: false\n     */\n    showIndex: { type: Boolean },\n\n    color: { type: String },\n\n    fontSize: { type: String, default: '14px' },\n    /**\n     * 显示方向，参考 Tooltip 组件\n     */\n    placement: { type: String, default: 'right' },\n    /**\n     * 文本列表\n     */\n    text: { type: [Array, String] as PropType<string[] | string> },\n  };\n\n  export default defineComponent({\n    name: 'BzHelp',\n    components: { Tooltip },\n    props,\n    setup(props, { slots }) {\n      // const { prefixCls } = useDesign('basic-help');\n      const prefixCls = basePrefixCls + 'Basic-help'\n\n      const getTooltipStyle = computed(\n        (): CSSProperties => ({ color: props.color, fontSize: props.fontSize }),\n      );\n\n      const getOverlayStyle = computed((): CSSProperties => ({ maxWidth: props.maxWidth }));\n\n      function renderTitle() {\n        const textList = props.text;\n\n        if (isString(textList)) {\n          return <p>{textList}</p>;\n        }\n\n        if (isArray(textList)) {\n          return textList.map((text, index) => {\n            return (\n              <p key={text}>\n                <>\n                  {props.showIndex ? `${index + 1}. ` : ''}\n                  {text}\n                </>\n              </p>\n            );\n          });\n        }\n        return null;\n      }\n\n      return () => {\n        return (\n          <Tooltip\n            overlayClassName={`${prefixCls}__wrap`}\n            title={<div style={unref(getTooltipStyle)}>{renderTitle()}</div>}\n            autoAdjustOverflow={true}\n            overlayStyle={unref(getOverlayStyle)}\n            destroyTooltipOnHide={true}\n            placement={props.placement as 'right'}\n            getPopupContainer={() => getPopupContainer()}\n          >\n            <span class={prefixCls}>{getSlot(slots) || <i class=\"sc-ui sc-question-circle\"></i>}</span>\n          </Tooltip>\n        );\n      };\n    },\n  });\n</script>\n","import { withInstall } from \"../../utils/index\"\nimport scHelp from './component/ScHelp.vue'\n// import { alertProps } from \"./component/type\"\n\nexport const ScHelp = withInstall(scHelp)","import { shallowRef, watchEffect, readonly, unref, ref, isVue3, watch, customRef, effectScope, provide, inject, getCurrentScope, onScopeDispose, isRef, computed, reactive, toRefs as toRefs$1, toRef, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$b.call(b, prop))\n      __defNormalProp$9(a, prop, b[prop]);\n  if (__getOwnPropSymbols$b)\n    for (var prop of __getOwnPropSymbols$b(b)) {\n      if (__propIsEnum$b.call(b, prop))\n        __defNormalProp$9(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction computedEager(fn, options) {\n  var _a;\n  const result = shallowRef();\n  watchEffect(() => {\n    result.value = fn();\n  }, __spreadProps$6(__spreadValues$9({}, options), {\n    flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n  }));\n  return readonly(result);\n}\n\nvar _a;\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst assert = (condition, ...infos) => {\n  if (!condition)\n    console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isBoolean = (val) => typeof val === \"boolean\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isNumber = (val) => typeof val === \"number\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst isWindow = (val) => typeof window !== \"undefined\" && toString.call(val) === \"[object Window]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n  min = Math.ceil(min);\n  max = Math.floor(max);\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\n\nfunction resolveUnref(r) {\n  return typeof r === \"function\" ? r() : unref(r);\n}\n\nfunction createFilterWrapper(filter, fn) {\n  function wrapper(...args) {\n    filter(() => fn.apply(this, args), { fn, thisArg: this, args });\n  }\n  return wrapper;\n}\nconst bypassFilter = (invoke) => {\n  return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n  let timer;\n  let maxTimer;\n  const filter = (invoke) => {\n    const duration = resolveUnref(ms);\n    const maxDuration = resolveUnref(options.maxWait);\n    if (timer)\n      clearTimeout(timer);\n    if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n      if (maxTimer) {\n        clearTimeout(maxTimer);\n        maxTimer = null;\n      }\n      return invoke();\n    }\n    if (maxDuration && !maxTimer) {\n      maxTimer = setTimeout(() => {\n        if (timer)\n          clearTimeout(timer);\n        maxTimer = null;\n        invoke();\n      }, maxDuration);\n    }\n    timer = setTimeout(() => {\n      if (maxTimer)\n        clearTimeout(maxTimer);\n      maxTimer = null;\n      invoke();\n    }, duration);\n  };\n  return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true) {\n  let lastExec = 0;\n  let timer;\n  let isLeading = true;\n  const clear = () => {\n    if (timer) {\n      clearTimeout(timer);\n      timer = void 0;\n    }\n  };\n  const filter = (invoke) => {\n    const duration = resolveUnref(ms);\n    const elapsed = Date.now() - lastExec;\n    clear();\n    if (duration <= 0) {\n      lastExec = Date.now();\n      return invoke();\n    }\n    if (elapsed > duration && (leading || !isLeading)) {\n      lastExec = Date.now();\n      invoke();\n    } else if (trailing) {\n      timer = setTimeout(() => {\n        lastExec = Date.now();\n        isLeading = true;\n        clear();\n        invoke();\n      }, duration - elapsed);\n    }\n    if (!leading && !timer)\n      timer = setTimeout(() => isLeading = true, duration);\n    isLeading = false;\n  };\n  return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n  const isActive = ref(true);\n  function pause() {\n    isActive.value = false;\n  }\n  function resume() {\n    isActive.value = true;\n  }\n  const eventFilter = (...args) => {\n    if (isActive.value)\n      extendFilter(...args);\n  };\n  return { isActive, pause, resume, eventFilter };\n}\n\nfunction __onlyVue3(name = \"this function\") {\n  if (isVue3)\n    return;\n  throw new Error(`[VueUse] ${name} is only works on Vue 3.`);\n}\nconst directiveHooks = {\n  mounted: isVue3 ? \"mounted\" : \"inserted\",\n  updated: isVue3 ? \"updated\" : \"componentUpdated\",\n  unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n  return new Promise((resolve, reject) => {\n    if (throwOnTimeout)\n      setTimeout(() => reject(reason), ms);\n    else\n      setTimeout(resolve, ms);\n  });\n}\nfunction identity(arg) {\n  return arg;\n}\nfunction createSingletonPromise(fn) {\n  let _promise;\n  function wrapper() {\n    if (!_promise)\n      _promise = fn();\n    return _promise;\n  }\n  wrapper.reset = async () => {\n    const _prev = _promise;\n    _promise = void 0;\n    if (_prev)\n      await _prev;\n  };\n  return wrapper;\n}\nfunction invoke(fn) {\n  return fn();\n}\nfunction containsProp(obj, ...props) {\n  return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n  var _a;\n  if (typeof target === \"number\")\n    return target + delta;\n  const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n  const unit = target.slice(value.length);\n  const result = parseFloat(value) + delta;\n  if (Number.isNaN(result))\n    return target;\n  return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n  return keys.reduce((n, k) => {\n    if (k in obj) {\n      if (!omitUndefined || obj[k] !== void 0)\n        n[k] = obj[k];\n    }\n    return n;\n  }, {});\n}\n\nfunction computedWithControl(source, fn) {\n  let v = void 0;\n  let track;\n  let trigger;\n  const dirty = ref(true);\n  const update = () => {\n    dirty.value = true;\n    trigger();\n  };\n  watch(source, update, { flush: \"sync\" });\n  const get = isFunction(fn) ? fn : fn.get;\n  const set = isFunction(fn) ? void 0 : fn.set;\n  const result = customRef((_track, _trigger) => {\n    track = _track;\n    trigger = _trigger;\n    return {\n      get() {\n        if (dirty.value) {\n          v = get();\n          dirty.value = false;\n        }\n        track();\n        return v;\n      },\n      set(v2) {\n        set == null ? void 0 : set(v2);\n      }\n    };\n  });\n  if (Object.isExtensible(result))\n    result.trigger = update;\n  return result;\n}\n\nfunction createEventHook() {\n  const fns = [];\n  const off = (fn) => {\n    const index = fns.indexOf(fn);\n    if (index !== -1)\n      fns.splice(index, 1);\n  };\n  const on = (fn) => {\n    fns.push(fn);\n    return {\n      off: () => off(fn)\n    };\n  };\n  const trigger = (param) => {\n    fns.forEach((fn) => fn(param));\n  };\n  return {\n    on,\n    off,\n    trigger\n  };\n}\n\nfunction createGlobalState(stateFactory) {\n  let initialized = false;\n  let state;\n  const scope = effectScope(true);\n  return () => {\n    if (!initialized) {\n      state = scope.run(stateFactory);\n      initialized = true;\n    }\n    return state;\n  };\n}\n\nfunction createInjectionState(composable) {\n  const key = Symbol(\"InjectionState\");\n  const useProvidingState = (...args) => {\n    provide(key, composable(...args));\n  };\n  const useInjectedState = () => inject(key);\n  return [useProvidingState, useInjectedState];\n}\n\nfunction tryOnScopeDispose(fn) {\n  if (getCurrentScope()) {\n    onScopeDispose(fn);\n    return true;\n  }\n  return false;\n}\n\nfunction createSharedComposable(composable) {\n  let subscribers = 0;\n  let state;\n  let scope;\n  const dispose = () => {\n    subscribers -= 1;\n    if (scope && subscribers <= 0) {\n      scope.stop();\n      state = void 0;\n      scope = void 0;\n    }\n  };\n  return (...args) => {\n    subscribers += 1;\n    if (!state) {\n      scope = effectScope(true);\n      state = scope.run(() => composable(...args));\n    }\n    tryOnScopeDispose(dispose);\n    return state;\n  };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n  __onlyVue3();\n  for (const [key, value] of Object.entries(extend)) {\n    if (key === \"value\")\n      continue;\n    if (isRef(value) && unwrap) {\n      Object.defineProperty(ref, key, {\n        get() {\n          return value.value;\n        },\n        set(v) {\n          value.value = v;\n        },\n        enumerable\n      });\n    } else {\n      Object.defineProperty(ref, key, { value, enumerable });\n    }\n  }\n  return ref;\n}\n\nfunction get(obj, key) {\n  if (key == null)\n    return unref(obj);\n  return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n  return unref(v) != null;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$a.call(b, prop))\n      __defNormalProp$8(a, prop, b[prop]);\n  if (__getOwnPropSymbols$a)\n    for (var prop of __getOwnPropSymbols$a(b)) {\n      if (__propIsEnum$a.call(b, prop))\n        __defNormalProp$8(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction makeDestructurable(obj, arr) {\n  if (typeof Symbol !== \"undefined\") {\n    const clone = __spreadValues$8({}, obj);\n    Object.defineProperty(clone, Symbol.iterator, {\n      enumerable: false,\n      value() {\n        let index = 0;\n        return {\n          next: () => ({\n            value: arr[index++],\n            done: index > arr.length\n          })\n        };\n      }\n    });\n    return clone;\n  } else {\n    return Object.assign([...arr], obj);\n  }\n}\n\nfunction reactify(fn, options) {\n  const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : resolveUnref;\n  return function(...args) {\n    return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n  };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n  let keys = [];\n  let options;\n  if (Array.isArray(optionsOrKeys)) {\n    keys = optionsOrKeys;\n  } else {\n    options = optionsOrKeys;\n    const { includeOwnProperties = true } = optionsOrKeys;\n    keys.push(...Object.keys(obj));\n    if (includeOwnProperties)\n      keys.push(...Object.getOwnPropertyNames(obj));\n  }\n  return Object.fromEntries(keys.map((key) => {\n    const value = obj[key];\n    return [\n      key,\n      typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n    ];\n  }));\n}\n\nfunction toReactive(objectRef) {\n  if (!isRef(objectRef))\n    return reactive(objectRef);\n  const proxy = new Proxy({}, {\n    get(_, p, receiver) {\n      return unref(Reflect.get(objectRef.value, p, receiver));\n    },\n    set(_, p, value) {\n      if (isRef(objectRef.value[p]) && !isRef(value))\n        objectRef.value[p].value = value;\n      else\n        objectRef.value[p] = value;\n      return true;\n    },\n    deleteProperty(_, p) {\n      return Reflect.deleteProperty(objectRef.value, p);\n    },\n    has(_, p) {\n      return Reflect.has(objectRef.value, p);\n    },\n    ownKeys() {\n      return Object.keys(objectRef.value);\n    },\n    getOwnPropertyDescriptor() {\n      return {\n        enumerable: true,\n        configurable: true\n      };\n    }\n  });\n  return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n  return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n  const flatKeys = keys.flat();\n  return reactiveComputed(() => Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nfunction reactivePick(obj, ...keys) {\n  const flatKeys = keys.flat();\n  return reactive(Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n  return customRef((track, trigger) => {\n    let value = defaultValue;\n    let timer;\n    const resetAfter = () => setTimeout(() => {\n      value = defaultValue;\n      trigger();\n    }, resolveUnref(afterMs));\n    tryOnScopeDispose(() => {\n      clearTimeout(timer);\n    });\n    return {\n      get() {\n        track();\n        return value;\n      },\n      set(newValue) {\n        value = newValue;\n        trigger();\n        clearTimeout(timer);\n        timer = resetAfter();\n      }\n    };\n  });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n  return createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n  const debounced = ref(value.value);\n  const updater = useDebounceFn(() => {\n    debounced.value = value.value;\n  }, ms, options);\n  watch(value, () => updater());\n  return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n  return computed({\n    get() {\n      var _a;\n      return (_a = source.value) != null ? _a : defaultValue;\n    },\n    set(value) {\n      source.value = value;\n    }\n  });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true) {\n  return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n  if (delay <= 0)\n    return value;\n  const throttled = ref(value.value);\n  const updater = useThrottleFn(() => {\n    throttled.value = value.value;\n  }, delay, trailing, leading);\n  watch(value, () => updater());\n  return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n  let source = initial;\n  let track;\n  let trigger;\n  const ref = customRef((_track, _trigger) => {\n    track = _track;\n    trigger = _trigger;\n    return {\n      get() {\n        return get();\n      },\n      set(v) {\n        set(v);\n      }\n    };\n  });\n  function get(tracking = true) {\n    if (tracking)\n      track();\n    return source;\n  }\n  function set(value, triggering = true) {\n    var _a, _b;\n    if (value === source)\n      return;\n    const old = source;\n    if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n      return;\n    source = value;\n    (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n    if (triggering)\n      trigger();\n  }\n  const untrackedGet = () => get(false);\n  const silentSet = (v) => set(v, false);\n  const peek = () => get(false);\n  const lay = (v) => set(v, false);\n  return extendRef(ref, {\n    get,\n    set,\n    untrackedGet,\n    silentSet,\n    peek,\n    lay\n  }, { enumerable: true });\n}\nconst controlledRef = refWithControl;\n\nfunction resolveRef(r) {\n  return typeof r === \"function\" ? computed(r) : ref(r);\n}\n\nfunction set(...args) {\n  if (args.length === 2) {\n    const [ref, value] = args;\n    ref.value = value;\n  }\n  if (args.length === 3) {\n    if (isVue2) {\n      set$1(...args);\n    } else {\n      const [target, key, value] = args;\n      target[key] = value;\n    }\n  }\n}\n\nfunction syncRef(left, right, options = {}) {\n  var _a, _b;\n  const {\n    flush = \"sync\",\n    deep = false,\n    immediate = true,\n    direction = \"both\",\n    transform = {}\n  } = options;\n  let watchLeft;\n  let watchRight;\n  const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n  const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n  if (direction === \"both\" || direction === \"ltr\") {\n    watchLeft = watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });\n  }\n  if (direction === \"both\" || direction === \"rtl\") {\n    watchRight = watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });\n  }\n  return () => {\n    watchLeft == null ? void 0 : watchLeft();\n    watchRight == null ? void 0 : watchRight();\n  };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n  const {\n    flush = \"sync\",\n    deep = false,\n    immediate = true\n  } = options;\n  if (!Array.isArray(targets))\n    targets = [targets];\n  return watch(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$9.call(b, prop))\n      __defNormalProp$7(a, prop, b[prop]);\n  if (__getOwnPropSymbols$9)\n    for (var prop of __getOwnPropSymbols$9(b)) {\n      if (__propIsEnum$9.call(b, prop))\n        __defNormalProp$7(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction toRefs(objectRef) {\n  if (!isRef(objectRef))\n    return toRefs$1(objectRef);\n  const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};\n  for (const key in objectRef.value) {\n    result[key] = customRef(() => ({\n      get() {\n        return objectRef.value[key];\n      },\n      set(v) {\n        if (Array.isArray(objectRef.value)) {\n          const copy = [...objectRef.value];\n          copy[key] = v;\n          objectRef.value = copy;\n        } else {\n          const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });\n          Object.setPrototypeOf(newObject, objectRef.value);\n          objectRef.value = newObject;\n        }\n      }\n    }));\n  }\n  return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n  if (getCurrentInstance())\n    onBeforeMount(fn);\n  else if (sync)\n    fn();\n  else\n    nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n  if (getCurrentInstance())\n    onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n  if (getCurrentInstance())\n    onMounted(fn);\n  else if (sync)\n    fn();\n  else\n    nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n  if (getCurrentInstance())\n    onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n  function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n    let stop = null;\n    const watcher = new Promise((resolve) => {\n      stop = watch(r, (v) => {\n        if (condition(v) !== isNot) {\n          stop == null ? void 0 : stop();\n          resolve(v);\n        }\n      }, {\n        flush,\n        deep,\n        immediate: true\n      });\n    });\n    const promises = [watcher];\n    if (timeout != null) {\n      promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));\n    }\n    return Promise.race(promises);\n  }\n  function toBe(value, options) {\n    if (!isRef(value))\n      return toMatch((v) => v === value, options);\n    const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n    let stop = null;\n    const watcher = new Promise((resolve) => {\n      stop = watch([r, value], ([v1, v2]) => {\n        if (isNot !== (v1 === v2)) {\n          stop == null ? void 0 : stop();\n          resolve(v1);\n        }\n      }, {\n        flush,\n        deep,\n        immediate: true\n      });\n    });\n    const promises = [watcher];\n    if (timeout != null) {\n      promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {\n        stop == null ? void 0 : stop();\n        return resolveUnref(r);\n      }));\n    }\n    return Promise.race(promises);\n  }\n  function toBeTruthy(options) {\n    return toMatch((v) => Boolean(v), options);\n  }\n  function toBeNull(options) {\n    return toBe(null, options);\n  }\n  function toBeUndefined(options) {\n    return toBe(void 0, options);\n  }\n  function toBeNaN(options) {\n    return toMatch(Number.isNaN, options);\n  }\n  function toContains(value, options) {\n    return toMatch((v) => {\n      const array = Array.from(v);\n      return array.includes(value) || array.includes(resolveUnref(value));\n    }, options);\n  }\n  function changed(options) {\n    return changedTimes(1, options);\n  }\n  function changedTimes(n = 1, options) {\n    let count = -1;\n    return toMatch(() => {\n      count += 1;\n      return count >= n;\n    }, options);\n  }\n  if (Array.isArray(resolveUnref(r))) {\n    const instance = {\n      toMatch,\n      toContains,\n      changed,\n      changedTimes,\n      get not() {\n        return createUntil(r, !isNot);\n      }\n    };\n    return instance;\n  } else {\n    const instance = {\n      toMatch,\n      toBe,\n      toBeTruthy,\n      toBeNull,\n      toBeNaN,\n      toBeUndefined,\n      changed,\n      changedTimes,\n      get not() {\n        return createUntil(r, !isNot);\n      }\n    };\n    return instance;\n  }\n}\nfunction until(r) {\n  return createUntil(r);\n}\n\nfunction useArrayEvery(list, fn) {\n  return computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n  return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n  return computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayFindIndex(list, fn) {\n  return computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayJoin(list, separator) {\n  return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n  return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n  const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);\n  return computed(() => {\n    const resolved = resolveUnref(list);\n    return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);\n  });\n}\n\nfunction useArraySome(list, fn) {\n  return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n  const count = ref(initialValue);\n  const {\n    max = Infinity,\n    min = -Infinity\n  } = options;\n  const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n  const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n  const get = () => count.value;\n  const set = (val) => count.value = Math.max(min, Math.min(max, val));\n  const reset = (val = initialValue) => {\n    initialValue = val;\n    return set(val);\n  };\n  return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nconst defaultMeridiem = (hours, minutes, isLowercase, hasPeriod) => {\n  let m = hours < 12 ? \"AM\" : \"PM\";\n  if (hasPeriod)\n    m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n  return isLowercase ? m.toLowerCase() : m;\n};\nconst formatDate = (date, formatStr, options = {}) => {\n  var _a;\n  const years = date.getFullYear();\n  const month = date.getMonth();\n  const days = date.getDate();\n  const hours = date.getHours();\n  const minutes = date.getMinutes();\n  const seconds = date.getSeconds();\n  const milliseconds = date.getMilliseconds();\n  const day = date.getDay();\n  const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n  const matches = {\n    YY: () => String(years).slice(-2),\n    YYYY: () => years,\n    M: () => month + 1,\n    MM: () => `${month + 1}`.padStart(2, \"0\"),\n    MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n    MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n    D: () => String(days),\n    DD: () => `${days}`.padStart(2, \"0\"),\n    H: () => String(hours),\n    HH: () => `${hours}`.padStart(2, \"0\"),\n    h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n    hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n    m: () => String(minutes),\n    mm: () => `${minutes}`.padStart(2, \"0\"),\n    s: () => String(seconds),\n    ss: () => `${seconds}`.padStart(2, \"0\"),\n    SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n    d: () => day,\n    dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n    ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n    dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n    A: () => meridiem(hours, minutes),\n    AA: () => meridiem(hours, minutes, false, true),\n    a: () => meridiem(hours, minutes, true),\n    aa: () => meridiem(hours, minutes, true, true)\n  };\n  return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());\n};\nconst normalizeDate = (date) => {\n  if (date === null)\n    return new Date(NaN);\n  if (date === void 0)\n    return new Date();\n  if (date instanceof Date)\n    return new Date(date);\n  if (typeof date === \"string\" && !/Z$/i.test(date)) {\n    const d = date.match(REGEX_PARSE);\n    if (d) {\n      const m = d[2] - 1 || 0;\n      const ms = (d[7] || \"0\").substring(0, 3);\n      return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n    }\n  }\n  return new Date(date);\n};\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n  return computed(() => formatDate(normalizeDate(resolveUnref(date)), resolveUnref(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n  const {\n    immediate = true,\n    immediateCallback = false\n  } = options;\n  let timer = null;\n  const isActive = ref(false);\n  function clean() {\n    if (timer) {\n      clearInterval(timer);\n      timer = null;\n    }\n  }\n  function pause() {\n    isActive.value = false;\n    clean();\n  }\n  function resume() {\n    if (unref(interval) <= 0)\n      return;\n    isActive.value = true;\n    if (immediateCallback)\n      cb();\n    clean();\n    timer = setInterval(cb, resolveUnref(interval));\n  }\n  if (immediate && isClient)\n    resume();\n  if (isRef(interval)) {\n    const stopWatch = watch(interval, () => {\n      if (isActive.value && isClient)\n        resume();\n    });\n    tryOnScopeDispose(stopWatch);\n  }\n  tryOnScopeDispose(pause);\n  return {\n    isActive,\n    pause,\n    resume\n  };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$8.call(b, prop))\n      __defNormalProp$6(a, prop, b[prop]);\n  if (__getOwnPropSymbols$8)\n    for (var prop of __getOwnPropSymbols$8(b)) {\n      if (__propIsEnum$8.call(b, prop))\n        __defNormalProp$6(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n  const {\n    controls: exposeControls = false,\n    immediate = true,\n    callback\n  } = options;\n  const counter = ref(0);\n  const update = () => counter.value += 1;\n  const controls = useIntervalFn(callback ? () => {\n    update();\n    callback(counter.value);\n  } : update, interval, { immediate });\n  if (exposeControls) {\n    return __spreadValues$6({\n      counter\n    }, controls);\n  } else {\n    return counter;\n  }\n}\n\nfunction useLastChanged(source, options = {}) {\n  var _a;\n  const ms = ref((_a = options.initialValue) != null ? _a : null);\n  watch(source, () => ms.value = timestamp(), options);\n  return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n  const {\n    immediate = true\n  } = options;\n  const isPending = ref(false);\n  let timer = null;\n  function clear() {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  }\n  function stop() {\n    isPending.value = false;\n    clear();\n  }\n  function start(...args) {\n    clear();\n    isPending.value = true;\n    timer = setTimeout(() => {\n      isPending.value = false;\n      timer = null;\n      cb(...args);\n    }, resolveUnref(interval));\n  }\n  if (immediate) {\n    isPending.value = true;\n    if (isClient)\n      start();\n  }\n  tryOnScopeDispose(stop);\n  return {\n    isPending,\n    start,\n    stop\n  };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$7.call(b, prop))\n      __defNormalProp$5(a, prop, b[prop]);\n  if (__getOwnPropSymbols$7)\n    for (var prop of __getOwnPropSymbols$7(b)) {\n      if (__propIsEnum$7.call(b, prop))\n        __defNormalProp$5(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n  const {\n    controls: exposeControls = false,\n    callback\n  } = options;\n  const controls = useTimeoutFn(callback != null ? callback : noop, interval, options);\n  const ready = computed(() => !controls.isPending.value);\n  if (exposeControls) {\n    return __spreadValues$5({\n      ready\n    }, controls);\n  } else {\n    return ready;\n  }\n}\n\nfunction useToNumber(value, options = {}) {\n  const {\n    method = \"parseFloat\",\n    radix,\n    nanToZero\n  } = options;\n  return computed(() => {\n    let resolved = resolveUnref(value);\n    if (typeof resolved === \"string\")\n      resolved = Number[method](resolved, radix);\n    if (nanToZero && isNaN(resolved))\n      resolved = 0;\n    return resolved;\n  });\n}\n\nfunction useToString(value) {\n  return computed(() => `${resolveUnref(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n  const {\n    truthyValue = true,\n    falsyValue = false\n  } = options;\n  const valueIsRef = isRef(initialValue);\n  const _value = ref(initialValue);\n  function toggle(value) {\n    if (arguments.length) {\n      _value.value = value;\n      return _value.value;\n    } else {\n      const truthy = resolveUnref(truthyValue);\n      _value.value = _value.value === truthy ? resolveUnref(falsyValue) : truthy;\n      return _value.value;\n    }\n  }\n  if (valueIsRef)\n    return toggle;\n  else\n    return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n  let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n    ...source instanceof Function ? source() : Array.isArray(source) ? source : unref(source)\n  ];\n  return watch(source, (newList, _, onCleanup) => {\n    const oldListRemains = new Array(oldList.length);\n    const added = [];\n    for (const obj of newList) {\n      let found = false;\n      for (let i = 0; i < oldList.length; i++) {\n        if (!oldListRemains[i] && obj === oldList[i]) {\n          oldListRemains[i] = true;\n          found = true;\n          break;\n        }\n      }\n      if (!found)\n        added.push(obj);\n    }\n    const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n    cb(newList, oldList, added, removed, onCleanup);\n    oldList = [...newList];\n  }, options);\n}\n\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$6)\n    for (var prop of __getOwnPropSymbols$6(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n  const _a = options, {\n    eventFilter = bypassFilter\n  } = _a, watchOptions = __objRest$5(_a, [\n    \"eventFilter\"\n  ]);\n  return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$5)\n    for (var prop of __getOwnPropSymbols$5(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchAtMost(source, cb, options) {\n  const _a = options, {\n    count\n  } = _a, watchOptions = __objRest$4(_a, [\n    \"count\"\n  ]);\n  const current = ref(0);\n  const stop = watchWithFilter(source, (...args) => {\n    current.value += 1;\n    if (current.value >= resolveUnref(count))\n      nextTick(() => stop());\n    cb(...args);\n  }, watchOptions);\n  return { count: current, stop };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$4.call(b, prop))\n      __defNormalProp$4(a, prop, b[prop]);\n  if (__getOwnPropSymbols$4)\n    for (var prop of __getOwnPropSymbols$4(b)) {\n      if (__propIsEnum$4.call(b, prop))\n        __defNormalProp$4(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$3 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$4)\n    for (var prop of __getOwnPropSymbols$4(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n  const _a = options, {\n    debounce = 0,\n    maxWait = void 0\n  } = _a, watchOptions = __objRest$3(_a, [\n    \"debounce\",\n    \"maxWait\"\n  ]);\n  return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {\n    eventFilter: debounceFilter(debounce, { maxWait })\n  }));\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$3.call(b, prop))\n      __defNormalProp$3(a, prop, b[prop]);\n  if (__getOwnPropSymbols$3)\n    for (var prop of __getOwnPropSymbols$3(b)) {\n      if (__propIsEnum$3.call(b, prop))\n        __defNormalProp$3(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nvar __objRest$2 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$3)\n    for (var prop of __getOwnPropSymbols$3(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n  const _a = options, {\n    eventFilter = bypassFilter\n  } = _a, watchOptions = __objRest$2(_a, [\n    \"eventFilter\"\n  ]);\n  const filteredCb = createFilterWrapper(eventFilter, cb);\n  let ignoreUpdates;\n  let ignorePrevAsyncUpdates;\n  let stop;\n  if (watchOptions.flush === \"sync\") {\n    const ignore = ref(false);\n    ignorePrevAsyncUpdates = () => {\n    };\n    ignoreUpdates = (updater) => {\n      ignore.value = true;\n      updater();\n      ignore.value = false;\n    };\n    stop = watch(source, (...args) => {\n      if (!ignore.value)\n        filteredCb(...args);\n    }, watchOptions);\n  } else {\n    const disposables = [];\n    const ignoreCounter = ref(0);\n    const syncCounter = ref(0);\n    ignorePrevAsyncUpdates = () => {\n      ignoreCounter.value = syncCounter.value;\n    };\n    disposables.push(watch(source, () => {\n      syncCounter.value++;\n    }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: \"sync\" })));\n    ignoreUpdates = (updater) => {\n      const syncCounterPrev = syncCounter.value;\n      updater();\n      ignoreCounter.value += syncCounter.value - syncCounterPrev;\n    };\n    disposables.push(watch(source, (...args) => {\n      const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n      ignoreCounter.value = 0;\n      syncCounter.value = 0;\n      if (ignore)\n        return;\n      filteredCb(...args);\n    }, watchOptions));\n    stop = () => {\n      disposables.forEach((fn) => fn());\n    };\n  }\n  return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchOnce(source, cb, options) {\n  const stop = watch(source, (...args) => {\n    nextTick(() => stop());\n    return cb(...args);\n  }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$2.call(b, prop))\n      __defNormalProp$2(a, prop, b[prop]);\n  if (__getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(b)) {\n      if (__propIsEnum$2.call(b, prop))\n        __defNormalProp$2(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n  const _a = options, {\n    eventFilter: filter\n  } = _a, watchOptions = __objRest$1(_a, [\n    \"eventFilter\"\n  ]);\n  const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n  const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {\n    eventFilter\n  }));\n  return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$1.call(b, prop))\n      __defNormalProp$1(a, prop, b[prop]);\n  if (__getOwnPropSymbols$1)\n    for (var prop of __getOwnPropSymbols$1(b)) {\n      if (__propIsEnum$1.call(b, prop))\n        __defNormalProp$1(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$1)\n    for (var prop of __getOwnPropSymbols$1(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n  const _a = options, {\n    throttle = 0,\n    trailing = true,\n    leading = true\n  } = _a, watchOptions = __objRest(_a, [\n    \"throttle\",\n    \"trailing\",\n    \"leading\"\n  ]);\n  return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {\n    eventFilter: throttleFilter(throttle, trailing, leading)\n  }));\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n  let cleanupFn;\n  function onEffect() {\n    if (!cleanupFn)\n      return;\n    const fn = cleanupFn;\n    cleanupFn = void 0;\n    fn();\n  }\n  function onCleanup(callback) {\n    cleanupFn = callback;\n  }\n  const _cb = (value, oldValue) => {\n    onEffect();\n    return cb(value, oldValue, onCleanup);\n  };\n  const res = watchIgnorable(source, _cb, options);\n  const { ignoreUpdates } = res;\n  const trigger = () => {\n    let res2;\n    ignoreUpdates(() => {\n      res2 = _cb(getWatchSources(source), getOldValue(source));\n    });\n    return res2;\n  };\n  return __spreadProps(__spreadValues({}, res), {\n    trigger\n  });\n}\nfunction getWatchSources(sources) {\n  if (isReactive(sources))\n    return sources;\n  if (Array.isArray(sources))\n    return sources.map((item) => getOneWatchSource(item));\n  return getOneWatchSource(sources);\n}\nfunction getOneWatchSource(source) {\n  return typeof source === \"function\" ? source() : unref(source);\n}\nfunction getOldValue(source) {\n  return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n  return watch(source, (v, ov, onInvalidate) => {\n    if (v)\n      cb(v, ov, onInvalidate);\n  }, options);\n}\n\nexport { __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, resolveUnref, isClient, isString, tryOnScopeDispose, tryOnMounted, computedWithControl, promiseTimeout, isFunction, resolveRef, increaseWithUnit, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, containsProp, until, hasOwn, isDef, throttleFilter, useDebounceFn, useThrottleFn, isObject, isNumber, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, isIOS, watchWithFilter, identity } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, watchEffect, computed, inject, unref, watch, getCurrentInstance, customRef, onUpdated, reactive, shallowRef, onMounted, markRaw, getCurrentScope, readonly, nextTick, isVue2, set, del, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n  let options;\n  if (isRef(optionsOrRef)) {\n    options = {\n      evaluating: optionsOrRef\n    };\n  } else {\n    options = optionsOrRef || {};\n  }\n  const {\n    lazy = false,\n    evaluating = void 0,\n    onError = noop\n  } = options;\n  const started = ref(!lazy);\n  const current = ref(initialState);\n  let counter = 0;\n  watchEffect(async (onInvalidate) => {\n    if (!started.value)\n      return;\n    counter++;\n    const counterAtBeginning = counter;\n    let hasFinished = false;\n    if (evaluating) {\n      Promise.resolve().then(() => {\n        evaluating.value = true;\n      });\n    }\n    try {\n      const result = await evaluationCallback((cancelCallback) => {\n        onInvalidate(() => {\n          if (evaluating)\n            evaluating.value = false;\n          if (!hasFinished)\n            cancelCallback();\n        });\n      });\n      if (counterAtBeginning === counter)\n        current.value = result;\n    } catch (e) {\n      onError(e);\n    } finally {\n      if (evaluating && counterAtBeginning === counter)\n        evaluating.value = false;\n      hasFinished = true;\n    }\n  });\n  if (lazy) {\n    return computed(() => {\n      started.value = true;\n      return current.value;\n    });\n  } else {\n    return current;\n  }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n  let source = inject(key);\n  if (defaultSource)\n    source = inject(key, defaultSource);\n  if (treatDefaultAsFactory)\n    source = inject(key, defaultSource, treatDefaultAsFactory);\n  if (typeof options === \"function\") {\n    return computed((ctx) => options(source, ctx));\n  } else {\n    return computed({\n      get: (ctx) => options.get(source, ctx),\n      set: options.set\n    });\n  }\n}\n\nconst createUnrefFn = (fn) => {\n  return function(...args) {\n    return fn.apply(this, args.map((i) => unref(i)));\n  };\n};\n\nfunction unrefElement(elRef) {\n  var _a;\n  const plain = resolveUnref(elRef);\n  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n  let target;\n  let event;\n  let listener;\n  let options;\n  if (isString(args[0])) {\n    [event, listener, options] = args;\n    target = defaultWindow;\n  } else {\n    [target, event, listener, options] = args;\n  }\n  if (!target)\n    return noop;\n  let cleanup = noop;\n  const stopWatch = watch(() => unrefElement(target), (el) => {\n    cleanup();\n    if (!el)\n      return;\n    el.addEventListener(event, listener, options);\n    cleanup = () => {\n      el.removeEventListener(event, listener, options);\n      cleanup = noop;\n    };\n  }, { immediate: true, flush: \"post\" });\n  const stop = () => {\n    stopWatch();\n    cleanup();\n  };\n  tryOnScopeDispose(stop);\n  return stop;\n}\n\nfunction onClickOutside(target, handler, options = {}) {\n  const { window = defaultWindow, ignore, capture = true, detectIframe = false } = options;\n  if (!window)\n    return;\n  const shouldListen = ref(true);\n  let fallback;\n  const listener = (event) => {\n    window.clearTimeout(fallback);\n    const el = unrefElement(target);\n    if (!el || el === event.target || event.composedPath().includes(el) || !shouldListen.value)\n      return;\n    handler(event);\n  };\n  const shouldIgnore = (event) => {\n    return ignore && ignore.some((target2) => {\n      const el = unrefElement(target2);\n      return el && (event.target === el || event.composedPath().includes(el));\n    });\n  };\n  const cleanup = [\n    useEventListener(window, \"click\", listener, { passive: true, capture }),\n    useEventListener(window, \"pointerdown\", (e) => {\n      const el = unrefElement(target);\n      shouldListen.value = !!el && !e.composedPath().includes(el) && !shouldIgnore(e);\n    }, { passive: true }),\n    useEventListener(window, \"pointerup\", (e) => {\n      if (e.button === 0) {\n        const path = e.composedPath();\n        e.composedPath = () => path;\n        fallback = window.setTimeout(() => listener(e), 50);\n      }\n    }, { passive: true }),\n    detectIframe && useEventListener(window, \"blur\", (event) => {\n      var _a;\n      const el = unrefElement(target);\n      if (((_a = document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(document.activeElement)))\n        handler(event);\n    })\n  ].filter(Boolean);\n  const stop = () => cleanup.forEach((fn) => fn());\n  return stop;\n}\n\nvar __defProp$m = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$o.call(b, prop))\n      __defNormalProp$m(a, prop, b[prop]);\n  if (__getOwnPropSymbols$o)\n    for (var prop of __getOwnPropSymbols$o(b)) {\n      if (__propIsEnum$o.call(b, prop))\n        __defNormalProp$m(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst createKeyPredicate = (keyFilter) => {\n  if (typeof keyFilter === \"function\")\n    return keyFilter;\n  else if (typeof keyFilter === \"string\")\n    return (event) => event.key === keyFilter;\n  else if (Array.isArray(keyFilter))\n    return (event) => keyFilter.includes(event.key);\n  return () => true;\n};\nfunction onKeyStroke(...args) {\n  let key;\n  let handler;\n  let options = {};\n  if (args.length === 3) {\n    key = args[0];\n    handler = args[1];\n    options = args[2];\n  } else if (args.length === 2) {\n    if (typeof args[1] === \"object\") {\n      key = true;\n      handler = args[0];\n      options = args[1];\n    } else {\n      key = args[0];\n      handler = args[1];\n    }\n  } else {\n    key = true;\n    handler = args[0];\n  }\n  const { target = defaultWindow, eventName = \"keydown\", passive = false } = options;\n  const predicate = createKeyPredicate(key);\n  const listener = (e) => {\n    if (predicate(e))\n      handler(e);\n  };\n  return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n  return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$m({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n  return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$m({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n  return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$m({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n  var _a, _b;\n  const elementRef = computed(() => unrefElement(target));\n  let timeout;\n  function clear() {\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = void 0;\n    }\n  }\n  function onDown(ev) {\n    var _a2, _b2, _c, _d;\n    if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n      return;\n    clear();\n    if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n      ev.preventDefault();\n    if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n      ev.stopPropagation();\n    timeout = setTimeout(() => handler(ev), (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY);\n  }\n  const listenerOptions = {\n    capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n    once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n  };\n  useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n  useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n  useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nconst isFocusedElementEditable = () => {\n  const { activeElement, body } = document;\n  if (!activeElement)\n    return false;\n  if (activeElement === body)\n    return false;\n  switch (activeElement.tagName) {\n    case \"INPUT\":\n    case \"TEXTAREA\":\n      return true;\n  }\n  return activeElement.hasAttribute(\"contenteditable\");\n};\nconst isTypedCharValid = ({\n  keyCode,\n  metaKey,\n  ctrlKey,\n  altKey\n}) => {\n  if (metaKey || ctrlKey || altKey)\n    return false;\n  if (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105)\n    return true;\n  if (keyCode >= 65 && keyCode <= 90)\n    return true;\n  return false;\n};\nfunction onStartTyping(callback, options = {}) {\n  const { document: document2 = defaultDocument } = options;\n  const keydown = (event) => {\n    !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n  };\n  if (document2)\n    useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n  const instance = getCurrentInstance();\n  let _trigger = () => {\n  };\n  const element = customRef((track, trigger) => {\n    _trigger = trigger;\n    return {\n      get() {\n        var _a, _b;\n        track();\n        return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n      },\n      set() {\n      }\n    };\n  });\n  tryOnMounted(_trigger);\n  onUpdated(_trigger);\n  return element;\n}\n\nfunction useActiveElement(options = {}) {\n  const { window = defaultWindow } = options;\n  const activeElement = computedWithControl(() => null, () => window == null ? void 0 : window.document.activeElement);\n  if (window) {\n    useEventListener(window, \"blur\", activeElement.trigger, true);\n    useEventListener(window, \"focus\", activeElement.trigger, true);\n  }\n  return activeElement;\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n  const {\n    interrupt = true,\n    onError = noop,\n    onFinished = noop\n  } = options;\n  const promiseState = {\n    pending: \"pending\",\n    rejected: \"rejected\",\n    fulfilled: \"fulfilled\"\n  };\n  const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n  const result = reactive(initialResult);\n  const activeIndex = ref(-1);\n  if (!tasks || tasks.length === 0) {\n    onFinished();\n    return {\n      activeIndex,\n      result\n    };\n  }\n  function updateResult(state, res) {\n    activeIndex.value++;\n    result[activeIndex.value].data = res;\n    result[activeIndex.value].state = state;\n  }\n  tasks.reduce((prev, curr) => {\n    return prev.then((prevRes) => {\n      var _a;\n      if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n        onFinished();\n        return;\n      }\n      return curr(prevRes).then((currentRes) => {\n        updateResult(promiseState.fulfilled, currentRes);\n        activeIndex.value === tasks.length - 1 && onFinished();\n        return currentRes;\n      });\n    }).catch((e) => {\n      updateResult(promiseState.rejected, e);\n      onError();\n      return e;\n    });\n  }, Promise.resolve());\n  return {\n    activeIndex,\n    result\n  };\n}\n\nfunction useAsyncState(promise, initialState, options) {\n  const {\n    immediate = true,\n    delay = 0,\n    onError = noop,\n    resetOnExecute = true,\n    shallow = true,\n    throwError\n  } = options != null ? options : {};\n  const state = shallow ? shallowRef(initialState) : ref(initialState);\n  const isReady = ref(false);\n  const isLoading = ref(false);\n  const error = ref(void 0);\n  async function execute(delay2 = 0, ...args) {\n    if (resetOnExecute)\n      state.value = initialState;\n    error.value = void 0;\n    isReady.value = false;\n    isLoading.value = true;\n    if (delay2 > 0)\n      await promiseTimeout(delay2);\n    const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n    try {\n      const data = await _promise;\n      state.value = data;\n      isReady.value = true;\n    } catch (e) {\n      error.value = e;\n      onError(e);\n      if (throwError)\n        throw error;\n    } finally {\n      isLoading.value = false;\n    }\n    return state.value;\n  }\n  if (immediate)\n    execute(delay);\n  return {\n    state,\n    isReady,\n    isLoading,\n    error,\n    execute\n  };\n}\n\nconst defaults = {\n  array: (v) => JSON.stringify(v),\n  object: (v) => JSON.stringify(v),\n  set: (v) => JSON.stringify(Array.from(v)),\n  map: (v) => JSON.stringify(Object.fromEntries(v)),\n  null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n  if (!target)\n    return defaults.null;\n  if (target instanceof Map)\n    return defaults.map;\n  else if (target instanceof Set)\n    return defaults.set;\n  else if (Array.isArray(target))\n    return defaults.array;\n  else\n    return defaults.object;\n}\n\nfunction useBase64(target, options) {\n  const base64 = ref(\"\");\n  const promise = ref();\n  function execute() {\n    if (!isClient)\n      return;\n    promise.value = new Promise((resolve, reject) => {\n      try {\n        const _target = resolveUnref(target);\n        if (_target == null) {\n          resolve(\"\");\n        } else if (typeof _target === \"string\") {\n          resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n        } else if (_target instanceof Blob) {\n          resolve(blobToBase64(_target));\n        } else if (_target instanceof ArrayBuffer) {\n          resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n        } else if (_target instanceof HTMLCanvasElement) {\n          resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n        } else if (_target instanceof HTMLImageElement) {\n          const img = _target.cloneNode(false);\n          img.crossOrigin = \"Anonymous\";\n          imgLoaded(img).then(() => {\n            const canvas = document.createElement(\"canvas\");\n            const ctx = canvas.getContext(\"2d\");\n            canvas.width = img.width;\n            canvas.height = img.height;\n            ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n            resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n          }).catch(reject);\n        } else if (typeof _target === \"object\") {\n          const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n          const serialized = _serializeFn(_target);\n          return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n        } else {\n          reject(new Error(\"target is unsupported types\"));\n        }\n      } catch (error) {\n        reject(error);\n      }\n    });\n    promise.value.then((res) => base64.value = res);\n    return promise.value;\n  }\n  if (isRef(target) || isFunction(target))\n    watch(target, execute, { immediate: true });\n  else\n    execute();\n  return {\n    base64,\n    promise,\n    execute\n  };\n}\nfunction imgLoaded(img) {\n  return new Promise((resolve, reject) => {\n    if (!img.complete) {\n      img.onload = () => {\n        resolve();\n      };\n      img.onerror = reject;\n    } else {\n      resolve();\n    }\n  });\n}\nfunction blobToBase64(blob) {\n  return new Promise((resolve, reject) => {\n    const fr = new FileReader();\n    fr.onload = (e) => {\n      resolve(e.target.result);\n    };\n    fr.onerror = reject;\n    fr.readAsDataURL(blob);\n  });\n}\n\nfunction useSupported(callback, sync = false) {\n  const isSupported = ref();\n  const update = () => isSupported.value = Boolean(callback());\n  update();\n  tryOnMounted(update, sync);\n  return isSupported;\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n  const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n  const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n  const charging = ref(false);\n  const chargingTime = ref(0);\n  const dischargingTime = ref(0);\n  const level = ref(1);\n  let battery;\n  function updateBatteryInfo() {\n    charging.value = this.charging;\n    chargingTime.value = this.chargingTime || 0;\n    dischargingTime.value = this.dischargingTime || 0;\n    level.value = this.level;\n  }\n  if (isSupported.value) {\n    navigator.getBattery().then((_battery) => {\n      battery = _battery;\n      updateBatteryInfo.call(battery);\n      for (const event of events)\n        useEventListener(battery, event, updateBatteryInfo, { passive: true });\n    });\n  }\n  return {\n    isSupported,\n    charging,\n    chargingTime,\n    dischargingTime,\n    level\n  };\n}\n\nfunction useBluetooth(options) {\n  let {\n    acceptAllDevices = false\n  } = options || {};\n  const {\n    filters = void 0,\n    optionalServices = void 0,\n    navigator = defaultNavigator\n  } = options || {};\n  const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n  const device = shallowRef(void 0);\n  const error = shallowRef(null);\n  watch(device, () => {\n    connectToBluetoothGATTServer();\n  });\n  async function requestDevice() {\n    if (!isSupported.value)\n      return;\n    error.value = null;\n    if (filters && filters.length > 0)\n      acceptAllDevices = false;\n    try {\n      device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n        acceptAllDevices,\n        filters,\n        optionalServices\n      }));\n    } catch (err) {\n      error.value = err;\n    }\n  }\n  const server = ref();\n  const isConnected = computed(() => {\n    var _a;\n    return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n  });\n  async function connectToBluetoothGATTServer() {\n    error.value = null;\n    if (device.value && device.value.gatt) {\n      device.value.addEventListener(\"gattserverdisconnected\", () => {\n      });\n      try {\n        server.value = await device.value.gatt.connect();\n      } catch (err) {\n        error.value = err;\n      }\n    }\n  }\n  tryOnMounted(() => {\n    var _a;\n    if (device.value)\n      (_a = device.value.gatt) == null ? void 0 : _a.connect();\n  });\n  tryOnScopeDispose(() => {\n    var _a;\n    if (device.value)\n      (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n  });\n  return {\n    isSupported,\n    isConnected,\n    device,\n    requestDevice,\n    server,\n    error\n  };\n}\n\nfunction useMediaQuery(query, options = {}) {\n  const { window = defaultWindow } = options;\n  const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n  let mediaQuery;\n  const matches = ref(false);\n  const cleanup = () => {\n    if (!mediaQuery)\n      return;\n    if (\"removeEventListener\" in mediaQuery)\n      mediaQuery.removeEventListener(\"change\", update);\n    else\n      mediaQuery.removeListener(update);\n  };\n  const update = () => {\n    if (!isSupported.value)\n      return;\n    cleanup();\n    mediaQuery = window.matchMedia(resolveRef(query).value);\n    matches.value = mediaQuery.matches;\n    if (\"addEventListener\" in mediaQuery)\n      mediaQuery.addEventListener(\"change\", update);\n    else\n      mediaQuery.addListener(update);\n  };\n  watchEffect(update);\n  tryOnScopeDispose(() => cleanup());\n  return matches;\n}\n\nconst breakpointsTailwind = {\n  \"sm\": 640,\n  \"md\": 768,\n  \"lg\": 1024,\n  \"xl\": 1280,\n  \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n  sm: 576,\n  md: 768,\n  lg: 992,\n  xl: 1200,\n  xxl: 1400\n};\nconst breakpointsVuetify = {\n  xs: 600,\n  sm: 960,\n  md: 1264,\n  lg: 1904\n};\nconst breakpointsAntDesign = {\n  xs: 480,\n  sm: 576,\n  md: 768,\n  lg: 992,\n  xl: 1200,\n  xxl: 1600\n};\nconst breakpointsQuasar = {\n  xs: 600,\n  sm: 1024,\n  md: 1440,\n  lg: 1920\n};\nconst breakpointsSematic = {\n  mobileS: 320,\n  mobileM: 375,\n  mobileL: 425,\n  tablet: 768,\n  laptop: 1024,\n  laptopL: 1440,\n  desktop4K: 2560\n};\n\nvar __defProp$l = Object.defineProperty;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$n.call(b, prop))\n      __defNormalProp$l(a, prop, b[prop]);\n  if (__getOwnPropSymbols$n)\n    for (var prop of __getOwnPropSymbols$n(b)) {\n      if (__propIsEnum$n.call(b, prop))\n        __defNormalProp$l(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n  function getValue(k, delta) {\n    let v = breakpoints[k];\n    if (delta != null)\n      v = increaseWithUnit(v, delta);\n    if (typeof v === \"number\")\n      v = `${v}px`;\n    return v;\n  }\n  const { window = defaultWindow } = options;\n  function match(query) {\n    if (!window)\n      return false;\n    return window.matchMedia(query).matches;\n  }\n  const greaterOrEqual = (k) => {\n    return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n  };\n  const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n    Object.defineProperty(shortcuts, k, {\n      get: () => greaterOrEqual(k),\n      enumerable: true,\n      configurable: true\n    });\n    return shortcuts;\n  }, {});\n  return __spreadValues$l({\n    greater(k) {\n      return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n    },\n    greaterOrEqual,\n    smaller(k) {\n      return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n    },\n    smallerOrEqual(k) {\n      return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n    },\n    between(a, b) {\n      return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n    },\n    isGreater(k) {\n      return match(`(min-width: ${getValue(k, 0.1)})`);\n    },\n    isGreaterOrEqual(k) {\n      return match(`(min-width: ${getValue(k)})`);\n    },\n    isSmaller(k) {\n      return match(`(max-width: ${getValue(k, -0.1)})`);\n    },\n    isSmallerOrEqual(k) {\n      return match(`(max-width: ${getValue(k)})`);\n    },\n    isInBetween(a, b) {\n      return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n    }\n  }, shortcutMethods);\n}\n\nconst useBroadcastChannel = (options) => {\n  const {\n    name,\n    window = defaultWindow\n  } = options;\n  const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n  const isClosed = ref(false);\n  const channel = ref();\n  const data = ref();\n  const error = ref(null);\n  const post = (data2) => {\n    if (channel.value)\n      channel.value.postMessage(data2);\n  };\n  const close = () => {\n    if (channel.value)\n      channel.value.close();\n    isClosed.value = true;\n  };\n  if (isSupported.value) {\n    tryOnMounted(() => {\n      error.value = null;\n      channel.value = new BroadcastChannel(name);\n      channel.value.addEventListener(\"message\", (e) => {\n        data.value = e.data;\n      }, { passive: true });\n      channel.value.addEventListener(\"messageerror\", (e) => {\n        error.value = e;\n      }, { passive: true });\n      channel.value.addEventListener(\"close\", () => {\n        isClosed.value = true;\n      });\n    });\n  }\n  tryOnScopeDispose(() => {\n    close();\n  });\n  return {\n    isSupported,\n    channel,\n    data,\n    post,\n    close,\n    error,\n    isClosed\n  };\n};\n\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n  const buildState = (trigger) => {\n    const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n    const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (window == null ? void 0 : window.location) || {};\n    return {\n      trigger,\n      state: state2,\n      length,\n      hash,\n      host,\n      hostname,\n      href,\n      origin,\n      pathname,\n      port,\n      protocol,\n      search\n    };\n  };\n  const state = ref(buildState(\"load\"));\n  if (window) {\n    useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n    useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n  }\n  return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n  const cachedValue = ref(refValue.value);\n  watch(() => refValue.value, (value) => {\n    if (!comparator(value, cachedValue.value))\n      cachedValue.value = value;\n  }, watchOptions);\n  return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n  const {\n    navigator = defaultNavigator,\n    read = false,\n    source,\n    copiedDuring = 1500,\n    legacy = false\n  } = options;\n  const events = [\"copy\", \"cut\"];\n  const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n  const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n  const text = ref(\"\");\n  const copied = ref(false);\n  const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n  function updateText() {\n    if (isClipboardApiSupported.value) {\n      navigator.clipboard.readText().then((value) => {\n        text.value = value;\n      });\n    } else {\n      text.value = legacyRead();\n    }\n  }\n  if (isSupported.value && read) {\n    for (const event of events)\n      useEventListener(event, updateText);\n  }\n  async function copy(value = resolveUnref(source)) {\n    if (isSupported.value && value != null) {\n      if (isClipboardApiSupported.value)\n        await navigator.clipboard.writeText(value);\n      else\n        legacyCopy(value);\n      text.value = value;\n      copied.value = true;\n      timeout.start();\n    }\n  }\n  function legacyCopy(value) {\n    const ta = document.createElement(\"textarea\");\n    ta.value = value != null ? value : \"\";\n    ta.style.position = \"absolute\";\n    ta.style.opacity = \"0\";\n    document.body.appendChild(ta);\n    ta.select();\n    document.execCommand(\"copy\");\n    ta.remove();\n  }\n  function legacyRead() {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n  }\n  return {\n    isSupported,\n    text,\n    copied,\n    copy\n  };\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$m.call(b, prop))\n      __defNormalProp$k(a, prop, b[prop]);\n  if (__getOwnPropSymbols$m)\n    for (var prop of __getOwnPropSymbols$m(b)) {\n      if (__propIsEnum$m.call(b, prop))\n        __defNormalProp$k(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction cloneFnJSON(source) {\n  return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n  const cloned = ref({});\n  const {\n    manual,\n    clone = cloneFnJSON,\n    deep = true,\n    immediate = true\n  } = options;\n  function sync() {\n    cloned.value = clone(unref(source));\n  }\n  if (!manual && isRef(source)) {\n    watch(source, sync, __spreadProps$8(__spreadValues$k({}, options), {\n      deep,\n      immediate\n    }));\n  } else {\n    sync();\n  }\n  return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\n_global[globalKey] = _global[globalKey] || {};\nconst handlers = _global[globalKey];\nfunction getSSRHandler(key, fallback) {\n  return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n  handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n  return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : Array.isArray(rawInit) ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$l.call(b, prop))\n      __defNormalProp$j(a, prop, b[prop]);\n  if (__getOwnPropSymbols$l)\n    for (var prop of __getOwnPropSymbols$l(b)) {\n      if (__propIsEnum$l.call(b, prop))\n        __defNormalProp$j(a, prop, b[prop]);\n    }\n  return a;\n};\nconst StorageSerializers = {\n  boolean: {\n    read: (v) => v === \"true\",\n    write: (v) => String(v)\n  },\n  object: {\n    read: (v) => JSON.parse(v),\n    write: (v) => JSON.stringify(v)\n  },\n  number: {\n    read: (v) => Number.parseFloat(v),\n    write: (v) => String(v)\n  },\n  any: {\n    read: (v) => v,\n    write: (v) => String(v)\n  },\n  string: {\n    read: (v) => v,\n    write: (v) => String(v)\n  },\n  map: {\n    read: (v) => new Map(JSON.parse(v)),\n    write: (v) => JSON.stringify(Array.from(v.entries()))\n  },\n  set: {\n    read: (v) => new Set(JSON.parse(v)),\n    write: (v) => JSON.stringify(Array.from(v))\n  },\n  date: {\n    read: (v) => new Date(v),\n    write: (v) => v.toISOString()\n  }\n};\nfunction useStorage(key, defaults, storage, options = {}) {\n  var _a;\n  const {\n    flush = \"pre\",\n    deep = true,\n    listenToStorageChanges = true,\n    writeDefaults = true,\n    mergeDefaults = false,\n    shallow,\n    window = defaultWindow,\n    eventFilter,\n    onError = (e) => {\n      console.error(e);\n    }\n  } = options;\n  const data = (shallow ? shallowRef : ref)(defaults);\n  if (!storage) {\n    try {\n      storage = getSSRHandler(\"getDefaultStorage\", () => {\n        var _a2;\n        return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n      })();\n    } catch (e) {\n      onError(e);\n    }\n  }\n  if (!storage)\n    return data;\n  const rawInit = resolveUnref(defaults);\n  const type = guessSerializerType(rawInit);\n  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n  const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });\n  if (window && listenToStorageChanges)\n    useEventListener(window, \"storage\", update);\n  update();\n  return data;\n  function write(v) {\n    try {\n      if (v == null)\n        storage.removeItem(key);\n      else\n        storage.setItem(key, serializer.write(v));\n    } catch (e) {\n      onError(e);\n    }\n  }\n  function read(event) {\n    pauseWatch();\n    try {\n      const rawValue = event ? event.newValue : storage.getItem(key);\n      if (rawValue == null) {\n        if (writeDefaults && rawInit !== null)\n          storage.setItem(key, serializer.write(rawInit));\n        return rawInit;\n      } else if (!event && mergeDefaults) {\n        const value = serializer.read(rawValue);\n        if (isFunction(mergeDefaults))\n          return mergeDefaults(value, rawInit);\n        else if (type === \"object\" && !Array.isArray(value))\n          return __spreadValues$j(__spreadValues$j({}, rawInit), value);\n        return value;\n      } else if (typeof rawValue !== \"string\") {\n        return rawValue;\n      } else {\n        return serializer.read(rawValue);\n      }\n    } catch (e) {\n      onError(e);\n    } finally {\n      resumeWatch();\n    }\n  }\n  function update(event) {\n    if (event && event.storageArea !== storage)\n      return;\n    if (event && event.key === null) {\n      data.value = rawInit;\n      return;\n    }\n    if (event && event.key !== key)\n      return;\n    data.value = read(event);\n  }\n}\n\nfunction usePreferredDark(options) {\n  return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$k.call(b, prop))\n      __defNormalProp$i(a, prop, b[prop]);\n  if (__getOwnPropSymbols$k)\n    for (var prop of __getOwnPropSymbols$k(b)) {\n      if (__propIsEnum$k.call(b, prop))\n        __defNormalProp$i(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useColorMode(options = {}) {\n  const {\n    selector = \"html\",\n    attribute = \"class\",\n    initialValue = \"auto\",\n    window = defaultWindow,\n    storage,\n    storageKey = \"vueuse-color-scheme\",\n    listenToStorageChanges = true,\n    storageRef,\n    emitAuto\n  } = options;\n  const modes = __spreadValues$i({\n    auto: \"\",\n    light: \"light\",\n    dark: \"dark\"\n  }, options.modes || {});\n  const preferredDark = usePreferredDark({ window });\n  const preferredMode = computed(() => preferredDark.value ? \"dark\" : \"light\");\n  const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n  const state = computed({\n    get() {\n      return store.value === \"auto\" && !emitAuto ? preferredMode.value : store.value;\n    },\n    set(v) {\n      store.value = v;\n    }\n  });\n  const updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector2, attribute2, value) => {\n    const el = window == null ? void 0 : window.document.querySelector(selector2);\n    if (!el)\n      return;\n    if (attribute2 === \"class\") {\n      const current = value.split(/\\s/g);\n      Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n        if (current.includes(v))\n          el.classList.add(v);\n        else\n          el.classList.remove(v);\n      });\n    } else {\n      el.setAttribute(attribute2, value);\n    }\n  });\n  function defaultOnChanged(mode) {\n    var _a;\n    const resolvedMode = mode === \"auto\" ? preferredMode.value : mode;\n    updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);\n  }\n  function onChanged(mode) {\n    if (options.onChanged)\n      options.onChanged(mode, defaultOnChanged);\n    else\n      defaultOnChanged(mode);\n  }\n  watch(state, onChanged, { flush: \"post\", immediate: true });\n  if (emitAuto)\n    watch(preferredMode, () => onChanged(state.value), { flush: \"post\" });\n  tryOnMounted(() => onChanged(state.value));\n  return state;\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n  const confirmHook = createEventHook();\n  const cancelHook = createEventHook();\n  const revealHook = createEventHook();\n  let _resolve = noop;\n  const reveal = (data) => {\n    revealHook.trigger(data);\n    revealed.value = true;\n    return new Promise((resolve) => {\n      _resolve = resolve;\n    });\n  };\n  const confirm = (data) => {\n    revealed.value = false;\n    confirmHook.trigger(data);\n    _resolve({ data, isCanceled: false });\n  };\n  const cancel = (data) => {\n    revealed.value = false;\n    cancelHook.trigger(data);\n    _resolve({ data, isCanceled: true });\n  };\n  return {\n    isRevealed: computed(() => revealed.value),\n    reveal,\n    confirm,\n    cancel,\n    onReveal: revealHook.on,\n    onConfirm: confirmHook.on,\n    onCancel: cancelHook.on\n  };\n}\n\nfunction useCssVar(prop, target, { window = defaultWindow, initialValue = \"\" } = {}) {\n  const variable = ref(initialValue);\n  const elRef = computed(() => {\n    var _a;\n    return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n  });\n  watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {\n    var _a;\n    if (el && window) {\n      const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();\n      variable.value = value || initialValue;\n    }\n  }, { immediate: true });\n  watch(variable, (val) => {\n    var _a;\n    if ((_a = elRef.value) == null ? void 0 : _a.style)\n      elRef.value.style.setProperty(resolveUnref(prop), val);\n  });\n  return variable;\n}\n\nfunction useCurrentElement() {\n  const vm = getCurrentInstance();\n  const currentElement = computedWithControl(() => null, () => vm.proxy.$el);\n  onUpdated(currentElement.trigger);\n  onMounted(currentElement.trigger);\n  return currentElement;\n}\n\nfunction useCycleList(list, options) {\n  var _a;\n  const state = shallowRef((_a = options == null ? void 0 : options.initialValue) != null ? _a : list[0]);\n  const index = computed({\n    get() {\n      var _a2;\n      let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, list) : list.indexOf(state.value);\n      if (index2 < 0)\n        index2 = (_a2 = options == null ? void 0 : options.fallbackIndex) != null ? _a2 : 0;\n      return index2;\n    },\n    set(v) {\n      set(v);\n    }\n  });\n  function set(i) {\n    const length = list.length;\n    const index2 = (i % length + length) % length;\n    const value = list[index2];\n    state.value = value;\n    return value;\n  }\n  function shift(delta = 1) {\n    return set(index.value + delta);\n  }\n  function next(n = 1) {\n    return shift(n);\n  }\n  function prev(n = 1) {\n    return shift(-n);\n  }\n  return {\n    state,\n    index,\n    next,\n    prev\n  };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$j.call(b, prop))\n      __defNormalProp$h(a, prop, b[prop]);\n  if (__getOwnPropSymbols$j)\n    for (var prop of __getOwnPropSymbols$j(b)) {\n      if (__propIsEnum$j.call(b, prop))\n        __defNormalProp$h(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDark(options = {}) {\n  const {\n    valueDark = \"dark\",\n    valueLight = \"\",\n    window = defaultWindow\n  } = options;\n  const mode = useColorMode(__spreadProps$7(__spreadValues$h({}, options), {\n    onChanged: (mode2, defaultHandler) => {\n      var _a;\n      if (options.onChanged)\n        (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\");\n      else\n        defaultHandler(mode2);\n    },\n    modes: {\n      dark: valueDark,\n      light: valueLight\n    }\n  }));\n  const preferredDark = usePreferredDark({ window });\n  const isDark = computed({\n    get() {\n      return mode.value === \"dark\";\n    },\n    set(v) {\n      if (v === preferredDark.value)\n        mode.value = \"auto\";\n      else\n        mode.value = v ? \"dark\" : \"light\";\n    }\n  });\n  return isDark;\n}\n\nconst fnBypass = (v) => v;\nconst fnSetSource = (source, value) => source.value = value;\nfunction defaultDump(clone) {\n  return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n  return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n  const {\n    clone = false,\n    dump = defaultDump(clone),\n    parse = defaultParse(clone),\n    setSource = fnSetSource\n  } = options;\n  function _createHistoryRecord() {\n    return markRaw({\n      snapshot: dump(source.value),\n      timestamp: timestamp()\n    });\n  }\n  const last = ref(_createHistoryRecord());\n  const undoStack = ref([]);\n  const redoStack = ref([]);\n  const _setSource = (record) => {\n    setSource(source, parse(record.snapshot));\n    last.value = record;\n  };\n  const commit = () => {\n    undoStack.value.unshift(last.value);\n    last.value = _createHistoryRecord();\n    if (options.capacity && undoStack.value.length > options.capacity)\n      undoStack.value.splice(options.capacity, Infinity);\n    if (redoStack.value.length)\n      redoStack.value.splice(0, redoStack.value.length);\n  };\n  const clear = () => {\n    undoStack.value.splice(0, undoStack.value.length);\n    redoStack.value.splice(0, redoStack.value.length);\n  };\n  const undo = () => {\n    const state = undoStack.value.shift();\n    if (state) {\n      redoStack.value.unshift(last.value);\n      _setSource(state);\n    }\n  };\n  const redo = () => {\n    const state = redoStack.value.shift();\n    if (state) {\n      undoStack.value.unshift(last.value);\n      _setSource(state);\n    }\n  };\n  const reset = () => {\n    _setSource(last.value);\n  };\n  const history = computed(() => [last.value, ...undoStack.value]);\n  const canUndo = computed(() => undoStack.value.length > 0);\n  const canRedo = computed(() => redoStack.value.length > 0);\n  return {\n    source,\n    undoStack,\n    redoStack,\n    last,\n    history,\n    canUndo,\n    canRedo,\n    clear,\n    commit,\n    reset,\n    undo,\n    redo\n  };\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$i.call(b, prop))\n      __defNormalProp$g(a, prop, b[prop]);\n  if (__getOwnPropSymbols$i)\n    for (var prop of __getOwnPropSymbols$i(b)) {\n      if (__propIsEnum$i.call(b, prop))\n        __defNormalProp$g(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useRefHistory(source, options = {}) {\n  const {\n    deep = false,\n    flush = \"pre\",\n    eventFilter\n  } = options;\n  const {\n    eventFilter: composedFilter,\n    pause,\n    resume: resumeTracking,\n    isActive: isTracking\n  } = pausableFilter(eventFilter);\n  const {\n    ignoreUpdates,\n    ignorePrevAsyncUpdates,\n    stop\n  } = watchIgnorable(source, commit, { deep, flush, eventFilter: composedFilter });\n  function setSource(source2, value) {\n    ignorePrevAsyncUpdates();\n    ignoreUpdates(() => {\n      source2.value = value;\n    });\n  }\n  const manualHistory = useManualRefHistory(source, __spreadProps$6(__spreadValues$g({}, options), { clone: options.clone || deep, setSource }));\n  const { clear, commit: manualCommit } = manualHistory;\n  function commit() {\n    ignorePrevAsyncUpdates();\n    manualCommit();\n  }\n  function resume(commitNow) {\n    resumeTracking();\n    if (commitNow)\n      commit();\n  }\n  function batch(fn) {\n    let canceled = false;\n    const cancel = () => canceled = true;\n    ignoreUpdates(() => {\n      fn(cancel);\n    });\n    if (!canceled)\n      commit();\n  }\n  function dispose() {\n    stop();\n    clear();\n  }\n  return __spreadProps$6(__spreadValues$g({}, manualHistory), {\n    isTracking,\n    pause,\n    resume,\n    commit,\n    batch,\n    dispose\n  });\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$h.call(b, prop))\n      __defNormalProp$f(a, prop, b[prop]);\n  if (__getOwnPropSymbols$h)\n    for (var prop of __getOwnPropSymbols$h(b)) {\n      if (__propIsEnum$h.call(b, prop))\n        __defNormalProp$f(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n  const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n  const history = useRefHistory(source, __spreadProps$5(__spreadValues$f({}, options), { eventFilter: filter }));\n  return __spreadValues$f({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n  const {\n    window = defaultWindow,\n    eventFilter = bypassFilter\n  } = options;\n  const acceleration = ref({ x: null, y: null, z: null });\n  const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n  const interval = ref(0);\n  const accelerationIncludingGravity = ref({\n    x: null,\n    y: null,\n    z: null\n  });\n  if (window) {\n    const onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n      acceleration.value = event.acceleration;\n      accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n      rotationRate.value = event.rotationRate;\n      interval.value = event.interval;\n    });\n    useEventListener(window, \"devicemotion\", onDeviceMotion);\n  }\n  return {\n    acceleration,\n    accelerationIncludingGravity,\n    rotationRate,\n    interval\n  };\n}\n\nfunction useDeviceOrientation(options = {}) {\n  const { window = defaultWindow } = options;\n  const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n  const isAbsolute = ref(false);\n  const alpha = ref(null);\n  const beta = ref(null);\n  const gamma = ref(null);\n  if (window && isSupported.value) {\n    useEventListener(window, \"deviceorientation\", (event) => {\n      isAbsolute.value = event.absolute;\n      alpha.value = event.alpha;\n      beta.value = event.beta;\n      gamma.value = event.gamma;\n    });\n  }\n  return {\n    isSupported,\n    isAbsolute,\n    alpha,\n    beta,\n    gamma\n  };\n}\n\nfunction useDevicePixelRatio({\n  window = defaultWindow\n} = {}) {\n  if (!window) {\n    return {\n      pixelRatio: ref(1)\n    };\n  }\n  const pixelRatio = ref(1);\n  const cleanups = [];\n  const cleanup = () => {\n    cleanups.map((i) => i());\n    cleanups.length = 0;\n  };\n  const observe = () => {\n    pixelRatio.value = window.devicePixelRatio;\n    cleanup();\n    const media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n    media.addEventListener(\"change\", observe, { once: true });\n    cleanups.push(() => {\n      media.removeEventListener(\"change\", observe);\n    });\n  };\n  observe();\n  tryOnScopeDispose(cleanup);\n  return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n  const {\n    controls = false,\n    navigator = defaultNavigator\n  } = options;\n  const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n  let permissionStatus;\n  const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n  const state = ref();\n  const onChange = () => {\n    if (permissionStatus)\n      state.value = permissionStatus.state;\n  };\n  const query = createSingletonPromise(async () => {\n    if (!isSupported.value)\n      return;\n    if (!permissionStatus) {\n      try {\n        permissionStatus = await navigator.permissions.query(desc);\n        useEventListener(permissionStatus, \"change\", onChange);\n        onChange();\n      } catch (e) {\n        state.value = \"prompt\";\n      }\n    }\n    return permissionStatus;\n  });\n  query();\n  if (controls) {\n    return {\n      state,\n      isSupported,\n      query\n    };\n  } else {\n    return state;\n  }\n}\n\nfunction useDevicesList(options = {}) {\n  const {\n    navigator = defaultNavigator,\n    requestPermissions = false,\n    constraints = { audio: true, video: true },\n    onUpdated\n  } = options;\n  const devices = ref([]);\n  const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n  const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n  const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n  const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n  const permissionGranted = ref(false);\n  async function update() {\n    if (!isSupported.value)\n      return;\n    devices.value = await navigator.mediaDevices.enumerateDevices();\n    onUpdated == null ? void 0 : onUpdated(devices.value);\n  }\n  async function ensurePermissions() {\n    if (!isSupported.value)\n      return false;\n    if (permissionGranted.value)\n      return true;\n    const { state, query } = usePermission(\"camera\", { controls: true });\n    await query();\n    if (state.value !== \"granted\") {\n      const stream = await navigator.mediaDevices.getUserMedia(constraints);\n      stream.getTracks().forEach((t) => t.stop());\n      update();\n      permissionGranted.value = true;\n    } else {\n      permissionGranted.value = true;\n    }\n    return permissionGranted.value;\n  }\n  if (isSupported.value) {\n    if (requestPermissions)\n      ensurePermissions();\n    useEventListener(navigator.mediaDevices, \"devicechange\", update);\n    update();\n  }\n  return {\n    devices,\n    ensurePermissions,\n    permissionGranted,\n    videoInputs,\n    audioInputs,\n    audioOutputs,\n    isSupported\n  };\n}\n\nfunction useDisplayMedia(options = {}) {\n  var _a;\n  const enabled = ref((_a = options.enabled) != null ? _a : false);\n  const video = options.video;\n  const audio = options.audio;\n  const { navigator = defaultNavigator } = options;\n  const isSupported = useSupported(() => {\n    var _a2;\n    return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n  });\n  const constraint = { audio, video };\n  const stream = shallowRef();\n  async function _start() {\n    if (!isSupported.value || stream.value)\n      return;\n    stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n    return stream.value;\n  }\n  async function _stop() {\n    var _a2;\n    (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n    stream.value = void 0;\n  }\n  function stop() {\n    _stop();\n    enabled.value = false;\n  }\n  async function start() {\n    await _start();\n    if (stream.value)\n      enabled.value = true;\n    return stream.value;\n  }\n  watch(enabled, (v) => {\n    if (v)\n      _start();\n    else\n      _stop();\n  }, { immediate: true });\n  return {\n    isSupported,\n    stream,\n    start,\n    stop,\n    enabled\n  };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n  if (!document)\n    return ref(\"visible\");\n  const visibility = ref(document.visibilityState);\n  useEventListener(document, \"visibilitychange\", () => {\n    visibility.value = document.visibilityState;\n  });\n  return visibility;\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$g.call(b, prop))\n      __defNormalProp$e(a, prop, b[prop]);\n  if (__getOwnPropSymbols$g)\n    for (var prop of __getOwnPropSymbols$g(b)) {\n      if (__propIsEnum$g.call(b, prop))\n        __defNormalProp$e(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction useDraggable(target, options = {}) {\n  var _a, _b, _c;\n  const draggingElement = (_a = options.draggingElement) != null ? _a : defaultWindow;\n  const draggingHandle = (_b = options.handle) != null ? _b : target;\n  const position = ref((_c = resolveUnref(options.initialValue)) != null ? _c : { x: 0, y: 0 });\n  const pressedDelta = ref();\n  const filterEvent = (e) => {\n    if (options.pointerTypes)\n      return options.pointerTypes.includes(e.pointerType);\n    return true;\n  };\n  const handleEvent = (e) => {\n    if (resolveUnref(options.preventDefault))\n      e.preventDefault();\n    if (resolveUnref(options.stopPropagation))\n      e.stopPropagation();\n  };\n  const start = (e) => {\n    var _a2;\n    if (!filterEvent(e))\n      return;\n    if (resolveUnref(options.exact) && e.target !== resolveUnref(target))\n      return;\n    const rect = resolveUnref(target).getBoundingClientRect();\n    const pos = {\n      x: e.pageX - rect.left,\n      y: e.pageY - rect.top\n    };\n    if (((_a2 = options.onStart) == null ? void 0 : _a2.call(options, pos, e)) === false)\n      return;\n    pressedDelta.value = pos;\n    handleEvent(e);\n  };\n  const move = (e) => {\n    var _a2;\n    if (!filterEvent(e))\n      return;\n    if (!pressedDelta.value)\n      return;\n    position.value = {\n      x: e.pageX - pressedDelta.value.x,\n      y: e.pageY - pressedDelta.value.y\n    };\n    (_a2 = options.onMove) == null ? void 0 : _a2.call(options, position.value, e);\n    handleEvent(e);\n  };\n  const end = (e) => {\n    var _a2;\n    if (!filterEvent(e))\n      return;\n    if (!pressedDelta.value)\n      return;\n    pressedDelta.value = void 0;\n    (_a2 = options.onEnd) == null ? void 0 : _a2.call(options, position.value, e);\n    handleEvent(e);\n  };\n  if (isClient) {\n    useEventListener(draggingHandle, \"pointerdown\", start, true);\n    useEventListener(draggingElement, \"pointermove\", move, true);\n    useEventListener(draggingElement, \"pointerup\", end, true);\n  }\n  return __spreadProps$4(__spreadValues$e({}, toRefs(position)), {\n    position,\n    isDragging: computed(() => !!pressedDelta.value),\n    style: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n  });\n}\n\nfunction useDropZone(target, onDrop) {\n  const isOverDropZone = ref(false);\n  let counter = 0;\n  if (isClient) {\n    useEventListener(target, \"dragenter\", (event) => {\n      event.preventDefault();\n      counter += 1;\n      isOverDropZone.value = true;\n    });\n    useEventListener(target, \"dragover\", (event) => {\n      event.preventDefault();\n    });\n    useEventListener(target, \"dragleave\", (event) => {\n      event.preventDefault();\n      counter -= 1;\n      if (counter === 0)\n        isOverDropZone.value = false;\n    });\n    useEventListener(target, \"drop\", (event) => {\n      var _a, _b;\n      event.preventDefault();\n      counter = 0;\n      isOverDropZone.value = false;\n      const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n      onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n    });\n  }\n  return {\n    isOverDropZone\n  };\n}\n\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$f.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$f)\n    for (var prop of __getOwnPropSymbols$f(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$f.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n  const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n  let observer;\n  const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n  const cleanup = () => {\n    if (observer) {\n      observer.disconnect();\n      observer = void 0;\n    }\n  };\n  const stopWatch = watch(() => unrefElement(target), (el) => {\n    cleanup();\n    if (isSupported.value && window && el) {\n      observer = new ResizeObserver(callback);\n      observer.observe(el, observerOptions);\n    }\n  }, { immediate: true, flush: \"post\" });\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop\n  };\n}\n\nfunction useElementBounding(target, options = {}) {\n  const {\n    reset = true,\n    windowResize = true,\n    windowScroll = true,\n    immediate = true\n  } = options;\n  const height = ref(0);\n  const bottom = ref(0);\n  const left = ref(0);\n  const right = ref(0);\n  const top = ref(0);\n  const width = ref(0);\n  const x = ref(0);\n  const y = ref(0);\n  function update() {\n    const el = unrefElement(target);\n    if (!el) {\n      if (reset) {\n        height.value = 0;\n        bottom.value = 0;\n        left.value = 0;\n        right.value = 0;\n        top.value = 0;\n        width.value = 0;\n        x.value = 0;\n        y.value = 0;\n      }\n      return;\n    }\n    const rect = el.getBoundingClientRect();\n    height.value = rect.height;\n    bottom.value = rect.bottom;\n    left.value = rect.left;\n    right.value = rect.right;\n    top.value = rect.top;\n    width.value = rect.width;\n    x.value = rect.x;\n    y.value = rect.y;\n  }\n  useResizeObserver(target, update);\n  watch(() => unrefElement(target), (ele) => !ele && update());\n  if (windowScroll)\n    useEventListener(\"scroll\", update, { passive: true });\n  if (windowResize)\n    useEventListener(\"resize\", update, { passive: true });\n  tryOnMounted(() => {\n    if (immediate)\n      update();\n  });\n  return {\n    height,\n    bottom,\n    left,\n    right,\n    top,\n    width,\n    x,\n    y,\n    update\n  };\n}\n\nfunction useRafFn(fn, options = {}) {\n  const {\n    immediate = true,\n    window = defaultWindow\n  } = options;\n  const isActive = ref(false);\n  let rafId = null;\n  function loop() {\n    if (!isActive.value || !window)\n      return;\n    fn();\n    rafId = window.requestAnimationFrame(loop);\n  }\n  function resume() {\n    if (!isActive.value && window) {\n      isActive.value = true;\n      loop();\n    }\n  }\n  function pause() {\n    isActive.value = false;\n    if (rafId != null && window) {\n      window.cancelAnimationFrame(rafId);\n      rafId = null;\n    }\n  }\n  if (immediate)\n    resume();\n  tryOnScopeDispose(pause);\n  return {\n    isActive,\n    pause,\n    resume\n  };\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$e.call(b, prop))\n      __defNormalProp$d(a, prop, b[prop]);\n  if (__getOwnPropSymbols$e)\n    for (var prop of __getOwnPropSymbols$e(b)) {\n      if (__propIsEnum$e.call(b, prop))\n        __defNormalProp$d(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useElementByPoint(options) {\n  const element = ref(null);\n  const { x, y } = options;\n  const controls = useRafFn(() => {\n    element.value = document.elementFromPoint(resolveUnref(x), resolveUnref(y));\n  });\n  return __spreadValues$d({\n    element\n  }, controls);\n}\n\nfunction useElementHover(el) {\n  const isHovered = ref(false);\n  useEventListener(el, \"mouseenter\", () => isHovered.value = true);\n  useEventListener(el, \"mouseleave\", () => isHovered.value = false);\n  return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n  const { box = \"content-box\" } = options;\n  const width = ref(initialSize.width);\n  const height = ref(initialSize.height);\n  useResizeObserver(target, ([entry]) => {\n    const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n    if (boxSize) {\n      width.value = boxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n      height.value = boxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n    } else {\n      width.value = entry.contentRect.width;\n      height.value = entry.contentRect.height;\n    }\n  }, options);\n  watch(() => unrefElement(target), (ele) => {\n    width.value = ele ? initialSize.width : 0;\n    height.value = ele ? initialSize.height : 0;\n  });\n  return {\n    width,\n    height\n  };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n  const elementIsVisible = ref(false);\n  const testBounding = () => {\n    if (!window)\n      return;\n    const document = window.document;\n    const el = unrefElement(element);\n    if (!el) {\n      elementIsVisible.value = false;\n    } else {\n      const rect = el.getBoundingClientRect();\n      elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;\n    }\n  };\n  watch(() => unrefElement(element), () => testBounding(), { immediate: true, flush: \"post\" });\n  if (window) {\n    useEventListener(scrollTarget || window, \"scroll\", testBounding, {\n      capture: false,\n      passive: true\n    });\n  }\n  return elementIsVisible;\n}\n\nconst events = new Map();\n\nfunction useEventBus(key) {\n  const scope = getCurrentScope();\n  function on(listener) {\n    var _a;\n    const listeners = events.get(key) || [];\n    listeners.push(listener);\n    events.set(key, listeners);\n    const _off = () => off(listener);\n    (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n    return _off;\n  }\n  function once(listener) {\n    function _listener(...args) {\n      off(_listener);\n      listener(...args);\n    }\n    return on(_listener);\n  }\n  function off(listener) {\n    const listeners = events.get(key);\n    if (!listeners)\n      return;\n    const index = listeners.indexOf(listener);\n    if (index > -1)\n      listeners.splice(index, 1);\n    if (!listeners.length)\n      events.delete(key);\n  }\n  function reset() {\n    events.delete(key);\n  }\n  function emit(event, payload) {\n    var _a;\n    (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n  }\n  return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n  const event = ref(null);\n  const data = ref(null);\n  const status = ref(\"CONNECTING\");\n  const eventSource = ref(null);\n  const error = ref(null);\n  const {\n    withCredentials = false\n  } = options;\n  const close = () => {\n    if (eventSource.value) {\n      eventSource.value.close();\n      eventSource.value = null;\n      status.value = \"CLOSED\";\n    }\n  };\n  const es = new EventSource(url, { withCredentials });\n  eventSource.value = es;\n  es.onopen = () => {\n    status.value = \"OPEN\";\n    error.value = null;\n  };\n  es.onerror = (e) => {\n    status.value = \"CLOSED\";\n    error.value = e;\n  };\n  es.onmessage = (e) => {\n    event.value = null;\n    data.value = e.data;\n  };\n  for (const event_name of events) {\n    useEventListener(es, event_name, (e) => {\n      event.value = event_name;\n      data.value = e.data || null;\n    });\n  }\n  tryOnScopeDispose(() => {\n    close();\n  });\n  return {\n    eventSource,\n    event,\n    data,\n    status,\n    error,\n    close\n  };\n}\n\nfunction useEyeDropper(options = {}) {\n  const { initialValue = \"\" } = options;\n  const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n  const sRGBHex = ref(initialValue);\n  async function open(openOptions) {\n    if (!isSupported.value)\n      return;\n    const eyeDropper = new window.EyeDropper();\n    const result = await eyeDropper.open(openOptions);\n    sRGBHex.value = result.sRGBHex;\n    return result;\n  }\n  return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n  const {\n    baseUrl = \"\",\n    rel = \"icon\",\n    document = defaultDocument\n  } = options;\n  const favicon = resolveRef(newIcon);\n  const applyIcon = (icon) => {\n    document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n  };\n  watch(favicon, (i, o) => {\n    if (isString(i) && i !== o)\n      applyIcon(i);\n  }, { immediate: true });\n  return favicon;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$d.call(b, prop))\n      __defNormalProp$c(a, prop, b[prop]);\n  if (__getOwnPropSymbols$d)\n    for (var prop of __getOwnPropSymbols$d(b)) {\n      if (__propIsEnum$d.call(b, prop))\n        __defNormalProp$c(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst payloadMapping = {\n  json: \"application/json\",\n  text: \"text/plain\",\n  formData: \"multipart/form-data\"\n};\nfunction isFetchOptions(obj) {\n  return containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction headersToObject(headers) {\n  if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n    return Object.fromEntries([...headers.entries()]);\n  return headers;\n}\nfunction chainCallbacks(...callbacks) {\n  return async (ctx) => {\n    await callbacks.reduce((prevCallback, callback) => prevCallback.then(async () => {\n      if (callback)\n        ctx = __spreadValues$c(__spreadValues$c({}, ctx), await callback(ctx));\n    }), Promise.resolve());\n    return ctx;\n  };\n}\nfunction createFetch(config = {}) {\n  const _options = config.options || {};\n  const _fetchOptions = config.fetchOptions || {};\n  function useFactoryFetch(url, ...args) {\n    const computedUrl = computed(() => config.baseUrl ? joinPaths(resolveUnref(config.baseUrl), resolveUnref(url)) : resolveUnref(url));\n    let options = _options;\n    let fetchOptions = _fetchOptions;\n    if (args.length > 0) {\n      if (isFetchOptions(args[0])) {\n        options = __spreadProps$3(__spreadValues$c(__spreadValues$c({}, options), args[0]), {\n          beforeFetch: chainCallbacks(_options.beforeFetch, args[0].beforeFetch),\n          afterFetch: chainCallbacks(_options.afterFetch, args[0].afterFetch),\n          onFetchError: chainCallbacks(_options.onFetchError, args[0].onFetchError)\n        });\n      } else {\n        fetchOptions = __spreadProps$3(__spreadValues$c(__spreadValues$c({}, fetchOptions), args[0]), {\n          headers: __spreadValues$c(__spreadValues$c({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n        });\n      }\n    }\n    if (args.length > 1 && isFetchOptions(args[1])) {\n      options = __spreadProps$3(__spreadValues$c(__spreadValues$c({}, options), args[1]), {\n        beforeFetch: chainCallbacks(_options.beforeFetch, args[1].beforeFetch),\n        afterFetch: chainCallbacks(_options.afterFetch, args[1].afterFetch),\n        onFetchError: chainCallbacks(_options.onFetchError, args[1].onFetchError)\n      });\n    }\n    return useFetch(computedUrl, fetchOptions, options);\n  }\n  return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n  var _a;\n  const supportsAbort = typeof AbortController === \"function\";\n  let fetchOptions = {};\n  let options = { immediate: true, refetch: false, timeout: 0 };\n  const config = {\n    method: \"GET\",\n    type: \"text\",\n    payload: void 0\n  };\n  if (args.length > 0) {\n    if (isFetchOptions(args[0]))\n      options = __spreadValues$c(__spreadValues$c({}, options), args[0]);\n    else\n      fetchOptions = args[0];\n  }\n  if (args.length > 1) {\n    if (isFetchOptions(args[1]))\n      options = __spreadValues$c(__spreadValues$c({}, options), args[1]);\n  }\n  const {\n    fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n    initialData,\n    timeout\n  } = options;\n  const responseEvent = createEventHook();\n  const errorEvent = createEventHook();\n  const finallyEvent = createEventHook();\n  const isFinished = ref(false);\n  const isFetching = ref(false);\n  const aborted = ref(false);\n  const statusCode = ref(null);\n  const response = shallowRef(null);\n  const error = shallowRef(null);\n  const data = shallowRef(initialData);\n  const canAbort = computed(() => supportsAbort && isFetching.value);\n  let controller;\n  let timer;\n  const abort = () => {\n    if (supportsAbort && controller)\n      controller.abort();\n  };\n  const loading = (isLoading) => {\n    isFetching.value = isLoading;\n    isFinished.value = !isLoading;\n  };\n  if (timeout)\n    timer = useTimeoutFn(abort, timeout, { immediate: false });\n  const execute = async (throwOnFailed = false) => {\n    var _a2;\n    loading(true);\n    error.value = null;\n    statusCode.value = null;\n    aborted.value = false;\n    controller = void 0;\n    if (supportsAbort) {\n      controller = new AbortController();\n      controller.signal.onabort = () => aborted.value = true;\n      fetchOptions = __spreadProps$3(__spreadValues$c({}, fetchOptions), {\n        signal: controller.signal\n      });\n    }\n    const defaultFetchOptions = {\n      method: config.method,\n      headers: {}\n    };\n    if (config.payload) {\n      const headers = headersToObject(defaultFetchOptions.headers);\n      if (config.payloadType)\n        headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n      const payload = resolveUnref(config.payload);\n      defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n    }\n    let isCanceled = false;\n    const context = { url: resolveUnref(url), options: __spreadValues$c(__spreadValues$c({}, defaultFetchOptions), fetchOptions), cancel: () => {\n      isCanceled = true;\n    } };\n    if (options.beforeFetch)\n      Object.assign(context, await options.beforeFetch(context));\n    if (isCanceled || !fetch) {\n      loading(false);\n      return Promise.resolve(null);\n    }\n    let responseData = null;\n    if (timer)\n      timer.start();\n    return new Promise((resolve, reject) => {\n      var _a3;\n      fetch(context.url, __spreadProps$3(__spreadValues$c(__spreadValues$c({}, defaultFetchOptions), context.options), {\n        headers: __spreadValues$c(__spreadValues$c({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n      })).then(async (fetchResponse) => {\n        response.value = fetchResponse;\n        statusCode.value = fetchResponse.status;\n        responseData = await fetchResponse[config.type]();\n        if (options.afterFetch && statusCode.value >= 200 && statusCode.value < 300)\n          ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n        data.value = responseData;\n        if (!fetchResponse.ok)\n          throw new Error(fetchResponse.statusText);\n        responseEvent.trigger(fetchResponse);\n        return resolve(fetchResponse);\n      }).catch(async (fetchError) => {\n        let errorData = fetchError.message || fetchError.name;\n        if (options.onFetchError)\n          ({ data: responseData, error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n        data.value = responseData;\n        error.value = errorData;\n        errorEvent.trigger(fetchError);\n        if (throwOnFailed)\n          return reject(fetchError);\n        return resolve(null);\n      }).finally(() => {\n        loading(false);\n        if (timer)\n          timer.stop();\n        finallyEvent.trigger(null);\n      });\n    });\n  };\n  const refetch = resolveRef(options.refetch);\n  watch([\n    refetch,\n    resolveRef(url)\n  ], ([refetch2]) => refetch2 && execute(), { deep: true });\n  const shell = {\n    isFinished,\n    statusCode,\n    response,\n    error,\n    data,\n    isFetching,\n    canAbort,\n    aborted,\n    abort,\n    execute,\n    onFetchResponse: responseEvent.on,\n    onFetchError: errorEvent.on,\n    onFetchFinally: finallyEvent.on,\n    get: setMethod(\"GET\"),\n    put: setMethod(\"PUT\"),\n    post: setMethod(\"POST\"),\n    delete: setMethod(\"DELETE\"),\n    patch: setMethod(\"PATCH\"),\n    head: setMethod(\"HEAD\"),\n    options: setMethod(\"OPTIONS\"),\n    json: setType(\"json\"),\n    text: setType(\"text\"),\n    blob: setType(\"blob\"),\n    arrayBuffer: setType(\"arrayBuffer\"),\n    formData: setType(\"formData\")\n  };\n  function setMethod(method) {\n    return (payload, payloadType) => {\n      if (!isFetching.value) {\n        config.method = method;\n        config.payload = payload;\n        config.payloadType = payloadType;\n        if (isRef(config.payload)) {\n          watch([\n            refetch,\n            resolveRef(config.payload)\n          ], ([refetch2]) => refetch2 && execute(), { deep: true });\n        }\n        const rawPayload = resolveUnref(config.payload);\n        if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype)\n          config.payloadType = \"json\";\n        return __spreadProps$3(__spreadValues$c({}, shell), {\n          then(onFulfilled, onRejected) {\n            return waitUntilFinished().then(onFulfilled, onRejected);\n          }\n        });\n      }\n      return void 0;\n    };\n  }\n  function waitUntilFinished() {\n    return new Promise((resolve, reject) => {\n      until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n    });\n  }\n  function setType(type) {\n    return () => {\n      if (!isFetching.value) {\n        config.type = type;\n        return __spreadProps$3(__spreadValues$c({}, shell), {\n          then(onFulfilled, onRejected) {\n            return waitUntilFinished().then(onFulfilled, onRejected);\n          }\n        });\n      }\n      return void 0;\n    };\n  }\n  if (options.immediate)\n    setTimeout(execute, 0);\n  return __spreadProps$3(__spreadValues$c({}, shell), {\n    then(onFulfilled, onRejected) {\n      return waitUntilFinished().then(onFulfilled, onRejected);\n    }\n  });\n}\nfunction joinPaths(start, end) {\n  if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n    return `${start}/${end}`;\n  return `${start}${end}`;\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$c.call(b, prop))\n      __defNormalProp$b(a, prop, b[prop]);\n  if (__getOwnPropSymbols$c)\n    for (var prop of __getOwnPropSymbols$c(b)) {\n      if (__propIsEnum$c.call(b, prop))\n        __defNormalProp$b(a, prop, b[prop]);\n    }\n  return a;\n};\nconst DEFAULT_OPTIONS = {\n  multiple: true,\n  accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n  const {\n    document = defaultDocument\n  } = options;\n  const files = ref(null);\n  let input;\n  if (document) {\n    input = document.createElement(\"input\");\n    input.type = \"file\";\n    input.onchange = (event) => {\n      const result = event.target;\n      files.value = result.files;\n    };\n  }\n  const open = (localOptions) => {\n    if (!input)\n      return;\n    const _options = __spreadValues$b(__spreadValues$b(__spreadValues$b({}, DEFAULT_OPTIONS), options), localOptions);\n    input.multiple = _options.multiple;\n    input.accept = _options.accept;\n    if (hasOwn(_options, \"capture\"))\n      input.capture = _options.capture;\n    input.click();\n  };\n  const reset = () => {\n    files.value = null;\n    if (input)\n      input.value = \"\";\n  };\n  return {\n    files: readonly(files),\n    open,\n    reset\n  };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$b.call(b, prop))\n      __defNormalProp$a(a, prop, b[prop]);\n  if (__getOwnPropSymbols$b)\n    for (var prop of __getOwnPropSymbols$b(b)) {\n      if (__propIsEnum$b.call(b, prop))\n        __defNormalProp$a(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useFileSystemAccess(options = {}) {\n  const {\n    window: _window = defaultWindow,\n    dataType = \"Text\"\n  } = unref(options);\n  const window = _window;\n  const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n  const fileHandle = ref();\n  const data = ref();\n  const file = ref();\n  const fileName = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n  });\n  const fileMIME = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n  });\n  const fileSize = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n  });\n  const fileLastModified = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n  });\n  async function open(_options = {}) {\n    if (!isSupported.value)\n      return;\n    const [handle] = await window.showOpenFilePicker(__spreadValues$a(__spreadValues$a({}, unref(options)), _options));\n    fileHandle.value = handle;\n    await updateFile();\n    await updateData();\n  }\n  async function create(_options = {}) {\n    if (!isSupported.value)\n      return;\n    fileHandle.value = await window.showSaveFilePicker(__spreadValues$a(__spreadValues$a({}, unref(options)), _options));\n    data.value = void 0;\n    await updateFile();\n    await updateData();\n  }\n  async function save(_options = {}) {\n    if (!isSupported.value)\n      return;\n    if (!fileHandle.value)\n      return saveAs(_options);\n    if (data.value) {\n      const writableStream = await fileHandle.value.createWritable();\n      await writableStream.write(data.value);\n      await writableStream.close();\n    }\n    await updateFile();\n  }\n  async function saveAs(_options = {}) {\n    if (!isSupported.value)\n      return;\n    fileHandle.value = await window.showSaveFilePicker(__spreadValues$a(__spreadValues$a({}, unref(options)), _options));\n    if (data.value) {\n      const writableStream = await fileHandle.value.createWritable();\n      await writableStream.write(data.value);\n      await writableStream.close();\n    }\n    await updateFile();\n  }\n  async function updateFile() {\n    var _a;\n    file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n  }\n  async function updateData() {\n    var _a, _b;\n    if (unref(dataType) === \"Text\")\n      data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n    if (unref(dataType) === \"ArrayBuffer\")\n      data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n    if (unref(dataType) === \"Blob\")\n      data.value = file.value;\n  }\n  watch(() => unref(dataType), updateData);\n  return {\n    isSupported,\n    data,\n    file,\n    fileName,\n    fileMIME,\n    fileSize,\n    fileLastModified,\n    open,\n    create,\n    save,\n    saveAs,\n    updateData\n  };\n}\n\nfunction useFocus(target, options = {}) {\n  const { initialValue = false } = options;\n  const activeElement = useActiveElement(options);\n  const targetElement = computed(() => unrefElement(target));\n  const focused = computed({\n    get() {\n      return isDef(activeElement.value) && isDef(targetElement.value) && activeElement.value === targetElement.value;\n    },\n    set(value) {\n      var _a, _b;\n      if (!value && focused.value)\n        (_a = targetElement.value) == null ? void 0 : _a.blur();\n      if (value && !focused.value)\n        (_b = targetElement.value) == null ? void 0 : _b.focus();\n    }\n  });\n  watch(targetElement, () => {\n    focused.value = initialValue;\n  }, { immediate: true, flush: \"post\" });\n  return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n  const activeElement = useActiveElement(options);\n  const targetElement = computed(() => unrefElement(target));\n  const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n  return { focused };\n}\n\nfunction useFps(options) {\n  var _a;\n  const fps = ref(0);\n  if (typeof performance === \"undefined\")\n    return fps;\n  const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n  let last = performance.now();\n  let ticks = 0;\n  useRafFn(() => {\n    ticks += 1;\n    if (ticks >= every) {\n      const now = performance.now();\n      const diff = now - last;\n      fps.value = Math.round(1e3 / (diff / ticks));\n      last = now;\n      ticks = 0;\n    }\n  });\n  return fps;\n}\n\nconst functionsMap = [\n  [\n    \"requestFullscreen\",\n    \"exitFullscreen\",\n    \"fullscreenElement\",\n    \"fullscreenEnabled\",\n    \"fullscreenchange\",\n    \"fullscreenerror\"\n  ],\n  [\n    \"webkitRequestFullscreen\",\n    \"webkitExitFullscreen\",\n    \"webkitFullscreenElement\",\n    \"webkitFullscreenEnabled\",\n    \"webkitfullscreenchange\",\n    \"webkitfullscreenerror\"\n  ],\n  [\n    \"webkitRequestFullScreen\",\n    \"webkitCancelFullScreen\",\n    \"webkitCurrentFullScreenElement\",\n    \"webkitCancelFullScreen\",\n    \"webkitfullscreenchange\",\n    \"webkitfullscreenerror\"\n  ],\n  [\n    \"mozRequestFullScreen\",\n    \"mozCancelFullScreen\",\n    \"mozFullScreenElement\",\n    \"mozFullScreenEnabled\",\n    \"mozfullscreenchange\",\n    \"mozfullscreenerror\"\n  ],\n  [\n    \"msRequestFullscreen\",\n    \"msExitFullscreen\",\n    \"msFullscreenElement\",\n    \"msFullscreenEnabled\",\n    \"MSFullscreenChange\",\n    \"MSFullscreenError\"\n  ]\n];\nfunction useFullscreen(target, options = {}) {\n  const { document = defaultDocument, autoExit = false } = options;\n  const targetRef = target || (document == null ? void 0 : document.querySelector(\"html\"));\n  const isFullscreen = ref(false);\n  let map = functionsMap[0];\n  const isSupported = useSupported(() => {\n    if (!document) {\n      return false;\n    } else {\n      for (const m of functionsMap) {\n        if (m[1] in document) {\n          map = m;\n          return true;\n        }\n      }\n    }\n    return false;\n  });\n  const [REQUEST, EXIT, ELEMENT, , EVENT] = map;\n  async function exit() {\n    if (!isSupported.value)\n      return;\n    if (document == null ? void 0 : document[ELEMENT])\n      await document[EXIT]();\n    isFullscreen.value = false;\n  }\n  async function enter() {\n    if (!isSupported.value)\n      return;\n    await exit();\n    const target2 = unrefElement(targetRef);\n    if (target2) {\n      await target2[REQUEST]();\n      isFullscreen.value = true;\n    }\n  }\n  async function toggle() {\n    if (isFullscreen.value)\n      await exit();\n    else\n      await enter();\n  }\n  if (document) {\n    useEventListener(document, EVENT, () => {\n      isFullscreen.value = !!(document == null ? void 0 : document[ELEMENT]);\n    }, false);\n  }\n  if (autoExit)\n    tryOnScopeDispose(exit);\n  return {\n    isSupported,\n    isFullscreen,\n    enter,\n    exit,\n    toggle\n  };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n  return computed(() => {\n    if (gamepad.value) {\n      return {\n        buttons: {\n          a: gamepad.value.buttons[0],\n          b: gamepad.value.buttons[1],\n          x: gamepad.value.buttons[2],\n          y: gamepad.value.buttons[3]\n        },\n        bumper: {\n          left: gamepad.value.buttons[4],\n          right: gamepad.value.buttons[5]\n        },\n        triggers: {\n          left: gamepad.value.buttons[6],\n          right: gamepad.value.buttons[7]\n        },\n        stick: {\n          left: {\n            horizontal: gamepad.value.axes[0],\n            vertical: gamepad.value.axes[1],\n            button: gamepad.value.buttons[10]\n          },\n          right: {\n            horizontal: gamepad.value.axes[2],\n            vertical: gamepad.value.axes[3],\n            button: gamepad.value.buttons[11]\n          }\n        },\n        dpad: {\n          up: gamepad.value.buttons[12],\n          down: gamepad.value.buttons[13],\n          left: gamepad.value.buttons[14],\n          right: gamepad.value.buttons[15]\n        },\n        back: gamepad.value.buttons[8],\n        start: gamepad.value.buttons[9]\n      };\n    }\n    return null;\n  });\n}\nfunction useGamepad(options = {}) {\n  const {\n    navigator = defaultNavigator\n  } = options;\n  const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n  const gamepads = ref([]);\n  const onConnectedHook = createEventHook();\n  const onDisconnectedHook = createEventHook();\n  const stateFromGamepad = (gamepad) => {\n    const hapticActuators = [];\n    const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n    if (vibrationActuator)\n      hapticActuators.push(vibrationActuator);\n    if (gamepad.hapticActuators)\n      hapticActuators.push(...gamepad.hapticActuators);\n    return {\n      id: gamepad.id,\n      hapticActuators,\n      index: gamepad.index,\n      mapping: gamepad.mapping,\n      connected: gamepad.connected,\n      timestamp: gamepad.timestamp,\n      axes: gamepad.axes.map((axes) => axes),\n      buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n    };\n  };\n  const updateGamepadState = () => {\n    const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n    for (let i = 0; i < _gamepads.length; ++i) {\n      const gamepad = _gamepads[i];\n      if (gamepad) {\n        const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n        if (index > -1)\n          gamepads.value[index] = stateFromGamepad(gamepad);\n      }\n    }\n  };\n  const { isActive, pause, resume } = useRafFn(updateGamepadState);\n  const onGamepadConnected = (gamepad) => {\n    if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n      gamepads.value.push(stateFromGamepad(gamepad));\n      onConnectedHook.trigger(gamepad.index);\n    }\n    resume();\n  };\n  const onGamepadDisconnected = (gamepad) => {\n    gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n    onDisconnectedHook.trigger(gamepad.index);\n  };\n  useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n  useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n  tryOnMounted(() => {\n    const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n    if (_gamepads) {\n      for (let i = 0; i < _gamepads.length; ++i) {\n        const gamepad = _gamepads[i];\n        if (gamepad)\n          onGamepadConnected(gamepad);\n      }\n    }\n  });\n  pause();\n  return {\n    isSupported,\n    onConnected: onConnectedHook.on,\n    onDisconnected: onDisconnectedHook.on,\n    gamepads,\n    pause,\n    resume,\n    isActive\n  };\n}\n\nfunction useGeolocation(options = {}) {\n  const {\n    enableHighAccuracy = true,\n    maximumAge = 3e4,\n    timeout = 27e3,\n    navigator = defaultNavigator\n  } = options;\n  const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n  const locatedAt = ref(null);\n  const error = ref(null);\n  const coords = ref({\n    accuracy: 0,\n    latitude: Infinity,\n    longitude: Infinity,\n    altitude: null,\n    altitudeAccuracy: null,\n    heading: null,\n    speed: null\n  });\n  function updatePosition(position) {\n    locatedAt.value = position.timestamp;\n    coords.value = position.coords;\n    error.value = null;\n  }\n  let watcher;\n  if (isSupported.value) {\n    watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n      enableHighAccuracy,\n      maximumAge,\n      timeout\n    });\n  }\n  tryOnScopeDispose(() => {\n    if (watcher && navigator)\n      navigator.geolocation.clearWatch(watcher);\n  });\n  return {\n    isSupported,\n    coords,\n    locatedAt,\n    error\n  };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n  const {\n    initialState = false,\n    listenForVisibilityChange = true,\n    events = defaultEvents$1,\n    window = defaultWindow,\n    eventFilter = throttleFilter(50)\n  } = options;\n  const idle = ref(initialState);\n  const lastActive = ref(timestamp());\n  let timer;\n  const onEvent = createFilterWrapper(eventFilter, () => {\n    idle.value = false;\n    lastActive.value = timestamp();\n    clearTimeout(timer);\n    timer = setTimeout(() => idle.value = true, timeout);\n  });\n  if (window) {\n    const document = window.document;\n    for (const event of events)\n      useEventListener(window, event, onEvent, { passive: true });\n    if (listenForVisibilityChange) {\n      useEventListener(document, \"visibilitychange\", () => {\n        if (!document.hidden)\n          onEvent();\n      });\n    }\n  }\n  timer = setTimeout(() => idle.value = true, timeout);\n  return { idle, lastActive };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$a.call(b, prop))\n      __defNormalProp$9(a, prop, b[prop]);\n  if (__getOwnPropSymbols$a)\n    for (var prop of __getOwnPropSymbols$a(b)) {\n      if (__propIsEnum$a.call(b, prop))\n        __defNormalProp$9(a, prop, b[prop]);\n    }\n  return a;\n};\nasync function loadImage(options) {\n  return new Promise((resolve, reject) => {\n    const img = new Image();\n    const { src, srcset, sizes } = options;\n    img.src = src;\n    if (srcset)\n      img.srcset = srcset;\n    if (sizes)\n      img.sizes = sizes;\n    img.onload = () => resolve(img);\n    img.onerror = reject;\n  });\n}\nconst useImage = (options, asyncStateOptions = {}) => {\n  const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$9({\n    resetOnExecute: true\n  }, asyncStateOptions));\n  watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n  return state;\n};\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n  const {\n    throttle = 0,\n    idle = 200,\n    onStop = noop,\n    onScroll = noop,\n    offset = {\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    },\n    eventListenerOptions = {\n      capture: false,\n      passive: true\n    },\n    behavior = \"auto\"\n  } = options;\n  const internalX = ref(0);\n  const internalY = ref(0);\n  const x = computed({\n    get() {\n      return internalX.value;\n    },\n    set(x2) {\n      scrollTo(x2, void 0);\n    }\n  });\n  const y = computed({\n    get() {\n      return internalY.value;\n    },\n    set(y2) {\n      scrollTo(void 0, y2);\n    }\n  });\n  function scrollTo(_x, _y) {\n    var _a, _b, _c;\n    const _element = resolveUnref(element);\n    if (!_element)\n      return;\n    (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({\n      top: (_a = resolveUnref(_y)) != null ? _a : y.value,\n      left: (_b = resolveUnref(_x)) != null ? _b : x.value,\n      behavior: resolveUnref(behavior)\n    });\n  }\n  const isScrolling = ref(false);\n  const arrivedState = reactive({\n    left: true,\n    right: false,\n    top: true,\n    bottom: false\n  });\n  const directions = reactive({\n    left: false,\n    right: false,\n    top: false,\n    bottom: false\n  });\n  const onScrollEnd = useDebounceFn((e) => {\n    isScrolling.value = false;\n    directions.left = false;\n    directions.right = false;\n    directions.top = false;\n    directions.bottom = false;\n    onStop(e);\n  }, throttle + idle);\n  const onScrollHandler = (e) => {\n    const eventTarget = e.target === document ? e.target.documentElement : e.target;\n    const scrollLeft = eventTarget.scrollLeft;\n    directions.left = scrollLeft < internalX.value;\n    directions.right = scrollLeft > internalY.value;\n    arrivedState.left = scrollLeft <= 0 + (offset.left || 0);\n    arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n    internalX.value = scrollLeft;\n    let scrollTop = eventTarget.scrollTop;\n    if (e.target === document && !scrollTop)\n      scrollTop = document.body.scrollTop;\n    directions.top = scrollTop < internalY.value;\n    directions.bottom = scrollTop > internalY.value;\n    arrivedState.top = scrollTop <= 0 + (offset.top || 0);\n    arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n    internalY.value = scrollTop;\n    isScrolling.value = true;\n    onScrollEnd(e);\n    onScroll(e);\n  };\n  useEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);\n  return {\n    x,\n    y,\n    isScrolling,\n    arrivedState,\n    directions\n  };\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$9.call(b, prop))\n      __defNormalProp$8(a, prop, b[prop]);\n  if (__getOwnPropSymbols$9)\n    for (var prop of __getOwnPropSymbols$9(b)) {\n      if (__propIsEnum$9.call(b, prop))\n        __defNormalProp$8(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n  var _a, _b;\n  const direction = (_a = options.direction) != null ? _a : \"bottom\";\n  const state = reactive(useScroll(element, __spreadProps$2(__spreadValues$8({}, options), {\n    offset: __spreadValues$8({\n      [direction]: (_b = options.distance) != null ? _b : 0\n    }, options.offset)\n  })));\n  watch(() => state.arrivedState[direction], async (v) => {\n    var _a2, _b2;\n    if (v) {\n      const elem = resolveUnref(element);\n      const previous = {\n        height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,\n        width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0\n      };\n      await onLoadMore(state);\n      if (options.preserveScrollPosition && elem) {\n        nextTick(() => {\n          elem.scrollTo({\n            top: elem.scrollHeight - previous.height,\n            left: elem.scrollWidth - previous.width\n          });\n        });\n      }\n    }\n  });\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n  const {\n    root,\n    rootMargin = \"0px\",\n    threshold = 0.1,\n    window = defaultWindow\n  } = options;\n  const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n  let cleanup = noop;\n  const stopWatch = isSupported.value ? watch(() => ({\n    el: unrefElement(target),\n    root: unrefElement(root)\n  }), ({ el, root: root2 }) => {\n    cleanup();\n    if (!el)\n      return;\n    const observer = new IntersectionObserver(callback, {\n      root: root2,\n      rootMargin,\n      threshold\n    });\n    observer.observe(el);\n    cleanup = () => {\n      observer.disconnect();\n      cleanup = noop;\n    };\n  }, { immediate: true, flush: \"post\" }) : noop;\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop\n  };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n  const {\n    events = defaultEvents,\n    document = defaultDocument,\n    initial = null\n  } = options;\n  const state = ref(initial);\n  if (document) {\n    events.forEach((listenerEvent) => {\n      useEventListener(document, listenerEvent, (evt) => {\n        if (typeof evt.getModifierState === \"function\")\n          state.value = evt.getModifierState(modifier);\n      });\n    });\n  }\n  return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n  const { window = defaultWindow } = options;\n  return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n  ctrl: \"control\",\n  command: \"meta\",\n  cmd: \"meta\",\n  option: \"alt\",\n  up: \"arrowup\",\n  down: \"arrowdown\",\n  left: \"arrowleft\",\n  right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n  const {\n    reactive: useReactive = false,\n    target = defaultWindow,\n    aliasMap = DefaultMagicKeysAliasMap,\n    passive = true,\n    onEventFired = noop\n  } = options;\n  const current = reactive(new Set());\n  const obj = { toJSON() {\n    return {};\n  }, current };\n  const refs = useReactive ? reactive(obj) : obj;\n  const metaDeps = new Set();\n  const usedKeys = new Set();\n  function setRefs(key, value) {\n    if (key in refs) {\n      if (useReactive)\n        refs[key] = value;\n      else\n        refs[key].value = value;\n    }\n  }\n  function reset() {\n    for (const key of usedKeys)\n      setRefs(key, false);\n  }\n  function updateRefs(e, value) {\n    var _a, _b;\n    const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n    const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n    const values = [code, key].filter(Boolean);\n    if (key) {\n      if (value)\n        current.add(key);\n      else\n        current.delete(key);\n    }\n    for (const key2 of values) {\n      usedKeys.add(key2);\n      setRefs(key2, value);\n    }\n    if (key === \"meta\" && !value) {\n      metaDeps.forEach((key2) => {\n        current.delete(key2);\n        setRefs(key2, false);\n      });\n      metaDeps.clear();\n    } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n      [...current, ...values].forEach((key2) => metaDeps.add(key2));\n    }\n  }\n  useEventListener(target, \"keydown\", (e) => {\n    updateRefs(e, true);\n    return onEventFired(e);\n  }, { passive });\n  useEventListener(target, \"keyup\", (e) => {\n    updateRefs(e, false);\n    return onEventFired(e);\n  }, { passive });\n  useEventListener(\"blur\", reset, { passive: true });\n  useEventListener(\"focus\", reset, { passive: true });\n  const proxy = new Proxy(refs, {\n    get(target2, prop, rec) {\n      if (typeof prop !== \"string\")\n        return Reflect.get(target2, prop, rec);\n      prop = prop.toLowerCase();\n      if (prop in aliasMap)\n        prop = aliasMap[prop];\n      if (!(prop in refs)) {\n        if (/[+_-]/.test(prop)) {\n          const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n          refs[prop] = computed(() => keys.every((key) => unref(proxy[key])));\n        } else {\n          refs[prop] = ref(false);\n        }\n      }\n      const r = Reflect.get(target2, prop, rec);\n      return useReactive ? unref(r) : r;\n    }\n  });\n  return proxy;\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$8.call(b, prop))\n      __defNormalProp$7(a, prop, b[prop]);\n  if (__getOwnPropSymbols$8)\n    for (var prop of __getOwnPropSymbols$8(b)) {\n      if (__propIsEnum$8.call(b, prop))\n        __defNormalProp$7(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction usingElRef(source, cb) {\n  if (resolveUnref(source))\n    cb(resolveUnref(source));\n}\nfunction timeRangeToArray(timeRanges) {\n  let ranges = [];\n  for (let i = 0; i < timeRanges.length; ++i)\n    ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n  return ranges;\n}\nfunction tracksToArray(tracks) {\n  return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n  src: \"\",\n  tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n  options = __spreadValues$7(__spreadValues$7({}, defaultOptions), options);\n  const {\n    document = defaultDocument\n  } = options;\n  const currentTime = ref(0);\n  const duration = ref(0);\n  const seeking = ref(false);\n  const volume = ref(1);\n  const waiting = ref(false);\n  const ended = ref(false);\n  const playing = ref(false);\n  const rate = ref(1);\n  const stalled = ref(false);\n  const buffered = ref([]);\n  const tracks = ref([]);\n  const selectedTrack = ref(-1);\n  const isPictureInPicture = ref(false);\n  const muted = ref(false);\n  const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n  const sourceErrorEvent = createEventHook();\n  const disableTrack = (track) => {\n    usingElRef(target, (el) => {\n      if (track) {\n        const id = isNumber(track) ? track : track.id;\n        el.textTracks[id].mode = \"disabled\";\n      } else {\n        for (let i = 0; i < el.textTracks.length; ++i)\n          el.textTracks[i].mode = \"disabled\";\n      }\n      selectedTrack.value = -1;\n    });\n  };\n  const enableTrack = (track, disableTracks = true) => {\n    usingElRef(target, (el) => {\n      const id = isNumber(track) ? track : track.id;\n      if (disableTracks)\n        disableTrack();\n      el.textTracks[id].mode = \"showing\";\n      selectedTrack.value = id;\n    });\n  };\n  const togglePictureInPicture = () => {\n    return new Promise((resolve, reject) => {\n      usingElRef(target, async (el) => {\n        if (supportsPictureInPicture) {\n          if (!isPictureInPicture.value) {\n            el.requestPictureInPicture().then(resolve).catch(reject);\n          } else {\n            document.exitPictureInPicture().then(resolve).catch(reject);\n          }\n        }\n      });\n    });\n  };\n  watchEffect(() => {\n    if (!document)\n      return;\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    const src = resolveUnref(options.src);\n    let sources = [];\n    if (!src)\n      return;\n    if (isString(src))\n      sources = [{ src }];\n    else if (Array.isArray(src))\n      sources = src;\n    else if (isObject(src))\n      sources = [src];\n    el.querySelectorAll(\"source\").forEach((e) => {\n      e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n      e.remove();\n    });\n    sources.forEach(({ src: src2, type }) => {\n      const source = document.createElement(\"source\");\n      source.setAttribute(\"src\", src2);\n      source.setAttribute(\"type\", type || \"\");\n      source.addEventListener(\"error\", sourceErrorEvent.trigger);\n      el.appendChild(source);\n    });\n    el.load();\n  });\n  tryOnScopeDispose(() => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n  });\n  watch(volume, (vol) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.volume = vol;\n  });\n  watch(muted, (mute) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.muted = mute;\n  });\n  watch(rate, (rate2) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.playbackRate = rate2;\n  });\n  watchEffect(() => {\n    if (!document)\n      return;\n    const textTracks = resolveUnref(options.tracks);\n    const el = resolveUnref(target);\n    if (!textTracks || !textTracks.length || !el)\n      return;\n    el.querySelectorAll(\"track\").forEach((e) => e.remove());\n    textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n      const track = document.createElement(\"track\");\n      track.default = isDefault || false;\n      track.kind = kind;\n      track.label = label;\n      track.src = src;\n      track.srclang = srcLang;\n      if (track.default)\n        selectedTrack.value = i;\n      el.appendChild(track);\n    });\n  });\n  const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.currentTime = time;\n  });\n  const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    isPlaying ? el.play() : el.pause();\n  });\n  useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = resolveUnref(target).currentTime));\n  useEventListener(target, \"durationchange\", () => duration.value = resolveUnref(target).duration);\n  useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(resolveUnref(target).buffered));\n  useEventListener(target, \"seeking\", () => seeking.value = true);\n  useEventListener(target, \"seeked\", () => seeking.value = false);\n  useEventListener(target, \"waiting\", () => waiting.value = true);\n  useEventListener(target, \"playing\", () => waiting.value = false);\n  useEventListener(target, \"ratechange\", () => rate.value = resolveUnref(target).playbackRate);\n  useEventListener(target, \"stalled\", () => stalled.value = true);\n  useEventListener(target, \"ended\", () => ended.value = true);\n  useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n  useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n  useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n  useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n  useEventListener(target, \"volumechange\", () => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    volume.value = el.volume;\n    muted.value = el.muted;\n  });\n  const listeners = [];\n  const stop = watch([target], () => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    stop();\n    listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n    listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n    listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n  });\n  tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n  return {\n    currentTime,\n    duration,\n    waiting,\n    seeking,\n    ended,\n    stalled,\n    buffered,\n    playing,\n    rate,\n    volume,\n    muted,\n    tracks,\n    selectedTrack,\n    enableTrack,\n    disableTrack,\n    supportsPictureInPicture,\n    togglePictureInPicture,\n    isPictureInPicture,\n    onSourceError: sourceErrorEvent.on\n  };\n}\n\nconst getMapVue2Compat = () => {\n  const data = reactive({});\n  return {\n    get: (key) => data[key],\n    set: (key, value) => set(data, key, value),\n    has: (key) => hasOwn(data, key),\n    delete: (key) => del(data, key),\n    clear: () => {\n      Object.keys(data).forEach((key) => {\n        del(data, key);\n      });\n    }\n  };\n};\nfunction useMemoize(resolver, options) {\n  const initCache = () => {\n    if (options == null ? void 0 : options.cache)\n      return reactive(options.cache);\n    if (isVue2)\n      return getMapVue2Compat();\n    return reactive(new Map());\n  };\n  const cache = initCache();\n  const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n  const _loadData = (key, ...args) => {\n    cache.set(key, resolver(...args));\n    return cache.get(key);\n  };\n  const loadData = (...args) => _loadData(generateKey(...args), ...args);\n  const deleteData = (...args) => {\n    cache.delete(generateKey(...args));\n  };\n  const clearData = () => {\n    cache.clear();\n  };\n  const memoized = (...args) => {\n    const key = generateKey(...args);\n    if (cache.has(key))\n      return cache.get(key);\n    return _loadData(key, ...args);\n  };\n  memoized.load = loadData;\n  memoized.delete = deleteData;\n  memoized.clear = clearData;\n  memoized.generateKey = generateKey;\n  memoized.cache = cache;\n  return memoized;\n}\n\nfunction useMemory(options = {}) {\n  const memory = ref();\n  const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n  if (isSupported.value) {\n    const { interval = 1e3 } = options;\n    useIntervalFn(() => {\n      memory.value = performance.memory;\n    }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n  }\n  return { isSupported, memory };\n}\n\nfunction useMounted() {\n  const isMounted = ref(false);\n  onMounted(() => {\n    isMounted.value = true;\n  });\n  return isMounted;\n}\n\nfunction useMouse(options = {}) {\n  const {\n    type = \"page\",\n    touch = true,\n    resetOnTouchEnds = false,\n    initialValue = { x: 0, y: 0 },\n    window = defaultWindow,\n    eventFilter\n  } = options;\n  const x = ref(initialValue.x);\n  const y = ref(initialValue.y);\n  const sourceType = ref(null);\n  const mouseHandler = (event) => {\n    if (type === \"page\") {\n      x.value = event.pageX;\n      y.value = event.pageY;\n    } else if (type === \"client\") {\n      x.value = event.clientX;\n      y.value = event.clientY;\n    }\n    sourceType.value = \"mouse\";\n  };\n  const reset = () => {\n    x.value = initialValue.x;\n    y.value = initialValue.y;\n  };\n  const touchHandler = (event) => {\n    if (event.touches.length > 0) {\n      const touch2 = event.touches[0];\n      if (type === \"page\") {\n        x.value = touch2.pageX;\n        y.value = touch2.pageY;\n      } else if (type === \"client\") {\n        x.value = touch2.clientX;\n        y.value = touch2.clientY;\n      }\n      sourceType.value = \"touch\";\n    }\n  };\n  const mouseHandlerWrapper = (event) => {\n    return eventFilter === void 0 ? mouseHandler(event) : eventFilter(() => mouseHandler(event), {});\n  };\n  const touchHandlerWrapper = (event) => {\n    return eventFilter === void 0 ? touchHandler(event) : eventFilter(() => touchHandler(event), {});\n  };\n  if (window) {\n    useEventListener(window, \"mousemove\", mouseHandlerWrapper, { passive: true });\n    useEventListener(window, \"dragover\", mouseHandlerWrapper, { passive: true });\n    if (touch) {\n      useEventListener(window, \"touchstart\", touchHandlerWrapper, { passive: true });\n      useEventListener(window, \"touchmove\", touchHandlerWrapper, { passive: true });\n      if (resetOnTouchEnds)\n        useEventListener(window, \"touchend\", reset, { passive: true });\n    }\n  }\n  return {\n    x,\n    y,\n    sourceType\n  };\n}\n\nfunction useMouseInElement(target, options = {}) {\n  const {\n    handleOutside = true,\n    window = defaultWindow\n  } = options;\n  const { x, y, sourceType } = useMouse(options);\n  const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n  const elementX = ref(0);\n  const elementY = ref(0);\n  const elementPositionX = ref(0);\n  const elementPositionY = ref(0);\n  const elementHeight = ref(0);\n  const elementWidth = ref(0);\n  const isOutside = ref(true);\n  let stop = () => {\n  };\n  if (window) {\n    stop = watch([targetRef, x, y], () => {\n      const el = unrefElement(targetRef);\n      if (!el)\n        return;\n      const {\n        left,\n        top,\n        width,\n        height\n      } = el.getBoundingClientRect();\n      elementPositionX.value = left + window.pageXOffset;\n      elementPositionY.value = top + window.pageYOffset;\n      elementHeight.value = height;\n      elementWidth.value = width;\n      const elX = x.value - elementPositionX.value;\n      const elY = y.value - elementPositionY.value;\n      isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n      if (handleOutside || !isOutside.value) {\n        elementX.value = elX;\n        elementY.value = elY;\n      }\n    }, { immediate: true });\n  }\n  return {\n    x,\n    y,\n    sourceType,\n    elementX,\n    elementY,\n    elementPositionX,\n    elementPositionY,\n    elementHeight,\n    elementWidth,\n    isOutside,\n    stop\n  };\n}\n\nfunction useMousePressed(options = {}) {\n  const {\n    touch = true,\n    drag = true,\n    initialValue = false,\n    window = defaultWindow\n  } = options;\n  const pressed = ref(initialValue);\n  const sourceType = ref(null);\n  if (!window) {\n    return {\n      pressed,\n      sourceType\n    };\n  }\n  const onPressed = (srcType) => () => {\n    pressed.value = true;\n    sourceType.value = srcType;\n  };\n  const onReleased = () => {\n    pressed.value = false;\n    sourceType.value = null;\n  };\n  const target = computed(() => unrefElement(options.target) || window);\n  useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n  useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n  useEventListener(window, \"mouseup\", onReleased, { passive: true });\n  if (drag) {\n    useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n    useEventListener(window, \"drop\", onReleased, { passive: true });\n    useEventListener(window, \"dragend\", onReleased, { passive: true });\n  }\n  if (touch) {\n    useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n    useEventListener(window, \"touchend\", onReleased, { passive: true });\n    useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n  }\n  return {\n    pressed,\n    sourceType\n  };\n}\n\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$7)\n    for (var prop of __getOwnPropSymbols$7(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n  const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$1(_a, [\"window\"]);\n  let observer;\n  const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n  const cleanup = () => {\n    if (observer) {\n      observer.disconnect();\n      observer = void 0;\n    }\n  };\n  const stopWatch = watch(() => unrefElement(target), (el) => {\n    cleanup();\n    if (isSupported.value && window && el) {\n      observer = new MutationObserver(callback);\n      observer.observe(el, mutationOptions);\n    }\n  }, { immediate: true });\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop\n  };\n}\n\nconst useNavigatorLanguage = (options = {}) => {\n  const { window = defaultWindow } = options;\n  const navigator = window == null ? void 0 : window.navigator;\n  const isSupported = useSupported(() => navigator && \"language\" in navigator);\n  const language = ref(navigator == null ? void 0 : navigator.language);\n  useEventListener(window, \"languagechange\", () => {\n    if (navigator)\n      language.value = navigator.language;\n  });\n  return {\n    isSupported,\n    language\n  };\n};\n\nfunction useNetwork(options = {}) {\n  const { window = defaultWindow } = options;\n  const navigator = window == null ? void 0 : window.navigator;\n  const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n  const isOnline = ref(true);\n  const saveData = ref(false);\n  const offlineAt = ref(void 0);\n  const onlineAt = ref(void 0);\n  const downlink = ref(void 0);\n  const downlinkMax = ref(void 0);\n  const rtt = ref(void 0);\n  const effectiveType = ref(void 0);\n  const type = ref(\"unknown\");\n  const connection = isSupported.value && navigator.connection;\n  function updateNetworkInformation() {\n    if (!navigator)\n      return;\n    isOnline.value = navigator.onLine;\n    offlineAt.value = isOnline.value ? void 0 : Date.now();\n    onlineAt.value = isOnline.value ? Date.now() : void 0;\n    if (connection) {\n      downlink.value = connection.downlink;\n      downlinkMax.value = connection.downlinkMax;\n      effectiveType.value = connection.effectiveType;\n      rtt.value = connection.rtt;\n      saveData.value = connection.saveData;\n      type.value = connection.type;\n    }\n  }\n  if (window) {\n    useEventListener(window, \"offline\", () => {\n      isOnline.value = false;\n      offlineAt.value = Date.now();\n    });\n    useEventListener(window, \"online\", () => {\n      isOnline.value = true;\n      onlineAt.value = Date.now();\n    });\n  }\n  if (connection)\n    useEventListener(connection, \"change\", updateNetworkInformation, false);\n  updateNetworkInformation();\n  return {\n    isSupported,\n    isOnline,\n    saveData,\n    offlineAt,\n    onlineAt,\n    downlink,\n    downlinkMax,\n    effectiveType,\n    rtt,\n    type\n  };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$6.call(b, prop))\n      __defNormalProp$6(a, prop, b[prop]);\n  if (__getOwnPropSymbols$6)\n    for (var prop of __getOwnPropSymbols$6(b)) {\n      if (__propIsEnum$6.call(b, prop))\n        __defNormalProp$6(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useNow(options = {}) {\n  const {\n    controls: exposeControls = false,\n    interval = \"requestAnimationFrame\"\n  } = options;\n  const now = ref(new Date());\n  const update = () => now.value = new Date();\n  const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n  if (exposeControls) {\n    return __spreadValues$6({\n      now\n    }, controls);\n  } else {\n    return now;\n  }\n}\n\nfunction useObjectUrl(object) {\n  const url = ref();\n  const release = () => {\n    if (url.value)\n      URL.revokeObjectURL(url.value);\n    url.value = void 0;\n  };\n  watch(() => unref(object), (newObject) => {\n    release();\n    if (newObject)\n      url.value = URL.createObjectURL(newObject);\n  }, { immediate: true });\n  tryOnScopeDispose(release);\n  return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n  const _value = ref(value);\n  return computed({\n    get() {\n      return _value.value = clamp(_value.value, resolveUnref(min), resolveUnref(max));\n    },\n    set(value2) {\n      _value.value = clamp(value2, resolveUnref(min), resolveUnref(max));\n    }\n  });\n}\n\nfunction useOffsetPagination(options) {\n  const {\n    total = Infinity,\n    pageSize = 10,\n    page = 1,\n    onPageChange = noop,\n    onPageSizeChange = noop,\n    onPageCountChange = noop\n  } = options;\n  const currentPageSize = useClamp(pageSize, 1, Infinity);\n  const pageCount = computed(() => Math.max(1, Math.ceil(unref(total) / unref(currentPageSize))));\n  const currentPage = useClamp(page, 1, pageCount);\n  const isFirstPage = computed(() => currentPage.value === 1);\n  const isLastPage = computed(() => currentPage.value === pageCount.value);\n  if (isRef(page))\n    syncRef(page, currentPage);\n  if (isRef(pageSize))\n    syncRef(pageSize, currentPageSize);\n  function prev() {\n    currentPage.value--;\n  }\n  function next() {\n    currentPage.value++;\n  }\n  const returnValue = {\n    currentPage,\n    currentPageSize,\n    pageCount,\n    isFirstPage,\n    isLastPage,\n    prev,\n    next\n  };\n  watch(currentPage, () => {\n    onPageChange(reactive(returnValue));\n  });\n  watch(currentPageSize, () => {\n    onPageSizeChange(reactive(returnValue));\n  });\n  watch(pageCount, () => {\n    onPageCountChange(reactive(returnValue));\n  });\n  return returnValue;\n}\n\nfunction useOnline(options = {}) {\n  const { isOnline } = useNetwork(options);\n  return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n  const { window = defaultWindow } = options;\n  const isLeft = ref(false);\n  const handler = (event) => {\n    if (!window)\n      return;\n    event = event || window.event;\n    const from = event.relatedTarget || event.toElement;\n    isLeft.value = !from;\n  };\n  if (window) {\n    useEventListener(window, \"mouseout\", handler, { passive: true });\n    useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n    useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n  }\n  return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n  const {\n    deviceOrientationTiltAdjust = (i) => i,\n    deviceOrientationRollAdjust = (i) => i,\n    mouseTiltAdjust = (i) => i,\n    mouseRollAdjust = (i) => i,\n    window = defaultWindow\n  } = options;\n  const orientation = reactive(useDeviceOrientation({ window }));\n  const {\n    elementX: x,\n    elementY: y,\n    elementWidth: width,\n    elementHeight: height\n  } = useMouseInElement(target, { handleOutside: false, window });\n  const source = computed(() => {\n    if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n      return \"deviceOrientation\";\n    return \"mouse\";\n  });\n  const roll = computed(() => {\n    if (source.value === \"deviceOrientation\") {\n      const value = -orientation.beta / 90;\n      return deviceOrientationRollAdjust(value);\n    } else {\n      const value = -(y.value - height.value / 2) / height.value;\n      return mouseRollAdjust(value);\n    }\n  });\n  const tilt = computed(() => {\n    if (source.value === \"deviceOrientation\") {\n      const value = orientation.gamma / 90;\n      return deviceOrientationTiltAdjust(value);\n    } else {\n      const value = (x.value - width.value / 2) / width.value;\n      return mouseTiltAdjust(value);\n    }\n  });\n  return { roll, tilt, source };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$5.call(b, prop))\n      __defNormalProp$5(a, prop, b[prop]);\n  if (__getOwnPropSymbols$5)\n    for (var prop of __getOwnPropSymbols$5(b)) {\n      if (__propIsEnum$5.call(b, prop))\n        __defNormalProp$5(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst defaultState = {\n  x: 0,\n  y: 0,\n  pointerId: 0,\n  pressure: 0,\n  tiltX: 0,\n  tiltY: 0,\n  width: 0,\n  height: 0,\n  twist: 0,\n  pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n  const {\n    target = defaultWindow\n  } = options;\n  const isInside = ref(false);\n  const state = ref(options.initialValue || {});\n  Object.assign(state.value, defaultState, state.value);\n  const handler = (event) => {\n    isInside.value = true;\n    if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n      return;\n    state.value = objectPick(event, keys, false);\n  };\n  if (target) {\n    useEventListener(target, \"pointerdown\", handler, { passive: true });\n    useEventListener(target, \"pointermove\", handler, { passive: true });\n    useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n  }\n  return __spreadProps$1(__spreadValues$5({}, toRefs(state)), {\n    isInside\n  });\n}\n\nvar SwipeDirection;\n(function(SwipeDirection2) {\n  SwipeDirection2[\"UP\"] = \"UP\";\n  SwipeDirection2[\"RIGHT\"] = \"RIGHT\";\n  SwipeDirection2[\"DOWN\"] = \"DOWN\";\n  SwipeDirection2[\"LEFT\"] = \"LEFT\";\n  SwipeDirection2[\"NONE\"] = \"NONE\";\n})(SwipeDirection || (SwipeDirection = {}));\nfunction useSwipe(target, options = {}) {\n  const {\n    threshold = 50,\n    onSwipe,\n    onSwipeEnd,\n    onSwipeStart,\n    passive = true,\n    window = defaultWindow\n  } = options;\n  const coordsStart = reactive({ x: 0, y: 0 });\n  const coordsEnd = reactive({ x: 0, y: 0 });\n  const diffX = computed(() => coordsStart.x - coordsEnd.x);\n  const diffY = computed(() => coordsStart.y - coordsEnd.y);\n  const { max, abs } = Math;\n  const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n  const isSwiping = ref(false);\n  const direction = computed(() => {\n    if (!isThresholdExceeded.value)\n      return SwipeDirection.NONE;\n    if (abs(diffX.value) > abs(diffY.value)) {\n      return diffX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n    } else {\n      return diffY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n    }\n  });\n  const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n  const updateCoordsStart = (x, y) => {\n    coordsStart.x = x;\n    coordsStart.y = y;\n  };\n  const updateCoordsEnd = (x, y) => {\n    coordsEnd.x = x;\n    coordsEnd.y = y;\n  };\n  let listenerOptions;\n  const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n  if (!passive)\n    listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n  else\n    listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n  const onTouchEnd = (e) => {\n    if (isSwiping.value)\n      onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n    isSwiping.value = false;\n  };\n  const stops = [\n    useEventListener(target, \"touchstart\", (e) => {\n      if (listenerOptions.capture && !listenerOptions.passive)\n        e.preventDefault();\n      const [x, y] = getTouchEventCoords(e);\n      updateCoordsStart(x, y);\n      updateCoordsEnd(x, y);\n      onSwipeStart == null ? void 0 : onSwipeStart(e);\n    }, listenerOptions),\n    useEventListener(target, \"touchmove\", (e) => {\n      const [x, y] = getTouchEventCoords(e);\n      updateCoordsEnd(x, y);\n      if (!isSwiping.value && isThresholdExceeded.value)\n        isSwiping.value = true;\n      if (isSwiping.value)\n        onSwipe == null ? void 0 : onSwipe(e);\n    }, listenerOptions),\n    useEventListener(target, \"touchend\", onTouchEnd, listenerOptions),\n    useEventListener(target, \"touchcancel\", onTouchEnd, listenerOptions)\n  ];\n  const stop = () => stops.forEach((s) => s());\n  return {\n    isPassiveEventSupported,\n    isSwiping,\n    direction,\n    coordsStart,\n    coordsEnd,\n    lengthX: diffX,\n    lengthY: diffY,\n    stop\n  };\n}\nfunction checkPassiveEventSupport(document) {\n  if (!document)\n    return false;\n  let supportsPassive = false;\n  const optionsBlock = {\n    get passive() {\n      supportsPassive = true;\n      return false;\n    }\n  };\n  document.addEventListener(\"x\", noop, optionsBlock);\n  document.removeEventListener(\"x\", noop);\n  return supportsPassive;\n}\n\nfunction usePointerSwipe(target, options = {}) {\n  const targetRef = resolveRef(target);\n  const {\n    threshold = 50,\n    onSwipe,\n    onSwipeEnd,\n    onSwipeStart\n  } = options;\n  const posStart = reactive({ x: 0, y: 0 });\n  const updatePosStart = (x, y) => {\n    posStart.x = x;\n    posStart.y = y;\n  };\n  const posEnd = reactive({ x: 0, y: 0 });\n  const updatePosEnd = (x, y) => {\n    posEnd.x = x;\n    posEnd.y = y;\n  };\n  const distanceX = computed(() => posStart.x - posEnd.x);\n  const distanceY = computed(() => posStart.y - posEnd.y);\n  const { max, abs } = Math;\n  const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n  const isSwiping = ref(false);\n  const isPointerDown = ref(false);\n  const direction = computed(() => {\n    if (!isThresholdExceeded.value)\n      return SwipeDirection.NONE;\n    if (abs(distanceX.value) > abs(distanceY.value)) {\n      return distanceX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n    } else {\n      return distanceY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n    }\n  });\n  const filterEvent = (e) => {\n    if (options.pointerTypes)\n      return options.pointerTypes.includes(e.pointerType);\n    return true;\n  };\n  const stops = [\n    useEventListener(target, \"pointerdown\", (e) => {\n      var _a, _b;\n      if (!filterEvent(e))\n        return;\n      isPointerDown.value = true;\n      (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n      const eventTarget = e.target;\n      eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n      const { clientX: x, clientY: y } = e;\n      updatePosStart(x, y);\n      updatePosEnd(x, y);\n      onSwipeStart == null ? void 0 : onSwipeStart(e);\n    }),\n    useEventListener(target, \"pointermove\", (e) => {\n      if (!filterEvent(e))\n        return;\n      if (!isPointerDown.value)\n        return;\n      const { clientX: x, clientY: y } = e;\n      updatePosEnd(x, y);\n      if (!isSwiping.value && isThresholdExceeded.value)\n        isSwiping.value = true;\n      if (isSwiping.value)\n        onSwipe == null ? void 0 : onSwipe(e);\n    }),\n    useEventListener(target, \"pointerup\", (e) => {\n      var _a, _b;\n      if (!filterEvent(e))\n        return;\n      if (isSwiping.value)\n        onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n      isPointerDown.value = false;\n      isSwiping.value = false;\n      (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n    })\n  ];\n  const stop = () => stops.forEach((s) => s());\n  return {\n    isSwiping: readonly(isSwiping),\n    direction: readonly(direction),\n    posStart: readonly(posStart),\n    posEnd: readonly(posEnd),\n    distanceX,\n    distanceY,\n    stop\n  };\n}\n\nfunction usePreferredColorScheme(options) {\n  const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n  const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n  return computed(() => {\n    if (isDark.value)\n      return \"dark\";\n    if (isLight.value)\n      return \"light\";\n    return \"no-preference\";\n  });\n}\n\nfunction usePreferredContrast(options) {\n  const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n  const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n  const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n  return computed(() => {\n    if (isMore.value)\n      return \"more\";\n    if (isLess.value)\n      return \"less\";\n    if (isCustom.value)\n      return \"custom\";\n    return \"no-preference\";\n  });\n}\n\nfunction usePreferredLanguages(options = {}) {\n  const { window = defaultWindow } = options;\n  if (!window)\n    return ref([\"en\"]);\n  const navigator = window.navigator;\n  const value = ref(navigator.languages);\n  useEventListener(window, \"languagechange\", () => {\n    value.value = navigator.languages;\n  });\n  return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n  const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n  return computed(() => {\n    if (isReduced.value)\n      return \"reduce\";\n    return \"no-preference\";\n  });\n}\n\nconst useScreenOrientation = (options = {}) => {\n  const {\n    window = defaultWindow\n  } = options;\n  const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n  const screenOrientation = isSupported.value ? window.screen.orientation : {};\n  const orientation = ref(screenOrientation.type);\n  const angle = ref(screenOrientation.angle || 0);\n  if (isSupported.value) {\n    useEventListener(window, \"orientationchange\", () => {\n      orientation.value = screenOrientation.type;\n      angle.value = screenOrientation.angle;\n    });\n  }\n  const lockOrientation = (type) => {\n    if (!isSupported.value)\n      return Promise.reject(new Error(\"Not supported\"));\n    return screenOrientation.lock(type);\n  };\n  const unlockOrientation = () => {\n    if (isSupported.value)\n      screenOrientation.unlock();\n  };\n  return {\n    isSupported,\n    orientation,\n    angle,\n    lockOrientation,\n    unlockOrientation\n  };\n};\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n  const top = ref(\"\");\n  const right = ref(\"\");\n  const bottom = ref(\"\");\n  const left = ref(\"\");\n  if (isClient) {\n    const topCssVar = useCssVar(topVarName);\n    const rightCssVar = useCssVar(rightVarName);\n    const bottomCssVar = useCssVar(bottomVarName);\n    const leftCssVar = useCssVar(leftVarName);\n    topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n    rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n    bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n    leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n    update();\n    useEventListener(\"resize\", useDebounceFn(update));\n  }\n  function update() {\n    top.value = getValue(topVarName);\n    right.value = getValue(rightVarName);\n    bottom.value = getValue(bottomVarName);\n    left.value = getValue(leftVarName);\n  }\n  return {\n    top,\n    right,\n    bottom,\n    left,\n    update\n  };\n}\nfunction getValue(position) {\n  return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n  const {\n    immediate = true,\n    manual = false,\n    type = \"text/javascript\",\n    async = true,\n    crossOrigin,\n    referrerPolicy,\n    noModule,\n    defer,\n    document = defaultDocument,\n    attrs = {}\n  } = options;\n  const scriptTag = ref(null);\n  let _promise = null;\n  const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n    const resolveWithElement = (el2) => {\n      scriptTag.value = el2;\n      resolve(el2);\n      return el2;\n    };\n    if (!document) {\n      resolve(false);\n      return;\n    }\n    let shouldAppend = false;\n    let el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n    if (!el) {\n      el = document.createElement(\"script\");\n      el.type = type;\n      el.async = async;\n      el.src = resolveUnref(src);\n      if (defer)\n        el.defer = defer;\n      if (crossOrigin)\n        el.crossOrigin = crossOrigin;\n      if (noModule)\n        el.noModule = noModule;\n      if (referrerPolicy)\n        el.referrerPolicy = referrerPolicy;\n      Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n      shouldAppend = true;\n    } else if (el.hasAttribute(\"data-loaded\")) {\n      resolveWithElement(el);\n    }\n    el.addEventListener(\"error\", (event) => reject(event));\n    el.addEventListener(\"abort\", (event) => reject(event));\n    el.addEventListener(\"load\", () => {\n      el.setAttribute(\"data-loaded\", \"true\");\n      onLoaded(el);\n      resolveWithElement(el);\n    });\n    if (shouldAppend)\n      el = document.head.appendChild(el);\n    if (!waitForScriptLoad)\n      resolveWithElement(el);\n  });\n  const load = (waitForScriptLoad = true) => {\n    if (!_promise)\n      _promise = loadScript(waitForScriptLoad);\n    return _promise;\n  };\n  const unload = () => {\n    if (!document)\n      return;\n    _promise = null;\n    if (scriptTag.value)\n      scriptTag.value = null;\n    const el = document.querySelector(`script[src=\"${resolveUnref(src)}\"]`);\n    if (el)\n      document.head.removeChild(el);\n  };\n  if (immediate && !manual)\n    tryOnMounted(load);\n  if (!manual)\n    tryOnUnmounted(unload);\n  return { scriptTag, load, unload };\n}\n\nfunction preventDefault(rawEvent) {\n  const e = rawEvent || window.event;\n  if (e.touches.length > 1)\n    return true;\n  if (e.preventDefault)\n    e.preventDefault();\n  return false;\n}\nfunction useScrollLock(element, initialState = false) {\n  const isLocked = ref(initialState);\n  let stopTouchMoveListener = null;\n  let initialOverflow;\n  watch(resolveRef(element), (el) => {\n    if (el) {\n      const ele = el;\n      initialOverflow = ele.style.overflow;\n      if (isLocked.value)\n        ele.style.overflow = \"hidden\";\n    }\n  }, {\n    immediate: true\n  });\n  const lock = () => {\n    const ele = resolveUnref(element);\n    if (!ele || isLocked.value)\n      return;\n    if (isIOS) {\n      stopTouchMoveListener = useEventListener(ele, \"touchmove\", preventDefault, { passive: false });\n    }\n    ele.style.overflow = \"hidden\";\n    isLocked.value = true;\n  };\n  const unlock = () => {\n    const ele = resolveUnref(element);\n    if (!ele || !isLocked.value)\n      return;\n    isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n    ele.style.overflow = initialOverflow;\n    isLocked.value = false;\n  };\n  tryOnScopeDispose(unlock);\n  return computed({\n    get() {\n      return isLocked.value;\n    },\n    set(v) {\n      if (v)\n        lock();\n      else\n        unlock();\n    }\n  });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n  const { window = defaultWindow } = options;\n  return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$4.call(b, prop))\n      __defNormalProp$4(a, prop, b[prop]);\n  if (__getOwnPropSymbols$4)\n    for (var prop of __getOwnPropSymbols$4(b)) {\n      if (__propIsEnum$4.call(b, prop))\n        __defNormalProp$4(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n  const { navigator = defaultNavigator } = options;\n  const _navigator = navigator;\n  const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n  const share = async (overrideOptions = {}) => {\n    if (isSupported.value) {\n      const data = __spreadValues$4(__spreadValues$4({}, resolveUnref(shareOptions)), resolveUnref(overrideOptions));\n      let granted = true;\n      if (data.files && _navigator.canShare)\n        granted = _navigator.canShare({ files: data.files });\n      if (granted)\n        return _navigator.share(data);\n    }\n  };\n  return {\n    isSupported,\n    share\n  };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n  var _a, _b, _c, _d;\n  const [source] = args;\n  let compareFn = defaultCompare;\n  let options = {};\n  if (args.length === 2) {\n    if (typeof args[1] === \"object\") {\n      options = args[1];\n      compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n    } else {\n      compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n    }\n  } else if (args.length > 2) {\n    compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n    options = (_d = args[2]) != null ? _d : {};\n  }\n  const {\n    dirty = false,\n    sortFn = defaultSortFn\n  } = options;\n  if (!dirty)\n    return computed(() => sortFn([...unref(source)], compareFn));\n  watchEffect(() => {\n    const result = sortFn(unref(source), compareFn);\n    if (isRef(source))\n      source.value = result;\n    else\n      source.splice(0, source.length, ...result);\n  });\n  return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n  const {\n    interimResults = true,\n    continuous = true,\n    window = defaultWindow\n  } = options;\n  const lang = resolveRef(options.lang || \"en-US\");\n  const isListening = ref(false);\n  const isFinal = ref(false);\n  const result = ref(\"\");\n  const error = shallowRef(void 0);\n  const toggle = (value = !isListening.value) => {\n    isListening.value = value;\n  };\n  const start = () => {\n    isListening.value = true;\n  };\n  const stop = () => {\n    isListening.value = false;\n  };\n  const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n  const isSupported = useSupported(() => SpeechRecognition);\n  let recognition;\n  if (isSupported.value) {\n    recognition = new SpeechRecognition();\n    recognition.continuous = continuous;\n    recognition.interimResults = interimResults;\n    recognition.lang = unref(lang);\n    recognition.onstart = () => {\n      isFinal.value = false;\n    };\n    watch(lang, (lang2) => {\n      if (recognition && !isListening.value)\n        recognition.lang = lang2;\n    });\n    recognition.onresult = (event) => {\n      const transcript = Array.from(event.results).map((result2) => {\n        isFinal.value = result2.isFinal;\n        return result2[0];\n      }).map((result2) => result2.transcript).join(\"\");\n      result.value = transcript;\n      error.value = void 0;\n    };\n    recognition.onerror = (event) => {\n      error.value = event;\n    };\n    recognition.onend = () => {\n      isListening.value = false;\n      recognition.lang = unref(lang);\n    };\n    watch(isListening, () => {\n      if (isListening.value)\n        recognition.start();\n      else\n        recognition.stop();\n    });\n  }\n  tryOnScopeDispose(() => {\n    isListening.value = false;\n  });\n  return {\n    isSupported,\n    isListening,\n    isFinal,\n    recognition,\n    result,\n    error,\n    toggle,\n    start,\n    stop\n  };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n  const {\n    pitch = 1,\n    rate = 1,\n    volume = 1,\n    window = defaultWindow\n  } = options;\n  const synth = window && window.speechSynthesis;\n  const isSupported = useSupported(() => synth);\n  const isPlaying = ref(false);\n  const status = ref(\"init\");\n  const spokenText = resolveRef(text || \"\");\n  const lang = resolveRef(options.lang || \"en-US\");\n  const error = shallowRef(void 0);\n  const toggle = (value = !isPlaying.value) => {\n    isPlaying.value = value;\n  };\n  const bindEventsForUtterance = (utterance2) => {\n    utterance2.lang = unref(lang);\n    utterance2.voice = unref(options.voice) || null;\n    utterance2.pitch = pitch;\n    utterance2.rate = rate;\n    utterance2.volume = volume;\n    utterance2.onstart = () => {\n      isPlaying.value = true;\n      status.value = \"play\";\n    };\n    utterance2.onpause = () => {\n      isPlaying.value = false;\n      status.value = \"pause\";\n    };\n    utterance2.onresume = () => {\n      isPlaying.value = true;\n      status.value = \"play\";\n    };\n    utterance2.onend = () => {\n      isPlaying.value = false;\n      status.value = \"end\";\n    };\n    utterance2.onerror = (event) => {\n      error.value = event;\n    };\n  };\n  const utterance = computed(() => {\n    isPlaying.value = false;\n    status.value = \"init\";\n    const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n    bindEventsForUtterance(newUtterance);\n    return newUtterance;\n  });\n  const speak = () => {\n    synth.cancel();\n    utterance && synth.speak(utterance.value);\n  };\n  if (isSupported.value) {\n    bindEventsForUtterance(utterance.value);\n    watch(lang, (lang2) => {\n      if (utterance.value && !isPlaying.value)\n        utterance.value.lang = lang2;\n    });\n    if (options.voice) {\n      watch(options.voice, () => {\n        synth.cancel();\n      });\n    }\n    watch(isPlaying, () => {\n      if (isPlaying.value)\n        synth.resume();\n      else\n        synth.pause();\n    });\n  }\n  tryOnScopeDispose(() => {\n    isPlaying.value = false;\n  });\n  return {\n    isSupported,\n    isPlaying,\n    status,\n    utterance,\n    error,\n    toggle,\n    speak\n  };\n}\n\nfunction useStepper(steps, initialStep) {\n  const stepsRef = ref(steps);\n  const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n  const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n  const current = computed(() => at(index.value));\n  const isFirst = computed(() => index.value === 0);\n  const isLast = computed(() => index.value === stepNames.value.length - 1);\n  const next = computed(() => stepNames.value[index.value + 1]);\n  const previous = computed(() => stepNames.value[index.value - 1]);\n  function at(index2) {\n    if (Array.isArray(stepsRef.value))\n      return stepsRef.value[index2];\n    return stepsRef.value[stepNames.value[index2]];\n  }\n  function get(step) {\n    if (!stepNames.value.includes(step))\n      return;\n    return at(stepNames.value.indexOf(step));\n  }\n  function goTo(step) {\n    if (stepNames.value.includes(step))\n      index.value = stepNames.value.indexOf(step);\n  }\n  function goToNext() {\n    if (isLast.value)\n      return;\n    index.value++;\n  }\n  function goToPrevious() {\n    if (isFirst.value)\n      return;\n    index.value--;\n  }\n  function goBackTo(step) {\n    if (isAfter(step))\n      goTo(step);\n  }\n  function isNext(step) {\n    return stepNames.value.indexOf(step) === index.value + 1;\n  }\n  function isPrevious(step) {\n    return stepNames.value.indexOf(step) === index.value - 1;\n  }\n  function isCurrent(step) {\n    return stepNames.value.indexOf(step) === index.value;\n  }\n  function isBefore(step) {\n    return index.value < stepNames.value.indexOf(step);\n  }\n  function isAfter(step) {\n    return index.value > stepNames.value.indexOf(step);\n  }\n  return {\n    steps: stepsRef,\n    stepNames,\n    index,\n    current,\n    next,\n    previous,\n    isFirst,\n    isLast,\n    at,\n    get,\n    goTo,\n    goToNext,\n    goToPrevious,\n    goBackTo,\n    isNext,\n    isPrevious,\n    isCurrent,\n    isBefore,\n    isAfter\n  };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n  var _a;\n  const {\n    flush = \"pre\",\n    deep = true,\n    listenToStorageChanges = true,\n    writeDefaults = true,\n    shallow,\n    window = defaultWindow,\n    eventFilter,\n    onError = (e) => {\n      console.error(e);\n    }\n  } = options;\n  const rawInit = resolveUnref(initialValue);\n  const type = guessSerializerType(rawInit);\n  const data = (shallow ? shallowRef : ref)(initialValue);\n  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n  if (!storage) {\n    try {\n      storage = getSSRHandler(\"getDefaultStorage\", () => {\n        var _a2;\n        return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n      })();\n    } catch (e) {\n      onError(e);\n    }\n  }\n  async function read(event) {\n    if (!storage || event && event.key !== key)\n      return;\n    try {\n      const rawValue = event ? event.newValue : await storage.getItem(key);\n      if (rawValue == null) {\n        data.value = rawInit;\n        if (writeDefaults && rawInit !== null)\n          await storage.setItem(key, await serializer.write(rawInit));\n      } else {\n        data.value = await serializer.read(rawValue);\n      }\n    } catch (e) {\n      onError(e);\n    }\n  }\n  read();\n  if (window && listenToStorageChanges)\n    useEventListener(window, \"storage\", (e) => setTimeout(() => read(e), 0));\n  if (storage) {\n    watchWithFilter(data, async () => {\n      try {\n        if (data.value == null)\n          await storage.removeItem(key);\n        else\n          await storage.setItem(key, await serializer.write(data.value));\n      } catch (e) {\n        onError(e);\n      }\n    }, {\n      flush,\n      deep,\n      eventFilter\n    });\n  }\n  return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n  const isLoaded = ref(false);\n  const {\n    document = defaultDocument,\n    immediate = true,\n    manual = false,\n    id = `vueuse_styletag_${++_id}`\n  } = options;\n  const cssRef = ref(css);\n  let stop = () => {\n  };\n  const load = () => {\n    if (!document)\n      return;\n    const el = document.getElementById(id) || document.createElement(\"style\");\n    el.type = \"text/css\";\n    el.id = id;\n    if (options.media)\n      el.media = options.media;\n    document.head.appendChild(el);\n    if (isLoaded.value)\n      return;\n    stop = watch(cssRef, (value) => {\n      el.innerText = value;\n    }, { immediate: true });\n    isLoaded.value = true;\n  };\n  const unload = () => {\n    if (!document || !isLoaded.value)\n      return;\n    stop();\n    document.head.removeChild(document.getElementById(id));\n    isLoaded.value = false;\n  };\n  if (immediate && !manual)\n    tryOnMounted(load);\n  if (!manual)\n    tryOnScopeDispose(unload);\n  return {\n    id,\n    css: cssRef,\n    unload,\n    load,\n    isLoaded: readonly(isLoaded)\n  };\n}\n\nfunction useTemplateRefsList() {\n  const refs = ref([]);\n  refs.value.set = (el) => {\n    if (el)\n      refs.value.push(el);\n  };\n  onBeforeUpdate(() => {\n    refs.value.length = 0;\n  });\n  return refs;\n}\n\nfunction useTextDirection(options = {}) {\n  const {\n    document = defaultDocument,\n    selector = \"html\",\n    observe = false,\n    initialValue = \"ltr\"\n  } = options;\n  function getValue() {\n    var _a, _b;\n    return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n  }\n  const dir = ref(getValue());\n  tryOnMounted(() => dir.value = getValue());\n  if (observe && document) {\n    useMutationObserver(document.querySelector(selector), () => dir.value = getValue(), { attributes: true });\n  }\n  return computed({\n    get() {\n      return dir.value;\n    },\n    set(v) {\n      var _a, _b;\n      dir.value = v;\n      if (!document)\n        return;\n      if (dir.value)\n        (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n      else\n        (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n    }\n  });\n}\n\nfunction getRangesFromSelection(selection) {\n  var _a;\n  const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n  const ranges = new Array(rangeCount);\n  for (let i = 0; i < rangeCount; i++) {\n    const range = selection.getRangeAt(i);\n    ranges[i] = range;\n  }\n  return ranges;\n}\nfunction useTextSelection(options = {}) {\n  const {\n    window = defaultWindow\n  } = options;\n  const selection = ref(null);\n  const text = computed(() => {\n    var _a, _b;\n    return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n  });\n  const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n  const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n  function onSelectionChange() {\n    selection.value = null;\n    if (window)\n      selection.value = window.getSelection();\n  }\n  if (window)\n    useEventListener(window.document, \"selectionchange\", onSelectionChange);\n  return {\n    text,\n    rects,\n    ranges,\n    selection\n  };\n}\n\nfunction useTextareaAutosize(options) {\n  const textarea = ref(options == null ? void 0 : options.element);\n  const input = ref(options == null ? void 0 : options.input);\n  function triggerResize() {\n    var _a, _b;\n    if (!textarea.value)\n      return;\n    textarea.value.style.height = \"1px\";\n    textarea.value.style.height = `${(_a = textarea.value) == null ? void 0 : _a.scrollHeight}px`;\n    (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n  }\n  watch([input, textarea], triggerResize, { immediate: true });\n  if (options == null ? void 0 : options.watch)\n    watch(options.watch, triggerResize, { immediate: true, deep: true });\n  return {\n    textarea,\n    input,\n    triggerResize\n  };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$3.call(b, prop))\n      __defNormalProp$3(a, prop, b[prop]);\n  if (__getOwnPropSymbols$3)\n    for (var prop of __getOwnPropSymbols$3(b)) {\n      if (__propIsEnum$3.call(b, prop))\n        __defNormalProp$3(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction useThrottledRefHistory(source, options = {}) {\n  const { throttle = 200, trailing = true } = options;\n  const filter = throttleFilter(throttle, trailing);\n  const history = useRefHistory(source, __spreadProps(__spreadValues$3({}, options), { eventFilter: filter }));\n  return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$2.call(b, prop))\n      __defNormalProp$2(a, prop, b[prop]);\n  if (__getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(b)) {\n      if (__propIsEnum$2.call(b, prop))\n        __defNormalProp$2(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nconst UNITS = [\n  { max: 6e4, value: 1e3, name: \"second\" },\n  { max: 276e4, value: 6e4, name: \"minute\" },\n  { max: 72e6, value: 36e5, name: \"hour\" },\n  { max: 5184e5, value: 864e5, name: \"day\" },\n  { max: 24192e5, value: 6048e5, name: \"week\" },\n  { max: 28512e6, value: 2592e6, name: \"month\" },\n  { max: Infinity, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n  justNow: \"just now\",\n  past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n  future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n  month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n  year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n  day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n  week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n  hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n  minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n  second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`\n};\nconst DEFAULT_FORMATTER = (date) => date.toISOString().slice(0, 10);\nfunction useTimeAgo(time, options = {}) {\n  const {\n    controls: exposeControls = false,\n    max,\n    updateInterval = 3e4,\n    messages = DEFAULT_MESSAGES,\n    fullDateFormatter = DEFAULT_FORMATTER,\n    showSecond = false\n  } = options;\n  const { abs, round } = Math;\n  const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n  function getTimeago(from, now2) {\n    var _a2;\n    const diff = +now2 - +from;\n    const absDiff = abs(diff);\n    if (absDiff < 6e4 && !showSecond)\n      return messages.justNow;\n    if (typeof max === \"number\" && absDiff > max)\n      return fullDateFormatter(new Date(from));\n    if (typeof max === \"string\") {\n      const unitMax = (_a2 = UNITS.find((i) => i.name === max)) == null ? void 0 : _a2.max;\n      if (unitMax && absDiff > unitMax)\n        return fullDateFormatter(new Date(from));\n    }\n    for (const unit of UNITS) {\n      if (absDiff < unit.max)\n        return format(diff, unit);\n    }\n  }\n  function applyFormat(name, val, isPast) {\n    const formatter = messages[name];\n    if (typeof formatter === \"function\")\n      return formatter(val, isPast);\n    return formatter.replace(\"{0}\", val.toString());\n  }\n  function format(diff, unit) {\n    const val = round(abs(diff) / unit.value);\n    const past = diff > 0;\n    const str = applyFormat(unit.name, val, past);\n    return applyFormat(past ? \"past\" : \"future\", str, past);\n  }\n  const timeAgo = computed(() => getTimeago(new Date(resolveUnref(time)), unref(now.value)));\n  if (exposeControls) {\n    return __spreadValues$2({\n      timeAgo\n    }, controls);\n  } else {\n    return timeAgo;\n  }\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n  const { start } = useTimeoutFn(loop, interval);\n  const isActive = ref(false);\n  async function loop() {\n    if (!isActive.value)\n      return;\n    await fn();\n    start();\n  }\n  function resume() {\n    if (!isActive.value) {\n      isActive.value = true;\n      loop();\n    }\n  }\n  function pause() {\n    isActive.value = false;\n  }\n  if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n    resume();\n  tryOnScopeDispose(pause);\n  return {\n    isActive,\n    pause,\n    resume\n  };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$1.call(b, prop))\n      __defNormalProp$1(a, prop, b[prop]);\n  if (__getOwnPropSymbols$1)\n    for (var prop of __getOwnPropSymbols$1(b)) {\n      if (__propIsEnum$1.call(b, prop))\n        __defNormalProp$1(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useTimestamp(options = {}) {\n  const {\n    controls: exposeControls = false,\n    offset = 0,\n    immediate = true,\n    interval = \"requestAnimationFrame\",\n    callback\n  } = options;\n  const ts = ref(timestamp() + offset);\n  const update = () => ts.value = timestamp() + offset;\n  const cb = callback ? () => {\n    update();\n    callback(ts.value);\n  } : update;\n  const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n  if (exposeControls) {\n    return __spreadValues$1({\n      timestamp: ts\n    }, controls);\n  } else {\n    return ts;\n  }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n  var _a, _b;\n  const {\n    document = defaultDocument\n  } = options;\n  const title = resolveRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n  const isReadonly = newTitle && isFunction(newTitle);\n  function format(t) {\n    if (!(\"titleTemplate\" in options))\n      return t;\n    const template = options.titleTemplate || \"%s\";\n    return isFunction(template) ? template(t) : unref(template).replace(/%s/g, t);\n  }\n  watch(title, (t, o) => {\n    if (t !== o && document)\n      document.title = format(isString(t) ? t : \"\");\n  }, { immediate: true });\n  if (options.observe && !options.titleTemplate && document && !isReadonly) {\n    useMutationObserver((_b = document.head) == null ? void 0 : _b.querySelector(\"title\"), () => {\n      if (document && document.title !== title.value)\n        title.value = format(document.title);\n    }, { childList: true });\n  }\n  return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nconst _TransitionPresets = {\n  easeInSine: [0.12, 0, 0.39, 0],\n  easeOutSine: [0.61, 1, 0.88, 1],\n  easeInOutSine: [0.37, 0, 0.63, 1],\n  easeInQuad: [0.11, 0, 0.5, 0],\n  easeOutQuad: [0.5, 1, 0.89, 1],\n  easeInOutQuad: [0.45, 0, 0.55, 1],\n  easeInCubic: [0.32, 0, 0.67, 0],\n  easeOutCubic: [0.33, 1, 0.68, 1],\n  easeInOutCubic: [0.65, 0, 0.35, 1],\n  easeInQuart: [0.5, 0, 0.75, 0],\n  easeOutQuart: [0.25, 1, 0.5, 1],\n  easeInOutQuart: [0.76, 0, 0.24, 1],\n  easeInQuint: [0.64, 0, 0.78, 0],\n  easeOutQuint: [0.22, 1, 0.36, 1],\n  easeInOutQuint: [0.83, 0, 0.17, 1],\n  easeInExpo: [0.7, 0, 0.84, 0],\n  easeOutExpo: [0.16, 1, 0.3, 1],\n  easeInOutExpo: [0.87, 0, 0.13, 1],\n  easeInCirc: [0.55, 0, 1, 0.45],\n  easeOutCirc: [0, 0.55, 0.45, 1],\n  easeInOutCirc: [0.85, 0, 0.15, 1],\n  easeInBack: [0.36, 0, 0.66, -0.56],\n  easeOutBack: [0.34, 1.56, 0.64, 1],\n  easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = __spreadValues({\n  linear: identity\n}, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n  const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n  const b = (a1, a2) => 3 * a2 - 6 * a1;\n  const c = (a1) => 3 * a1;\n  const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n  const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n  const getTforX = (x) => {\n    let aGuessT = x;\n    for (let i = 0; i < 4; ++i) {\n      const currentSlope = getSlope(aGuessT, p0, p2);\n      if (currentSlope === 0)\n        return aGuessT;\n      const currentX = calcBezier(aGuessT, p0, p2) - x;\n      aGuessT -= currentX / currentSlope;\n    }\n    return aGuessT;\n  };\n  return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction useTransition(source, options = {}) {\n  const {\n    delay = 0,\n    disabled = false,\n    duration = 1e3,\n    onFinished = noop,\n    onStarted = noop,\n    transition = identity\n  } = options;\n  const currentTransition = computed(() => {\n    const t = unref(transition);\n    return isFunction(t) ? t : createEasingFunction(t);\n  });\n  const sourceValue = computed(() => {\n    const s = unref(source);\n    return isNumber(s) ? s : s.map(unref);\n  });\n  const sourceVector = computed(() => isNumber(sourceValue.value) ? [sourceValue.value] : sourceValue.value);\n  const outputVector = ref(sourceVector.value.slice(0));\n  let currentDuration;\n  let diffVector;\n  let endAt;\n  let startAt;\n  let startVector;\n  const { resume, pause } = useRafFn(() => {\n    const now = Date.now();\n    const progress = clamp(1 - (endAt - now) / currentDuration, 0, 1);\n    outputVector.value = startVector.map((val, i) => {\n      var _a;\n      return val + ((_a = diffVector[i]) != null ? _a : 0) * currentTransition.value(progress);\n    });\n    if (progress >= 1) {\n      pause();\n      onFinished();\n    }\n  }, { immediate: false });\n  const start = () => {\n    pause();\n    currentDuration = unref(duration);\n    diffVector = outputVector.value.map((n, i) => {\n      var _a, _b;\n      return ((_a = sourceVector.value[i]) != null ? _a : 0) - ((_b = outputVector.value[i]) != null ? _b : 0);\n    });\n    startVector = outputVector.value.slice(0);\n    startAt = Date.now();\n    endAt = startAt + currentDuration;\n    resume();\n    onStarted();\n  };\n  const timeout = useTimeoutFn(start, delay, { immediate: false });\n  watch(sourceVector, () => {\n    if (unref(disabled)) {\n      outputVector.value = sourceVector.value.slice(0);\n    } else {\n      if (unref(delay) <= 0)\n        start();\n      else\n        timeout.start();\n    }\n  }, { deep: true });\n  return computed(() => {\n    const targetVector = unref(disabled) ? sourceVector : outputVector;\n    return isNumber(sourceValue.value) ? targetVector.value[0] : targetVector.value;\n  });\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n  const {\n    initialValue = {},\n    removeNullishValues = true,\n    removeFalsyValues = false,\n    write: enableWrite = true,\n    window = defaultWindow\n  } = options;\n  if (!window)\n    return reactive(initialValue);\n  const state = reactive({});\n  function getRawParams() {\n    if (mode === \"history\") {\n      return window.location.search || \"\";\n    } else if (mode === \"hash\") {\n      const hash = window.location.hash || \"\";\n      const index = hash.indexOf(\"?\");\n      return index > 0 ? hash.slice(index) : \"\";\n    } else {\n      return (window.location.hash || \"\").replace(/^#/, \"\");\n    }\n  }\n  function constructQuery(params) {\n    const stringified = params.toString();\n    if (mode === \"history\")\n      return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n    if (mode === \"hash-params\")\n      return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n    const hash = window.location.hash || \"#\";\n    const index = hash.indexOf(\"?\");\n    if (index > 0)\n      return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n    return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n  }\n  function read() {\n    return new URLSearchParams(getRawParams());\n  }\n  function updateState(params) {\n    const unusedKeys = new Set(Object.keys(state));\n    for (const key of params.keys()) {\n      const paramsForKey = params.getAll(key);\n      state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n      unusedKeys.delete(key);\n    }\n    Array.from(unusedKeys).forEach((key) => delete state[key]);\n  }\n  const { pause, resume } = pausableWatch(state, () => {\n    const params = new URLSearchParams(\"\");\n    Object.keys(state).forEach((key) => {\n      const mapEntry = state[key];\n      if (Array.isArray(mapEntry))\n        mapEntry.forEach((value) => params.append(key, value));\n      else if (removeNullishValues && mapEntry == null)\n        params.delete(key);\n      else if (removeFalsyValues && !mapEntry)\n        params.delete(key);\n      else\n        params.set(key, mapEntry);\n    });\n    write(params);\n  }, { deep: true });\n  function write(params, shouldUpdate) {\n    pause();\n    if (shouldUpdate)\n      updateState(params);\n    window.history.replaceState(window.history.state, window.document.title, window.location.pathname + constructQuery(params));\n    resume();\n  }\n  function onChanged() {\n    if (!enableWrite)\n      return;\n    write(read(), true);\n  }\n  useEventListener(window, \"popstate\", onChanged, false);\n  if (mode !== \"history\")\n    useEventListener(window, \"hashchange\", onChanged, false);\n  const initial = read();\n  if (initial.keys().next().value)\n    updateState(initial);\n  else\n    Object.assign(state, initialValue);\n  return state;\n}\n\nfunction useUserMedia(options = {}) {\n  var _a, _b;\n  const enabled = ref((_a = options.enabled) != null ? _a : false);\n  const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n  const videoDeviceId = ref(options.videoDeviceId);\n  const audioDeviceId = ref(options.audioDeviceId);\n  const { navigator = defaultNavigator } = options;\n  const isSupported = useSupported(() => {\n    var _a2;\n    return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n  });\n  const stream = shallowRef();\n  function getDeviceOptions(device) {\n    if (device.value === \"none\" || device.value === false)\n      return false;\n    if (device.value == null)\n      return true;\n    return {\n      deviceId: device.value\n    };\n  }\n  async function _start() {\n    if (!isSupported.value || stream.value)\n      return;\n    stream.value = await navigator.mediaDevices.getUserMedia({\n      video: getDeviceOptions(videoDeviceId),\n      audio: getDeviceOptions(audioDeviceId)\n    });\n    return stream.value;\n  }\n  async function _stop() {\n    var _a2;\n    (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n    stream.value = void 0;\n  }\n  function stop() {\n    _stop();\n    enabled.value = false;\n  }\n  async function start() {\n    await _start();\n    if (stream.value)\n      enabled.value = true;\n    return stream.value;\n  }\n  async function restart() {\n    _stop();\n    return await start();\n  }\n  watch(enabled, (v) => {\n    if (v)\n      _start();\n    else\n      _stop();\n  }, { immediate: true });\n  watch([videoDeviceId, audioDeviceId], () => {\n    if (autoSwitch.value && stream.value)\n      restart();\n  }, { immediate: true });\n  return {\n    isSupported,\n    stream,\n    start,\n    stop,\n    restart,\n    videoDeviceId,\n    audioDeviceId,\n    enabled,\n    autoSwitch\n  };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n  var _a, _b, _c, _d, _e;\n  const {\n    clone = false,\n    passive = false,\n    eventName,\n    deep = false,\n    defaultValue\n  } = options;\n  const vm = getCurrentInstance();\n  const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n  let event = eventName;\n  if (!key) {\n    if (isVue2) {\n      const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n      key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n      if (!eventName)\n        event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n    } else {\n      key = \"modelValue\";\n    }\n  }\n  event = eventName || event || `update:${key.toString()}`;\n  const cloneFn = (val) => !clone ? val : isFunction(clone) ? clone(val) : cloneFnJSON(val);\n  const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n  if (passive) {\n    const initialValue = getValue();\n    const proxy = ref(initialValue);\n    watch(() => props[key], (v) => proxy.value = cloneFn(v));\n    watch(proxy, (v) => {\n      if (v !== props[key] || deep)\n        _emit(event, v);\n    }, { deep });\n    return proxy;\n  } else {\n    return computed({\n      get() {\n        return getValue();\n      },\n      set(value) {\n        _emit(event, value);\n      }\n    });\n  }\n}\n\nfunction useVModels(props, emit, options = {}) {\n  const ret = {};\n  for (const key in props)\n    ret[key] = useVModel(props, key, emit, options);\n  return ret;\n}\n\nfunction useVibrate(options) {\n  const {\n    pattern = [],\n    interval = 0,\n    navigator = defaultNavigator\n  } = options || {};\n  const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n  const patternRef = resolveRef(pattern);\n  let intervalControls;\n  const vibrate = (pattern2 = patternRef.value) => {\n    if (isSupported.value)\n      navigator.vibrate(pattern2);\n  };\n  const stop = () => {\n    if (isSupported.value)\n      navigator.vibrate(0);\n    intervalControls == null ? void 0 : intervalControls.pause();\n  };\n  if (interval > 0) {\n    intervalControls = useIntervalFn(vibrate, interval, {\n      immediate: false,\n      immediateCallback: false\n    });\n  }\n  return {\n    isSupported,\n    pattern,\n    intervalControls,\n    vibrate,\n    stop\n  };\n}\n\nfunction useVirtualList(list, options) {\n  const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n  return {\n    list: currentList,\n    scrollTo,\n    containerProps: {\n      ref: containerRef,\n      onScroll: () => {\n        calculateRange();\n      },\n      style: containerStyle\n    },\n    wrapperProps\n  };\n}\nfunction useVirtualListResourses(list) {\n  const containerRef = ref(null);\n  const size = useElementSize(containerRef);\n  const currentList = ref([]);\n  const source = shallowRef(list);\n  const state = ref({ start: 0, end: 10 });\n  return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n  return (containerHeight) => {\n    if (typeof itemSize === \"number\")\n      return Math.ceil(containerHeight / itemSize);\n    const { start = 0 } = state.value;\n    let sum = 0;\n    let capacity = 0;\n    for (let i = start; i < source.value.length; i++) {\n      const height = itemSize(i);\n      sum += height;\n      if (sum >= containerHeight) {\n        capacity = i;\n        break;\n      }\n    }\n    return capacity - start;\n  };\n}\nfunction createGetOffset(source, itemSize) {\n  return (scrollDirection) => {\n    if (typeof itemSize === \"number\")\n      return Math.floor(scrollDirection / itemSize) + 1;\n    let sum = 0;\n    let offset = 0;\n    for (let i = 0; i < source.value.length; i++) {\n      const size = itemSize(i);\n      sum += size;\n      if (sum >= scrollDirection) {\n        offset = i;\n        break;\n      }\n    }\n    return offset + 1;\n  };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n  return () => {\n    const element = containerRef.value;\n    if (element) {\n      const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n      const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n      const from = offset - overscan;\n      const to = offset + viewCapacity + overscan;\n      state.value = {\n        start: from < 0 ? 0 : from,\n        end: to > source.value.length ? source.value.length : to\n      };\n      currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n        data: ele,\n        index: index + state.value.start\n      }));\n    }\n  };\n}\nfunction createGetDistance(itemSize, source) {\n  return (index) => {\n    if (typeof itemSize === \"number\") {\n      const size2 = index * itemSize;\n      return size2;\n    }\n    const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n    return size;\n  };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n  watch([size.width, size.height, list], () => {\n    calculateRange();\n  });\n}\nfunction createComputedTotalSize(itemSize, source) {\n  return computed(() => {\n    if (typeof itemSize === \"number\")\n      return source.value.length * itemSize;\n    return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n  });\n}\nconst scrollToDictionaryForElementScrollKey = {\n  horizontal: \"scrollLeft\",\n  vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n  return (index) => {\n    if (containerRef.value) {\n      containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n      calculateRange();\n    }\n  };\n}\nfunction useHorizontalVirtualList(options, list) {\n  const resources = useVirtualListResourses(list);\n  const { state, source, currentList, size, containerRef } = resources;\n  const containerStyle = { overflowX: \"auto\" };\n  const { itemWidth, overscan = 5 } = options;\n  const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n  const getOffset = createGetOffset(source, itemWidth);\n  const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n  const getDistanceLeft = createGetDistance(itemWidth, source);\n  const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n  const totalWidth = createComputedTotalSize(itemWidth, source);\n  useWatchForSizes(size, list, calculateRange);\n  const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n  const wrapperProps = computed(() => {\n    return {\n      style: {\n        height: \"100%\",\n        width: `${totalWidth.value - offsetLeft.value}px`,\n        marginLeft: `${offsetLeft.value}px`,\n        display: \"flex\"\n      }\n    };\n  });\n  return {\n    scrollTo,\n    calculateRange,\n    wrapperProps,\n    containerStyle,\n    currentList,\n    containerRef\n  };\n}\nfunction useVerticalVirtualList(options, list) {\n  const resources = useVirtualListResourses(list);\n  const { state, source, currentList, size, containerRef } = resources;\n  const containerStyle = { overflowY: \"auto\" };\n  const { itemHeight, overscan = 5 } = options;\n  const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n  const getOffset = createGetOffset(source, itemHeight);\n  const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n  const getDistanceTop = createGetDistance(itemHeight, source);\n  const offsetTop = computed(() => getDistanceTop(state.value.start));\n  const totalHeight = createComputedTotalSize(itemHeight, source);\n  useWatchForSizes(size, list, calculateRange);\n  const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n  const wrapperProps = computed(() => {\n    return {\n      style: {\n        width: \"100%\",\n        height: `${totalHeight.value - offsetTop.value}px`,\n        marginTop: `${offsetTop.value}px`\n      }\n    };\n  });\n  return {\n    calculateRange,\n    scrollTo,\n    containerStyle,\n    wrapperProps,\n    currentList,\n    containerRef\n  };\n}\n\nconst useWakeLock = (options = {}) => {\n  const {\n    navigator = defaultNavigator,\n    document = defaultDocument\n  } = options;\n  let wakeLock;\n  const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n  const isActive = ref(false);\n  async function onVisibilityChange() {\n    if (!isSupported.value || !wakeLock)\n      return;\n    if (document && document.visibilityState === \"visible\")\n      wakeLock = await navigator.wakeLock.request(\"screen\");\n    isActive.value = !wakeLock.released;\n  }\n  if (document)\n    useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n  async function request(type) {\n    if (!isSupported.value)\n      return;\n    wakeLock = await navigator.wakeLock.request(type);\n    isActive.value = !wakeLock.released;\n  }\n  async function release() {\n    if (!isSupported.value || !wakeLock)\n      return;\n    await wakeLock.release();\n    isActive.value = !wakeLock.released;\n    wakeLock = null;\n  }\n  return {\n    isSupported,\n    isActive,\n    request,\n    release\n  };\n};\n\nconst useWebNotification = (defaultOptions = {}) => {\n  const {\n    window = defaultWindow\n  } = defaultOptions;\n  const isSupported = useSupported(() => !!window && \"Notification\" in window);\n  const notification = ref(null);\n  const requestPermission = async () => {\n    if (!isSupported.value)\n      return;\n    if (\"permission\" in Notification && Notification.permission !== \"denied\")\n      await Notification.requestPermission();\n  };\n  const onClick = createEventHook();\n  const onShow = createEventHook();\n  const onError = createEventHook();\n  const onClose = createEventHook();\n  const show = async (overrides) => {\n    if (!isSupported.value)\n      return;\n    await requestPermission();\n    const options = Object.assign({}, defaultOptions, overrides);\n    notification.value = new Notification(options.title || \"\", options);\n    notification.value.onclick = (event) => onClick.trigger(event);\n    notification.value.onshow = (event) => onShow.trigger(event);\n    notification.value.onerror = (event) => onError.trigger(event);\n    notification.value.onclose = (event) => onClose.trigger(event);\n    return notification.value;\n  };\n  const close = () => {\n    if (notification.value)\n      notification.value.close();\n    notification.value = null;\n  };\n  tryOnMounted(async () => {\n    if (isSupported.value)\n      await requestPermission();\n  });\n  tryOnScopeDispose(close);\n  if (isSupported.value && window) {\n    const document = window.document;\n    useEventListener(document, \"visibilitychange\", (e) => {\n      e.preventDefault();\n      if (document.visibilityState === \"visible\") {\n        close();\n      }\n    });\n  }\n  return {\n    isSupported,\n    notification,\n    show,\n    close,\n    onClick,\n    onShow,\n    onError,\n    onClose\n  };\n};\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n  if (options === true)\n    return {};\n  return options;\n}\nfunction useWebSocket(url, options = {}) {\n  const {\n    onConnected,\n    onDisconnected,\n    onError,\n    onMessage,\n    immediate = true,\n    autoClose = true,\n    protocols = []\n  } = options;\n  const data = ref(null);\n  const status = ref(\"CLOSED\");\n  const wsRef = ref();\n  let heartbeatPause;\n  let heartbeatResume;\n  let explicitlyClosed = false;\n  let retried = 0;\n  let bufferedData = [];\n  let pongTimeoutWait;\n  const close = (code = 1e3, reason) => {\n    if (!wsRef.value)\n      return;\n    explicitlyClosed = true;\n    heartbeatPause == null ? void 0 : heartbeatPause();\n    wsRef.value.close(code, reason);\n  };\n  const _sendBuffer = () => {\n    if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n      for (const buffer of bufferedData)\n        wsRef.value.send(buffer);\n      bufferedData = [];\n    }\n  };\n  const resetHeartbeat = () => {\n    clearTimeout(pongTimeoutWait);\n  };\n  const send = (data2, useBuffer = true) => {\n    if (!wsRef.value || status.value !== \"OPEN\") {\n      if (useBuffer)\n        bufferedData.push(data2);\n      return false;\n    }\n    _sendBuffer();\n    wsRef.value.send(data2);\n    return true;\n  };\n  const _init = () => {\n    if (explicitlyClosed)\n      return;\n    const ws = new WebSocket(url, protocols);\n    wsRef.value = ws;\n    status.value = \"CONNECTING\";\n    ws.onopen = () => {\n      status.value = \"OPEN\";\n      onConnected == null ? void 0 : onConnected(ws);\n      heartbeatResume == null ? void 0 : heartbeatResume();\n      _sendBuffer();\n    };\n    ws.onclose = (ev) => {\n      status.value = \"CLOSED\";\n      wsRef.value = void 0;\n      onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n      if (!explicitlyClosed && options.autoReconnect) {\n        const {\n          retries = -1,\n          delay = 1e3,\n          onFailed\n        } = resolveNestedOptions(options.autoReconnect);\n        retried += 1;\n        if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n          setTimeout(_init, delay);\n        else if (typeof retries === \"function\" && retries())\n          setTimeout(_init, delay);\n        else\n          onFailed == null ? void 0 : onFailed();\n      }\n    };\n    ws.onerror = (e) => {\n      onError == null ? void 0 : onError(ws, e);\n    };\n    ws.onmessage = (e) => {\n      if (options.heartbeat) {\n        resetHeartbeat();\n        const {\n          message = DEFAULT_PING_MESSAGE\n        } = resolveNestedOptions(options.heartbeat);\n        if (e.data === message)\n          return;\n      }\n      data.value = e.data;\n      onMessage == null ? void 0 : onMessage(ws, e);\n    };\n  };\n  if (options.heartbeat) {\n    const {\n      message = DEFAULT_PING_MESSAGE,\n      interval = 1e3,\n      pongTimeout = 1e3\n    } = resolveNestedOptions(options.heartbeat);\n    const { pause, resume } = useIntervalFn(() => {\n      send(message, false);\n      pongTimeoutWait = setTimeout(() => {\n        close();\n      }, pongTimeout);\n    }, interval, { immediate: false });\n    heartbeatPause = pause;\n    heartbeatResume = resume;\n  }\n  if (immediate)\n    _init();\n  if (autoClose) {\n    useEventListener(window, \"beforeunload\", () => close());\n    tryOnScopeDispose(close);\n  }\n  const open = () => {\n    close();\n    explicitlyClosed = false;\n    retried = 0;\n    _init();\n  };\n  return {\n    data,\n    status,\n    close,\n    send,\n    open,\n    ws: wsRef\n  };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n  const {\n    window = defaultWindow\n  } = options != null ? options : {};\n  const data = ref(null);\n  const worker = shallowRef();\n  const post = function post2(val) {\n    if (!worker.value)\n      return;\n    worker.value.postMessage(val);\n  };\n  const terminate = function terminate2() {\n    if (!worker.value)\n      return;\n    worker.value.terminate();\n  };\n  if (window) {\n    if (isString(arg0))\n      worker.value = new Worker(arg0, workerOptions);\n    else if (isFunction(arg0))\n      worker.value = arg0();\n    else\n      worker.value = arg0;\n    worker.value.onmessage = (e) => {\n      data.value = e.data;\n    };\n    tryOnScopeDispose(() => {\n      if (worker.value)\n        worker.value.terminate();\n    });\n  }\n  return {\n    data,\n    post,\n    terminate,\n    worker\n  };\n}\n\nconst jobRunner = (userFunc) => (e) => {\n  const userFuncArgs = e.data[0];\n  return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n    postMessage([\"SUCCESS\", result]);\n  }).catch((error) => {\n    postMessage([\"ERROR\", error]);\n  });\n};\n\nconst depsParser = (deps) => {\n  if (deps.length === 0)\n    return \"\";\n  const depsString = deps.map((dep) => `'${dep}'`).toString();\n  return `importScripts(${depsString})`;\n};\n\nconst createWorkerBlobUrl = (fn, deps) => {\n  const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n  const blob = new Blob([blobCode], { type: \"text/javascript\" });\n  const url = URL.createObjectURL(blob);\n  return url;\n};\n\nconst useWebWorkerFn = (fn, options = {}) => {\n  const {\n    dependencies = [],\n    timeout,\n    window = defaultWindow\n  } = options;\n  const worker = ref();\n  const workerStatus = ref(\"PENDING\");\n  const promise = ref({});\n  const timeoutId = ref();\n  const workerTerminate = (status = \"PENDING\") => {\n    if (worker.value && worker.value._url && window) {\n      worker.value.terminate();\n      URL.revokeObjectURL(worker.value._url);\n      promise.value = {};\n      worker.value = void 0;\n      window.clearTimeout(timeoutId.value);\n      workerStatus.value = status;\n    }\n  };\n  workerTerminate();\n  tryOnScopeDispose(workerTerminate);\n  const generateWorker = () => {\n    const blobUrl = createWorkerBlobUrl(fn, dependencies);\n    const newWorker = new Worker(blobUrl);\n    newWorker._url = blobUrl;\n    newWorker.onmessage = (e) => {\n      const { resolve = () => {\n      }, reject = () => {\n      } } = promise.value;\n      const [status, result] = e.data;\n      switch (status) {\n        case \"SUCCESS\":\n          resolve(result);\n          workerTerminate(status);\n          break;\n        default:\n          reject(result);\n          workerTerminate(\"ERROR\");\n          break;\n      }\n    };\n    newWorker.onerror = (e) => {\n      const { reject = () => {\n      } } = promise.value;\n      reject(e);\n      workerTerminate(\"ERROR\");\n    };\n    if (timeout) {\n      timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n    }\n    return newWorker;\n  };\n  const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n    promise.value = {\n      resolve,\n      reject\n    };\n    worker.value && worker.value.postMessage([[...fnArgs]]);\n    workerStatus.value = \"RUNNING\";\n  });\n  const workerFn = (...fnArgs) => {\n    if (workerStatus.value === \"RUNNING\") {\n      console.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n      return Promise.reject();\n    }\n    worker.value = generateWorker();\n    return callWorker(...fnArgs);\n  };\n  return {\n    workerFn,\n    workerStatus,\n    workerTerminate\n  };\n};\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n  if (!window)\n    return ref(false);\n  const focused = ref(window.document.hasFocus());\n  useEventListener(window, \"blur\", () => {\n    focused.value = false;\n  });\n  useEventListener(window, \"focus\", () => {\n    focused.value = true;\n  });\n  return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n  if (!window) {\n    return {\n      x: ref(0),\n      y: ref(0)\n    };\n  }\n  const x = ref(window.pageXOffset);\n  const y = ref(window.pageYOffset);\n  useEventListener(\"scroll\", () => {\n    x.value = window.pageXOffset;\n    y.value = window.pageYOffset;\n  }, {\n    capture: false,\n    passive: true\n  });\n  return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n  const {\n    window = defaultWindow,\n    initialWidth = Infinity,\n    initialHeight = Infinity,\n    listenOrientation = true,\n    includeScrollbar = true\n  } = options;\n  const width = ref(initialWidth);\n  const height = ref(initialHeight);\n  const update = () => {\n    if (window) {\n      if (includeScrollbar) {\n        width.value = window.innerWidth;\n        height.value = window.innerHeight;\n      } else {\n        width.value = window.document.documentElement.clientWidth;\n        height.value = window.document.documentElement.clientHeight;\n      }\n    }\n  };\n  update();\n  tryOnMounted(update);\n  useEventListener(\"resize\", update, { passive: true });\n  if (listenOrientation)\n    useEventListener(\"orientationchange\", update, { passive: true });\n  return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, SwipeDirection, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createUnrefFn, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, usePermission, usePointer, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","import { iconPropType } from \"/@/utils\"\n\nimport { CHANGE_EVENT } from \"../../../constant\"\nimport { isNumber } from '@vueuse/core';\n\nexport interface StepsProp {\n  /**\n   * 每个 step 的间距，不填写将自适应间距。 支持百分比。\n   */\n  space?: number|string,\n  /**\n   * 显示方向\n   */\n  direction?: 'horizontal' | 'vertical',\n  /**\n   * 设置当前激活步骤\n   */\n  active?: number,\n  /**\n   * 进行居中对齐\n   */\n  alignCenter?: boolean,\n  /**\n   * 是否应用简洁风格\n   */\n  simple?: boolean,\n  /**\n   * 设置结束步骤的状态\n   * 可选值 'wait' | 'process' | 'finish' | 'error' | 'success'\n   */\n  finishStatus?: 'wait' | 'process' | 'finish' | 'error' | 'success',\n  /**\n   * 设置当前步骤的状态\n   * 可选值 'wait' | 'process' | 'finish' | 'error' | 'success'\n   */\n  processStatus?: 'wait' | 'process' | 'finish' | 'error' | 'success'\n}\n\n\nexport interface StepProp {\n  /**\n   * 标题\n   */\n  title?: string,\n  /**\n   * 描述文案\n   */\n  description?: string,\n  /**\n   * 设置当前步骤的状态， 不设置则根据 steps 确定状态\n   * 'wait' | 'process' | 'finish' | 'error' | 'success' | ''\n   */\n  status?: 'wait' | 'process' | 'finish' | 'error' | 'success' | '',\n  /**\n   * Step 组件的自定义图标。 也支持 slot 方式写入\n   */\n  icon?: typeof iconPropType\n}\n\nexport const stepsEmits = {\n  [CHANGE_EVENT]: (newVal: number, oldVal: number) =>\n    [newVal, oldVal].every(isNumber),\n  'changeIndex': (val:number) => val\n}","<template>\n  <div :class=\"prefixCls\">\n    <slot></slot>\n  </div>\n</template>\n<script lang=\"ts\">\nexport default {\n  name: 'ScSteps',\n  inheritAttrs: false\n}\n</script>\n<script setup lang=\"ts\">\nimport { defineProps, provide, watch, ref, computed, defineEmits } from 'vue'\nimport type { Ref } from 'vue'\n\nimport { CHANGE_EVENT } from '../../../constant'\nimport { stepsEmits } from './type';\n// StepsPropType\nimport type { StepItemState } from './ScStep.vue'\n\nexport interface StepsProp {\n  /**\n   * 每个 step 的间距，不填写将自适应间距。 支持百分比。\n   */\n  space?: number|string,\n  /**\n   * 显示方向\n   */\n  direction?: 'horizontal' | 'vertical',\n  /**\n   * 设置当前激活步骤\n   */\n  active?: number,\n  /**\n   * 进行居中对齐\n   */\n  alignCenter?: boolean,\n  /**\n   * 是否应用简洁风格\n   */\n  simple?: boolean,\n  /**\n   * 设置结束步骤的状态\n   * 可选值 'wait' | 'process' | 'finish' | 'error' | 'success'\n   */\n  finishStatus?: 'wait' | 'process' | 'finish' | 'error' | 'success',\n  /**\n   * 设置当前步骤的状态\n   * 可选值 'wait' | 'process' | 'finish' | 'error' | 'success'\n   */\n  processStatus?: 'wait' | 'process' | 'finish' | 'error' | 'success'\n}\n\nconst props = withDefaults(defineProps<StepsProp>(), {\n  direction: 'horizontal',\n  finishStatus: 'finish',\n  processStatus: 'process',\n  simple: false\n})\n\nconst emit = defineEmits(stepsEmits);\n\nconst steps: Ref<StepItemState[]> = ref([])\n\nconst currentIndex = ref(-1)\n\nwatch(steps, () => {\n  steps.value.forEach((instance: StepItemState, index: number) => {\n    instance.setIndex(index)\n  })\n})\n\n\nconst setCurrentIndex = (val: number) => {\n  currentIndex.value = val\n  emit('changeIndex', val)\n}\n\n\nprovide('ScSteps', { props, steps, setCurrentIndex: setCurrentIndex })\n\nwatch(() => props.active, (newVal: number, oldVal: number) => {\n  emit(CHANGE_EVENT, newVal, oldVal)\n})\n\nconst prefixCls = computed(() => {\n  const className:string[] = ['scSteps', 'scSteps-' + props.direction]\n  if (props.simple) {\n    className.push('scSteps-simple')\n  }\n  return className\n})\n</script>","<template>\n  <div\n    :class=\"prefixCls\"\n    :style=\"style\"\n    @click=\"handleClick\"\n  >\n    <div :class=\"['scStep-head', currentStatus ? 'is-' + currentStatus + ' is-status' : '']\">\n      <div :class=\"['scStep-icon', props.icon || $slots.icon ? 'is-icon' : 'is-text' ]\">\n        <!-- @slot 自定义图标 -->\n        <slot name=\"icon\">\n          <!-- <Icon v-if=\"props.icon\" :class=\"['scStep__icon-inner']\" :icon=\"props.icon\" /> -->\n          <i v-if=\"props.icon\"\n            :class=\"['scStep__icon-inner', props.icon]\" >\n          </i>\n          <i v-else-if=\"currentStatus === 'success'\"\n            :class=\"['scStep__icon-inner', 'success', 'sc-ui', 'sc-a-Exclude1']\" >\n          </i>\n          <i v-else-if=\"currentStatus === 'error'\"\n            :class=\"['scStep__icon-inner', 'success', 'sc-ui', 'sc-a-Union11']\" >\n          </i>\n          <div v-else-if=\"!isSimple\" :class=\"['scStep__icon-inner']\">\n            {{ index + 1 }}\n          </div>\n\n          <i v-else-if=\"isSimple\"\n            :class=\"['scStep__icon-inner', 'error', 'sc-ui', 'sc-a-Exclude1']\" >\n          </i>\n          <!-- <Icon\n          v-else-if=\"isSimple\"\n          :class=\"['scStep__icon-inner', 'error']\"\n          icon=\"ep:success-filled\"\n          /> -->\n          <!-- <div v-else-if=\"isSimple\">\n          </div> -->\n        </slot>\n      </div>\n      <div :class=\"['scStep-arrow']\" v-if=\"!isSimple && isVertical\">\n        <i v-if=\"isSimple\" class=\"sc-ui sc-you\"></i>\n        <div v-else-if=\"!isSimple && isVertical\" class=\"scStep-line\">\n          <!-- <i class=\"scStep-line-inner\" :style=\"lineStyle\"></i> -->\n        </div>\n        <!-- <i v-else class=\"scStep-line-inner\" :style=\"lineStyle\"></i> -->\n      </div>\n    </div>\n    <div :class=\"['scStep-main', currentStatus ? 'is-' + currentStatus + ' is-status' : '']\">\n      <div :class=\"['scStep-info']\">\n        <div :class=\"['scStep-title', currentStatus ? 'is-' + currentStatus  + ' is-status' : '']\">\n          <!-- @slot 自定义标题 -->\n          <slot name=\"title\">{{ title }}</slot>\n        </div>\n        <div :class=\"['scStep-description', currentStatus ? 'is-' + currentStatus  + ' is-status' : '']\">\n          <!-- @slot 自定义描述文案 -->\n          <slot name=\"description\">{{ description }}</slot>\n        </div>\n      </div>\n      <div :class=\"['scStep-arrow']\">\n        <i v-if=\"isSimple\" class=\"sc-ui sc-you\"></i>\n        <div v-else-if=\"!isSimple && !isVertical \" class=\"scStep-line\">\n          <!-- <i class=\"scStep-line-inner\" :style=\"lineStyle\"></i> -->\n        </div>\n        <!-- <i v-else class=\"scStep-line-inner\" :style=\"lineStyle\"></i> -->\n      </div>\n      <!-- <div ></div> -->\n    </div>\n  </div>\n</template>\n<script lang=\"ts\">\nexport default {\n  name: 'ScStep'\n}\n</script>\n<script setup lang=\"ts\">\nimport {\n  computed,\n  getCurrentInstance,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  reactive,\n  ref,\n  watch,\n} from 'vue'\nimport type { Ref, CSSProperties } from 'vue'\n// import { Icon } from '@iconify/vue'\n\n// import { StepPropType } from './type'\nimport { iconPropType } from \"/@/utils\"\n\nexport interface IStepsProps {\n  space: number | string\n  active: number\n  direction: string\n  alignCenter: boolean\n  simple: boolean\n  finishStatus: string\n  processStatus: string\n}\n\nexport interface StepItemState {\n  uid: number | undefined\n  currentStatus: string\n  setIndex: (val: number) => void\n  calcProgress: (status: string) => void,\n  index: number\n}\n\nexport interface IStepsInject {\n  props: IStepsProps\n  steps: Ref<StepItemState[]>,\n  setCurrentIndex: (index:number) => void\n}\n\nexport interface StepProp {\n  /**\n   * 标题\n   */\n  title?: string,\n  /**\n   * 描述文案\n   */\n  description?: string,\n  /**\n   * 设置当前步骤的状态， 不设置则根据 steps 确定状态\n   * 'wait' | 'process' | 'finish' | 'error' | 'success' | ''\n   */\n  status?: 'wait' | 'process' | 'finish' | 'error' | 'success' | '',\n  /**\n   * Step 组件的自定义图标。 也支持 slot 方式写入\n   */\n  icon?: typeof iconPropType,\n  /**\n   * 是否可点击\n   */\n  disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<StepProp>(), {\n  title: '',\n  description: '',\n  status: '',\n  disabled: false\n})\n\nconst index = ref(-1)\nconst lineStyle = ref({})\nconst internalStatus = ref('')\nconst parent = inject('ScSteps') as IStepsInject\nconst currentInstance = getCurrentInstance()\n\nonMounted(() => {\n  watch(\n    [\n      () => parent.props.active,\n      () => parent.props.processStatus,\n      () => parent.props.finishStatus,\n    ],\n    ([active]) => {\n      updateStatus(active)\n    },\n    { immediate: true }\n  )\n})\n\nonBeforeUnmount(() => {\n  parent.steps.value = parent.steps.value.filter(\n    (instance) => instance.uid !== currentInstance?.uid\n  )\n})\n\nconst currentStatus = computed(() => {\n  return props.status || internalStatus.value\n})\n\nconst prevStatus = computed(() => {\n  const prevStep = parent.steps.value[index.value - 1]\n  return prevStep ? prevStep.currentStatus : 'wait'\n})\n\nconst isCenter = computed(() => {\n  return parent.props.alignCenter\n})\n\nconst isVertical = computed(() => {\n  return parent.props.direction === 'vertical'\n})\n\nconst isSimple = computed(() => {\n  return parent.props.simple\n})\n\nconst stepsCount = computed(() => {\n  return parent.steps.value.length\n})\n\nconst isLast = computed(() => {\n  return parent.steps.value[stepsCount.value - 1]?.uid === currentInstance?.uid\n})\n\nconst space = computed(() => {\n  return isSimple.value ? '' : parent.props.space\n})\n\nconst prefixCls = computed(() => {\n  const classNames:string[] = ['scStep']\n  if (parent.props.simple) {\n    classNames.push('simple')\n  } else {\n    classNames.push('is-' + parent.props.direction)\n  }\n  if (isLast && !space && !isCenter) {\n    classNames.push('is-flex')\n  }\n  if (isCenter.value && !isVertical.value && !isSimple.value) {\n    classNames.push('is-center')\n  }\n  return classNames\n})\n\nconst style = computed(() => {\n  const style: CSSProperties = {\n    flexBasis:\n      typeof space.value === 'number'\n        ? `${space.value}px`\n        : space.value\n        ? space.value\n        : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%`,\n  }\n  if (isVertical.value) return style\n  if (isLast.value) {\n    style.maxWidth = `${100 / stepsCount.value}%`\n  }\n  return style\n})\n\nconst handleClick = () => {\n  if (props.disabled) {\n    return false;\n  }\n  parent.setCurrentIndex(index.value)\n}\n\nconst setIndex = (val: number) => {\n  index.value = val\n}\n\nconst calcProgress = (status: string) => {\n  let step = 100\n  const style: CSSProperties = {}\n  style.transitionDelay = `${150 * index.value}ms`\n  if (status === parent.props.processStatus) {\n    step = 0\n  } else if (status === 'wait') {\n    step = 0\n    style.transitionDelay = `${-150 * index.value}ms`\n  }\n  style.borderWidth = step && !isSimple.value ? '1px' : 0\n  style[parent.props.direction === 'vertical' ? 'height' : 'width'] = `${step}%`\n  lineStyle.value = ''\n}\n\nconst updateStatus = (activeIndex: number) => {\n  if (activeIndex > index.value) {\n    internalStatus.value = parent.props.finishStatus\n  } else if (activeIndex === index.value && prevStatus.value !== 'error') {\n    internalStatus.value = parent.props.processStatus\n  } else {\n    internalStatus.value = 'wait'\n  }\n  const prevChild = parent.steps.value[index.value - 1]\n  if (prevChild) prevChild.calcProgress(internalStatus.value)\n}\n\nconst stepItemState = reactive({\n  uid: computed(() => currentInstance?.uid),\n  currentStatus,\n  setIndex,\n  calcProgress,\n})\n\nparent.steps.value = [...parent.steps.value, stepItemState]\n</script>","import type { ExtractPropTypes } from 'vue'\n\nimport { withInstall } from \"../../utils\"\n\nimport scSteps from './component/ScSteps.vue'\nimport scStep from './component/ScStep.vue'\n\nimport { StepsProp } from './component/type'\nimport { StepProp } from './component/type'\n\nexport const ScSteps = withInstall(scSteps)\nexport const ScStep = withInstall(scStep)\n\nexport declare type StepsPropType = Partial<ExtractPropTypes<StepsProp>>\nexport declare type StepPropType = Partial<ExtractPropTypes<StepProp>>\n\n","<template>\n  <Tabs\n    v-bind=\"{...props, ...$attrs}\"\n    :class=\"[...className]\"\n    @change=\"handleChange\"\n    >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n  </Tabs>\n</template>\n\n<script lang=\"ts\">\nexport default {\n  name: 'ScTabs',\n  inheritAttrs: false\n}\n</script>\n\n<script lang='ts' setup>\nimport { Tabs } from 'ant-design-vue'\nimport { computed, ref, useSlots, camelize, nextTick, defineEmits } from 'vue'\nimport { flattenChildren, isValidElement } from '../../../utils'\n\nexport interface TabsProps {\n  /**\n   * 只有type的值为card的时候，设置styleMode 生效; 可选值 `'line' | 'card' | 'editable-card'`\n   */\n  type?: string,\n  /**\n   * styleMode 可选值 `gradient`、`shadow`\n   */\n  styleMode?: string\n}\nconst props = withDefaults(defineProps<TabsProps>(), {\n  styleMode: 'gradient'\n})\n\nconst slots = useSlots()\n\n\nconst emit = defineEmits(['change'])\n\nfunction parseTabList(children: any[]): Tab[] {\n  return children\n    .map(node => {\n      if (isValidElement(node)) {\n        const props = { ...(node.props || {}) };\n        for (const [k, v] of Object.entries(props)) {\n          delete props[k];\n          props[camelize(k)] = v;\n        }\n        const slots = node.children || {};\n        const key = node.key !== undefined ? node.key : undefined;\n        const {\n          tab = slots.tab,\n          disabled,\n          forceRender,\n          closable,\n          animated,\n          active,\n          destroyInactiveTabPane,\n        } = props;\n        return {\n          key,\n          ...props,\n          node,\n          closeIcon: slots.closeIcon,\n          tab,\n          disabled: disabled === '' || disabled,\n          forceRender: forceRender === '' || forceRender,\n          closable: closable === '' || closable,\n          animated: animated === '' || animated,\n          active: active === '' || active,\n          destroyInactiveTabPane: destroyInactiveTabPane === '' || destroyInactiveTabPane,\n        };\n      }\n\n      return null;\n    })\n    .filter(tab => tab);\n}\n\nconst tabs = parseTabList(flattenChildren(slots.default?.()));\n\nconst isTransformLeft = ref(false)\n\nconst prevActiveValue = ref(tabs[0]?.key || '')\n\nconst initClass = ref(true)\n\nconst className = computed(() => {\n  const classNames = props.styleMode ? [props.styleMode] : []\n  // if (isTransformLeft.value) {\n  //   classNames.push('tabs__transform-left')\n  // } else {\n  //   classNames.push('tabs__transform-right')\n  // }\n  return classNames\n})\n\nconst handleChange = (activeKey: string) => {\n  \n  const findCurItemIndex = tabs.findIndex((item => item.key === activeKey))\n  const findPrevItemIndex = tabs.findIndex((item => item.key === prevActiveValue.value))\n  isTransformLeft.value = findCurItemIndex > findPrevItemIndex\n  initClass.value = false\n  nextTick(() => {\n    prevActiveValue.value = activeKey\n  })\n  emit('change', activeKey)\n}\n</script>\n","import { withInstall } from \"../../utils\"\n\nimport scTabs from './component/ScTabs.vue'\n\nexport const ScTabs = withInstall(scTabs);","<template>\n  <RadioGroup \n    v-bind=\"{...props, ...$attrs}\"\n    :class=\"className\"\n    >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n  </RadioGroup>\n</template>\n\n<script lang=\"ts\">\nexport default {\n  name: 'ScRadioGroup',\n  inheritAttrs: false\n}\n</script>\n\n<script lang='ts' setup name=\"ScRadioGroup\">\nimport { RadioGroup } from 'ant-design-vue'\nimport { computed } from 'vue'\n\nexport interface TabsProps {\n  /**\n   * styleMode 可选值为 `'scLine'`\n   */\n  styleMode?: string,\n  widthSize?: string\n}\nconst props = withDefaults(defineProps<TabsProps>(), {\n})\nconst className = computed(() => {\n  // const classNames = props.styleMode ? [props.styleMode] : []\n  return [\n    props.styleMode ? props.styleMode : undefined,\n    props.widthSize === 'large' ? 'radio-min-width142' : undefined\n  ]\n})\n</script>\n","<template>\n  <ScRadioGroup \n    styleMode=\"scLine\"\n    v-bind=\"$attrs\"\n    v-model:value=\"radioValue\"\n    @change=\"handleChange\"\n    :class=\"[$attrs.class, props.isNotChecked ? 'isNotChecked' : '', props.styleMode, 'is' + props.radioType,  props.triggerMultiple ? 'triggerMultiple' : '', props.widthSize === 'large' ? 'radio-min-width142' : undefined]\"\n  >\n    <template v-if=\"props.radioType === 'RadioButton'\">\n      <RadioButton\n        v-for=\"item in props.options\"\n        :key=\"item.value\"\n        :value=\"item.value\"\n        :disabled=\"item.disabled\"\n        @click=\"() => { handleClick(item) }\"\n      >\n        <template v-if=\"item.tooltipDes\">\n          <Tooltip \n            v-bind=\"item.toolOptions\"\n            overlayClassName=\"scTooltip-white\"\n            :overlayStyle=\"{}\"\n            destroyTooltipOnHide\n          >\n            <template #title>\n              {{item.tooltipDes}}\n            </template>\n            <span class=\"triggerMultiple-item\">\n              {{item.label}}\n            </span>\n          </Tooltip>\n        </template>\n        <template v-else>\n          <span class=\"triggerMultiple-item\">\n            {{item.label}}\n          </span>\n        </template>\n      </RadioButton>\n    </template>\n    <template v-else>\n      <Radio\n        v-for=\"item in props.options\"\n        :key=\"item.value\"\n        :value=\"item.value\"\n        :disabled=\"item.disabled\"\n        @click=\"() => { handleClick(item) }\"\n      >\n        <template v-if=\"item.tooltipDes\">\n          <Tooltip \n            v-bind=\"item.toolOptions\"\n            overlayClassName=\"scTooltip-white\"\n            :overlayStyle=\"{}\"\n            destroyTooltipOnHide\n          >\n            <template #title>\n              {{item.tooltipDes}}\n            </template>\n            <span class=\"isRadioTooltip\" >\n              {{item.label}}\n            </span>\n          </Tooltip>\n        </template>\n        <template v-else>\n          <span>\n            {{item.label}}\n          </span>\n        </template>\n      </Radio>\n    </template>\n  </ScRadioGroup>\n</template>\n\n<script lang=\"ts\">\nexport default {\n  name: 'ScRadioTooltipGroup',\n  inheritAttrs: false\n}\n</script>\n<script lang='ts' setup name=\"ScRadioTooltipGroup\">\nimport { ref, defineProps, defineEmits, watch } from 'vue'\nimport type { Ref } from 'vue'\nimport { RadioButton, Tooltip, Radio } from 'ant-design-vue'\nimport type { TooltipProps } from 'ant-design-vue'\n\nimport ScRadioGroup from './ScRadioGroup.vue'\nexport interface TooltipButtonProps {\n  toolOptions?: TooltipProps,\n  tooltipDes?: string,\n  label?: string,\n  value?: string | number,\n  disabled?: boolean,\n  overlayClassName?: string,\n  widthSize?: string\n}\n\nconst props = defineProps({\n  value: {\n    type: [String, Number],\n    default: ''\n  },\n  options: {\n    type: Array<TooltipButtonProps>,\n    default: () => []\n  },\n  triggerMultiple: {\n    type: Boolean,\n    default: () => {\n      return false\n    }\n  },\n  isNotChecked: {\n    type: Boolean,\n    default: () => {\n      return false\n    }\n  },\n  radioType: {\n    type: String,\n    default: () => {\n      return 'RadioButton'\n    }\n  },\n  styleMode: String,\n  widthSize: String\n})\n\nconst emits = defineEmits(['update:value', 'change', 'customChange'])\n\nconst radioValue:Ref<string | number> = ref('')\n\n\n\nwatch(\n  () => props.value,\n  (val) => {\n    radioValue.value = val\n    emits('update:value', val)\n  },\n  { immediate: true }\n)\n\nwatch(\n  () => radioValue.value,\n  (val) => {\n    emits('update:value', val)\n    emits('change', val)\n  }\n)\n\nconst handleChange = (e: Event) => {\n  const currentItem = props.options.find((item: TooltipButtonProps) => item.value === e?.target?.value)\n  // @ts-ignore\n  emits('customChange', e?.target?.value, currentItem)\n}\n\nconst handleClick = (item: TooltipButtonProps) => {\n  const isFlag = props.value === item.value\n  if (props.triggerMultiple && isFlag && !item.disabled) {\n    emits('update:value', item.value)\n    emits('change', item.value)\n  }\n}\n\n</script>\n","import { ExtractPropTypes } from \"vue/dist/vue\"\n\n\nimport { withInstall } from \"../../utils\"\nimport scRadioGroup from './components/ScRadioGroup.vue'\nimport scRadioTooltipGroup from \"./components/ScRadioTooltipGroup.vue\";\nimport { TooltipButtonProps } from './components/types'\n\nexport const ScRadioGroup = withInstall(scRadioGroup);\nexport const ScRadioTooltipGroup = withInstall(scRadioTooltipGroup);\n\nexport declare type TooltipButtonPropsType = Partial<ExtractPropTypes<TooltipButtonProps>>","import { PropTypes } from \"../../../utils/propTypes\";\nimport { NodeMouseEventHandler, tuple } from \"../../../utils\";\nimport { PropType } from \"vue\";\n\nconst AlertTypes = tuple('success', 'info', 'warning', 'error');\n\nexport const alertProps = () => ({\n  /**\n   * Type of Alert styles, options: `success`, `info`, `warning`, `error`\n   */\n  type: PropTypes.oneOf(AlertTypes),\n  /** Whether Alert can be closed */\n  closable: { type: Boolean, default: undefined },\n  /** Close text to show */\n  closeText: PropTypes.any,\n  /** Content of Alert */\n  message: PropTypes.any,\n  /** Additional content of Alert */\n  description: PropTypes.any,\n  /** Trigger when animation ending of Alert */\n  afterClose: Function as PropType<() => void>,\n  /** Whether to show icon */\n  showIcon: { type: Boolean, default: undefined },\n  prefixCls: String,\n  banner: { type: Boolean, default: undefined },\n  icon: PropTypes.any,\n  closeIcon: PropTypes.any,\n  onClose: Function as PropType<NodeMouseEventHandler>,\n  textColor: { type: Boolean, default: undefined },\n  size: {\n    type: String,\n    validator: (v:string) => ['mini', 'default', 'large'].includes(v)\n  }\n});\n\nexport const api = alertProps();","<template>\n  <Alert\n    v-bind=\"vBind\"\n    :class=\"className\"\n  >\n    <template #icon v-if=\"isShowDefaultErrorIcon\">\n      <ExclamationCircleFilled />\n    </template>\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n    \n  </Alert>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { basePrefixCls } from '../../../constant'\nimport { Alert } from 'ant-design-vue'\nimport {\n  ExclamationCircleFilled,\n} from '@ant-design/icons-vue';\n\nimport { alertProps } from './type'\n\nexport default defineComponent({\n  name: 'ScAlert',\n  inheritAttrs: false,\n  components: { Alert, ExclamationCircleFilled },\n  props: alertProps(),\n  setup (props, { attrs, slots }) {\n    const baseClass = basePrefixCls + 'Alert'\n    const vBind = computed(() => {\n      return {...props,...attrs}\n    })\n    const className = computed(() => {\n      // const classNames = \n      const { textColor, size, message } = props\n      return [\n        baseClass,\n        textColor ? 'textColor' : '',\n        size ? baseClass + '--' + size : '',\n        message || slots.message ? '' : 'notMessage'\n      ]\n    })\n\n    const isShowDefaultErrorIcon = computed(() => {\n      const isTypeError = props.type === 'error'\n      const isSlotIcon = Object.keys(slots).includes('icon')\n      return isTypeError && !isSlotIcon\n    })\n    return {\n      vBind,\n      className,\n      isShowDefaultErrorIcon\n    }\n  }\n})\n</script>","import { ExtractPropTypes } from \"vue/dist/vue\"\n\nimport { withInstall } from \"../../utils/index\"\nimport scAlert from './component/ScAlert.vue'\nimport { alertProps } from \"./component/type\"\n\nexport const ScAlert = withInstall(scAlert)\n\nexport declare type AlertProps = Partial<ExtractPropTypes<typeof alertProps>> ","import { Ref, watch, ref, unref, watchEffect} from 'vue'\nimport { useDraggable } from '@vueuse/core'\n\nexport function useModalDraggable(\n  modalTitleRef: Ref<Recordable>,\n  visibleRef: Ref<boolean>,\n  props: Ref<Recordable>,\n  emits: EmitType\n) {\n  const { x, y, isDragging, style, position } = useDraggable(modalTitleRef, props.value.DragOptions)\n  const startX = ref<number>(0)\n  const startY = ref<number>(0);\n  const startedDrag = ref(false);\n  const transformX = ref(0);\n  const transformY = ref(0);\n  const preTransformX = ref(0);\n  const preTransformY = ref(0);\n  const dragRect = ref({ left: 0, right: 0, top: 0, bottom: 0 });\n  watch([x, y], () => {\n    if (!startedDrag.value) {\n      startX.value = x.value;\n      startY.value = y.value;\n      const bodyRect = document.body.getBoundingClientRect();\n      const titleRect = modalTitleRef?.value?.getBoundingClientRect();\n      // @ts-ignore\n      dragRect.value.right = bodyRect.width - titleRect?.width;\n      // @ts-ignore\n      dragRect.value.bottom = bodyRect.height - titleRect?.height;\n      preTransformX.value = transformX.value;\n      preTransformY.value = transformY.value;\n    }\n    startedDrag.value = true;\n  });\n  watch(isDragging, () => {\n    if (!isDragging) {\n      startedDrag.value = false;\n    }\n  });\n\n  watchEffect(() => {\n    if (startedDrag.value) {\n      transformX.value =\n        preTransformX.value +\n        Math.min(Math.max(dragRect.value.left, x.value), dragRect.value.right) -\n        startX.value;\n      transformY.value =\n        preTransformY.value +\n        Math.min(Math.max(dragRect.value.top, y.value), dragRect.value.bottom) -\n        startY.value;\n      if (modalTitleRef.value && props.value.isDraggable && visibleRef.value) {\n        const modalTitleDom = unref(modalTitleRef)?.parentNode?.parentNode?.parentNode?.parentNode\n        modalTitleDom.style.transform = `translate(${transformX.value}px, ${transformY.value}px)`\n        emits('dragChange', { x, y, isDragging, style, position })\n      }\n    }\n  });\n\n  watch(() => unref(visibleRef), (v) => {\n    if (modalTitleRef.value && props.value.isDraggable) {\n      x.value = startX.value\n      y.value = startY.value\n    }\n  })\n}","import { PropType } from \"vue\"\n\nexport const buttonProps = {\n  status: { type: String, validator: (v:string) => ['error', 'warning', 'success', 'info'].includes(v) },\n  type: { type: String, validator: (v:string) => ['primary', 'ghost', 'dashed', 'link', 'text', 'default', 'shadow', 'icon'].includes(v) },\n  loading: { type: Boolean },\n  disabled: { type: Boolean },\n  onClick: { type: Function as PropType<(...args: any) => any>, default: null },\n  color: { type: String },\n  linkHover: { type: Boolean }\n};\n\n","import { getCurrentInstance, reactive, shallowRef, watchEffect } from 'vue';\nimport type { Ref } from 'vue';\ninterface Params {\n  excludeListeners?: boolean;\n  excludeKeys?: string[];\n  excludeDefaultKeys?: boolean;\n}\n\nconst DEFAULT_EXCLUDE_KEYS = ['class', 'style'];\nconst LISTENER_PREFIX = /^on[A-Z]/;\n\nexport function entries<T>(obj: Recordable<T>): [string, T][] {\n  return Object.keys(obj).map((key: string) => [key, obj[key]]);\n}\n\nexport function useAttrs(params: Params = {}): Ref<Recordable> | {} {\n  const instance = getCurrentInstance();\n  if (!instance) return {};\n\n  const { excludeListeners = false, excludeKeys = [], excludeDefaultKeys = true } = params;\n  const attrs = shallowRef({});\n  const allExcludeKeys = excludeKeys.concat(excludeDefaultKeys ? DEFAULT_EXCLUDE_KEYS : []);\n\n  // attrs不是响应式的, 使其具有响应式，而不是在 `onUpdated` 钩子中执行以获得更好的性能\n  instance.attrs = reactive(instance.attrs);\n\n  watchEffect(() => {\n    const res = entries(instance.attrs).reduce((acm, [key, val]) => {\n      if (!allExcludeKeys.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))) {\n        acm[key] = val;\n      }\n\n      return acm;\n    }, {} as Recordable);\n\n    attrs.value = res;\n  });\n\n  return attrs;\n}\n","\nexport interface IColorObj {\n  r: number;\n  g: number;\n  b: number;\n  a?: number;\n}\n\n/**\n * 255颜色值转16进制颜色值\n * @param n 255颜色值\n * @returns hex 16进制颜色值\n */\nexport const toHex = (n: number) => `${n > 15 ? '' : 0}${n.toString(16)}`;\n\n/**\n * 颜色对象转化为16进制颜色字符串\n * @param colorObj 颜色对象\n */\nexport const toHexString = (colorObj: IColorObj) => {\n  const { r, g, b, a = 1 } = colorObj;\n  return `#${toHex(r)}${toHex(g)}${toHex(b)}${a === 1 ? '' : toHex(Math.floor(a * 255))}`;\n};\n\n/**\n * 颜色对象转化为rgb颜色字符串\n * @param colorObj 颜色对象\n */\nexport const toRgbString = (colorObj: IColorObj) => {\n  const { r, g, b } = colorObj;\n  return `rgb(${r},${g},${b})`;\n};\n\n/**\n * 颜色对象转化为rgba颜色字符串\n * @param colorObj 颜色对象\n */\nexport const toRgbaString = (colorObj: IColorObj, n = 10000) => {\n  const { r, g, b, a = 1 } = colorObj;\n  return `rgba(${r},${g},${b},${Math.floor(a * n ) / n})`;\n};\n\n/**\n * 16进制颜色字符串解析为颜色对象\n * @param color 颜色字符串\n * @returns IColorObj\n */\nexport const parseHexColor = (color: string) => {\n  let hex = color.slice(1);\n  let a = 1;\n  if (hex.length === 3) {\n    hex = `${hex[0]}${hex[0]}${hex[1]}${hex[1]}${hex[2]}${hex[2]}`;\n  }\n  if (hex.length === 8) {\n    a = parseInt(hex.slice(6), 16) / 255;\n    hex = hex.slice(0, 6);\n  }\n  const bigint = parseInt(hex, 16);\n  return {\n      r: (bigint >> 16) & 255,\n      g: (bigint >> 8) & 255,\n      b: bigint & 255,\n      a,\n  } as IColorObj;\n};\n\n/**\n * rgba颜色字符串解析为颜色对象\n * @param color 颜色字符串\n * @returns IColorObj\n */\nexport const parseRgbaColor = (color: string) => {\n  const arr = color.match(/(\\d(\\.\\d+)?)+/g) || [];\n  const res = arr.map((s: string) => parseInt(s, 10));\n  return {\n    r: res[0],\n    g: res[1],\n    b: res[2],\n    a: parseFloat(arr[3]),\n  } as IColorObj;\n};\n\n/**\n * 颜色字符串解析为颜色对象\n * @param color 颜色字符串\n * @returns IColorObj\n */\nexport const parseColorString = (color: string) => {\n  if (color.startsWith('#')) {\n    return parseHexColor(color);\n  } else if (color.startsWith('rgb')) {\n    return parseRgbaColor(color);\n  } else if (color === 'transparent') {\n    return parseHexColor('#00000000');\n  }\n  throw new Error(`color string error: ${color}`);\n};\n\n/**\n * 颜色字符串解析为各种颜色表达方式\n * @param color 颜色字符串\n * @returns IColorObj\n */\nexport const getColorInfo = (color: string) => {\n  const colorObj = parseColorString(color);\n  const hex = toHexString(colorObj);\n  const rgba = toRgbaString(colorObj);\n  const rgb = toRgbString(colorObj);\n  return {\n    hex,\n    rgba,\n    rgb,\n    rgbaObj: colorObj,\n  };\n};\n\n/**\n * 16进制颜色字符串转化为rgba颜色字符串\n * @param hex 16进制颜色字符串\n * @returns rgba颜色字符串\n */\nexport const hexToRgba = (hex: string) => {\n  const colorObj = parseColorString(hex);\n  return toRgbaString(colorObj);\n};\n\n/**\n * rgba颜色字符串转化为16进制颜色字符串\n * @param rgba rgba颜色字符串\n * @returns 16进制颜色字符串\n */\nexport const rgbaToHex = (rgba: string) => {\n  const colorObj = parseColorString(rgba);\n  return toHexString(colorObj);\n};\n","<template>\n  <Button\n    v-bind=\"getBindValue\"\n    :class=\"getButtonClass\"\n    @click=\"onClick\"\n    :style=\"{...varStyle}\"\n  >\n    <template #icon v-if=\"isIcon\">\n      <span class=\"scButton-icon\">\n        <slot name=\"icon\"></slot>\n      </span>\n    </template>\n    <template #default=\"data\">\n      <slot v-bind=\"data || {}\"></slot>\n    </template>\n    <!-- <template #icon v-if=\"isIcon\">\n      <span class=\"scButton-icon\">\n        <slot name=\"icon\"></slot>\n      </span>\n    </template> -->\n  </Button>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, unref } from 'vue'\nimport { Button } from 'ant-design-vue'\n\nimport { basePrefixCls } from '../../../constant'\nimport { buttonProps } from '../type'\nimport { useAttrs } from '../../../hooks/useAttrs'\nimport { parseColorString, toRgbaString } from '../../../utils/hextorgba'\n  \n\nexport default defineComponent({\n  name: 'ScButton',\n  inheritAttrs: false,\n  props: buttonProps,\n  components: {\n    Button\n  },\n  setup (props, { slots }) {\n    const attrs = useAttrs({ excludeDefaultKeys: false });\n    const getButtonClass = computed(() => {\n      const { status, disabled, type, color, linkHover } = props;\n      return [\n        basePrefixCls + 'button',\n        type || status ? '' : 'is-default', \n        {\n          [`ant-btn-${status}`]: !!status,\n          [`is-disabled`]: disabled,\n          [`ant-btn-${type}`]: !!type,\n        },\n        linkHover ? 'link-hover' : '',\n        color ? 'customColor' : ''\n      ];\n    });\n\n    const getBindValue = computed(() => {\n      const { type, loading } = props;\n      return { \n        ...unref(attrs), \n        ...props, \n        loading,\n        type: ['shadow', 'icon'].includes(type) ? undefined : type,\n        color: undefined\n      }\n    });\n\n    const varStyle = computed(() => {\n      const { color } = props;\n      const rgbaColor = color ? parseColorString(color) : ''\n      const shadowOutColor = rgbaColor ? toRgbaString(Object.assign(rgbaColor, { a: 0.38 })) : ''\n      const shadowInColor = rgbaColor ? toRgbaString(Object.assign(rgbaColor, { a: 0.5 })) : ''\n      if (!color) {\n        return {}\n      }\n      return {\n        '--shadowBgColor': color,\n        '--shadowOutColor': shadowOutColor,\n        '--shadowInColor': shadowInColor\n      }\n    })\n    const isIcon = computed(() => {\n      return Object.keys(slots).includes('icon')\n    })\n    return {\n      getButtonClass,\n      getBindValue,\n      varStyle,\n      isIcon\n    };\n  }\n})\n</script>","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scButton from './component/ScButton.vue'\nimport { buttonProps } from './type'\n\nexport const ScButton = withInstall(scButton)\n\nexport declare type ButtonProps = Partial<ExtractPropTypes<typeof buttonProps>>","import type { InjectionKey } from 'vue'\n\nexport interface ScrollbarContext {\n  scrollbarElement: HTMLDivElement\n  wrapElement: HTMLDivElement\n}\n\nexport const scrollbarContextKey: InjectionKey<ScrollbarContext> = Symbol(\n  'scrollbarContextKey'\n)\n","import type { CSSProperties } from 'vue'\nimport type { ThumbProps } from './thumb'\n\nexport const GAP = 4 // top 2 + bottom 2 of bar instance\n\nexport const BAR_MAP = {\n  vertical: {\n    offset: 'offsetHeight',\n    scroll: 'scrollTop',\n    scrollSize: 'scrollHeight',\n    size: 'height',\n    key: 'vertical',\n    axis: 'Y',\n    client: 'clientY',\n    direction: 'top',\n  },\n  horizontal: {\n    offset: 'offsetWidth',\n    scroll: 'scrollLeft',\n    scrollSize: 'scrollWidth',\n    size: 'width',\n    key: 'horizontal',\n    axis: 'X',\n    client: 'clientX',\n    direction: 'left',\n  },\n} as const\n\nexport const renderThumbStyle = ({\n  move,\n  size,\n  bar,\n}: Pick<ThumbProps, 'move' | 'size'> & {\n  bar: typeof BAR_MAP[keyof typeof BAR_MAP]\n}): CSSProperties => ({\n  [bar.size]: size,\n  transform: `translate${bar.axis}(${move}%)`,\n})\n","import type { ExtractPropTypes } from 'vue'\nimport type Thumb from './thumb.vue'\n\nexport const thumbProps = () =>({\n  vertical: Boolean,\n  size: String,\n  move: Number,\n  ratio: {\n    type: Number,\n    required: true,\n  },\n  always: Boolean,\n} as const)\nexport type ThumbProps = ExtractPropTypes<typeof thumbProps>\n\nexport type ThumbInstance = InstanceType<typeof Thumb>\n","<template>\n  <transition :name=\"baseClass + '-fade-enter-to'\">\n    <div\n      v-show=\"always || visible\"\n      ref=\"instance\"\n      :class=\"[baseClass + '-bar', bar.key ? 'is-' + bar.key : '']\"\n      @mousedown=\"clickTrackHandler\"\n    >\n      <div\n        ref=\"thumb\"\n        :class=\"[baseClass + '-thumb']\"\n        :style=\"thumbStyle\"\n        @mousedown=\"clickThumbHandler\"\n      />\n    </div>\n  </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, toRef } from 'vue'\nimport { isClient, useEventListener } from '@vueuse/core'\nimport { scrollbarContextKey } from '../../../tokens'\nimport { throwError } from '../../../utils'\nimport { basePrefixCls } from '../../../constant'\n// import { useNamespace } from '@element-plus/hooks'\nimport { BAR_MAP, renderThumbStyle } from './util'\nimport { thumbProps } from './thumb'\n\nconst COMPONENT_NAME = 'Thumb'\nconst props = defineProps(thumbProps())\n\nconst scrollbar = inject(scrollbarContextKey)\n// const ns = useNamespace('scrollbar')\nconst baseClass = basePrefixCls + \"Scrollbar\"\n\nif (!scrollbar) throwError(COMPONENT_NAME, 'can not inject scrollbar context')\n\nconst instance = ref<HTMLDivElement>()\nconst thumb = ref<HTMLDivElement>()\n\nconst thumbState = ref<Partial<Record<'X' | 'Y', number>>>({})\nconst visible = ref(false)\n\nlet cursorDown = false\nlet cursorLeave = false\nlet originalOnSelectStart:\n  | ((this: GlobalEventHandlers, ev: Event) => any)\n  | null = isClient ? document.onselectstart : null\n\nconst bar = computed(() => BAR_MAP[props.vertical ? 'vertical' : 'horizontal'])\n\nconst thumbStyle = computed(() =>\n  renderThumbStyle({\n    size: props.size,\n    move: props.move,\n    bar: bar.value,\n  })\n)\n\nconst offsetRatio = computed(\n  () =>\n    // offsetRatioX = original width of thumb / current width of thumb / ratioX\n    // offsetRatioY = original height of thumb / current height of thumb / ratioY\n    // instance height = wrap height - GAP\n    instance.value![bar.value.offset] ** 2 /\n    scrollbar.wrapElement![bar.value.scrollSize] /\n    props.ratio /\n    thumb.value![bar.value.offset]\n)\n\nconst clickThumbHandler = (e: MouseEvent) => {\n  // prevent click event of middle and right button\n  e.stopPropagation()\n  if (e.ctrlKey || [1, 2].includes(e.button)) return\n\n  window.getSelection()?.removeAllRanges()\n  startDrag(e)\n\n  const el = e.currentTarget as HTMLDivElement\n  if (!el) return\n  thumbState.value[bar.value.axis] =\n    el[bar.value.offset] -\n    (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction])\n}\n\nconst clickTrackHandler = (e: MouseEvent) => {\n  if (!thumb.value || !instance.value || !scrollbar.wrapElement) return\n\n  const offset = Math.abs(\n    (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] -\n      e[bar.value.client]\n  )\n  const thumbHalf = thumb.value[bar.value.offset] / 2\n  const thumbPositionPercentage =\n    ((offset - thumbHalf) * 100 * offsetRatio.value) /\n    instance.value[bar.value.offset]\n\n  scrollbar.wrapElement[bar.value.scroll] =\n    (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) /\n    100\n}\n\nconst startDrag = (e: MouseEvent) => {\n  e.stopImmediatePropagation()\n  cursorDown = true\n  document.addEventListener('mousemove', mouseMoveDocumentHandler)\n  document.addEventListener('mouseup', mouseUpDocumentHandler)\n  originalOnSelectStart = document.onselectstart\n  document.onselectstart = () => false\n}\n\nconst mouseMoveDocumentHandler = (e: MouseEvent) => {\n  if (!instance.value || !thumb.value) return\n  if (cursorDown === false) return\n\n  const prevPage = thumbState.value[bar.value.axis]\n  if (!prevPage) return\n\n  const offset =\n    (instance.value.getBoundingClientRect()[bar.value.direction] -\n      e[bar.value.client]) *\n    -1\n  const thumbClickPosition = thumb.value[bar.value.offset] - prevPage\n  const thumbPositionPercentage =\n    ((offset - thumbClickPosition) * 100 * offsetRatio.value) /\n    instance.value[bar.value.offset]\n  scrollbar.wrapElement[bar.value.scroll] =\n    (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) /\n    100\n}\n\nconst mouseUpDocumentHandler = () => {\n  cursorDown = false\n  thumbState.value[bar.value.axis] = 0\n  document.removeEventListener('mousemove', mouseMoveDocumentHandler)\n  document.removeEventListener('mouseup', mouseUpDocumentHandler)\n  restoreOnselectstart()\n  if (cursorLeave) visible.value = false\n}\n\nconst mouseMoveScrollbarHandler = () => {\n  cursorLeave = false\n  visible.value = !!props.size\n}\n\nconst mouseLeaveScrollbarHandler = () => {\n  cursorLeave = true\n  visible.value = cursorDown\n}\n\nonBeforeUnmount(() => {\n  restoreOnselectstart()\n  document.removeEventListener('mouseup', mouseUpDocumentHandler)\n})\n\nconst restoreOnselectstart = () => {\n  if (document.onselectstart !== originalOnSelectStart)\n    document.onselectstart = originalOnSelectStart\n}\n\nuseEventListener(\n  toRef(scrollbar, 'scrollbarElement'),\n  'mousemove',\n  mouseMoveScrollbarHandler\n)\nuseEventListener(\n  toRef(scrollbar, 'scrollbarElement'),\n  'mouseleave',\n  mouseLeaveScrollbarHandler\n)\n</script>\n","import type { ExtractPropTypes } from 'vue'\nimport type Bar from './bar.vue'\n\nexport const barProps = () =>({\n  always: {\n    type: Boolean,\n    default: true,\n  },\n  width: String,\n  height: String,\n  ratioX: {\n    type: Number,\n    default: 1,\n  },\n  ratioY: {\n    type: Number,\n    default: 1,\n  },\n} as const)\nexport type BarProps = ExtractPropTypes<typeof barProps>\n\nexport type BarInstance = InstanceType<typeof Bar>\n","<template>\n  <thumb :move=\"moveX\" :ratio=\"ratioX\" :size=\"width\" :always=\"always\" />\n  <thumb\n    :move=\"moveY\"\n    :ratio=\"ratioY\"\n    :size=\"height\"\n    vertical\n    :always=\"always\"\n  />\n</template>\n<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nimport { GAP } from './util'\nimport Thumb from './thumb.vue'\nimport { barProps } from './bar'\n\nconst props = defineProps(barProps())\n\nconst moveX = ref(0)\nconst moveY = ref(0)\n\nconst handleScroll = (wrap: HTMLDivElement) => {\n  if (wrap) {\n    const offsetHeight = wrap.offsetHeight - GAP\n    const offsetWidth = wrap.offsetWidth - GAP\n\n    moveY.value = ((wrap.scrollTop * 100) / offsetHeight) * props.ratioY\n    moveX.value = ((wrap.scrollLeft * 100) / offsetWidth) * props.ratioX\n  }\n}\n\ndefineExpose({\n  handleScroll,\n})\n</script>\n","import { definePropType, isNumber } from '../../../utils'\nimport type { ExtractPropTypes, StyleValue } from 'vue'\nimport type Scrollbar from './scrollbar.vue'\n\nexport const scrollbarProps = () => ({\n  /**\n   * @description height of scrollbar\n   */\n  height: {\n    type: [String, Number],\n    default: '',\n  },\n  /**\n   * @description max height of scrollbar\n   */\n  maxHeight: {\n    type: [String, Number],\n    default: '',\n  },\n  /**\n   * @description whether to use the native scrollbar\n   */\n  native: {\n    type: Boolean,\n    default: false,\n  },\n  /**\n   * @description style of wrap\n   */\n  wrapStyle: {\n    type: definePropType<StyleValue>([String, Object, Array]),\n    default: '',\n  },\n  /**\n   * @description class of wrap\n   */\n  wrapClass: {\n    type: [String, Array],\n    default: '',\n  },\n  /**\n   * @description class of view\n   */\n  viewClass: {\n    type: [String, Array],\n    default: '',\n  },\n  /**\n   * @description style of view\n   */\n  viewStyle: {\n    type: [String, Array, Object],\n    default: '',\n  },\n  /**\n   * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance\n   */\n  noresize: Boolean, // 如果 container 尺寸不会发生变化，最好设置它可以优化性能\n  /**\n   * @description element tag of the view\n   */\n  tag: {\n    type: String,\n    default: 'div',\n  },\n  /**\n   * @description always show\n   */\n  always: Boolean,\n  /**\n   * @description minimum size of scrollbar\n   */\n  minSize: {\n    type: Number,\n    default: 20,\n  },\n  scrollbarSize: {\n    type: String,\n    validator: (v: string) => ['small', 'medium', 'large'].includes(v)\n  }\n} as const)\nexport type ScrollbarProps = ExtractPropTypes<typeof scrollbarProps>\n\nexport const scrollbarEmits = {\n  scroll: ({\n    scrollTop,\n    scrollLeft,\n  }: {\n    scrollTop: number\n    scrollLeft: number\n  }) => [scrollTop, scrollLeft].every(isNumber),\n}\nexport type ScrollbarEmits = typeof scrollbarEmits\n\nexport type ScrollbarInstance = InstanceType<typeof Scrollbar>\n","<template>\n  <div ref=\"scrollbarRef\" :class=\"baseClass\">\n    <div ref=\"wrapRef\" :class=\"wrapKls\" :style=\"style\" @scroll=\"handleScroll\">\n      <component\n        :is=\"tag\"\n        ref=\"resizeRef\"\n        :class=\"resizeKls\"\n        :style=\"viewStyle\"\n      >\n        <slot />\n      </component>\n    </div>\n    <template v-if=\"!native\">\n      <bar\n        ref=\"barRef\"\n        :height=\"sizeHeight\"\n        :width=\"sizeWidth\"\n        :always=\"always\"\n        :ratio-x=\"ratioX\"\n        :ratio-y=\"ratioY\"\n      />\n    </template>\n  </div>\n</template>\n<script lang=\"ts\" setup>\nimport {\n  computed,\n  nextTick,\n  onMounted,\n  onUpdated,\n  provide,\n  reactive,\n  ref,\n  watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { addUnit, debugWarn, isNumber, isObject } from '../../../utils'\nimport { scrollbarContextKey } from '../../../tokens'\nimport { basePrefixCls } from '../../../constant'\n// import { useNamespace } from '@element-plus/hooks'\nimport { GAP } from './util'\nimport Bar from './bar.vue'\nimport { scrollbarEmits, scrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ScScrollbar'\n\nconst baseClass = basePrefixCls + 'Scrollbar'\n\n\nconst props = defineProps(scrollbarProps())\nconst emit = defineEmits(scrollbarEmits)\n\n// const ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\n\nconst sizeWidth = ref('0')\nconst sizeHeight = ref('0')\nconst barRef = ref<BarInstance>()\nconst ratioY = ref(1)\nconst ratioX = ref(1)\n\nconst style = computed<StyleValue>(() => {\n  const style: CSSProperties = {}\n  if (props.height) style.height = addUnit(props.height)\n  if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)\n  if (props.minHeight) style.minHeight = addUnit(props.minHeight)\n  return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n  return [\n    props.wrapClass,\n    baseClass + '-wrap',\n    props.scrollbarSize ? (props.native ? `native-scrollbar-` + props.scrollbarSize : `scrollbar-` + props.scrollbarSize) : '',\n    { [baseClass + '-wrap__hidden-default']: !props.native },\n  ]\n})\n\nconst resizeKls = computed(() => {\n  return [ \n    baseClass + '-view', \n    props.viewClass, \n    sizeHeight.value ? 'isVerticalScroll' : '', \n    sizeWidth.value ? 'isHorizontalScroll' : ''\n  ]\n})\n\nconst handleScroll = () => {\n  if (wrapRef.value) {\n    barRef.value?.handleScroll(wrapRef.value)\n\n    emit('scroll', {\n      scrollTop: wrapRef.value.scrollTop,\n      scrollLeft: wrapRef.value.scrollLeft,\n    })\n  }\n}\n\n// TODO: refactor method overrides, due to script setup dts\n// @ts-nocheck\nfunction scrollTo(xCord: number, yCord?: number): void\n// @ts-nocheck\nfunction scrollTo(options: ScrollToOptions): void\n// @ts-nocheck\nfunction scrollTo(arg1: unknown, arg2?: number) {\n  if (isObject(arg1)) {\n    wrapRef.value!.scrollTo(arg1)\n  } else if (isNumber(arg1) && isNumber(arg2)) {\n    wrapRef.value!.scrollTo(arg1, arg2)\n  }\n}\n\nconst setScrollTop = (value: number) => {\n  if (!isNumber(value)) {\n    debugWarn(COMPONENT_NAME, 'value must be a number')\n    return\n  }\n  wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n  if (!isNumber(value)) {\n    debugWarn(COMPONENT_NAME, 'value must be a number')\n    return\n  }\n  wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n  if (!wrapRef.value) return\n  const offsetHeight = wrapRef.value.offsetHeight - GAP\n  const offsetWidth = wrapRef.value.offsetWidth - GAP\n  \n  const originalHeight = offsetHeight ** 2 / wrapRef.value.scrollHeight\n  const originalWidth = offsetWidth ** 2 / wrapRef.value.scrollWidth\n  const height = Math.max(originalHeight, props.minSize)\n  const width = Math.max(originalWidth, props.minSize)\n  \n  ratioY.value =\n  originalHeight /\n  (offsetHeight - originalHeight) /\n  (height / (offsetHeight - height))\n  ratioX.value =\n  originalWidth /\n  (offsetWidth - originalWidth) /\n  (width / (offsetWidth - width))\n  \n  sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''\n  sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''\n  // console.log('sizeHeight: ', sizeHeight.value);\n}\n\nwatch(\n  () => props.noresize,\n  (noresize) => {\n    if (noresize) {\n      stopResizeObserver?.()\n      stopResizeListener?.()\n    } else {\n      ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n      stopResizeListener = useEventListener('resize', update)\n    }\n  },\n  { immediate: true }\n)\n\nwatch(\n  () => [props.maxHeight, props.height],\n  () => {\n    if (!props.native)\n      nextTick(() => {\n        update()\n        if (wrapRef.value) {\n          barRef.value?.handleScroll(wrapRef.value)\n        }\n      })\n  }\n)\n\nprovide(\n  scrollbarContextKey,\n  reactive({\n    scrollbarElement: scrollbarRef,\n    wrapElement: wrapRef,\n  })\n)\n\nonMounted(() => {\n  if (!props.native)\n    nextTick(() => {\n      update()\n    })\n})\nonUpdated(() => update())\n\ndefineExpose({\n  /** @description scrollbar wrap ref */\n  wrapRef,\n  /** @description update scrollbar state manually */\n  update,\n  /** @description scrolls to a particular set of coordinates */\n  scrollTo,\n  /** @description set distance to scroll top */\n  setScrollTop,\n  /** @description set distance to scroll left */\n  setScrollLeft,\n  /** @description handle scroll event */\n  handleScroll,\n})\n</script>\n","// import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scScrollbar from './component/scrollbar.vue'\n\nexport const ScScrollbar = withInstall(scScrollbar)\n\nexport * from './component/util'\nexport * from './component/scrollbar'\nexport * from './component/thumb'","import type { PropType, CSSProperties, ComputedRef, ExtractPropTypes, VNodeTypes } from 'vue'\nimport type { LegacyButtonType, ButtonProps } from 'ant-design-vue/es/button/buttonTypes'\nimport { PropTypes } from '../../../utils/propTypes'\nimport { VueNode } from '../../../utils';\nimport { UseDraggableOptions } from '../../../types/draggable'\nimport { ScrollbarProps } from '../../scrollbar';\n\ntype getContainerFunc = () => HTMLElement;\nexport interface DraggableType {\n  x: number,\n  y: number,\n  isDragging: boolean,\n  position: {\n    x: number,\n    y: number\n  },\n  style: ComputedRef<string>\n}\nexport const modalProps = () => ({\n  showTooltip: { type: Boolean, default: false },\n  isConfirm: { type: Boolean, default: false },\n  tooltipDes: { type: String, default: '' },\n  //显示取消按钮\n  showCancelBtn: { type: Boolean, default: true },\n  //显示确认按钮\n  showOkBtn: { type: Boolean, default: true },\n  afterClose: Function as PropType<() => Promise<VueNode>>,\n  closeFunc: Function as PropType<() => Promise<boolean>>,\n  type: [String],\n  infoDes: [String, Array],\n  prefixCls: { type: String },\n  onCancelDisable: { type: Boolean, default: false },\n  onOkDisable: { type: Boolean, default: false },\n  isDraggable: { type: Boolean, default: true },\n  DragOptions: {\n    type: Object as PropType<UseDraggableOptions>\n  },\n  scrollOptions: {\n    type: Object as PropType<ScrollbarProps>\n  },\n  dragChange : Function as PropType<(draggable: DraggableType) => void>,\n  footerAlign: {\n    type: String,\n    default: 'center'\n  },\n  visible: { type: Boolean, default: false },\n  loading: { type: Boolean, default: false },\n  loadingText: { type: String },\n  confirmLoading: { type: Boolean, default: undefined },\n  title: PropTypes.any,\n  closable: { type: Boolean, default: undefined },\n  closeIcon: PropTypes.any,\n  onOk: Function as PropType<(e: MouseEvent) => void>,\n  onCancel: Function as PropType<(e: MouseEvent) => void>,\n  'onUpdate:visible': Function as PropType<(visible: boolean) => void>,\n  onChange: Function as PropType<(visible: boolean) => void>,\n  // afterClose: Function as PropType<() => void>,\n  centered: { type: Boolean, default: true },\n  width: {\n    type: [String, Number],\n    default: '480px'\n  },\n  footer: PropTypes.any,\n  okText: { type: String },\n  okType: String as PropType<LegacyButtonType>,\n  cancelText: { type: String },\n  icon: PropTypes.any,\n  maskClosable: { type: Boolean, default: true },\n  forceRender: { type: Boolean, default: undefined },\n  okButtonProps: Object as PropType<ButtonProps>,\n  cancelButtonProps: Object as PropType<ButtonProps>,\n  destroyOnClose: { type: Boolean, default: true },\n  wrapClassName: String,\n  maskTransitionName: String,\n  transitionName: String,\n  \n  getContainer: {\n    type: [String, Function, Boolean, Object] as PropType<\n      string | HTMLElement | getContainerFunc | false\n    >,\n    default: undefined,\n  },\n  zIndex: Number,\n  // @ts-ignore\n  bodyStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n  // @ts-ignore\n  maskStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n  mask: { type: Boolean, default: undefined },\n  keyboard: { type: Boolean, default: undefined },\n  wrapProps: Object,\n  focusTriggerAfterClose: { type: Boolean, default: undefined },\n  modalRender: Function as PropType<(arg: { originVNode: VueNode }) => VueNode>,\n  appContext: PropTypes.any,\n  autoFocusButton: [null, String]  as PropType< null | 'ok' | 'cancel'>,\n  content: PropTypes.any,\n});\n\nexport declare type ModalProps = Partial<ExtractPropTypes<typeof modalProps>> \n\nexport interface ModalFuncProps extends ModalProps {\n  autoFocusButton?: null | 'ok' | 'cancel',\n  content?: string | (() => VNodeTypes) | VNodeTypes,\n  icon?: (() => VNodeTypes) | VNodeTypes,\n  okType?: 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default' | 'shadow' | 'icon',\n  appContext?: any,\n  [key: string]: any\n}\n\nexport interface ModalMethods {\n  setModalProps: (props: Partial<ModalProps>) => void;\n  emitVisible?: (visible: boolean, uid: number) => void;\n  redoModalHeight?: () => void;\n}\n\nexport type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void;\n\nexport interface ReturnMethods extends ModalMethods {\n  openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void;\n  closeModal: () => void;\n  getVisible?: ComputedRef<boolean>;\n}\n\nexport interface ReturnInnerMethods extends ModalMethods {\n  closeModal: () => void;\n  changeLoading: (loading: boolean) => void;\n  changeOkLoading: (loading: boolean) => void;\n  getVisible?: ComputedRef<boolean>;\n  redoModalHeight: () => void;\n}\n\nexport type UseModalReturnType = [RegisterFn, ReturnMethods];\n\nexport type UseModalInnerReturnType = [RegisterFn, ReturnInnerMethods];\n","// @ts-nocheck\n// Test via a getter in the options object to see if the passive property is accessed\nlet supportsPassive = false;\ntry {\n  let opts = Object.defineProperty({}, 'passive', {\n    get() {\n      supportsPassive = true;\n    },\n  });\n  window.addEventListener('testPassive', null, opts);\n  window.removeEventListener('testPassive', null, opts);\n} catch (e) {}\n\nexport default supportsPassive;\n","// @ts-nocheck\nimport supportsPassive from '../supportsPassive';\n\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n  if (target && target.addEventListener) {\n    let opt = option;\n    if (\n      opt === undefined &&\n      supportsPassive &&\n      (eventType === 'touchstart' || eventType === 'touchmove' || eventType === 'wheel')\n    ) {\n      opt = { passive: false };\n    }\n    target.addEventListener(eventType, cb, opt);\n  }\n  return {\n    remove: () => {\n      if (target && target.removeEventListener) {\n        target.removeEventListener(eventType, cb);\n      }\n    },\n  };\n}\n\n\nexport const optimizedResize = (function() {\n  const callbacks = []\n  let running = false\n\n  // fired on resize event\n  function resize() {\n    if (!running) {\n      running = true;\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(runCallbacks);\n      } else {\n        setTimeout(runCallbacks, 66);\n      }\n    }\n  }\n  // run the actual callbacks\n  function runCallbacks() {\n    callbacks.forEach(function(callback) {\n      callback();\n    });\n    running = false;\n  }\n\n  // adds callback to loop\n  function addCallback(callback) {\n    if (callback) {\n      callbacks.push(callback);\n    }\n  }\n\n  return {\n    // public method to add additional callback\n    add: function(callback) {\n      if (!callbacks.length) {\n          window.addEventListener('resize', resize);\n      }\n      addCallback(callback);\n    }\n  }\n}());\n","\ninterface LocaleType {\n  [key:string]: any\n}\n\nconst en_US:LocaleType = {\n  copy: {\n    successMessage: 'Successfully Copied'\n  },\n  cleanUp: 'clean up',\n  noData: 'no Data',\n  total: 'Total',\n  item: 'item',\n  customListFields: 'Custom List Fields',\n  selectItem: 'Please select the listing details you want to display. You have checked ',\n}\n\nexport default en_US","\ninterface LocaleType {\n  [key:string]: any\n}\n\nconst zh_CN:LocaleType = {\n  copy: {\n    successMessage: '复制成功'\n  },\n  cleanUp: '清除',\n  noData: '暂无数据',\n  total: '共',\n  item: '条',\n  customListFields: '自定义列表字段',\n  selectItem: '请选择您想显示的列表详细信息。您已勾选'\n}\n\nexport default zh_CN","import { inject } from \"vue\"\nimport en_US from \"../locale/en\"\nimport zh_CN from \"../locale/zh\"\n\n\ninterface LocaleDataType {\n  antLocale?: {\n    [key:string]: any\n  }\n  curLocale?: {\n    [key:string]: any\n  }\n}\n\nexport default function useLocale ():LocaleDataType {\n  const localeData = inject<LocaleDataType>('localeData', {} as LocaleDataType) || {}\n  const { antLocale } = localeData\n  if (!antLocale) {\n    return {\n      curLocale: zh_CN\n    }\n  }\n  const curLocale = (antLocale.locale === 'en' || antLocale.Locale === 'en') ? en_US : zh_CN\n  return {\n    antLocale,\n    curLocale\n  }\n}","export enum SizeEnum {\n  DEFAULT = 'default',\n  SMALL = 'small',\n  LARGE = 'large',\n}","export default \"data:image/gif;base64,R0lGODlhyAAYAdUlACk6YoTF93u993vF95TO96XW94zF95zO97Xe/4zO987W3q3W95zW963e973F1pylva21xbW9xWNrjKWtxc7O3jFCa5yltYyUrQgZSik6Y6WtvcXO1r3FzrW9zkpae5SctSEpMYSMpWtzlIycrYSUrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjMgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkU2MkU4REM1NDI0MTFFREJCRjNCRDJCRjZCNzE1QTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkU2MkU4REQ1NDI0MTFFREJCRjNCRDJCRjZCNzE1QTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRTYyRThEQTU0MjQxMUVEQkJGM0JEMkJGNkI3MTVBMCIgc3RS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\"","<template>\n  <section\n    class=\"full-loading\"\n    :class=\"{ absolute, [theme]: !!theme }\"\n    :style=\"[background ? `background-color: ${background}` : '']\"\n    v-show=\"loading\"\n  >\n    <Spin\n      v-bind=\"$attrs\"\n      :tip=\"tip\"\n      :size=\"size\"\n      :spinning=\"loading\"\n      :indicator=\"newIndicator\"\n    />\n  </section>\n</template>\n<script lang=\"ts\">\nimport { h, PropType, VNode } from 'vue'\nimport { defineComponent, computed } from 'vue'\nimport { Spin } from 'ant-design-vue'\nimport { SizeEnum } from '../../../enums/sizeEnum'\nimport loadGif from '../../../assets/gif/loading.gif'\n\nexport default defineComponent({\n  name: 'ScLoading',\n  components: { Spin },\n  props: {\n    isFullPage: {\n      type: Boolean,\n      default () {\n        return true\n      }\n    },\n    tip: {\n      type: String as PropType<string>,\n      default: ''\n    },\n    size: {\n      type: String as PropType<SizeEnum>,\n      default: SizeEnum.DEFAULT,\n      validator: (v: SizeEnum): boolean => {\n        return [SizeEnum.DEFAULT, SizeEnum.SMALL, SizeEnum.LARGE].includes(v)\n      }\n    },\n    absolute: {\n      type: Boolean as PropType<boolean>,\n      default: false\n    },\n    loading: {\n      type: Boolean as PropType<boolean>,\n      default: false\n    },\n    background: {\n      type: String as PropType<string>\n    },\n    theme: {\n      type: String as PropType<'dark' | 'light'>,\n      default: 'light'\n    },\n    indicator: {\n      type: Object as PropType<VNode>,\n      default: h('img', { src: loadGif, class: 'loading-gif'})\n    }\n  },\n  setup (props) {\n    const newIndicator = computed(() => {\n      let nerIndiactorH = props.indicator\n      if (props.isFullPage === false) {\n        nerIndiactorH = h('span', { class: 'loading-transition'})\n      }\n      if (props.isFullPage === true) {\n        nerIndiactorH = h('img', { src: loadGif, class: 'loading-gif' })\n      }\n      if (props.indicator === null) {\n        return props.indicator\n      }\n      return nerIndiactorH\n    })\n    return {\n      newIndicator\n    }\n  }\n})\n</script>\n","import { VNode, defineComponent } from 'vue'\nimport type { LoadingProps } from './typing'\n\nimport { createVNode, render, reactive, h } from 'vue'\nimport Loading from './Loading.vue'\n\nexport function createLoading(props?: Partial<LoadingProps>, target?: HTMLElement, wait = false) {\n  let vm: Nullable<VNode> = null\n  const data = reactive({\n    tip: '',\n    loading: true,\n    ...props\n  })\n\n  const LoadingWrap = defineComponent({\n    render() {\n      return h(Loading, { ...data })\n    }\n  })\n\n  vm = createVNode(LoadingWrap)\n\n  if (wait) {\n    setTimeout(() => {\n      render(vm, document.createElement('div'))\n    }, 0)\n  } else {\n    render(vm, document.createElement('div'))\n  }\n\n  function close() {\n    if (vm?.el && vm.el.parentNode) {\n      vm.el.parentNode.removeChild(vm.el)\n    }\n  }\n\n  function open(target: HTMLElement = document.body) {\n    if (!vm || !vm.el) {\n      return\n    }\n    target.appendChild(vm.el as HTMLElement)\n  }\n\n  if (target) {\n    open(target)\n  }\n  return {\n    vm,\n    close,\n    open,\n    setTip: (tip: string) => {\n      data.tip = tip\n    },\n    setLoading: (loading: boolean) => {\n      data.loading = loading\n    },\n    get loading() {\n      return data.loading\n    },\n    get $el() {\n      return vm?.el as HTMLElement\n    }\n  }\n}\n","import { createLoading } from '../package/loading/component/createLoading';\nimport type { Directive, App } from 'vue';\n\nconst LoadingDirective: Directive = {\n  mounted(el, binding) {\n    const tip = el.getAttribute('loading-tip');\n    const background = el.getAttribute('loading-background');\n    const size = el.getAttribute('loading-size');\n    const fullscreen = !!binding.modifiers.fullscreen || !!binding.modifiers.isFullPage;\n    if (!fullscreen) {\n      el.style.position = 'relative'\n    }\n    const instance = createLoading(\n      {\n        tip,\n        background,\n        size: size,\n        loading: !!binding.value,\n        absolute: !fullscreen,\n        isFullPage: fullscreen\n      },\n      fullscreen ? document.body : el,\n    );\n    el.instance = instance;\n  },\n  updated(el, binding) {\n    const instance = el.instance;\n    if (!instance) return;\n    instance.setTip(el.getAttribute('loading-tip'));\n    if (binding.oldValue !== binding.value) {\n      instance.setLoading?.(binding.value && !instance.loading);\n    }\n  },\n  unmounted(el) {\n    el?.instance?.close();\n  },\n};\n\nexport function setupLoadingDirective(app: App) {\n  app.directive('loading', LoadingDirective);\n}\n\nexport default LoadingDirective;\n","<template>\n  <Modal :class=\"className\" v-bind=\"getBindValue\" v-model:visible=\"visibleRef\" ref=\"modalRef\">\n    <!-- :style=\"{'--model-width': getBindValue.width}\" -->\n\n    <template #[item]=\"data\" v-for=\"item in ['default']\">\n      <div v-if=\"curProps.type && !$slots.infoText\"\n        :class=\"[modalPrefixCls + '-status', modalPrefixCls + '-' + curProps.type]\">\n        <span v-if=\"props.type\" :class=\"[modalPrefixCls + '-status-icon']\">\n          <InfoCircleFilled v-if=\"curProps.type === 'info'\" />\n          <CheckCircleFilled v-else-if=\"curProps.type === 'success'\" />\n          <ExclamationCircleFilled v-else-if=\"curProps.type === 'warning'\" />\n          <ExclamationCircleFilled v-else-if=\"curProps.type === 'error'\" />\n        </span>\n        <template v-if=\"isArray(curProps.infoDes)\">\n          <div>\n            <p :class=\"[modalPrefixCls + '-txt']\" v-for=\"item in (curProps.infoDes || [])\">\n              {{ item }}\n            </p>\n          </div>\n        </template>\n        <p v-else :class=\"[modalPrefixCls + '-txt']\">\n          {{ curProps.infoDes }}\n        </p>\n      </div>\n      <template v-else=\"$slots.infoText\">\n        <slot name=\"infoText\"></slot>\n      </template>\n      <div :class=\"[modalPrefixCls + '-content']\" v-loading=\"getBindValue.loading\" :loading-tip=\"getBindValue.loadingText || '加载中...'\">\n        <ScScrollbar ref=\"scrollBarRef\" v-bind=\"scrollbarProps\" :fullscreen=\"false\"\n        >\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </ScScrollbar>\n      </div>\n    </template>\n\n    <template #title>\n      <header ref=\"modalTitleRef\" :class=\"{ 'draggable-event': curProps?.isDraggable }\"\n        v-if=\"curProps.title || isSlotTitle\">\n        <slot name=\"title\" v-if=\"isSlotTitle\"></slot>\n        <span v-else>\n          {{ curProps.title }}\n        </span>\n        <span v-if=\"curProps.showTooltip\" :class=\"[modalPrefixCls + '-tooltip']\">\n          <Tooltip overlayClassName=\"scTooltip-white\" destroyTooltipOnHide>\n            <template #title>\n              {{ curProps.tooltipDes }}\n            </template>\n            <question-circle-outlined :class=\"[modalPrefixCls + '-tooltip__icon']\" />\n          </Tooltip>\n        </span>\n      </header>\n    </template>\n\n    <template #footer v-if=\"curProps.footer !== null\">\n      <div :class=\"footerClassName\" v-if=\"!isSlotFooter\">\n        <slot name=\"insertFooter\"></slot>\n        <ScButton v-if=\"curProps.showCancelBtn\" :class=\"[modalPrefixCls + '-footer__cancel']\" status=\"info\" v-bind=\"{\n          ...curProps.cancelButtonProps,\n          type: undefined,\n          disabled: curProps?.cancelButtonProps?.disabled || curProps?.onCancelDisable || curProps.confirmLoading\n        }\" title=\"\" @click=\"closeVisible\">\n          {{ curProps.cancelText }}\n        </ScButton>\n        <ScButton v-if=\"curProps.showOkBtn\" :loading=\"loadingRef || curProps.confirmLoading\"\n          :class=\"[modalPrefixCls + '-footer__ok']\"\n          v-bind=\"{ ...curProps.okButtonProps, type: undefined, disabled: curProps?.okButtonProps?.disabled || curProps?.onOkDisable }\"\n          type=\"primary\" title=\"\" @click=\"$event => handleOk()\">\n          {{ curProps.okText }}\n        </ScButton>\n        <slot name=\"afterFooter\"></slot>\n      </div>\n      <slot v-else name=\"footer\"> </slot>\n    </template>\n\n    <template #closeIcon>\n      <i :class=\"['sc-ui', 'sc-guanbi', curProps.confirmLoading || loadingRef ? 'not-allow' : '']\" v-if=\"!isClose\"\n        @click=\"closeVisible\">\n      </i>\n      <span v-else :class=\"[curProps.confirmLoading || loadingRef ? 'not-allow' : '']\" @click=\"closeVisible\">\n        <slot name=\"closeIcon\"></slot>\n      </span>\n    </template>\n  </Modal>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, ref, watchEffect, watch, unref, nextTick, getCurrentInstance, onMounted } from 'vue'\n// import type { CSSProperties } from 'vue'\n// import { useDraggable } from '@vueuse/core';\nimport { useModalDraggable } from '../hooks/useModalDraggable'\nimport { Modal, Tooltip } from 'ant-design-vue'\nimport { ScButton } from '../../button';\nimport { ScScrollbar } from '../../scrollbar';\nimport {\n  QuestionCircleOutlined,\n  InfoCircleFilled,\n  CheckCircleFilled,\n  ExclamationCircleFilled,\n  CloseCircleFilled\n} from '@ant-design/icons-vue';\n\nimport { modalProps, ModalProps, ModalMethods } from './type'\nimport { basePrefixCls } from '../../../constant'\nimport { optimizedResize } from '../../../utils/dom/addEventListener'\nimport { isFunction, isArray } from '../../../utils/is'\nimport { deepMerge, pxToRem, isNumber, buildUUID } from '../../../utils'\nimport useLocale from '../../../hooks/useLocale'\nimport LoadingDirective from '../../../directives/loading'\n\nexport default defineComponent({\n  name: 'ScModal',\n  inheritAttrs: false,\n  props: modalProps(),\n  components: {\n    Modal,\n    ScButton,\n    Tooltip,\n    ScScrollbar,\n    QuestionCircleOutlined,\n    InfoCircleFilled,\n    CheckCircleFilled,\n    ExclamationCircleFilled,\n    CloseCircleFilled\n  },\n  directives: {\n    loading: LoadingDirective\n  },\n  setup(props, { slots, attrs, emit, expose }) {\n    const modalPrefixCls = basePrefixCls + 'Modal'\n    const uuid = modalPrefixCls + buildUUID()\n    // const emit = defineemit(['update:visible', 'dragChange', 'register', 'visible-change', 'cancel'])\n    const vBind = computed(() => {\n      return props\n    })\n\n    const visibleRef = ref(false)\n    const propsRef = ref()\n    const scrollbarRef = ref()\n    const maxHeight = ref()\n\n    const loadingRef = ref(false)\n\n    const curProps = computed(() => {\n      const { okText, cancelText } = unref(vBind)\n      const { antLocale } = useLocale()\n      return {\n        ...unref(vBind),\n        ...propsRef.value,\n        okText: okText || antLocale?.Modal?.okText || '确认',\n        cancelText: cancelText || antLocale?.Modal?.cancelText || '取消'\n      }\n    })\n    const getBindValue = computed((): Recordable => {\n      const filterKey = ['title', 'footer', 'cancelButtonProps', 'okButtonProps', 'cancelText', 'okText']\n      const newProps = Object.entries(unref(curProps)).reduce((pre, next) => {\n        if (filterKey.includes(next[0])) {\n          return {\n            ...pre\n          }\n        } else {\n          return {\n            ...pre,\n            [next[0]]: next[1]\n          }\n        }\n      }, {})\n      // const { confirmLoading, maskClosable } = unref(curProps)\n      const attr = {\n        ...newProps,\n        ...attrs,\n        visible: unref(visibleRef),\n        // infoDes: isArray(unref(curProps).infoDes) ? unref(curProps).infoDes : [unref(curProps).infoDes]\n        // maskClosable: confirmLoading || loadingRef ? false : maskClosable\n      };\n      const { footer, showCancelBtn, showOkBtn, title } = unref(curProps)\n      if (\n        footer === null ||\n        footer === 'null' ||\n        (!showCancelBtn && !showOkBtn)\n      ) {\n        attr.footer = null\n      }\n      if (\n        title === null ||\n        title === 'null'\n      ) {\n        attr.title = null\n      }\n      // @ts-ignore\n      if (newProps.width) {\n        // @ts-ignore\n        if (isNumber(newProps.width)) {\n          // @ts-ignore\n          attr.width = pxToRem(newProps.width)\n          // @ts-ignore\n        } else if (String(newProps.width).includes('%')) {\n          // @ts-ignore\n          attr.width = newProps.width\n        } else {\n          // @ts-ignore\n          attr.width = pxToRem(parseInt(newProps.width))\n        }\n      }\n      return attr\n    });\n\n    const scrollbarProps = computed(() => {\n      const { scrollOptions } = unref(curProps)\n      return {\n        ...scrollOptions,\n        // @ts-ignore\n        maxHeight: scrollOptions?.maxHeight ? scrollOptions?.maxHeight : maxHeight.value,\n        // @ts-ignore\n        // height: scrollOptions?.maxHeight ? scrollOptions?.maxHeight :  maxHeight.value\n      }\n    })\n\n    const className = computed(() => {\n      const classNames = [modalPrefixCls, uuid]\n      if (unref(vBind).type) {\n        classNames.push(modalPrefixCls + '-container-' + unref(vBind).type)\n        classNames.push(modalPrefixCls + '-container-status')\n      }\n      return classNames\n    })\n\n    const footerClassName = computed(() => {\n      const footerClassNames = [modalPrefixCls + '-footer']\n      switch (unref(vBind).footerAlign) {\n        case 'left':\n          footerClassNames.push('text-left')\n          break;\n        case 'right':\n          footerClassNames.push('text-right')\n          break;\n        case 'center':\n          footerClassNames.push('text-center')\n          break;\n      }\n      return footerClassNames\n    })\n\n    const isSlotTitle = computed(() => {\n      return Object.keys(slots).includes('title')\n    })\n\n    const isSlotFooter = computed(() => {\n      return Object.keys(slots).includes('footer')\n    })\n\n    const isClose = computed(() => {\n      return Object.keys(slots).includes('closeIcon')\n    })\n\n    const closeVisible = async (e: Event) => {\n      e?.stopPropagation();\n      const { confirmLoading } = curProps.value\n      if (confirmLoading || loadingRef.value) {\n        return false\n      }\n      if (unref(vBind).closeFunc && isFunction(unref(vBind).closeFunc)) {\n        // @ts-ignore\n        const isClose: boolean = await unref(vBind).closeFunc();\n        emit('update:visible', isClose)\n        visibleRef.value = isClose\n        return;\n      }\n      emit('cancel', false)\n      visibleRef.value = false\n      emit('update:visible', false)\n    }\n\n    /**\n     * @description: 设置modal参数\n    */\n    function setModalProps(props: Partial<ModalProps>): void {\n      // Keep the last setModalProps\n      propsRef.value = deepMerge(unref(propsRef) || ({} as any), props);\n      if (Reflect.has(props, 'visible')) {\n        // @ts-ignore\n        visibleRef.value = !!props?.visible;\n      }\n    }\n\n    const handleOk = async () => {\n      const { onOk, isConfirm } = curProps.value\n      try {\n        if (onOk && isFunction(onOk)) {\n          const ret = onOk()\n          if (ret && ret.then) {\n            loadingRef.value = true\n            ret.then((res: any) => {\n              loadingRef.value = false\n              if (isConfirm) {\n                visibleRef.value = false\n              }\n            }).catch((error: any) => {\n              console.log('error: ', error);\n              loadingRef.value = false\n            })\n          } else {\n            if (isConfirm) {\n              visibleRef.value = false\n            }\n          }\n        } else {\n          if (isConfirm) {\n            visibleRef.value = false\n          }\n        }\n      } catch (error) {\n        loadingRef.value = false\n        console.log('error: ', error);\n      }\n    }\n\n    const modalMethods: ModalMethods = {\n      setModalProps,\n      emitVisible: undefined\n    };\n\n    const instance = getCurrentInstance();\n    if (instance) {\n      emit('register', modalMethods, instance.uid)\n    }\n\n    const updateMaxHeight = () => {\n      if (window) {\n        const headerHeight: number = document.querySelector('.' + uuid + ' .ant-modal-header')?.scrollHeight || 0\n        const footerHeight: number = document.querySelector('.' + uuid + ' .ant-modal-footer')?.scrollHeight || 0\n        const alertHeight: number = (document.querySelector('.' + uuid + ' .scModal-status')?.scrollHeight || 0) + 4\n        const innerHeightView: number = (window && window?.innerHeight) || 0\n        maxHeight.value = innerHeightView - headerHeight - footerHeight - alertHeight - 88 + 'px'\n      }\n    }\n\n    onMounted(() => {\n      updateMaxHeight()\n      optimizedResize.add(updateMaxHeight)\n    })\n\n    watchEffect(() => {\n      visibleRef.value = !!(unref(vBind).visible)\n    })\n\n    const modalTitleRef = ref()\n    watch(\n      () => visibleRef.value,\n      (v) => {\n        emit('visible-change', v)\n        emit('update:visible', v)\n        instance && modalMethods.emitVisible?.(v, instance.uid);\n        if (v) {\n          nextTick(() => {\n            updateMaxHeight()\n          })\n          const timer = setTimeout(() => {\n            nextTick(() => {\n              useModalDraggable(modalTitleRef, visibleRef, vBind, emit)\n              clearTimeout(timer)\n            })\n          }, 300)\n        }\n      },\n      {\n        immediate: false,\n      },\n    );\n    // onMounted(() => {\n    // })\n\n    expose({\n      updateMaxHeight,\n      setModalProps,\n      scrollbarRef\n    })\n\n    return {\n      uuid,\n      className,\n      getBindValue,\n      isClose,\n      isSlotTitle,\n      isSlotFooter,\n      footerClassName,\n      props: vBind,\n      modalPrefixCls,\n      visibleRef,\n      modalTitleRef,\n      curProps,\n      loadingRef,\n      scrollbarRef,\n      scrollbarProps,\n      isArray,\n      handleOk,\n      closeVisible\n    }\n  },\n})\n</script>\n","import type { Locale } from '../interface';\n\nconst locale: Locale = {\n  locale: 'en_US',\n  today: 'Today',\n  now: 'Now',\n  backToToday: 'Back to today',\n  ok: 'Ok',\n  clear: 'Clear',\n  month: 'Month',\n  year: 'Year',\n  timeSelect: 'select time',\n  dateSelect: 'select date',\n  weekSelect: 'Choose a week',\n  monthSelect: 'Choose a month',\n  yearSelect: 'Choose a year',\n  decadeSelect: 'Choose a decade',\n  yearFormat: 'YYYY',\n  dateFormat: 'M/D/YYYY',\n  dayFormat: 'D',\n  dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n  monthBeforeYear: true,\n  previousMonth: 'Previous month (PageUp)',\n  nextMonth: 'Next month (PageDown)',\n  previousYear: 'Last year (Control + left)',\n  nextYear: 'Next year (Control + right)',\n  previousDecade: 'Last decade',\n  nextDecade: 'Next decade',\n  previousCentury: 'Last century',\n  nextCentury: 'Next century',\n};\n\nexport default locale;\n","import type { TimePickerLocale } from '../index';\n\nconst locale: TimePickerLocale = {\n  placeholder: 'Select time',\n  rangePlaceholder: ['Start time', 'End time'],\n};\n\nexport default locale;\n","import CalendarLocale from '../../picker/locale/en_US';\nimport TimePickerLocale from '../../timePicker/locale/en_US';\nimport type { PickerLocale } from '../generatePicker';\n\n// Merge into a locale object\nconst locale: PickerLocale = {\n  lang: {\n    placeholder: 'Select date',\n    yearPlaceholder: 'Select year',\n    quarterPlaceholder: 'Select quarter',\n    monthPlaceholder: 'Select month',\n    weekPlaceholder: 'Select week',\n    rangePlaceholder: ['Start date', 'End date'],\n    rangeYearPlaceholder: ['Start year', 'End year'],\n    rangeMonthPlaceholder: ['Start month', 'End month'],\n    rangeWeekPlaceholder: ['Start week', 'End week'],\n    ...CalendarLocale,\n  },\n  timePickerLocale: {\n    ...TimePickerLocale,\n  },\n};\n\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;\n","/* eslint-disable no-template-curly-in-string */\nimport DatePicker from '../package/datePicker/locale/en_US';\n// import TimePicker from '../time-picker/locale/en_US';\n// import Calendar from '../calendar/locale/en_US';\nimport type { Locale } from '../locale-provider';\n\nconst typeTemplate = '${label} is not a valid ${type}';\n\nconst localeValues: Locale = {\n  locale: 'en',\n  // Pagination,\n  DatePicker,\n  // TimePicker,\n  // Calendar,\n  global: {\n    placeholder: 'Please select',\n  },\n  Table: {\n    filterTitle: 'Filter menu',\n    filterConfirm: 'OK',\n    filterReset: 'Reset',\n    filterEmptyText: 'No filters',\n    filterCheckall: 'Select all items',\n    filterSearchPlaceholder: 'Search in filters',\n    emptyText: 'No data',\n    selectAll: 'Select current page',\n    selectInvert: 'Invert current page',\n    selectNone: 'Clear all data',\n    selectionAll: 'Select all data',\n    sortTitle: 'Sort',\n    expand: 'Expand row',\n    collapse: 'Collapse row',\n    triggerDesc: 'Click to sort descending',\n    triggerAsc: 'Click to sort ascending',\n    cancelSort: 'Click to cancel sorting',\n  },\n  Modal: {\n    okText: '确认',\n    cancelText: '取消',\n    justOkText: '确认',\n  },\n  Popconfirm: {\n    okText: 'OK',\n    cancelText: 'Cancel',\n  },\n  Transfer: {\n    titles: ['', ''],\n    searchPlaceholder: 'Search here',\n    itemUnit: 'item',\n    itemsUnit: 'items',\n    remove: 'Remove',\n    selectCurrent: 'Select current page',\n    removeCurrent: 'Remove current page',\n    selectAll: 'Select all data',\n    removeAll: 'Remove all data',\n    selectInvert: 'Invert current page',\n  },\n  Upload: {\n    uploading: 'Uploading...',\n    removeFile: 'Remove file',\n    uploadError: 'Upload error',\n    previewFile: 'Preview file',\n    downloadFile: 'Download file',\n  },\n  Empty: {\n    description: 'No Data',\n  },\n  Icon: {\n    icon: 'icon',\n  },\n  Text: {\n    edit: 'Edit',\n    copy: 'Copy',\n    copied: 'Copied',\n    expand: 'Expand',\n  },\n  PageHeader: {\n    back: 'Back',\n  },\n  Form: {\n    optional: '(optional)',\n    defaultValidateMessages: {\n      default: 'Field validation error for ${label}',\n      required: 'Please enter ${label}',\n      enum: '${label} must be one of [${enum}]',\n      whitespace: '${label} cannot be a blank character',\n      date: {\n        format: '${label} date format is invalid',\n        parse: '${label} cannot be converted to a date',\n        invalid: '${label} is an invalid date',\n      },\n      types: {\n        string: typeTemplate,\n        method: typeTemplate,\n        array: typeTemplate,\n        object: typeTemplate,\n        number: typeTemplate,\n        date: typeTemplate,\n        boolean: typeTemplate,\n        integer: typeTemplate,\n        float: typeTemplate,\n        regexp: typeTemplate,\n        email: typeTemplate,\n        url: typeTemplate,\n        hex: typeTemplate,\n      },\n      string: {\n        len: '${label} must be ${len} characters',\n        min: '${label} must be at least ${min} characters',\n        max: '${label} must be up to ${max} characters',\n        range: '${label} must be between ${min}-${max} characters',\n      },\n      number: {\n        len: '${label} must be equal to ${len}',\n        min: '${label} must be minimum ${min}',\n        max: '${label} must be maximum ${max}',\n        range: '${label} must be between ${min}-${max}',\n      },\n      array: {\n        len: 'Must be ${len} ${label}',\n        min: 'At least ${min} ${label}',\n        max: 'At most ${max} ${label}',\n        range: 'The amount of ${label} must be between ${min}-${max}',\n      },\n      pattern: {\n        mismatch: '${label} does not match the pattern ${pattern}',\n      },\n    },\n  },\n  Image: {\n    preview: 'Preview',\n  },\n};\n\nexport default localeValues;\n","import defaultLocale from '../../../locale/default'\n\nexport interface ModalLocale {\n  okText: string;\n  cancelText: string;\n  justOkText: string;\n}\n\nlet runtimeLocale = {\n  ...defaultLocale,\n};\n\nexport function changeConfirmLocale(newLocale?: ModalLocale) {\n  if (newLocale) {\n    runtimeLocale = {\n      ...runtimeLocale,\n      ...newLocale,\n    };\n  } else {\n    runtimeLocale = {\n      ...defaultLocale,\n    };\n  }\n}\n\nexport function getConfirmLocale() {\n  return runtimeLocale;\n}\n","import { FunctionalComponent } from 'vue'\nimport type { ModalFuncProps } from './type'\nimport ScModal from './ScModal.vue'\nimport { buildUUID } from '../../../utils'\nimport { getConfirmLocale } from './locale'\n\n// @ts-ignore\nfunction renderSomeContent(_name, someContent) {\n  if (typeof someContent === 'function') {\n    return someContent();\n  }\n  return someContent;\n}\n\n\nconst ConfirmDialog:FunctionalComponent<ModalFuncProps> = props => {\n\n  const {\n    icon,\n    footerAlign = 'center',\n    onOk,\n    onCancel,\n    closeFunc,\n    closable = false,\n    zIndex,\n    // afterClose,\n    visible,\n    keyboard,\n    centered,\n    getContainer,\n    maskStyle,\n    okButtonProps,\n    cancelButtonProps,\n    showCancelBtn,\n    showOkBtn,\n    tooltipDes,\n    footer\n  } = props\n\n  const okType = props.okType || 'primary';\n  const prefixCls = props.prefixCls || 'ant-modal';\n  const contentPrefixCls = `${prefixCls}-confirm`;\n  const width = props.width || 416;\n  const style = props.style || {};\n  const mask = props.mask === undefined ? true : props.mask;\n  const uuid = 'scModal' + buildUUID()\n  const classString = [\n    'scModal-confirm',\n    uuid,\n    contentPrefixCls,\n    `${contentPrefixCls}-${props.type}`,\n    `${prefixCls}-${props.type}`,\n    props.class,\n  ].join(' ')\n\n  // 默认为 false，保持旧版默认行为\n  const maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n\n  // const { antLocale } = useLocale()\n  const runtimeLocale = getConfirmLocale()\n  const okText = props.okText || runtimeLocale?.Modal?.okText || '确认';\n  const cancelText = props.cancelText || runtimeLocale?.Modal.cancelText || '取消';\n  const autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n  const transitionName = props.transitionName || 'zoom';\n  const maskTransitionName = props.maskTransitionName || 'fade';\n  if (autoFocusButton) {\n    const timer = setTimeout(() => {\n      const docCur = document.querySelectorAll(`.${uuid} .scModal-footer .ant-btn`)\n      if (autoFocusButton === 'ok') {\n        docCur?.forEach(item => {\n          // @ts-ignore\n          item.className.includes('scModal-footer__ok') ? item?.focus() : ''\n        })\n      } else if (autoFocusButton === 'cancel') {\n        docCur?.forEach(item => {\n          // @ts-ignore\n          item.className.includes('scModal-footer__cancel') ? item?.focus() : ''\n        })\n      }\n      clearTimeout(timer)\n    }, 200)\n  }\n\n  return (\n    <ScModal\n      prefixCls={prefixCls}\n      wrapClassName={classString}\n      onCancel={onCancel}\n      closeFunc={closeFunc}\n      onOk={onOk}\n      visible={visible}\n      title={null}\n      transitionName={transitionName}\n      maskTransitionName={maskTransitionName}\n      mask={mask}\n      okText={okText}\n      cancelText={cancelText}\n      maskClosable={maskClosable}\n      maskStyle={maskStyle}\n      style={style}\n      width={width}\n      zIndex={zIndex}\n      showCancelBtn={showCancelBtn}\n      showOkBtn={showOkBtn}\n      tooltipDes={tooltipDes}\n      // afterClose={afterClose}\n      keyboard={keyboard}\n      isConfirm={true}\n      centered={centered}\n      getContainer={getContainer}\n      closable={closable}\n      okButtonProps={Object.assign(okButtonProps || {}, { type: okType })}\n      cancelButtonProps={cancelButtonProps}\n      footerAlign={footerAlign}\n      footer={footer}\n    >\n      <div class={`${contentPrefixCls}-body-wrapper`}>\n        <div class={`${contentPrefixCls}-body`}>\n          {renderSomeContent('icon', icon)}\n          {props.title === undefined ? null : (\n            <span class={`${contentPrefixCls}-title`}>\n              {renderSomeContent('title', props.title)}\n            </span>\n          )}\n          <div class={`${contentPrefixCls}-content`}>\n            {renderSomeContent('content', props.content)}\n          </div>\n        </div>\n      </div>\n    </ScModal>\n  )\n}\n\nexport default ConfirmDialog\n\n","function omit(obj, fields) {\n  // eslint-disable-next-line prefer-object-spread\n  var shallowCopy = Object.assign({}, obj);\n\n  for (var i = 0; i < fields.length; i += 1) {\n    var key = fields[i];\n    delete shallowCopy[key];\n  }\n\n  return shallowCopy;\n}\n\nexport default omit;","import { createVNode, render as vueRender } from 'vue'\nimport ConfirmDialog from './ConfirmDialog'\nimport type { ModalFuncProps } from './type'\nimport { destroyFns } from '../index'\n\n\nimport Omit from 'omit.js'\n\nconst confirm = (config: ModalFuncProps) => {\n  \n  const div = document.createElement('div')\n  document.body.appendChild(div)\n  let currentConfig = {\n    ...Omit(config, ['parentContext', 'appContext']),\n    close,\n    visible: true,\n  } as any;\n\n  let confirmDialogInstance:any = null\n  function close(this: typeof close, ...args: any[]) {\n    currentConfig = {\n      ...currentConfig,\n      visible: false,\n      afterClose: destroy.bind(this, ...args),\n    };\n    update(currentConfig)\n  }\n  function update(newConfig: ModalFuncProps) {\n    currentConfig = {\n      ...currentConfig,\n      ...newConfig,\n    };\n    if (confirmDialogInstance) {\n      Object.assign(confirmDialogInstance.component.props, currentConfig);\n      confirmDialogInstance.component.update()\n    }\n  }\n  function destroy(...args: any[]) {\n    if (confirmDialogInstance && div.parentNode) {\n      Object.assign(confirmDialogInstance.component.props, { vIf: false }); // hack destroy\n      confirmDialogInstance.component.update()\n      confirmDialogInstance = null\n      div.parentNode.removeChild(div)\n    }\n    const triggerCancel = args.some(param => param && param.triggerCancel);\n    if (config.onCancel && triggerCancel) {\n      config.onCancel(...args)\n    }\n    for (let i = 0; i < destroyFns.length; i++) {\n      const fn = destroyFns[i]\n      if (fn === close) {\n        destroyFns.splice(i, 1)\n        break;\n      }\n    }\n  }\n  const Wrapper = (p:any) => {\n    \n    return p.vIf ? <ConfirmDialog {...p}></ConfirmDialog> : null\n  };\n  function render(props: ModalFuncProps) {\n    const vm = createVNode(Wrapper, { ...props, vIf: true });\n    vm.appContext = config.parentContext || config.appContext || vm.appContext;\n    vueRender(vm, div);\n    return vm;\n  }\n\n  confirmDialogInstance = render(currentConfig);\n  destroyFns.push(close);\n  return {\n    destroy: close,\n    update,\n  };\n};\n\nexport default confirm;\n","import {\n  InjectionKey,\n  provide,\n  inject,\n  reactive,\n  readonly as defineReadonly,\n  // defineComponent,\n  UnwrapRef,\n} from 'vue';\n\nexport interface CreateContextOptions {\n  readonly?: boolean;\n  createProvider?: boolean;\n  native?: boolean;\n}\n\ntype ShallowUnwrap<T> = {\n  [P in keyof T]: UnwrapRef<T[P]>;\n};\n\nexport function createContext<T>(\n  context: any,\n  key: InjectionKey<T> = Symbol(),\n  options: CreateContextOptions = {},\n) {\n  const { readonly = true, createProvider = false, native = false } = options;\n\n  const state = reactive(context);\n  const provideData = readonly ? defineReadonly(state) : state;\n  !createProvider && provide(key, native ? context : provideData);\n\n  return {\n    state,\n  };\n}\n\nexport function useContext<T>(key: InjectionKey<T>, native?: boolean): T;\n\nexport function useContext<T>(\n  key: InjectionKey<T> = Symbol(),\n  defaultValue?: any,\n): ShallowUnwrap<T> {\n  return inject(key, defaultValue || {});\n}\n","import { InjectionKey } from 'vue';\nimport { createContext, useContext } from '../../../hooks/core/useContext';\n\nexport interface ModalContextProps {\n  redoModalHeight: () => void;\n}\n\nconst key: InjectionKey<ModalContextProps> = Symbol();\n\nexport function createModalContext(context: ModalContextProps) {\n  return createContext<ModalContextProps>(context, key);\n}\n\nexport function useModalContext() {\n  return useContext<ModalContextProps>(key);\n}\n","import type {\n  UseModalReturnType,\n  ModalMethods,\n  ModalProps,\n  ReturnMethods,\n  UseModalInnerReturnType,\n} from '../component/type';\nimport {\n  ref,\n  onUnmounted,\n  unref,\n  getCurrentInstance,\n  reactive,\n  watchEffect,\n  nextTick,\n  toRaw,\n} from 'vue';\nimport { isFunction } from '../../../utils/is';\nimport lodash from 'lodash';\n// import isEqual from 'lodash/isEqual';\nimport { tryOnUnmounted } from '@vueuse/core';\nimport { error } from '../../../utils/log';\nimport { computed } from 'vue';\n\nconst { isEqual } = lodash\nconst dataTransfer = reactive<any>({});\n\nconst visibleData = reactive<{ [key: number]: boolean }>({});\n\n/**\n * @description:  适用于 独立modal 和 外部 调用\n */\nexport function useModal(): UseModalReturnType {\n  const modal = ref<Nullable<ModalMethods>>(null);\n  const loaded = ref<Nullable<boolean>>(false);\n  const uid = ref<string>('');\n\n  function register(modalMethod: ModalMethods, uuid: string) {\n    if (!getCurrentInstance()) {\n      throw new Error('useModal() can only be used inside setup() or functional components!');\n    }\n    uid.value = uuid;\n    onUnmounted(() => {\n      modal.value = null;\n      loaded.value = false;\n      dataTransfer[unref(uid)] = null;\n    });\n    if (unref(loaded) && modalMethod === unref(modal)) return;\n\n    modal.value = modalMethod;\n    loaded.value = true;\n    modalMethod.emitVisible = (visible: boolean, uid: number) => {\n      visibleData[uid] = visible;\n    };\n  }\n\n  const getInstance = () => {\n    const instance = unref(modal);\n    if (!instance) {\n      error('useModal instance is undefined!');\n    }\n    return instance;\n  };\n\n  const methods: ReturnMethods = {\n    setModalProps: (props: Partial<ModalProps>): void => {\n      getInstance()?.setModalProps(props);\n    },\n\n    getVisible: computed((): boolean => {\n      return visibleData[~~unref(uid)];\n    }),\n\n    redoModalHeight: () => {\n      getInstance()?.redoModalHeight?.();\n    },\n\n    openModal: <T = any>(visible = true, data?: T, openOnSet = true): void => {\n      getInstance()?.setModalProps({\n        visible: visible,\n      });\n\n      if (!data) return;\n      const id = unref(uid);\n      if (openOnSet) {\n        dataTransfer[id] = null;\n        dataTransfer[id] = toRaw(data);\n        return;\n      }\n      const equal = isEqual(toRaw(dataTransfer[id]), toRaw(data));\n      if (!equal) {\n        dataTransfer[id] = toRaw(data);\n      }\n    },\n\n    closeModal: () => {\n      getInstance()?.setModalProps({ visible: false });\n    },\n  };\n  return [register, methods];\n}\n\nexport const useModalInner = (callbackFn?: Fn): UseModalInnerReturnType => {\n  const modalInstanceRef = ref<Nullable<ModalMethods>>(null);\n  const currentInstance = getCurrentInstance();\n  const uidRef = ref<string>('');\n\n  const getInstance = () => {\n    const instance = unref(modalInstanceRef);\n    if (!instance) {\n      error('useModalInner instance is undefined!');\n    }\n    return instance;\n  };\n\n  const register = (modalInstance: ModalMethods, uuid: string) => {\n    tryOnUnmounted(() => {\n      modalInstanceRef.value = null;\n    });\n    uidRef.value = uuid;\n    modalInstanceRef.value = modalInstance;\n    currentInstance?.emit('register', modalInstance, uuid);\n  };\n\n  watchEffect(() => {\n    const data = dataTransfer[unref(uidRef)];\n    if (!data) return;\n    if (!callbackFn || !isFunction(callbackFn)) return;\n    nextTick(() => {\n      callbackFn(data);\n    });\n  });\n\n  return [\n    register,\n    {\n      changeLoading: (loading = true) => {\n        getInstance()?.setModalProps({ loading });\n      },\n      getVisible: computed((): boolean => {\n        return visibleData[~~unref(uidRef)];\n      }),\n\n      changeOkLoading: (loading = true) => {\n        getInstance()?.setModalProps({ confirmLoading: loading });\n      },\n\n      closeModal: () => {\n        getInstance()?.setModalProps({ visible: false });\n      },\n\n      setModalProps: (props: Partial<ModalProps>) => {\n        getInstance()?.setModalProps(props);\n      },\n\n      redoModalHeight: () => {\n        const callRedo = getInstance()?.redoModalHeight;\n        callRedo && callRedo();\n      },\n    },\n  ];\n};\n","import {\n  InfoCircleFilled,\n  CheckCircleFilled,\n  ExclamationCircleFilled,\n  CloseCircleFilled\n} from '@ant-design/icons-vue';\n\nimport { withInstall } from \"../../utils\"\nimport { ModalFuncProps } from \"./component/type\"\nimport scModal from './component/ScModal.vue'\nimport modalConfirm from './component/Confirm'\nimport { changeConfirmLocale } from './component/locale'\n\nconst info = function (props: ModalFuncProps) {\n  const config = {\n    type: 'info',\n    icon: () => <InfoCircleFilled />,\n    okCancel: false,\n    ...props,\n  };\n  return modalConfirm(config);\n};\n\nconst success = function (props: ModalFuncProps) {\n  const config = {\n    type: 'success',\n    icon: () => <CheckCircleFilled />,\n    okCancel: false,\n    ...props,\n  };\n  return modalConfirm(config);\n};\n\nconst error = function (props: ModalFuncProps) {\n  const config = {\n    type: 'error',\n    icon: () => <CloseCircleFilled />,\n    okCancel: false,\n    ...props,\n  };\n  return modalConfirm(config);\n};\n\nconst warning = function (props: ModalFuncProps) {\n  const config = {\n    type: 'warning',\n    icon: () => <ExclamationCircleFilled />,\n    okCancel: false,\n    ...props,\n  };\n  return modalConfirm(config);\n};\nconst warn = warning;\n\nconst confirm = function confirmFn(props: ModalFuncProps) {\n  const { type, icon } = props\n  let newIcon = icon\n  if (!icon) {\n    switch (type) {\n      case 'info':\n        newIcon = () => <InfoCircleFilled />\n        break\n      case 'error':\n        newIcon = () => <CloseCircleFilled />\n        break\n      case 'success':\n        newIcon = () => <CheckCircleFilled />\n        break\n      case 'warning':\n        newIcon = () => <ExclamationCircleFilled />\n        break\n    }\n  }\n  const config = {\n    type: 'confirm',\n    okCancel: true,\n    icon: newIcon,\n    ...props,\n  };\n  return modalConfirm(config);\n};\n\nscModal.info = info;\nscModal.success = success;\nscModal.error = error;\nscModal.warning = warning;\nscModal.warn = warn;\nscModal.confirm = confirm;\nscModal.changeConfirmLocale = changeConfirmLocale\n\nscModal.destroyAll = function destroyAllFn() {\n  while (destroyFns.length) {\n    const close = destroyFns.pop();\n    if (close) {\n      close();\n    }\n  }\n};\n\nexport const destroyFns:Array<any> = []\n\nexport const ScModal = withInstall(scModal)\nexport { useModalContext } from './hooks/useModalContext'\nexport { useModal, useModalInner } from './hooks/useModal'\n\nexport * from './component/type'\nexport { changeConfirmLocale }","import { VNodeChild, PropType } from 'vue'\nexport const props = () => ({\n  value: [Number, String, Array],\n  disabled: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  tooltip: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  tooltipAlign: {\n    type: String,\n    default () {\n      return 'right'\n    }\n  },\n  infoTooltip: {\n    type: String\n  },\n  isAddTooltipScrollHeight: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  widthSize: {\n    type: String,\n    validator: (v:string) => ['l', 'xs', 'x', 'md', 'xl'].includes(v)\n  },\n  // 'checkbox'\n  optionMode: String,\n  prefixIcon: Object as PropType<VNodeChild>,\n  onChange: [Function, Array]\n})\n\nexport enum SizePx {\n  'small' = 24,\n  'default' = 32,\n  'large' = 40\n}","export default (element: HTMLElement | SVGGraphicsElement): boolean => {\n  if (!element) {\n    return false;\n  }\n\n  if ((element as HTMLElement).offsetParent) {\n    return true;\n  }\n\n  if ((element as SVGGraphicsElement).getBBox) {\n    const box = (element as SVGGraphicsElement).getBBox();\n    if (box.width || box.height) {\n      return true;\n    }\n  }\n\n  if ((element as HTMLElement).getBoundingClientRect) {\n    const box = (element as HTMLElement).getBoundingClientRect();\n    if (box.width || box.height) {\n      return true;\n    }\n  }\n\n  return false;\n};\n","let raf = (callback: FrameRequestCallback) => +setTimeout(callback, 16);\nlet caf = (num: number) => clearTimeout(num);\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n  raf = (callback: FrameRequestCallback) => window.requestAnimationFrame(callback);\n  caf = (handle: number) => window.cancelAnimationFrame(handle);\n}\n\nlet rafUUID = 0;\nconst rafIds = new Map<number, number>();\n\nfunction cleanup(id: number) {\n  rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback: () => void, times = 1): number {\n  rafUUID += 1;\n  const id = rafUUID;\n\n  function callRef(leftTimes: number) {\n    if (leftTimes === 0) {\n      // Clean up\n      cleanup(id);\n\n      // Trigger\n      callback();\n    } else {\n      // Next raf\n      const realId = raf(() => {\n        callRef(leftTimes - 1);\n      });\n\n      // Bind real raf id\n      rafIds.set(id, realId);\n    }\n  }\n\n  callRef(times);\n\n  return id;\n}\n\nwrapperRaf.cancel = (id: number) => {\n  const realId = rafIds.get(id);\n  cleanup(realId);\n  return caf(realId);\n};\n","import isVisible from \"./isVisible\";\nimport raf from '../raf'\n/** Trigger when element is visible in view */\nexport function waitElementReady(element: HTMLElement, callback: () => void): () => void {\n  let id: number;\n\n  function tryOrNextFrame() {\n    if (isVisible(element)) {\n      callback();\n    } else {\n      id = raf(() => {\n        tryOrNextFrame();\n      });\n    }\n  }\n\n  tryOrNextFrame();\n\n  return () => {\n    raf.cancel(id);\n  };\n}","<template>\n  <div :class=\"[\n      baseClass,\n      uuid,\n      vBind.widthSize ? baseClass + '-' + vBind.widthSize : '',\n      newProps.disabled ? 'is-disabled' : '',\n      $attrs.class,\n    ]\" \n    :style=\"{ '--preWidth': prefixWidth || '7px', ...$attrs.style }\n  \">\n    <div :class=\"[\n      isPrefixIcon ? 'is-prefix' : ''\n    ]\">\n      <span :class=\"[baseClass + '-prefix']\" v-if=\"isPrefixIcon\">\n        <slot name=\"prefixIcon\"></slot>\n      </span>\n      <Select \n        v-model:value=\"initValue\"\n        v-bind=\"vBind\" \n        :class=\"[isPrefixIcon ? 'is-prefix' : '', newProps.infoTooltip ? 'is-info' : '']\" \n        :disabled=\"newProps.disabled\" \n        :dropdownClassName=\"dropdownClassName\"\n        @dropdownVisibleChange=\"handleDropdownVisibleChange\">\n        <template #[item]=\"data\"\n          v-for=\"item in Object.keys($slots).filter(item => !['clearIcon', 'suffixIcon'].includes(item))\" :key=\"item\">\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </template>\n\n        <template #suffixIcon>\n          <i v-if=\"!isSuffixIcon && !newProps.infoTooltip\" class=\"sc-ui sc-you\" />\n          <span :class=\"[newProps.infoTooltip ? 'is-info--icon' : '']\" v-else-if=\"newProps.infoTooltip\">\n            <i class=\"sc-ui sc-you\" />\n            <Tooltip\n            >\n              <template #title>\n                {{ newProps.infoTooltip }}\n              </template>\n              <i class=\"sc-ui sc-question-circle\"></i>\n            </Tooltip>\n            <slot slot=\"suffixIcon\" />\n          </span>\n          <slot v-else slot=\"suffixIcon\" />\n        </template>\n        <template #clearIcon>\n          <CloseCircleFilled class=\"clearSelect\" v-if=\"!isClearIcon\" />\n          <span v-else class=\"clearSelect\">\n            <slot slot=\"clearIcon\">\n            </slot>\n          </span>\n        </template>\n      </Select>\n      <!-- <span :class=\"[baseClass + '-suffix']\" v-if=\"newProps.infoTooltip\">\n        <Tooltip>\n          <template #title>\n            {{ newProps.infoTooltip }}\n          </template>\n          <QuestionCircleOutlined />\n        </Tooltip>\n      </span> -->\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\">\n\nimport { computed, defineComponent, unref, onMounted, onBeforeUnmount, ref, watch, nextTick } from 'vue'\nimport { Select, Tooltip, SelectOption } from 'ant-design-vue'\nimport { CloseCircleFilled, QuestionCircleOutlined } from '@ant-design/icons-vue'\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\n\nimport { basePrefixCls } from '../../../constant'\nimport { buildUUID, pxToRem } from '../../../utils'\nimport { findParentDom } from '../../../utils/domHelper'\nimport { props } from './type'\nimport { waitElementReady } from '../../../utils/dom/waitElementReady'\n\nconst { cloneDeep } = lodash\n\nexport default defineComponent({\n  name: 'ScSelect',\n  inheritAttrs: false,\n  props: props(),\n  emits: ['change', 'update:value', 'allowClear', 'dropdownVisibleChange'],\n  components: {\n    Select,\n    SelectOption,\n    CloseCircleFilled,\n    QuestionCircleOutlined,\n    Tooltip\n  },\n  setup(props, { emit, slots, attrs, expose }) {\n    const baseClass = basePrefixCls + 'Select'\n\n    const prefixWidth = ref()\n    const tooltipDom = ref()\n\n    const divDom = document.createElement(\"div\")\n    divDom.style.position = 'absolute'\n    divDom.style.top = '0px'\n    divDom.style.left = '0px'\n    divDom.style.width = '100%'\n    tooltipDom.value = divDom\n\n    const initValue = computed({\n      get: () => {\n        return props.optionMode === 'checkbox' ? props.value === undefined ? [] : props.value : props.value\n      },\n      set: (val) => {\n        emit('update:value', val)\n        emit('change', val)\n      }\n    })\n    const newProps = computed(() => {\n      return {\n        ...props\n      }\n    })\n\n    const uuid = 'sc' + buildUUID()\n    const vBind = computed(() => {\n      let newOptions = cloneDeep(attrs.options)\n      // console.log('newOptions: ', newOptions);\n      return {\n        ...unref(newProps),\n        ...attrs,\n        options: newOptions,\n        dropdownStyle: {\n          ...(attrs.dropdownStyle || {}),\n        },\n        onChange: undefined,\n        class: undefined,\n        style: undefined\n      }\n    })\n    const dropdownClassName = computed(() => {\n      const dropdownClass = ['dropdown ' + uuid, 'scSelectDropdown', 'selectDropdown', props.tooltip ? 'is-tooltip' : '']\n      if (attrs.size) {\n        dropdownClass.push('dropdown-' + attrs.size)\n      }\n      if (attrs.dropdownClassName) {\n        dropdownClass.push(attrs.dropdownClassName)\n      }\n      if (props.optionMode === 'checkbox') {\n        dropdownClass.push('scDropdown-checkbox')\n      }\n      return dropdownClass.join(' ')\n    })\n\n    const isSuffixIcon = computed(() => {\n      return Object.keys(slots).includes('suffixIcon')\n    })\n\n    const isPrefixIcon = computed(() => {\n      return Object.keys(slots).includes('prefixIcon')\n    })\n\n    const isClearIcon = computed(() => {\n      return Object.keys(slots).includes('clearIcon')\n    })\n\n    const clearCall = (event: Event) => {\n      const isParent = findParentDom(event.target, 5, (dom) => { return String(dom.className).includes('clearSelect') ? dom : false })\n      if (isParent) {\n        emit('allowClear', initValue.value)\n      }\n    }\n\n    const handleDropdownVisibleChange = (val: boolean) => {\n      if (val) {\n        nextTick(() => {\n          const { tooltip } = props\n          const dropdownDom = document.querySelector(`.${uuid}.scSelectDropdown`) as HTMLElement\n          waitElementReady(dropdownDom, () => {\n            if (tooltip) {\n              showTooltip()\n            }\n            nextTick(() => {\n              const virtualListDom = document.querySelector(`.${uuid} .rc-virtual-list-holder div`)\n              if (virtualListDom?.style?.height) {\n                virtualListDom.style.marginRight = '4px'\n              }\n            })\n          })\n\n        })\n      } else {\n        const dropdownDom = document.querySelector(`.${uuid}.scSelectDropdown`) as HTMLElement\n        dropdownDom && dropdownDom?.removeEventListener('mouseover', mouseoverEvent)\n      }\n      emit('dropdownVisibleChange')\n    }\n\n    const computePrefixWidth = () => {\n      const selectDom = document.querySelector(`.${uuid} .ant-select-selector`) as HTMLElement\n      selectDom && (selectDom.style.display = 'none')\n      const prefixDom = document.querySelector(`.${uuid} .scSelect-prefix`) as HTMLElement\n      prefixWidth.value = pxToRem(String((prefixDom && (prefixDom.offsetWidth || prefixDom.clientWidth || prefixDom.scrollWidth) + 24) || 0))\n      selectDom && (selectDom.style.paddingLeft = prefixWidth.value)\n      selectDom && (selectDom.style.display = 'inline-block')\n    }\n\n    const mouseoverEvent = (event: any) => {\n      if (event.target.className.includes('ant-select-item-option')) {\n        event.target.title = ''\n      }\n      if (!event.target.className.includes('ant-select-item-option-content')) {\n        return false\n      }\n      const rect = event?.target?.getBoundingClientRect()\n      const { isAddTooltipScrollHeight, tooltipAlign } = props\n      const bodyScrollLeft = isAddTooltipScrollHeight ? document.documentElement.scrollLeft : 0\n      const bodyScrollTop = isAddTooltipScrollHeight ? document.documentElement.scrollTop : 0\n      const newPDom = document.createElement(\"div\")\n      document.body.appendChild(newPDom)\n      newPDom.className = 'ant-select-item-option-content'\n      newPDom.style.display = 'inline-block'\n      newPDom.style.position = 'absolute'\n      newPDom.style.height = '0'\n      newPDom.innerHTML = event?.target?.innerHTML\n      const clientWidth = event?.target?.clientWidth\n      const scrollWidth = (newPDom?.clientWidth + 16) ||  event?.target?.scrollWidth || event?.target?.clientWidth\n      if (scrollWidth >= clientWidth) {\n        const posLeft = tooltipAlign === 'left' ? rect.left - 252 : rect.left + rect.width + bodyScrollLeft + 10\n        const posTop = rect.top + bodyScrollTop\n        // const posTop = rect.top + bodyScrollTop + (rect.height / 2) - (contentHeight / 2)\n        const innerText = event?.target.innerText\n        const tooltipHTML = `\n            <div style=>\n              <!---->\n              <div class=\"ant-tooltip ${tooltipAlign === 'left' ? 'ant-tooltip-placement-left' : 'ant-tooltip-placement-right'} scSelect-tooltip\" style=\"left: ${posLeft}px;top: ${posTop}px; /* display: none; */\">\n                <div class=\"ant-tooltip-content\">\n                  <div class=\"ant-tooltip-arrow\">\n                    <span class=\"ant-tooltip-arrow-content\"></span>\n                  </div>\n                  <div class=\"ant-tooltip-inner\" role=\"tooltip\">\n                    ${innerText}\n                  </div>\n                </div>\n              </div>\n            </div>\n          `\n        divDom.innerHTML = tooltipHTML\n      } else {\n        divDom.innerHTML = ``\n      }\n      document.body.removeChild(newPDom)\n    }\n\n    const showTooltip = () => {\n      const dropdownDom = document.querySelector(`.${uuid}.scSelectDropdown`)\n      dropdownDom?.addEventListener('mouseover', mouseoverEvent)\n      dropdownDom?.addEventListener('mouseout', () => {\n        divDom.innerHTML = ``\n      })\n    }\n\n    watch(() => props.tooltip, (val: boolean) => {\n      const isInset = document.body.contains(tooltipDom.value)\n      if (val) {\n        if (!isInset) {\n          document.body.appendChild(tooltipDom.value)\n        }\n      } else {\n        isInset && document.body.removeChild(tooltipDom.value)\n      }\n\n    }, {\n      immediate: true\n    })\n\n    onMounted(() => {\n      const dom = document.querySelector(`.${uuid}`) as HTMLElement\n      dom && dom.addEventListener('mousedown', clearCall)\n\n      const prefixDom = document.querySelector(`.${uuid} .scSelect-prefix`) as HTMLElement\n      waitElementReady(prefixDom, () => {\n        Object.keys(slots).includes('prefixIcon') && computePrefixWidth()\n      })\n    })\n\n    onBeforeUnmount(() => {\n      const dom = document.querySelector(`.${uuid}`) as HTMLElement\n      dom && dom.removeEventListener('mousedown', clearCall)\n    })\n\n    expose({\n      computePrefixWidth\n    })\n\n    return {\n      uuid,\n      baseClass,\n      newProps,\n      initValue,\n      isSuffixIcon,\n      isPrefixIcon,\n      isClearIcon,\n      dropdownClassName,\n      vBind,\n      prefixWidth,\n      handleDropdownVisibleChange\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scSelect from './component/ScSelect.vue'\nimport { props } from './component/type'\n\nexport const ScSelect = withInstall(scSelect)\nexport declare type SelectProps = Partial<ExtractPropTypes<typeof props>> ","import { PropType, VNodeChild } from \"vue\"\nexport interface FilterItem {\n  label: string,\n  value?: string,\n  describe?: string,\n  isShow?: boolean,\n  isDisabled?: boolean,\n  key?: string,\n  loading?: boolean,\n  action?: string | ((args: any) => void),\n  tooltip?: boolean,\n  tooltipDes?: string,\n  children?: Array<FilterItem>,\n  [key:string]: any\n}\n\nexport const scFilterProps = () => ({\n  filterList: Object as PropType<Array<FilterItem>>,\n  overlayClassName: String,\n  column: Object as PropType<Column>,\n  filterSelected: Array as PropType<FilterItem[]>,\n  dropdownProps: Object,\n  filterLoading: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  }\n})\n\nexport interface ColumnModalItem {\n  label?: string,\n  value?: string,\n  key?: string,\n  disabled?: boolean,\n  checked?: boolean,\n}\n\nexport const list = [1, 2, 3, 4, 5, 6].map((item:number) => {\n  return {\n    label: item.toString().repeat(4),\n    value: item.toString().repeat(4),\n    key: item.toString().repeat(4),\n    disabled: item%2 === 1,\n    checked: true,\n  }\n})\n\nexport interface ColumnModalType {\n  visible?: boolean,\n  columnlist?: Array<ColumnModalItem>\n}\n\nexport interface ColumnProvide {\n  list: Array<ColumnModalItem>,\n  keys: Array<string>,\n  checkedList: Array<ColumnModalItem>\n}\n\nexport const ColumnModal = () => ({\n  visible: {\n    type: Boolean\n  },\n  columnList: {\n    type: Object as PropType<Array<ColumnModalItem>>,\n    default () {\n      return list\n    }\n  }\n})\n\nexport interface ColumnFilterItem {\n  text?: string;\n  value?: string;\n  children?: any;\n}\n\n\n\nexport declare type SortOrder = 'ascend' | 'descend';\n\nexport interface RecordProps<T> {\n  text: any;\n  record: T;\n  index: number;\n}\n\nexport interface FilterDropdownProps {\n  prefixCls?: string;\n  setSelectedKeys?: (selectedKeys: string[]) => void;\n  selectedKeys?: string[];\n  confirm?: () => void;\n  clearFilters?: () => void;\n  filters?: ColumnFilterItem[];\n  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n  visible?: boolean;\n}\n\nexport declare type CustomRenderFunction<T> = (record: RecordProps<T>) => VNodeChild | JSX.Element;\n\nexport interface Column {\n  enWidth?: string,\n  filterLoading?: boolean,\n  label?: string,\n  value?: [string, number],\n  disabled?: boolean,\n  checked?: boolean,\n  // 是否显示在自定义列中\n  notShowFilter?: boolean,\n  default?: boolean,\n  filterList?: Array<FilterItem>,\n  filterTag?: boolean,\n  filterSelected?: Array<FilterItem>,\n  flag?: string,\n  handle?: (column: Column, record: any) => void | Promise<any>, \n  type?: {\n    componentName: string,\n    props: any\n  },\n  titleType?: {\n    componentName: string,\n    props: any\n  },\n  /**\n   * 内容如何对齐\n   * @default 'left'\n   * @type string\n   */\n  align?: 'left' | 'right' | 'center';\n\n  /**\n   * ellipsize cell content, not working with sorter and filters for now.\n   * tableLayout would be fixed when ellipsis is true.\n   * @default false\n   * @type boolean\n   */\n  ellipsis?: boolean;\n\n  /**\n   * 本列标题的跨度\n   * @type number\n   */\n  colSpan?: number;\n\n  /**\n   * 数据记录的显示字段，可以设置如a.b.c\n   * @type string\n   */\n  dataIndex?: string;\n\n  /**\n   * 默认过滤值\n   * @type string[]\n   */\n  defaultFilteredValue?: string[];\n\n  /**\n   * 已排序值的默认顺序:'ascend' ' descent ' null\n   * @type string\n   */\n  defaultSortOrder?: SortOrder;\n\n  /**\n   * 自定义过滤器覆盖\n   * @type any (slot)\n   */\n  filterDropdown?:\n    | VNodeChild\n    | JSX.Element\n    | ((props: FilterDropdownProps) => VNodeChild | JSX.Element);\n\n  /**\n   * filterDropdown是否可见\n   * @type boolean\n   */\n  filterDropdownVisible?: boolean;\n\n  /**\n   * 数据源是否被过滤\n   * @default false\n   * @type boolean\n   */\n  filtered?: boolean;\n\n  /**\n   * 控制过滤值，过滤图标将高亮显示\n   * @type string[]\n   */\n  filteredValue?: string[];\n\n  /**\n   * 自定义 过滤 图标\n   * @default false\n   * @type any\n   */\n  filterIcon?: boolean | VNodeChild | JSX.Element;\n\n  /**\n   * 是否可以选择多个过滤器\n   * @default true\n   * @type boolean\n   */\n  filterMultiple?: boolean;\n\n  /**\n   * 过滤器菜单配置\n   * @type object[]\n   */\n  filters?: ColumnFilterItem[];\n\n  /**\n   * 设置column为固定值:true(与left相同)“left”“right”\n   * @default false\n   * @type boolean | string\n   */\n  fixed?: boolean | 'left' | 'right';\n\n  /**\n   * 这个列的唯一键，如果你设置了唯一的dataIndex，你可以忽略这个属性\n   * @type string\n   */\n  key?: string;\n\n  /**\n   * 表格单元格的Render。返回值应该是一个VNode，或者colSpan/rowSpan配置的一个对象\n   * @type Function | ScopedSlot\n   */\n  customRender?: CustomRenderFunction<any> | VNodeChild | JSX.Element;\n\n  /**\n   * 局部排序的排序函数，参见数组。的compareFunction排序。如果你只需要排序按钮，设置为true\n   * @type boolean | Function\n   */\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  sorter?: boolean | Function;\n\n  /**\n   * 已排序值的顺序:'ascend' ' descent ' false\n   * @type boolean | string\n   */\n  sortOrder?: boolean | SortOrder;\n\n  /**\n   * 支持的排序方式 ,'ascend', 'descend'\n   * @default ['ascend', 'descend']\n   * @type string[]\n   */\n  sortDirections?: SortOrder[];\n\n  /**\n   * 标题\n   * @type any (string | slot)\n   */\n  title?: VNodeChild | JSX.Element;\n\n  width?: string | number;\n\n  /**\n   * Callback executed when the confirm filter button is clicked, Use as a filter event when using template or jsx\n   * @type Function\n   */\n  onFilter?: (value: any, record: any) => boolean;\n\n  /**\n   * Callback executed when filterDropdownVisible is changed, Use as a filterDropdownVisible event when using template or jsx\n   * @type Function\n   */\n  onFilterDropdownVisibleChange?: (visible: boolean) => void;\n\n  /**\n   * When using columns, you can setting this property to configure the properties that support the slot,\n   * such as slots: { filterIcon: 'XXX'}\n   * @type object\n   */\n  slots?: Recordable<string>;\n}","import { ref, watchEffect, unref } from \"vue\"\nimport { Column } from \"../types/column\"\n\nexport function setItem (columnList:Array<Column>, item:Column) {\n  return {...columnList, item}\n}\n\nexport function useChecked (columnList:Array<Column>) {\n  const list = ref()\n  const keys = ref([] as Array<string>)\n  const checkedList = ref([] as Array<Column>)\n  \n  // const setItemChecked = (colItem: Column) => {\n  //   if (!colItem.checked) {\n  //     //@ts-ignore\n  //     keys.value = [...unref(keys), colItem.key]\n  //     //@ts-ignore\n  //     checkedList.value = [...unref(checkedList), colItem]\n  //   } else {\n  //     keys.value = unref(keys).filter(_item => colItem.key !== _item)\n  //     checkedList.value = unref(checkedList).filter(_item => colItem.key !== _item.key)\n  //   }\n  //   list.value = unref(list).map((_item: Column) => {\n  //     if (colItem.key === _item.key) {\n  //       colItem.checked = !colItem.checked\n  //     }\n  //     return _item\n  //   })\n  //   console.log('keys: ', keys);\n  //   return { keys, list, checkedList }\n  // }\n\n  const setItemChecked = (curKeys:  Array<string>) => {\n    // if (!colItem.checked) {\n    //   //@ts-ignore\n    //   keys.value = [...unref(keys), colItem.key]\n    //   //@ts-ignore\n    //   checkedList.value = [...unref(checkedList), colItem]\n    // } else {\n    //   keys.value = unref(keys).filter(_item => colItem.key !== _item)\n    //   checkedList.value = unref(checkedList).filter(_item => colItem.key !== _item.key)\n    // }\n    // list.value = unref(list).map((_item: Column) => {\n    //   if (colItem.key === _item.key) {\n    //     colItem.checked = !colItem.checked\n    //   }\n    //   return _item\n    // })\n    keys.value = curKeys\n    const newCheckList = [] as Array<Column>\n    list.value = unref(list).map((_item: Column) => {\n      if (curKeys.includes(_item.key)) {\n        // _item.checked = !_item.checked\n        newCheckList.push(_item)\n      }\n      return _item\n    })\n    checkedList.value = newCheckList\n    // console.log('keys: ', keys);\n    return { keys, list, checkedList }\n  }\n\n\n  const getCheckedKeys = () => {\n    return unref(keys)\n    // return unref(keys)\n  }\n\n  const getCheckedItems = () => {\n    return unref(checkedList)\n  }\n\n  const getList = () => {\n    return unref(list)\n  }\n  const setList = (columnList:Array<Column>) => {\n    list.value = columnList\n  }\n\n  const initChecked = (columnList: Array<Column>) => {\n    const initKeys:string[] = []\n    const initChecked: Column[] = []\n    columnList?.forEach(item => {\n      if (item.checked) {\n        //@ts-ignore\n        initKeys.push(item.key)\n        initChecked.push(item)\n      }\n    })\n    keys.value = initKeys\n    checkedList.value = initChecked\n  }\n\n  watchEffect(() => {\n    list.value = (columnList || [])\n    if (columnList?.length) {\n      initChecked(columnList)\n    }\n  })\n\n  return {\n    setItemChecked,\n    getCheckedKeys,\n    getCheckedItems,\n    getList,\n    setList,\n    initChecked\n  }\n}","<template>\n  <div class=\"colBtn\">\n    <!-- <span\n      v-for=\"item in list\"\n      :key=\"item.key\"\n      :class=\"[\n        'colBtn-item',\n        item.disabled ? 'disabled' : '',\n        item.checked ? 'checked' : ''\n      ]\"\n      @click=\"handleCheck(item)\"\n    >\n      <span\n        v-if=\"item.checked\"\n        class=\"colBtn-item__checked\"\n      >\n        <CheckOutlined></CheckOutlined>\n      </span>\n      <span\n        class=\"colBtn-item-text\"\n      >\n        {{ item.label }}\n        <span class=\"colBtn-item-describe\" v-if=\"item.describe\">\n          {{ item.describe }}\n        </span>\n      </span>\n    </span> -->\n    <div class=\"column-checkboxAll\">\n      <Checkbox\n        v-model:checked=\"checkAll\"\n        @change=\"onCheckAllChange\"\n        :indeterminate=\"indeterminate\"\n        >\n        {{AllLang}}\n      </Checkbox>\n    </div>\n    <CheckboxGroup\n      v-model:value=\"checkedListKeys\"\n      :options=\"sourceList\"\n      @change=\"handleGroup\"\n    >\n    </CheckboxGroup>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { CheckOutlined } from '@ant-design/icons-vue'\nimport { defineComponent, ref, unref, computed, onMounted, watch } from 'vue'\nimport { CheckboxGroup, Checkbox } from 'ant-design-vue'\n\nimport { useChecked } from '../hooks/uesDialog'\n// @ts-ignore\nimport { Column, ColumnModal, FilterItem } from '../types/column'\nimport useLocale from '../../../hooks/useLocale'\n\nexport default defineComponent({\n  name: 'CheckoutBtn',\n  inheritAttrs: false,\n  components: {\n    CheckOutlined,\n    Checkbox,\n    CheckboxGroup\n  },\n  props: ColumnModal(),\n  setup (props, { emit }) {\n    const checkAll = ref(true)\n    const sourceList = ref(props.columnList as Array<Column | FilterItem>)\n    const checkedListKeys = ref([] as Array<string>)\n    const checkedItems = ref([] as Array<Column | FilterItem>)\n    const { setItemChecked, getCheckedKeys, getCheckedItems } = useChecked(props.columnList as Array<Column>)\n    checkedListKeys.value = getCheckedKeys()\n    checkedItems.value = getCheckedItems()\n\n    const { antLocale } = useLocale()\n    \n    const AllLang = (antLocale?.locale?.includes('en') || antLocale?.Locale?.includes('en')) ? 'All' : '全部'\n    watch(() => props.columnList, (val) => {\n      sourceList.value = val\n      const { getCheckedKeys, getCheckedItems } = useChecked(val as Array<Column>)\n      checkedListKeys.value = getCheckedKeys()\n      checkedItems.value = getCheckedItems()\n      emit('change', { keys: unref(checkedListKeys), checkedList: unref(checkedItems) })\n    })\n    \n    \n    emit('change', { keys: unref(checkedListKeys), checkedList: unref(checkedItems) })\n\n    const handleGroup = (item:any) => {\n      const { keys, list, checkedList } = setItemChecked(item)\n      emit('change', { keys: unref(keys), checkedList: unref(checkedList), list: unref(list) })\n      checkAll.value = checkedListKeys.value.length === sourceList.value.length\n      if (checkedListKeys.value.length === 0) {\n        checkAll.value = false\n      }\n    }\n\n    const indeterminate = computed(() => {\n      if (checkedListKeys.value.length === 0) {\n        return false\n      }\n      return checkedListKeys.value.length !== sourceList.value.length\n    })\n\n    onMounted(() => {\n      if (checkedListKeys.value.length === 0) {\n        checkAll.value = false\n      }\n    })\n\n    const onCheckAllChange = (e:any) => {\n      if (e.target.checked) {\n        checkedListKeys.value = Array.from(new Set([...checkedListKeys.value, ...unref(sourceList).filter(item => !item.disabled).map(item => { return item.key  })]))\n      } else {\n        checkedListKeys.value = unref(sourceList).filter(item => item.disabled).map(item => { return item.key  })\n      }\n      const { keys, list, checkedList } = setItemChecked(checkedListKeys.value)\n      emit('change', { keys: unref(keys), checkedList: unref(checkedList), list: unref(list) })\n    }\n    return {\n      AllLang,\n      checkAll,\n      checkedListKeys,\n      sourceList,\n      indeterminate,\n      // handleCheck,\n      handleGroup,\n      onCheckAllChange\n    }\n  }\n})\n\n</script>\n","<template>\n  <ScModal\n    v-model:visible=\"visible\"\n    :title=\"title\"\n    type=\"info\"\n    :infoDes=\"infoDesCompute\"\n    :width=\"840\"\n    maskClosable\n    :afterClose=\"handleCancel\"\n    @ok=\"handleOk\"\n    v-bind=\"getProps\"\n    destroyOnClose\n  >\n    <CheckoutBtnVue\n      :columnList=\"columnList\"\n      @change=\"handleCheck\"\n    >\n    </CheckoutBtnVue>\n  </ScModal>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, ref, unref } from 'vue'\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\n\nimport ScModal from '../../modal/component/ScModal.vue'\nimport { ColumnModal, Column } from '../types/column'\nimport CheckoutBtnVue from './CheckoutBtn.vue'\nimport enUSLocale from \"../../../locale/en\"\nimport zhCNLocale from \"../../../locale/zh\"\nimport useLocale from '../../../hooks/useLocale'\n\ninterface CheckParams {\n  keys: string[],\n  checkedList: Column[],\n  list: Column[],\n}\nconst { cloneDeep } = lodash\n\nexport default defineComponent({\n  name: 'ColumnDialog',\n  inheritAttrs: false,\n  components: {\n    ScModal,\n    CheckoutBtnVue\n  },\n  emits: ['cancelModal', 'okModal', 'update:visible'],\n  props: ColumnModal(),\n  setup (props, { emit, attrs }) {\n    const checkInfo = ref<string>('')\n    const { antLocale } = useLocale()\n    const curCookie = document.cookie\n    const isEn = (curCookie.includes('en-US'))\n    const curLocale = isEn ? { ...enUSLocale } : { ...zhCNLocale }\n    // const sourceList = ref()\n    const delItemKeys = ref()\n    const columnList = computed(() => {\n      const newColumnList = cloneDeep(props.columnList)\n      return newColumnList\n    })\n    const sourceList = computed(() => {\n      const newColumnList = cloneDeep(props.columnList)\n      return newColumnList\n    })\n    const curKeys = ref<string[]>()\n    const curCheckedList = ref<Column[]>()\n    const visible = computed({\n      get: () => {\n        return props.visible\n      },\n      set: (val) => {\n        emit('update:visible', val)\n      }\n      \n    })\n    const getProps = computed(() => {\n      return {\n        ...props,\n        ...attrs,\n        columnList: undefined\n      }\n    })\n    const handleCheck = ({ keys, checkedList }:CheckParams) => {\n      curKeys.value = keys\n      curCheckedList.value = checkedList\n      checkInfo.value = (checkedList || []).length + ''\n\n      delItemKeys.value = unref(sourceList).filter((item:Column) => { return item.checked }).map((item:string) => item.key || item.dataIndex).filter((item:string) => !keys.includes(item))\n    }\n    const handleCancel = () => {\n      emit('cancelModal', { keys: unref(curKeys), checkedList: unref(curCheckedList) })\n    }\n    const handleOk = () => {\n      emit('okModal',  { keys: unref(curKeys), checkedList: unref(curCheckedList), delItemKeys: unref(delItemKeys) })\n    }\n\n    const title = curLocale?.customListFields || '自定义列表字段'\n\n    const infoDesCompute = computed(() => {\n      return `${curLocale?.selectItem || '请选择您想显示的列表详细信息。您已勾选'}${checkInfo.value}${isEn ? '' : '个'}。`\n    })\n    return {\n      curLocale,\n      antLocale,\n      infoDesCompute,\n      title,\n      visible,\n      columnList,\n      checkInfo,\n      handleCheck,\n      handleCancel,\n      handleOk,\n      getProps\n    }\n  }\n})\n</script>\n","<template>\n  <div\n    :class=\"className\"\n  >\n    <div \n      v-if=\"isShowLeftFilter\" \n      :class=\"[className + '-left', isShowLeftFilter && !isShowRightFilter ? 'isOnlyLeft' : '']\" \n      :style=\"newProps.filterLeftStyle\"\n    >\n      <template v-if=\"!isCreateButton && createButtonOptions.show\">\n        <Button\n          v-show=\"createButtonOptions.show\"\n          :disabled=\"createButtonOptions.isDisabled\"\n          :loading=\"createButtonOptions.loading\"\n          :type=\"createButtonOptions.type || 'primary'\"\n          :class=\"[className + '-addBtns']\"\n          @click=\"createHandle\"\n        >\n          <i class=\"sc-ui sc-xinjian\"></i> \n          {{ createButtonOptions.text }}\n        </Button>\n      </template>\n      <template v-else>\n        <slot name=\"createButton\"></slot>\n      </template>\n      <template v-if=\"!isMutilpBtns && multipleActionOptions.show\">\n        <ScRadioTooltipGroup\n          v-model:value=\"multipleValue\"\n          :options=\"multipleActionOptions.options\"\n          styleMode=\"btnLine\"\n          :triggerMultiple=\"multipleActionOptions.triggerMultiple\"\n          :isNotChecked=\"multipleActionOptions.isNotChecked\"\n          @change=\"radioHandle\"\n        />\n      </template>\n      <template v-else>\n        <slot name=\"multipleBtns\"></slot>\n      </template>\n    </div>\n    <div\n      v-if=\"isShowRightFilter\" \n      :class=\"[className + '-right', !isShowLeftFilter && isShowRightFilter ? 'isOnlyRight' : '']\"\n      :style=\"newProps.filterRightStyle\"\n    >\n      <template v-if=\"!isSearch && searchOptions.show\">\n        <InputGroup>\n          <ScSelect\n            v-model:value=\"selectValue\"\n            v-if=\"searchOptions.showSelect\"\n            :style=\"{ \n              width: transformPxtoRem(searchOptions.selectOptions?.width) || transformPxtoRem('120px'), \n              minWidth: transformPxtoRem(searchOptions.selectOptions?.width) || transformPxtoRem('120px')\n            }\"\n            dropdownClassName=\"scDropdown\"\n            :placeholder=\"searchOptions.selectOptions?.placeholder\"\n            :loading=\"searchOptions.loading\"\n            :getPopupContainer=\"newProps.dropdownProps?.getPopupContainer\"\n\n          >\n            <SelectOption\n              v-for=\"optionsItem in searchOptions.typeList\"\n              :key=\"optionsItem.value\"\n              :value=\"optionsItem.value\"\n              :disabled:=\"optionsItem.disabled || optionsItem.disabled\"\n            >\n              {{ optionsItem.label }}\n            </SelectOption>\n          </ScSelect>\n          <div class=\"scSearchInput\">\n            <InputSearch\n              v-model:value=\"textValue\"\n              :maxlength=\"searchOptions.inputOptions?.maxlength\"\n              :style=\"{width: transformPxtoRem(searchOptions.inputOptions?.width) || transformPxtoRem('240px')}\"\n              :placeholder=\"searchOptionsRef.inputOptions?.placeholder\"\n              :class=\"['scSearch', !validatorResult.result ? 'isError' : '']\"\n              @change=\"updateTextValue\"\n              @search=\"onSearch\"\n              :allowClear=\"true\"\n            >\n              <template #suffix>\n                <i class=\"sc-ui sc-sousuo\"\n                  @click=\"onSearch(textValue)\"\n                />\n              </template>\n            </InputSearch>\n            <p v-if=\"!validatorResult.result\" class=\"input-describe\">{{validatorResult.tip}}</p>\n          </div>\n        </InputGroup>\n      </template>\n      <template v-else>\n        <slot name=\"search\"></slot>\n      </template>\n      <div v-if=\"isActiveFilterRef || isTableActiveRef\" :class=\"[className + '-active']\">\n        <slot name=\"tableActive\"></slot>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { computed, defineComponent, PropType, ref, unref, CSSProperties, watch } from 'vue'\nimport { Button, Select, SelectOption, Tooltip, InputSearch, InputGroup } from 'ant-design-vue'\nimport { ScSelect } from '../../select'\nimport { PlusOutlined } from '@ant-design/icons-vue'\nimport lodash from 'lodash'\n// import cloneDeep from 'lodash/cloneDeep'\n\nimport { basePrefixCls } from '../../../constant'\nimport { ScRadioTooltipGroup } from '../../radio'\n//@ts-ignore\nimport { CreateButton, MutilpActionOptions, SearchOptions } from './types/table'\nimport ColumnDialogVue from './ColumnDialog.vue'\nimport { isFunction, deepMerge, transformPxtoRem } from '../../../utils'\n\nconst tableHeaderPrefixClas = basePrefixCls + 'TableFilter'\n\nconst { cloneDeep, debounce } = lodash\n\nexport const TableFilterProps = () => ({\n  selectValue: String,\n  textValue: String,\n  filterLeftStyle: {\n    type: Object as PropType<CSSProperties>,\n      default () {\n        return {}\n      }\n  },\n  filterRightStyle: {\n    type: Object as PropType<CSSProperties>,\n      default () {\n        return {}\n      }\n  },\n  selectLoading: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  createButtonOptions: {\n    type: Object as PropType<CreateButton>,\n    default () {\n      return {\n      }\n    }\n  },\n  multipleActionOptions: {\n    type: Object as PropType<MutilpActionOptions>,\n    default () {\n      return {\n      }\n    }\n  },\n  searchOptions: {\n    type: Object as PropType<SearchOptions>,\n    default () {\n      return {\n      }\n    }\n  },\n  isActiveFilter: {\n    type: Boolean\n  },\n  isTableActive: {\n    type: Boolean\n  },\n  dropdownProps: Object\n})\n\nexport default defineComponent({\n  name: 'TableFilter',\n  inheritAttrs: false,\n  props: TableFilterProps(),\n  components: { \n    Button,\n    ScRadioTooltipGroup,\n    Select,\n    ScSelect,\n    Tooltip,\n    SelectOption,\n    PlusOutlined,\n    ColumnDialogVue,\n    InputSearch,\n    InputGroup\n  },\n  setup(props, { slots, emit, expose }) {\n    const multipleValue = ref()\n    const textValue = ref()\n    const isDefaultValue = ref(false)\n    const searchOptionsRef = ref()\n    const selectedItem = ref()\n    const isActiveFilterRef = ref()\n    const isTableActiveRef = ref()\n\n    const validatorResult = ref({\n      result: true,\n      tip: ''\n    })\n    watch(() => props.isActiveFilter, (val) => {\n      isActiveFilterRef.value = val\n    }, {\n      immediate: true\n    })\n    watch(() => props.isTableActive, (val) => {\n      isTableActiveRef.value = val\n    }, {\n      immediate: true\n    })\n    watch(() => props?.searchOptions?.inputOptions?.defaultValue, (val) => {\n      if (!unref(isDefaultValue) && !unref(textValue)) {\n        textValue.value = val || props?.searchOptions?.inputOptions?.defaultValue || ''\n        isDefaultValue.value = true\n      }\n    }, {\n      immediate: true,\n      deep: true\n    })\n\n\n    const newProps = computed(() => {\n      return props\n    })\n\n    const isSearch = computed(() => {\n      return Object.keys(slots).includes('search') \n    })\n\n    const isCreateButton = computed(() => {\n      return Object.keys(slots).includes('createButton')\n    })\n\n    const isMutilpBtns = computed(() => {\n      return Object.keys(slots).includes('multipleBtns')\n    })\n\n    const isShowLeftFilter = computed(() => {\n      return (\n        props?.createButtonOptions?.show ||\n        unref(isCreateButton) ||\n        props?.multipleActionOptions?.show ||\n        unref(isMutilpBtns)\n      )\n    })\n\n    const isShowRightFilter = computed(() => {\n      return (\n        props?.searchOptions?.show ||\n        unref(isSearch) ||\n        Object.keys(slots).includes('tableActive')\n      )\n    })\n\n    const className = computed(() => {\n      const classNames = [tableHeaderPrefixClas]\n      return classNames;\n    })\n    \n    const selectValue = computed({\n      get: () => {\n        const { typeList, loading } = props.searchOptions || {}\n        const { defaultValue } = props?.searchOptions?.selectOptions || {}\n        if (!props.selectValue && typeList) {\n          selectedItem.value = typeList[0]\n        }\n        if (!props.selectValue && !loading && typeList && typeList?.length) {\n          selectedItem.value = typeList.find((item:any) => item.value === defaultValue)\n        }\n        return props.selectValue || (!loading ? (defaultValue) : undefined) || typeList?.[0]?.value\n      },\n      set: (val) => {\n        const { clearInput } = props?.searchOptions?.selectOptions || {}\n        selectedItem.value = unref(searchOptions)?.typeList?.find((item: any)=> item.value === val)\n        const newClearInput = (clearInput ?? true)\n        if (newClearInput) {\n          textValue.value = ''\n        }\n        validatorResult.value = {\n          result: true,\n          tip: ''\n        }\n        emit('selectChange', val)\n        emit('update:selectValue', val)\n      }\n    })\n    \n    const createButtonOptions = computed(() => {\n      return props.createButtonOptions\n    })\n    \n    const multipleActionOptions = computed(() => {\n      return props.multipleActionOptions\n    })\n\n    const updateSearchOptions = (searchOptions: SearchOptions) => {\n      const cloneSearchOptions = deepMerge({inputOptions: {\n        validatorTrigger: 'all'\n      }}, cloneDeep(searchOptions))\n      if (cloneSearchOptions) {\n        const newSearchOptions = {\n          ...cloneSearchOptions\n        }\n        // console.log('selectedItem: ', selectedItem.value);\n        if (newSearchOptions.inputOptions?.placeholder) {\n          if (isFunction(newSearchOptions.inputOptions.placeholder)) {\n            newSearchOptions.inputOptions.placeholder = newSearchOptions.inputOptions.placeholder(unref(selectedItem))\n          }\n        }\n        searchOptionsRef.value = newSearchOptions\n      }\n    }\n    const searchOptions = computed(() => {\n      if (props.searchOptions) {\n        updateSearchOptions(cloneDeep(props.searchOptions))\n      }\n      return props.searchOptions\n    })\n\n    const createHandle = () => {\n      emit('createClick')\n    }\n    const radioHandle = (value:string) => {\n      const item = unref(multipleActionOptions)?.options?.filter((item:any) => {\n        return item.value === value\n      })\n      emit('multipleChange', item[0] || {})\n    }\n\n    const resetSearch = () => {\n      textValue.value = ''\n      selectValue.value = ''\n    }\n\n    const resetInput = () => {\n      textValue.value = ''\n    }\n\n    const resetMutilp = () => {\n      multipleValue.value = ''\n    } \n\n    const clearAll = () => {\n      resetMutilp()\n      resetMutilp()\n    }\n\n    const validatorInputValue = () => {\n      const { inputOptions } = unref(searchOptionsRef)\n      if (inputOptions?.validator) {\n        if (isFunction(inputOptions?.validator)) {\n          const { result, tip } = inputOptions.validator(unref(selectedItem), unref(textValue))\n          validatorResult.value = {\n            result,\n            tip\n          }\n        }\n      }\n    }\n\n    const updateTextValue = debounce(() => {\n      const { inputOptions } = unref(searchOptionsRef)\n      if (['all', 'change'].includes(inputOptions?.validatorTrigger)) {\n        if (unref(textValue)) {\n          validatorInputValue()\n        } else {\n          validatorResult.value = {\n            result: true,\n            tip: ''\n          }\n        }\n      }\n      emit('update:textValue', unref(textValue))\n    }, 150)\n\n    const onSearch = (val:string) => {\n      const { inputOptions } = unref(searchOptionsRef)\n      if (['all', 'search'].includes(inputOptions?.validatorTrigger)) {\n        if (unref(textValue)) {\n          validatorInputValue()\n        } else {\n          validatorResult.value = {\n            result: true,\n            tip: ''\n          }\n        }\n      }\n      const { result } = unref(validatorResult)\n      if (!result) {\n        return false\n      }\n      emit('searchClick', { value: unref(val), type: unref(selectValue) })\n    }\n\n    expose({\n      resetMutilp,\n      resetSearch,\n      resetInput,\n      clearAll\n    })\n\n    return {\n      createButtonOptions,\n      multipleActionOptions,\n      searchOptions,\n      searchOptionsRef,\n      isSearch,\n      isActiveFilterRef,\n      isTableActiveRef,\n      isCreateButton,\n      isMutilpBtns,\n      className,\n      selectValue,\n      textValue,\n      basePrefixCls,\n      isShowLeftFilter,\n      isShowRightFilter,\n      multipleValue,\n      newProps,\n      validatorResult,\n      transformPxtoRem,\n      createHandle,\n      radioHandle,\n      onSearch,\n      updateTextValue,\n    }\n  },\n})\n\n</script>\n","<!-- eslint-disable @typescript-eslint/no-unused-vars -->\n<template>\n  <div :class=\"[basePrefixCls + 'Actions']\">\n    <template\n      v-for=\"(item) in filterShow.slice(0, actionsOptions.showBtn)\"\n      :key=\"item.label\"\n    >\n      <Tooltip\n        v-if=\"item.tooltipDes\"\n        overlayClassName = 'scTooltip-white'\n        :disabled=\"item.isDisabled\"\n      >\n        <template #title>\n          {{ item.tooltipDes }}\n        </template>\n        <Button\n          type=\"link\"\n          class=\"underlineLink-hover\"\n          :disabled=\"!!item.isDisabled\"\n          :loading=\"!!(!item.isDisabled && item.loading)\"\n          @click=\"handle(item)\"\n        >\n          {{ item.label }}\n        </Button>\n      </Tooltip>\n      <Button \n        v-else\n        type=\"link\"\n        class=\"underlineLink-hover\"\n        :disabled=\"!!item.isDisabled\"\n        :loading=\"!!(!item.isDisabled && item.loading)\"\n        @click=\"handle(item)\"\n      >\n        {{ item.label }}\n      </Button>\n    </template>\n    <template v-if=\"filterShow.length > actionsOptions.showBtn\">\n      <Dropdown\n        placement=\"bottomRight\"\n        v-bind=\"dropdownProps\"\n        :trigger=\"['click', 'hover']\"\n        :overlayClassName=\"basePrefixCls + 'TableDropdown'\"\n        >\n        <!-- :visible=\"true\" -->\n        <Button\n          type=\"link\"\n        >\n          <span ref=\"menuRef\">\n            <EllipsisOutlined />\n          </span>\n        </Button>\n        <template #overlay>\n          <Menu>\n            <template\n              v-for=\"(item) in filterShow.slice(actionsOptions.showBtn)\"\n              :key=\"item.label\"\n            >\n              <template v-if=\"item?.children && item?.children?.length\">\n                <SubMenu \n                  :key=\"item.label\"\n                  :title=\"item.label\"\n                  :disabled=\"!!item.isDisabled\"\n                >\n                  <MenuItem\n                    v-for=\"(subItem) in item.children\"\n                    :disabled=\"!!subItem.isDisabled\"\n                  >\n                    <template v-if=\"subItem.tooltipDes\">\n                      <Tooltip\n                        overlayClassName= 'scTooltip-white'\n                        placement=\"left\"\n                        :getPopupContainer=\"tooltipGetPopupContainer\"\n                      >\n                        <template #title>\n                          {{ subItem.tooltipDes }}\n                        </template>\n                        <Button\n                          type=\"link\"\n                          class=\"actionBtn\"\n                          :loading=\"!!subItem.loading\"\n                          :disabled=\"!!subItem.isDisabled\"\n                          @click=\"handle(subItem)\"\n                        >\n                          {{ subItem.label }}\n                        </Button>\n                      </Tooltip>\n                    </template>\n                    <Button\n                      v-else\n                      type=\"link\"\n                      class=\"actionBtn\"\n                      :loading=\"!!subItem.loading\"\n                      :disabled=\"!!subItem.isDisabled\"\n                      @click=\"handle(subItem)\"\n                    >\n                      {{ subItem.label }}\n                    </Button>\n                  </MenuItem>\n                </SubMenu>\n              </template>\n              <MenuItem\n                :disabled=\"!!item.isDisabled\"\n                v-else\n              >\n                <template v-if=\"item.tooltipDes\">\n                  <Tooltip\n                    overlayClassName = 'scTooltip-white'\n                    :getPopupContainer=\"tooltipGetPopupContainer\"\n                    placement=\"left\"\n                  >\n                    <template #title>\n                      {{ item.tooltipDes }}\n                    </template>\n                    <Button\n                      type=\"link\"\n                      class=\"actionBtn\"\n                      :loading=\"!!item.loading\"\n                      :disabled=\"!!item.isDisabled\"\n                      @click=\"handle(item)\"\n                    >\n                      {{ item.label }}\n                    </Button>\n                  </Tooltip>\n                </template>\n                <template v-else>\n                  <Button\n                    type=\"link\"\n                    class=\"actionBtn\"\n                    :loading=\"!!item.loading\"\n                    :disabled=\"!!item.isDisabled\"\n                    @click=\"handle(item)\"\n                  >\n                    {{ item.label }}\n                  </Button>\n                </template>\n              </MenuItem>\n            </template>\n          </Menu>\n        </template>\n      </Dropdown>\n    </template>\n  </div>\n</template>\n\n\n<script lang='ts' setup>\n// @ts-nocheck\nimport { computed, defineProps, defineEmits, ref, unref, watch } from 'vue'\nimport { Button, Dropdown, Menu, MenuItem, SubMenu, Tooltip } from 'ant-design-vue'\nimport { EllipsisOutlined } from '@ant-design/icons-vue'\nimport type { DropdownProps } from 'ant-design-vue'\n\nimport { basePrefixCls } from '../../../constant'\nimport { isArray, isFunction } from '../../../utils/is'\nimport { treeMap } from '../../../utils/treeHelper'\n\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\n\nconst { cloneDeep } = lodash\n\nexport interface ActionItemProps {\n  label: string,\n  isShow?: boolean | (() => boolean),\n  key?: string,\n  isDisabled?: boolean | (() => boolean),\n  loading?: boolean | (() => boolean),\n  tooltip?: boolean,\n  tooltipDes?: string | (() => boolean),\n  children?: Array<ActionItemProps>,\n  action?: string | (() => void)\n}\n\nexport interface ActionProps {\n  showBtn?: number,\n  actions?: Array<ActionItemProps>,\n  record?: any,\n  fetchParams?: any,\n  data?: any\n  dropdownProps?: DropdownProps\n}\n\nconst props = withDefaults(defineProps<ActionProps>(), {\n  showBtn: 2\n})\n\nconst filterShow = ref([] as Array<ActionItemProps>)\n\nconst actionsOptions = computed(() => {\n  return props.record?.actionsOptions || { \n    showBtn: props.showBtn, \n    actions: props.actions\n  }\n})\n\nconst  dropdownProps = computed(() => {\n  return { ...props.dropdownProps } || {}\n})\n\nconst tooltipGetPopupContainer = (target) => {\n  return target?.parentNode?.parentNode\n}\n\nconst fetchParams = computed(() => {\n  return props.fetchParams\n})\n\nconst emits = defineEmits(['onAction'])\n\nconst menuRef = ref()\nconst placementRef = ref<string>('bottomRight')\n\nfunction flapSetItem (actions: Array<ActionItemProps>) {\n  if (!isArray(actions)) {\n    return actions\n  }\n  // @ts-ignore\n  const newActions = actions?.map(item => {\n    if (isFunction(item.isDisabled)) {\n      // @ts-ignore\n      item.isDisabled = item?.isDisabled({ ...unref(fetchParams), record: props.record })\n    }\n    if (isFunction(item.loading)) {\n      // @ts-ignore\n      item.loading = item?.loading({ ...unref(fetchParams), record: props.record})\n    }\n    if (isFunction(item.isShow)) {\n      // @ts-ignore\n      item.isShow = item?.isShow({ ...unref(fetchParams), record: props.record})\n    }\n    if (isFunction(item.tooltipDes)) {\n      // @ts-ignore\n      item.tooltipDes = item?.tooltipDes({ ...unref(fetchParams), record: props.record})\n    }\n    if (item.children) {\n      flapSetItem(item.children)\n    }\n    return item\n  })\n  return newActions\n}\n\nwatch([() => props.data, () => props.actions], ([propsData, actions]) => {\n  if (!actions || !propsData) {\n    return false\n  }\n  const record = cloneDeep(props.record)\n  let actionsOptions = cloneDeep(actions) as Array<ActionItemProps>\n  let list:Array<ActionItemProps> = []\n  const isCustomActionsOptions = !!record.actionsOptions\n  if (isCustomActionsOptions) {\n    list = flapSetItem(cloneDeep(record.actionsOptions.actions))\n  } else {\n    list = treeMap(flapSetItem(cloneDeep(actionsOptions)), { children: 'children', conversion: (data:any) => {\n      if (Object.keys(unref(record)).includes(data.key)) {\n        // @ts-ignore\n        data.isDisabled = record[data.key]?.disable\n        // @ts-ignore\n        data.loading = record[data.key]?.loading\n      }\n      return data\n    }})\n  }\n  filterShow.value = list?.filter(item => item.isShow)\n}, {\n  deep: true,\n  immediate: true\n})\n\nconst handle = (action: ActionItemProps) => {\n  if (action.isDisabled || action.loading) {\n    return false\n  }\n  emits('onAction', action)\n}\n</script>\n","import { unref } from 'vue'\nimport { createLoading } from './createLoading'\nimport type { LoadingProps } from './typing'\nimport type { Ref } from 'vue'\n\nexport interface UseLoadingOptions {\n  target?: any\n  props?: Partial<LoadingProps>\n}\n\ninterface Fn {\n  (): void\n}\n\nexport function useLoading(props: Partial<LoadingProps>): [Fn, Fn, (string: string) => void]\nexport function useLoading(opt: Partial<UseLoadingOptions>): [Fn, Fn, (string: string) => void]\n\nexport function useLoading(\n  opt: Partial<LoadingProps> | Partial<UseLoadingOptions>\n): [Fn, Fn, (string: string) => void] {\n  let props: Partial<LoadingProps>\n  let target: HTMLElement | Ref<ElRef> = document.body\n\n  if (Reflect.has(opt, 'target') || Reflect.has(opt, 'props')) {\n    const options = opt as Partial<UseLoadingOptions>\n    props = options.props || {}\n    target = options.target || document.body\n  } else {\n    props = opt as Partial<LoadingProps>\n  }\n\n  const instance = createLoading(props, undefined, true)\n\n  const open = (): void => {\n    const t = unref(target as Ref<ElRef>)\n    if (!t) return\n    instance.open(t)\n  }\n\n  const close = (): void => {\n    instance.close()\n  }\n\n  const setTip = (tip: string) => {\n    instance.setTip(tip)\n  }\n\n  return [open, close, setTip]\n}\n","import { withInstall } from \"../../utils/index\"\nimport scLoading from './component/Loading.vue'\n\nexport const ScLoading = withInstall(scLoading)\n\nexport { useLoading } from './component/useLoading'\nexport { createLoading } from './component/createLoading'\n\nexport type { LoadingProps } from './component/typing'\n","// import { VNodeChild, PropType } from 'vue'\nexport const props = () => ({\n  describe: String,\n  widthSize: {\n    type: String,\n    validator: (v:string) => ['l', 'xs', 'x', 'md', 'xl'].includes(v)\n  },\n  value: [String, Number],\n  modelValue: [String, Number],\n  type: { type: String, validator: (v:string) => ['error', 'warning', 'success', 'info'].includes(v) },\n})","<template>\n  <div\n    :class=\"[baseClass, vBind.widthSize ? baseClass + '-' + vBind.widthSize : '']\"\n    :id=\"uuid\"\n  >\n    <Input\n      ref=\"input\"\n      v-bind=\"vBind\"\n      v-model:value=\"value\"\n      :class=\"classNames\"\n    >\n      <template #[item]=\"data\" v-for=\"item in Object.keys($slots).filter(item => !['describe'].includes(item))\">\n        <slot :name=\"item\" v-bind=\"data\"></slot>\n      </template>\n    </Input>\n    \n    <slot name=\"describe\" v-if=\"isDescribe\"></slot>\n    <p class=\"input-describe\" v-else-if=\"vBind.describe\">\n      {{ vBind.describe }}\n    </p>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, onMounted, onUnmounted, ref } from 'vue'\nimport { Input } from 'ant-design-vue'\nimport { basePrefixCls } from '../../../constant'\nimport { buildUUID } from '../../../utils/uuid'\nimport { findParentDom } from '../../../utils/domHelper'\nimport { props } from './type'\n\nexport default defineComponent({\n  name: 'ScInput',\n  inheritAttrs: false,\n  components: {\n    Input\n  },\n  props: props(),\n  emits: ['update:value', 'input'],\n  setup (props, { attrs, emit, slots }) {\n    const baseClass = basePrefixCls + 'Input'\n    \n    const vBind = computed(() => {\n      return {...props, ...attrs}\n    })\n\n    const input = ref()\n\n    const uuid = 'sc' + buildUUID()\n\n    const value = computed({\n      get: () => {\n        return props.value || props.modelValue\n      },\n      set: (val) => {\n        emit('update:value', val)\n        emit('input', val)\n      }\n    })\n\n    const classNames = computed(() => {\n      const classList = []\n      if (props.type) {\n        classList.push('is' + props.type.substring(0,1).toUpperCase() +  props.type.slice(1))\n      }\n      return classList\n    })\n\n    const isDescribe = computed(() => {\n      return Object.keys(slots).includes('describe')\n    })\n\n    const clearCallback = (event: Event) => {\n      const isParent = findParentDom(event.target, 5, (dom) => { return String(dom.className).includes('ant-input-clear-icon') ? dom : false })\n        if (isParent) {\n          emit('allowClear', undefined)\n        }\n    }\n\n    onMounted(() => {\n      const dom = document.querySelector(`#${uuid}`) as HTMLElement\n      dom && dom.addEventListener('mousedown', clearCallback)\n    })\n\n    onUnmounted(() => {\n      const dom = document.querySelector(`#${uuid}`) as HTMLElement\n      dom && dom.removeEventListener('mousedown', clearCallback)\n    })\n    \n\n    return {\n      classNames,\n      baseClass,\n      vBind,\n      value,\n      isDescribe,\n      uuid,\n      input\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scInput from './component/ScInput.vue'\nimport { props } from './component/type'\n\nexport const ScInput = withInstall(scInput)\nexport declare type InputProps = Partial<ExtractPropTypes<typeof props>> ","import { PropType } from \"vue\"\n// import { TooltipProps } from \"ant-design-vue\"\nexport interface EditType {\n  show?: boolean\n  placeholder?: string\n  maxLength?: number\n  describe?: string\n  info?: string,\n  confirmLoading?: boolean\n  align?: string\n  text?: string\n  showMaxLength?: boolean\n  [key: string]: any\n}\n\nexport const ellipsisProps = () => ({\n  tooltip: {\n    type: [Boolean, Object],\n    default () {\n      return true\n    }\n  },\n  expandTrigger: {\n    type: String as PropType<'click'>\n  },\n  lineClamp: {\n    type: [Number, String]\n  },\n  baseHeight: {\n    type: Number,\n    default () {\n      return 22\n    }\n  },\n  textFontStyle: {\n    type: Object,\n    default () {\n      return {\n        fontSize: '14px',\n        whiteSpace: 'pre'\n      }\n    }\n  },\n  isComputedEditPopoverPosition: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  isCollapse: {\n    type: Boolean,\n    default (){\n      return false\n    }\n  },\n  isInheritParentWidth: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  hoverSuffix: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  edit: {\n    type: Object as PropType<EditType>,\n    default () {\n      return {\n      }\n    }\n  },\n  copyTxt: {\n    type: String\n  },\n  beforeCallback: Function,\n  afterCallback: Function,\n  isOnlyTips: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  hrefLink: {\n    type: Boolean\n  }\n})","<template>\n  <Tooltip\n    v-bind=\"tooltipProps\"\n    destroyTooltipOnHide\n  >\n    <template #title v-if=\"isTooltip && !tooltipProps.title\">\n      <slot v-if=\"$slots.tooltip\" name=\"tooltip\"></slot>\n      <slot v-if=\"!$slots.tooltip && (!isDefaultTooltip || isHeightOver)\" name=\"default\"></slot>\n    </template>\n\n    <div :class=\"className\" :style=\"styleProps\" @click=\"handleClick\">\n      <!-- @click=\"handleClick\" -->\n      <input :class=\"[baseClass + '-exp']\" type=\"checkbox\" :checked=\"isChecked\">\n      <div :class=\"[baseClass + '-text', isChecked ? 'isCheck' : '']\" :style=\"lineClampStyle\">\n        <span\n          :class=\"[baseClass + '-suffix-container', (!isDefaultTooltip || isHeightOver) ? isChecked ? '' : 'showEllipsisTxt' : '']\"\n        >\n          <label\n            v-if=\"isCollapse && !$slots.suffix\" \n            :class=\"[baseClass + '-btn']\" \n            for=\"exp1\"\n            @click=\"() => { isChecked = !isChecked }\"\n          >\n          </label>\n          <span\n            v-if=\"$slots.suffix || newProps?.copyTxt || newProps?.edit?.show\" \n            :class=\"[baseClass + '-suffix']\"\n          >\n            <slot name=\"suffix\"></slot>\n            <i v-if=\"newProps?.copyTxt\" class=\"sc-ui sc-file-copy\" @click=\"handleCopy\"></i>\n            <Popover\n              v-model:visible=\"popoverVisible\" \n              :title=\"null\" trigger=\"click\"\n              :overlayClassName=\"popoverClassName\" \n              placement=\"bottomLeft\"\n              destroyTooltipOnHide\n              :getPopupContainer=\"getPopupContainer\">\n              <template #content>\n                <Form ref=\"editFormRef\" :model=\"formState\" :rules=\"newProps.edit.rules\">\n                  <FormItem label=\"\" name=\"name\">\n                    <ScInput v-model:value=\"formState.name\" v-bind=\"newProps.edit\" :describe=\"''\"\n                      @change=\"handleEditChange\">\n                      <template #suffix v-if=\"newProps.edit.showMaxLength\">\n                        {{ (formState.name + '').length }}/{{ newProps.edit.maxLength }}\n                      </template>\n                    </ScInput>\n                  </FormItem>\n                  <p v-if=\"newProps.edit.describe\" class=\"input-describe\">\n                    {{ newProps.edit.describe }}\n                  </p>\n                </Form>\n                <div \n                  :class=\"[baseClass + '-actives']\" \n                  :style=\"{\n                    textAlign: newProps?.edit?.align || 'right'\n                  }\"\n                >\n                  <ScButton status=\"info\" size=\"small\" @click=\"handleClose\">\n                    {{  antLocale?.Modal?.cancelText || '取消' }}\n                  </ScButton>\n                  <ScButton type=\"primary\" size=\"small\" :loading=\"newProps?.edit?.confirmLoading\"\n                    :disabled=\"newProps?.edit?.confirmDisabled\" @click=\"handleEntry\">\n                    {{  antLocale?.Modal?.okText || '取消' }}\n                  </ScButton>\n                </div>\n              </template>\n              <i v-if=\"newProps?.edit?.show\" class=\"sc-ui sc-Frame2\" @click=\"handleEdit\"></i>\n            </Popover>\n          </span>\n        </span>\n        <span\n          ref=\"textDefaultRef\"\n          :class=\"[baseClass + '-text-default']\"\n        >\n          <slot name=\"default\"></slot>\n        </span>\n      </div>\n    </div>\n  </Tooltip>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, ref, unref, nextTick, onMounted, reactive, watch, onUnmounted } from 'vue'\nimport { Tooltip, message, Popover, Popconfirm, Form, FormItem } from 'ant-design-vue'\nimport { useClipboard } from '@vueuse/core'\n\nimport { basePrefixCls } from '../../../constant'\nimport { ScButton } from '../../button'\nimport { ScInput } from '../../input'\n//@ts-ignore\nimport { ellipsisProps } from './type'\nimport { isBoolean, isObject, buildUUID, isFunction } from '../../../utils'\n// import { waitElementReady } from '../../../utils/dom/waitElementReady'\nimport useLocale from '../../../hooks/useLocale'\n\nexport default defineComponent({\n  name: 'ScEllipsis',\n  components: {\n    Tooltip,\n    Popover,\n    ScInput,\n    ScButton,\n    Popconfirm,\n    Form,\n    FormItem\n  },\n  props: ellipsisProps(),\n  emits: ['editConfirm', 'editInputChange'],\n  setup(props, { attrs, emit, expose }) {\n    const baseClass = basePrefixCls + 'Ellipsis'\n    const isCollapse = ref(props.isCollapse)\n    const isChecked = ref(false)\n    const popoverVisible = ref(false)\n    const uuid = basePrefixCls + buildUUID()\n    const editFormRef = ref()\n    const isHeightOver = ref(false)\n    const maxWidthValue = ref()\n    const contentWidthValue = ref()\n    // const animationId = ref()\n    const textDefaultRef = ref()\n\n    const formState = reactive({\n      name: ''\n    })\n\n    const isDefaultTooltip = ref(false)\n\n    const styleProps = computed(() => {\n      return {\n        //@ts-ignore\n        ...attrs.style\n      }\n    })\n\n    const className = computed(() => {\n      return [\n        uuid,\n        baseClass,\n        props.lineClamp ? baseClass + '-lineClamp' : '',\n        props.hoverSuffix ? baseClass + '-hoverSuffix' : '',\n        props.hrefLink ? baseClass + '-href--link' : ''\n      ]\n    })\n\n    const popoverClassName = computed(() => {\n      return [\n        props.isOnlyTips ? baseClass + '-isOnlyTips' : '',\n        baseClass + '-popover',\n        uuid\n      ].join(' ')\n    })\n    \n\n    const lineClampStyle = computed(() => {\n      const cssOss = Object.create({})\n      if (props.lineClamp) {\n        cssOss[\"-webkit-line-clamp\"] = isChecked.value ? '999' : props.lineClamp\n        cssOss[\"max-height\"] = isChecked.value ? '999px' : parseInt(props.lineClamp + '') * props.baseHeight + 'px'\n      }\n      cssOss[\"--baseHeight\"] = props.baseHeight + 'px'\n      return {\n        ...cssOss\n      }\n    })\n\n    const isTooltip = computed(() => {\n      return isBoolean(props.tooltip) ? props.tooltip : Boolean(props.tooltip)\n    })\n\n    const tooltipProps = computed(() => {\n      return isObject(props.tooltip) ? props.tooltip : {}\n    })\n\n    const newProps = computed(() => {\n      return props\n    })\n\n    const getPopupContainer = (target: HTMLElement) => {\n      const { edit } = props\n      if (edit?.getPopupContainer && isFunction(edit?.getPopupContainer)) {\n        return edit?.getPopupContainer(target)?.parentNode?.parentNode?.parentNode?.parentNode\n      }\n      return document.body\n    }\n\n    const getPaddingBorderWidth = (target: HTMLElement) => {\n      return {\n        paddingLeft: target?.style?.paddingLeft || window?.getComputedStyle(target)?.paddingLeft || '0',\n        paddingRight: target?.style?.paddingRight || window?.getComputedStyle(target)?.paddingRight || '0',\n        borderLeftWidth: target?.style?.borderLeftWidth || window?.getComputedStyle(target)?.borderLeftWidth || '0',\n        borderRightWidth: target?.style?.borderRightWidth || window?.getComputedStyle(target)?.borderRightWidth || '0'\n      }\n    }\n\n    const getFontSize = (target: HTMLElement) => {\n      return target?.style?.fontSize || window?.getComputedStyle(target)?.fontSize || '0';\n    }\n\n    /**\n     * 1. 计算传入元素宽度\n     * 2. 对比父级或者当前元素最大宽度\n     * 3. 是否自动出现tooltip\n     */\n    const computedWidth = () => {\n      const { isInheritParentWidth, lineClamp, baseHeight, textFontStyle } = props;\n      const textDom = document.querySelector(`.${uuid} .scEllipsis-text`) as HTMLElement;\n      const newTextFontStyle = { lineHeight: baseHeight + 'px', fontSize: '14px' || getFontSize(textDom), fontFamily: 'var(--vxe-font-family)', whiteSpace: 'pre', ...textFontStyle }\n      // 获取本身元素\n      const containerDom = document.querySelector(`.${uuid}`) as HTMLElement;\n      if (!containerDom) {\n        return false;\n      }\n      // 获取父级元素\n      const parentDom = containerDom.parentNode as HTMLElement;\n      // eslint-disable-next-line no-unsafe-optional-chaining\n      // 获取父级元素 padding border 宽度\n      const { paddingLeft, paddingRight, borderLeftWidth, borderRightWidth } =\n        getPaddingBorderWidth(parentDom);\n      // const fontSize = textFontStyle?.fontSize || getFontSize(textDom);\n      // 计算父级元素宽度 (盒子宽度 - padding - border)\n      const parentDomWidth =\n        parseInt(parentDom?.clientWidth + '' || '0') -\n        parseInt(borderRightWidth || '0') -\n        parseInt(borderLeftWidth || '0') -\n        parseInt(paddingRight || '0') -\n        parseInt(paddingLeft || '0');\n      // const parentDomWidth = (isInheritParentWidth && !containerDom.style.maxWidth && !containerDom.style.maxWidth) ? parseInt(width) - parseInt(borderRightWidth) - parseInt(borderLeftWidth) - parseInt(paddingRight) - parseInt(paddingLeft) : ''\n      // 创建虚拟元素；用于计算元素元素整体宽度\n      const contentDom = document.createElement('p');\n      // 获取操作位元素\n      const suffixDom = document.querySelector(\n        `.${uuid} .scEllipsis-suffix-container`,\n      ) as HTMLElement;\n      // 获取操作位元素宽度\n      const suffixDomWidth = suffixDom\n        ? isNaN(parseInt(window?.getComputedStyle(suffixDom)?.width || '0'))\n          ? 0\n          : parseInt(window?.getComputedStyle(suffixDom)?.width || '0')\n        : 0;\n      contentDom.style.display = 'inline-block';\n      Object.keys(newTextFontStyle || {})?.forEach((StyleKey) => {\n        //@ts-ignore\n        contentDom.style![StyleKey] = newTextFontStyle[StyleKey];\n      })\n      // 获取本身元素宽度\n      const containerDomWidth =\n        containerDom?.style?.maxWidth ||\n        containerDom?.style?.width ||\n        (containerDom ? window?.getComputedStyle(containerDom)?.width : containerDom) ||\n        (textDom ? window?.getComputedStyle(textDom)?.width : textDom);\n      // contentDom.style.whiteSpace = 'nowrap'\n      // 1. 如果设置自动获取父级宽度；则使用父级元素宽度\n      // 2. 如果设置最大宽度；最大宽度大于父级真实宽度；则使用父级真实宽度\n      const maxWidth = isInheritParentWidth\n        ? parentDomWidth === 0\n          ? containerDomWidth + ''\n          : parentDomWidth + ''\n        : parseInt(containerDomWidth) > parentDomWidth && parentDomWidth !== 0\n          ? parentDomWidth + ''\n          : containerDomWidth;\n      contentDom.innerText = textDom?.innerText || '';\n      document.body.append(contentDom);\n      const contentWidth =\n        parseInt(window.getComputedStyle(contentDom).width || '0') + suffixDomWidth;\n      contentWidthValue.value = parseInt(window.getComputedStyle(contentDom).width || '0');\n      const contentHeight = parseInt(window.getComputedStyle(contentDom).height || '0');\n      const maxHeight = parseInt((lineClamp || '') + '' || '1') * baseHeight;\n      isHeightOver.value = contentHeight > maxHeight;\n      document.body.removeChild(contentDom);\n      maxWidthValue.value = parseInt(maxWidth) - suffixDomWidth;\n      isDefaultTooltip.value =\n      parseInt(maxWidth) * parseInt((lineClamp || '') + '' || '1') > (contentWidth + (2 * parseInt((lineClamp || '') + '' || '1')));\n    };\n\n    const observer1 = new MutationObserver(() => {\n      computedWidth()\n    })\n\n\n    watch(() => popoverVisible.value, (val) => {\n      if (!val) {\n        editFormRef?.value?.resetFields()\n      }\n    })\n\n    const handleClose = async() => {\n      const { edit } = props\n      if (edit?.cancel && isFunction(edit?.cancel)) {\n        const result = await edit?.cancel(() => { popoverVisible.value = false })\n        if (result) {\n          popoverVisible.value = false\n        }\n      } else {\n        formState.name = ''\n        popoverVisible.value = false\n      }\n    }\n\n    const handleEntry = async() => {\n      // editFromRef?.value?.validateFields()\n      emit('editConfirm', formState.name, handleClose, editFormRef.value)\n      const { afterCallback } = props\n      if (isFunction(afterCallback)) {\n        await afterCallback?.()\n      }\n    }\n\n    // const closePopover = () => {\n    //   popoverVisible.value = false\n    // }\n\n    const handleClick = () => {\n      if (props.expandTrigger === 'click') {\n        isChecked.value = !unref(isChecked)\n      }\n      // event.stopPropagation()\n      // event.preventDefault()\n      // window?.cancelAnimationFrame(animationId.value)\n      // animationId.value = window?.requestAnimationFrame(closePopover)\n      \n    }\n    const { copy, copied } = useClipboard({\n      legacy: true\n    })\n    const { curLocale, antLocale } = useLocale()\n\n    const handleCopy = async () => {\n      const copyText = unref(newProps).copyTxt\n      const { beforeCallback, afterCallback } = props\n      if (isFunction(beforeCallback)) {\n        await beforeCallback?.()\n      }\n      await copy(String(copyText))\n      if (copied && curLocale?.copy?.successMessage) {\n        message.success({\n          content: curLocale?.copy?.successMessage,\n          duration: 1.5\n        })\n      }\n      if (isFunction(afterCallback)) {\n        await afterCallback?.()\n      }\n    }\n\n    const closeEditPopover = (event: Event) => {\n      if (event?.target?.className.indexOf('scEllipsis-popover') > -1) {\n        popoverVisible.value = false\n      }\n    }\n\n    const handleEdit = async (event: Event) => {\n      event.stopPropagation()\n      const { edit, isComputedEditPopoverPosition, beforeCallback } = props\n      formState.name = edit.text || ''\n      if (isFunction(beforeCallback)) {\n        await beforeCallback?.()\n      }\n      if (edit && edit.show) {\n        popoverVisible.value = !popoverVisible.value\n        if (popoverVisible.value) {\n          // waitElementReady(popoverDom, (val) => {\n          //   console.log('val: ', val);\n          // })\n          const timer = setTimeout(() => {\n            const editInputDom = document.querySelector(`.${uuid} .ant-popover-inner-content .ant-input-affix-wrapper > .ant-input`) as HTMLInputElement\n            editInputDom?.focus()\n            editInputDom?.setSelectionRange((formState.name + '').length, (formState.name + '').length)\n            if (isComputedEditPopoverPosition) {\n              const popoverDom = document.querySelector(`.${uuid} .ant-popover-content`) as HTMLElement\n              const popoverContainerDom = document.querySelector(`.${uuid}.scEllipsis-popover`) as HTMLElement\n              popoverContainerDom?.removeEventListener('click', closeEditPopover)\n              popoverContainerDom?.addEventListener('click', closeEditPopover)\n              if (contentWidthValue.value > maxWidthValue.value) {\n                popoverDom.style.transform = `translateX(-${maxWidthValue.value}px)`\n              }\n              if (contentWidthValue.value < maxWidthValue.value) {\n                popoverDom.style.transform = `translateX(-${contentWidthValue.value}px)`\n              }\n            }\n            clearTimeout(timer)\n          }, 0)\n        }\n        return false\n      }\n    }\n\n    const handleEditChange = (val: string) => {\n      emit('editInputChange', val)\n    }\n\n\n    onMounted(() => {\n      nextTick(() => {\n        computedWidth()\n        const containerDom = document.querySelector(`.${uuid} .scEllipsis-text-default`) as HTMLElement\n        if (containerDom || textDefaultRef.value) {\n          observer1.observe(containerDom || textDefaultRef.value, { attributes: true, childList: true, characterData: true, subtree: true })\n        }\n        // clearTimeout(timer)\n      })\n    })\n\n    onUnmounted(() => {\n      observer1.disconnect()\n      const popoverContainerDom = document.querySelector(`.${uuid}.scEllipsis-popover`) as HTMLElement\n      popoverContainerDom?.removeEventListener('click', closeEditPopover)\n      // window?.cancelAnimationFrame(animationId.value)\n    })\n\n\n    expose({\n      computedWidth,\n      editFormRef\n    })\n\n    return {\n      className,\n      styleProps,\n      isTooltip,\n      tooltipProps,\n      baseClass,\n      lineClampStyle,\n      isCollapse,\n      isChecked,\n      newProps,\n      popoverVisible,\n      isDefaultTooltip,\n      uuid,\n      formState,\n      editFormRef,\n      isHeightOver,\n      textDefaultRef,\n      popoverClassName,\n      antLocale,\n      // maxWidthValue,\n      // contentWidthValue,\n\n      getPopupContainer,\n      handleEntry,\n      handleClose,\n      handleCopy,\n      handleEdit,\n      handleClick,\n      handleEditChange\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scEllipsis from './component/ScEllipsis.vue'\n// import { props } from './component/type'\n\nexport const ScEllipsis = withInstall(scEllipsis)\n// export declare type SelectProps = Partial<ExtractPropTypes<typeof props>> ","<template>\n  <div :class=\"[basePrefixCls + 'filterDropDown', filterLoading ? 'isLoading' : '', overlayClassName]\">\n    <Dropdown\n      :class=\"basePrefixCls + 'TableDropdown'\"\n      :visible=\"visible\"\n      :overlayClassName=\"overlayClassName\"\n      :get-popup-container=\"dropdownProps?.getPopupContainer\"\n      >\n        <Spin v-if=\"filterLoading\"\n          :indicator=\"indicator\"\n        >\n        </Spin>\n        <Menu\n          :multiple=\"columnOptions?.filterMultiple\"\n          v-model:selected-keys=\"menuKeys\"\n          @deselect=\"handleDeselect\"\n          @click=\"handle\"\n          >\n            <template\n              v-for=\"(item) in filterList\"\n              :key=\"item.label\"\n            >\n              <template v-if=\"item?.children && item?.children?.length\">\n                <SubMenu \n                  :disabled=\"!!item.isDisabled\"\n                  popupClassName=\"filterDropdown-subMenu\"\n                >\n                  <template #title>\n                    <ScEllipsis\n                      is-inherit-parent-width\n                      style=\"max-width: 162px;\"\n                      :tooltip=\"{\n                        placement: 'rightTop',\n                      }\"\n                    >\n                      {{ item.label }}\n                    </ScEllipsis>\n                  </template>\n                  <MenuItem\n                    v-for=\"(subItem) in item.children\"\n                    :disabled=\"!!subItem.isDisabled\"\n                    :aria-label=\"subItem.label\"\n                    :key=\"subItem.key\"\n                  >\n                    <ScEllipsis\n                      is-inherit-parent-width\n                      style=\"max-width: 182px;\"\n                      :tooltip=\"{\n                        placement: 'rightTop'\n                      }\"\n                    >\n                      {{ subItem.label }}\n                    </ScEllipsis>\n                    <!-- {{ subItem.label }} -->\n                  </MenuItem>\n                </SubMenu>\n              </template>\n              <MenuItem\n                v-else\n                :disabled=\"!!item.isDisabled\"\n                :key=\"item.key\"\n                >\n                <template v-if=\"item.isDisabled && item.tooltipDes\">\n                  <Tooltip\n                    overlayClassName = 'scTooltip-white'\n                    destroyTooltipOnHide\n                  >\n                    <template #title>\n                      {{ item.tooltipDes }}\n                    </template>\n                    {{ item.label }}\n                  </Tooltip>\n                </template>\n                <template v-else>\n                  <ScEllipsis\n                    is-inherit-parent-width\n                    style=\"max-width: 182px;\"\n                    :tooltip=\"{\n                        placement: 'rightTop'\n                      }\"\n                  >\n                    {{ item.label }}\n                  </ScEllipsis>\n                </template>\n              </MenuItem>\n            </template>\n        </Menu>\n    </Dropdown>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { computed, defineComponent, unref, ref, watch, watchEffect, h } from 'vue'\nimport { Dropdown, Menu, MenuItem, SubMenu, Tooltip, Spin } from 'ant-design-vue'\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\nimport { ScLoading } from '../../loading'\n//@ts-ignore\nimport { scFilterProps, FilterItem } from '../types/column'\nimport { basePrefixCls } from '../../../constant'\nimport { findNode } from '../../../utils/treeHelper'\nimport { ScEllipsis } from '../../ellipsis'\n\n// export interface \nconst { cloneDeep } = lodash\n\nexport default defineComponent({\n  name: 'ScTableFilterDropDown',\n  inheritAttrs: false,\n  components: {\n    Dropdown,\n    Menu,\n    MenuItem,\n    SubMenu,\n    Tooltip,\n    ScLoading,\n    Spin,\n    ScEllipsis\n  },\n  props: scFilterProps(),\n  setup (props, { emit }) {\n    const visible = ref<boolean>(true)\n    const selectedItems = ref([] as FilterItem[])\n    const menuKeys = ref()\n    const selectedKeys = computed(() => {\n      return unref(selectedItems)?.map((item: FilterItem) => item.key)\n    })\n    const overlayClassName = computed(() => {\n      return props.overlayClassName\n    })\n\n    const dropdownProps = computed(() => {\n      return props.dropdownProps\n    })\n\n\n    const filterList = computed(() => {\n      // console.log('props.filterList: ', props.filterList);\n      return props.filterList?.map((item: FilterItem) => {\n        if (item.text) {\n          item.label = item.text\n        }\n        if (item.value) {\n          item.key = item.value\n        }\n        return item\n      })\n    })\n    const filterLoading = ref(false)\n    // const filterLoading = computed(() => {\n    //   return props.column?.filterLoading\n    // })\n    watchEffect(() => {\n      filterLoading.value = !!props.column?.filterLoading\n    })\n    const indicator = h('span', { class: 'loading-transition'})\n    const columnOptions = computed(() => {\n      return cloneDeep(props.column)\n    })\n    const handle = ({key}:{key: string}) => {\n      // @ts-ignore\n      const item = findNode(unref(filterList), (node:FilterItem) => node.key === key, { key: 'key' })\n      if (unref(columnOptions)?.filterMultiple) {\n        selectedItems.value = [...unref(selectedItems), item]\n      } else {\n        selectedItems.value = [item]\n      }\n      emit('filter', unref(selectedItems), unref(selectedKeys))\n    }\n    const handleDeselect = ({ key }: { key: string }) => {\n      selectedItems.value = unref(selectedItems).filter((item: FilterItem) => item.key !== key)\n      emit('filter', unref(selectedItems), unref(selectedKeys))\n    }\n    watch(() => props.filterSelected, (val) => {\n      menuKeys.value = val?.map(item => item.key) || []\n      if (val?.length === 0) {\n        selectedItems.value = []\n      }\n    })\n    return {\n      basePrefixCls,\n      filterList,\n      visible,\n      overlayClassName,\n      columnOptions,\n      selectedKeys,\n      menuKeys,\n      filterLoading,\n      indicator,\n      dropdownProps,\n\n      handle,\n      handleDeselect\n    }\n  }\n})\n</script>\n","<template>\n  <div class=\"tableEmpty\" v-bind=\"$attrs\">\n    <div class=\"tableEmpty-img\">\n      <slot name=\"img\" v-if=\"isImgSlot\"></slot>\n      <img v-else :src=\"getProps.img\" alt=\"\">\n    </div>\n    <div class=\"tableEmpty-text\">\n      <slot name=\"text\" v-if=\"isTextSlot\"></slot>\n      <p v-else>{{getProps.text}}</p>\n    </div>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed } from 'vue'\nimport useLocale from '../../../hooks/useLocale'\n\nexport default defineComponent({\n  props: {\n    text: {\n      type: String\n    },\n    img: {\n      type: String,\n      default () {\n        return 'data:image/png;base64,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'\n      }\n    }\n  },\n  setup (props, { slots }) {\n    const { curLocale } = useLocale()\n    const getProps = computed(() => {\n      return {\n        ...props,\n        text: curLocale?.noData\n      }\n    })\n    const isImgSlot = computed(() => {\n      return Object.keys(slots).includes('img')\n    })\n    const isTextSlot = computed(() => {\n      return Object.keys(slots).includes('text')\n    })\n    return {\n      getProps,\n      isImgSlot,\n      isTextSlot\n    }\n  }\n})\n</script>\n","<template>\n  <div class=\"disFlex\" v-if=\"isFilter\">\n    <template\n      v-for=\"columnItem in filterList\"\n      :key=\"columnItem.dataIndex\"\n    >\n      <Tag\n        v-if=\"columnItem.filterSelected?.length\"\n        closable\n        class=\"tag-filter\"\n        @close=\"onTagClose(columnItem)\"\n      >\n        {{ columnItem.title || columnItem?.titleType?.props?.text }}\n        <span\n          v-for=\"(filterItem, index) in (columnItem.filterSelected || [])\"\n          :key=\"filterItem.key\"\n        >\n          {{index !== 0 ? ';' : ''}}\n          {{filterItem.label }}\n        </span>\n      </Tag>\n    </template>\n    <span v-if=\"isFilter\" class=\"clearAll\" @click=\"closeAll\">{{curLocale?.cleanUp}}</span>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, PropType } from 'vue'\nimport { Tag } from 'ant-design-vue'\n\nimport { Column } from '../types/column'\nimport useLocale from '../../../hooks/useLocale'\n\nconst FilterTagsProps = () => ({\n  columns: {\n    required: true,\n    type: Array as PropType<Column[]>\n  }\n})\n\nexport default defineComponent({\n  name: 'FilterTags',\n  inheritAttrs: false,\n  props: FilterTagsProps(),\n  components: {\n    Tag\n  },\n  setup(props, { emit }) {\n    const filterList = computed(() => {\n      return props.columns\n    })\n\n    const onTagClose = (...args: any[]) => {\n      emit('closeTag', ...args)\n    }\n    const closeAll = (...args: any[]) => {\n      emit('closeAll', ...args)\n    }\n\n    const isFilter = computed(() => {\n      const flag = Boolean(props.columns?.find((item) => item.filterSelected?.length))\n      return flag\n    })\n\n    const { curLocale } = useLocale()\n    return {\n      filterList,\n      isFilter,\n      curLocale,\n      onTagClose,\n      closeAll\n    }\n  }\n})\n</script>\n","<template>\n  <div\n    v-if=\"!newProps.notText || isEmptyText(newProps.text)\"\n    :id=\"`tb_btn_${index}_copy`\"\n    class=\"tdCopy\"\n    v-bind=\"$attrs\"\n  >\n    <span\n      class=\"tdCopy-prefix\"\n      @click=\"handle\"\n    >\n      <slot name=\"text\" v-if=\"isCopyPrefix\">\n      </slot>\n      <span v-else>\n        {{ newProps.text }}\n      </span>\n    </span>\n    <span class=\"tdCopy-icon\" @click=\"copyText\">\n      <slot name=\"icon\" v-if=\"isCopyIcon\"></slot>\n      <CopyOutlined v-else/>\n    </span>\n  </div>\n  <div v-else>--</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, unref } from 'vue'\nimport { CopyOutlined } from '@ant-design/icons-vue'\nimport { useClipboard } from '@vueuse/core'\nimport { message } from 'ant-design-vue'\nimport { isEmptyText, isFunction } from '../../../../utils'\nimport useLocale from '../../../../hooks/useLocale'\n\nconst props = () => ({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  handle: {\n    type: Function\n  },\n  successTxt: {\n    type: String\n  },\n  copyTxt: {\n    type: [String, Function]\n  },\n  record: {\n    type: Object,\n    default: () => ({})\n  },\n  index: {\n    type: Number,\n    default: 0\n  },\n  text: {\n    type: [String, Number],\n    default: '',\n    require: true\n  },\n  notText: {\n    type: Boolean,\n    default: true\n  }\n})\n\nexport default defineComponent({\n  name: 'TdCopy',\n  inheritAttrs: false,\n  props: props(),\n  components: {\n    CopyOutlined\n  },\n  emits: ['click'],\n  setup (props, { slots }) {\n\n    const newProps = computed(() => {\n      return props\n    })\n    const isCopyPrefix = computed(() => {\n      return Object.keys(slots).includes('text');\n    }) \n    const isCopyIcon = computed(() => {\n      return Object.keys(slots).includes('icon');\n    }) \n    const { copy, copied } = useClipboard({\n      legacy: true\n    })\n    const copyText = async () => {\n      const copyText = unref(newProps).copyTxt || unref(newProps).text\n      await copy(String(copyText))\n      if (unref(newProps)?.successTxt === null) {\n        return false\n      }\n      const { curLocale } = useLocale()\n      if (copied && (unref(newProps).column?.type?.props?.successTxt || unref(newProps)?.successTxt) || curLocale?.copy?.successMessage) {\n        message.success({\n          content: unref(newProps).column?.type?.props?.successTxt || unref(newProps).successTxt || curLocale?.copy?.successMessage,\n          duration: 1.5\n        })\n      }\n    }\n\n    const handle = async () => {\n      if (unref(newProps)?.column?.handle || unref(newProps)?.handle) {\n        if (isFunction(unref(newProps)?.handle)) {\n          await unref(newProps)?.handle?.()\n        }\n        if (isFunction(unref(newProps)?.column?.handle)) {\n          await unref(newProps)?.column?.handle()\n        }\n      }\n    }\n    \n    return {\n      isCopyPrefix,\n      newProps,\n      copyText,\n      isEmptyText,\n      isCopyIcon,\n      // copy,\n      handle\n    }\n  }\n})\n\n</script>\n","<template>\n  <Tooltip\n    :overlayClassName=\"newProps.column.type.props.className\"\n    :id=\"`tb_${String(index)}_${key}_ellipsis`\"\n    destroyTooltipOnHide\n  >\n    <template #title v-if=\"newProps.column.type.props.isShow ?? true\">\n      {{ isVNode(newProps.text) ? '' : newProps.text }}\n      <component v-if=\"isVNode(newProps.text)\" :is='newProps.text'></component>\n    </template>\n    <div class=\"tdEllipsisCon\" @click=\"handle\">\n      <p \n        :class=\"className\"\n        :style=\"{width: newProps.column.width - 32 + 'px', '-webkit-line-clamp': newProps.column.type.props.lineheigth}\"\n      >\n        {{ isVNode(newProps.text) ? '' : newProps.text }}\n        <component v-if=\"isVNode(newProps.text)\" :is='newProps.text'></component>\n      </p>\n      <TdCopy v-if=\"newProps.column.type.props.copy || newProps.copy\" :copyTxt=\"newProps.copyText\" :notText=\"false\"/>\n    </div>\n  </Tooltip>\n</template>\n\n<script lang='ts'>\nimport { computed, defineComponent, isVNode } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\n\nimport TdCopy from './TdCopy.vue'\nimport { isEmptyText } from '../../../../utils/is'\n\nconst props = () =>({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  record: {\n    type: Object,\n    default: () => ({})\n  },\n  text: {\n    type: [String, Number],\n    default: ''\n  },\n  index: {\n    type: [String, Number],\n    default: 0\n  },\n  key: {\n    type: [String, Number],\n    default: 0\n  },\n  copy: {\n    type: Boolean,\n    default: false\n  }\n})\nexport default defineComponent({\n  name: 'TdEllipsis',\n  inheritAttrs: false,\n  props: props(),\n  components: {\n    Tooltip,\n    TdCopy\n  },\n  setup (props) {\n    const handle = async () => {\n      if (props?.column?.handle) {\n        await props?.column?.handle()\n      }\n    }\n    \n    const className = computed(() => {\n      const names = ['tdEllipsis']\n      const { column } = props\n      if (column.type.componentName === 'tdEllipsis') {\n        names.push('ellipsisText')\n      }\n      return names\n    })\n\n    const newProps = computed(() => {\n      return {\n        ...props,\n        copyText: String(props.text) || props.text,\n        text: !isEmptyText(props.text) ? '-' : props.text\n      }\n    })\n\n    return {\n      newProps,\n      className,\n      handle,\n      isVNode\n      // isEmptyText\n    }\n  }\n})\n\n\n</script>\n\n<style>\n.tdEllipsisCon {\n  display: flex;\n  align-items: flex-end;\n}\n</style>\n","<template>\n  <span>\n    <a\n      v-if=\"isEmptyText(newProps.text)\"\n      :id=\"id\"\n      :class=\"['td_href', linkClass]\"\n      @click=\"handle\"\n    >\n      {{ newProps.text }}\n      <i\n        v-if=\"newProps.column.icon\"\n        :class=\"['sc-ui', newProps.column.icon]\"\n      ></i>\n    </a>\n    <span\n      v-else\n      type=\"text\"\n      >-</span\n    >\n  </span>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref, unref } from 'vue'\nimport { isEmptyText } from '../../../../utils/is'\n\nconst props = () => ({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  index: {\n    type: Number,\n    default: 0\n  },\n  record: {\n    type: Object,\n    default: () => ({})\n  },\n  text: {\n    type: [String, Number],\n    default: ''\n  }\n})\n\nexport default defineComponent({\n  name: 'TdHandle',\n  inheritAttrs: false,\n  props: props(),\n  setup (props, { emit }) {\n    const isHandle = ref(false)\n    const newProps = computed(() => {\n      return props\n    })\n    const id = computed(() => {\n      return `tb_btn_${unref(newProps).index}_${unref(newProps).column?.type?.componentName}_${unref(newProps).record.key}`\n    })\n\n    const linkClass = computed(() => {\n      let className = ''\n      if (unref(newProps).column.handle) {\n        className = 'linkBtn'\n      }\n      return className\n    })\n    const handle = async () => {\n      // const newId = unref(id)\n      // const dom = document.querySelector(`#${newId}`) as HTMLElement\n      // dom.className = dom.className + ' linkBtn'\n      if (unref(newProps)?.column?.handle) {\n        // @ts-ignore\n        await props?.column?.handle({ column: unref(newProps).column, record: unref(newProps)?.record})\n        isHandle.value = true\n      }\n      emit('handle', { column: unref(newProps).column, record: unref(newProps)?.record})\n    }\n\n    return {\n      id,\n      linkClass,\n      newProps,\n      isEmptyText,\n      handle\n    }\n  }\n})\n\n</script>\n","<template>\n  <span @click=\"handle\">\n    {{ isEmptyText(newProps.text) ? '-' : newProps.column.statusChange(newProps.text) }}\n  </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { isEmptyText } from '../../../../utils/is'\n\nconst props = () =>({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  record: {\n    type: Object,\n    default: () => ({})\n  },\n  text: {\n    type: [String, Number],\n    default: ''\n  }\n})\nexport default defineComponent({\n  name: 'TdStatus',\n  inheritAttrs: false,\n  props: props(),\n  setup (props) {\n    const newProps = computed(() => {\n      return props\n    })\n\n    const handle = async () => {\n      if (props?.column?.handle) {\n        // @ts-ignore\n        await props?.column?.handle(newProps?.column, newProps?.record)\n      }\n    }\n\n    return {\n      newProps,\n      isEmptyText,\n      handle\n    }\n  }\n})\n\n</script>\n","<template>\n  <Tooltip\n    :id=\"`tb_${String(index)}_${key}_tooltip`\"\n    placement=\"top\"\n    destroyTooltipOnHide\n  >\n    <template #title v-if=\"tooltipDes\">\n      {{ isVNode(tooltipDes) ? '' : tooltipDes}}\n      <component v-if=\"isVNode(tooltipDes)\" :is='tooltipDes'></component>\n    </template>\n    <span \n      :class=\"className\"\n      @click=\"handle\"\n    >\n      {{ isVNode(newProps.text) ? '' : newProps.text }}\n      <component v-if=\"isVNode(newProps.text)\" :is='newProps.text'></component>\n    </span>\n  </Tooltip>\n</template>\n\n<script lang='ts'>\nimport { computed, defineComponent, watch, ref, isVNode } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\n\nimport TdCopy from './TdCopy.vue'\nimport { isEmptyText } from '../../../../utils/is'\n\nconst props = () =>({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  tooltipDesKey: String,\n  record: {\n    type: Object,\n    default: () => ({})\n  },\n  text: {\n    type: [String, Number],\n    default: ''\n  },\n  index: {\n    type: [String, Number],\n    default: 0\n  },\n  key: {\n    type: [String, Number],\n    default: 0\n  }\n})\nexport default defineComponent({\n  name: 'TdEllipsis',\n  inheritAttrs: false,\n  props: props(),\n  components: {\n    Tooltip,\n    TdCopy\n  },\n  setup (props) {\n    const handle = async () => {\n      if (props?.column?.handle) {\n        await props?.column?.handle()\n      }\n    }\n\n    const tooltipDes = ref()\n\n    watch(() => props.record, (val) => {\n      // console.log('props: ', props.column.type.props.tooltipDesKey);\n      // console.log('val: ', val);\n      if (props.column.type.props.tooltipDesKey) {\n        tooltipDes.value = val[props.column.type.props.tooltipDesKey]\n      }\n    }, {\n      immediate: true,\n      deep: true\n    })\n    \n    const className = computed(() => {\n      const names = ['tdTooltip']\n      return names\n    })\n\n    const newProps = computed(() => {\n      return {\n        ...props,\n        copyText: String(props.text) || props.text,\n        text: !isEmptyText(props.text) ? '-' : props.text\n      }\n    })\n\n    return {\n      newProps,\n      className,\n      tooltipDes,\n      handle,\n      isVNode\n      // isEmptyText\n    }\n  }\n})\n\n\n</script>\n\n<style>\n.tdEllipsisCon {\n  display: flex;\n  align-items: flex-end;\n}\n</style>\n","import { defineComponent } from \"vue\";\n// import TdCopy from \"./TdCopy.vue\";\n// import TdEllipsis from \"./TdEllipsis.vue\";\n// import TdHandle from \"./TdHandle.vue\";\n// import TdStatus from \"./TdStatus.vue\";\n\nconst TdComponents:{\n  [key:string]: any\n} = {}\nconst components = import.meta.glob('./*.vue', { eager: true })\nfor (const [key, value] of Object.entries(components)) {\n  const name = key.slice(key.lastIndexOf('/') + 1, key.lastIndexOf('.'))\n  //@ts-ignore\n  TdComponents[name] = defineComponent(value).default\n}\n\n\nexport default TdComponents\n\n// export { TdCopy, TdEllipsis, TdStatus, TdHandle }\n","<template>\n  <span\n    :class=\"[preFixClass]\"\n  >\n    <Tooltip\n      :overlayClassName=\"propsRef.overlayClassName\"\n      :overlayStyle=\"propsRef.overlayStyle\"\n    >\n      <template #title>\n        {{isVNode(propsRef.describe) ? '' : propsRef.describe}}\n        <component v-if=\"isVNode(propsRef.describe)\" :is='propsRef.describe'></component>\n      </template>\n      <span\n        :class=\"[preFixClass+'-text']\"\n      >\n        {{propsRef.text}}\n      </span>\n      <!-- <i @click.stop class=\"sc-ui sc-question-circle-fill\"></i> -->\n    </Tooltip>\n  </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, isVNode } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\n\nconst preFixClass = 'describeTh'\n\nconst props = () =>({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  describe: {\n    type: [String, Number, Object],\n    default: ''\n  },\n  text: {\n    type: [String, Number],\n    default: ''\n  },\n  overlayClassName: String,\n  overlayStyle: Object\n})\n\nexport default defineComponent({\n  name: 'Describe',\n  inheritAttrs: false,\n  components: {\n    Tooltip\n  },\n  props: props(),\n  setup (props) {\n    const propsRef = computed(() => {\n      return props\n    })\n    return {\n      propsRef,\n      preFixClass,\n      isVNode\n    }\n  }\n\n})\n</script>","<template>\n  <span\n    :class=\"[preFixClass]\"\n  >\n    <span\n      :class=\"[preFixClass+'-text']\"\n    >\n      {{propsRef.text}}\n    </span>\n    <span\n      :class=\"[preFixClass+'-unit']\"\n    >\n      {{propsRef.unit}}\n    </span>\n  </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\n\nconst preFixClass = 'unitTh'\n\nconst props = () =>({\n  column: {\n    type: Object,\n    default: () => ({})\n  },\n  unit: {\n    type: [String, Number],\n    default: ''\n  },\n  text: {\n    type: [String, Number],\n    default: ''\n  }\n})\n\nexport default defineComponent({\n  name: 'Unit',\n  inheritAttrs: false,\n  components: {\n    Tooltip\n  },\n  props: props(),\n  setup (props) {\n    const propsRef = computed(() => {\n      return props\n    })\n    return {\n      propsRef,\n      preFixClass\n    }\n  }\n\n})\n</script>","import { defineComponent } from \"vue\";\n\nconst THComponents:{\n  [key:string]: any\n} = {}\nconst components = import.meta.glob('./*.vue', { eager: true })\nfor (const [key, value] of Object.entries(components)) {\n  const name = key.slice(key.lastIndexOf('/') + 1, key.lastIndexOf('.'))\n  //@ts-ignore\n  THComponents[name] = defineComponent(value).default\n  for (let i = 1; i < 15; i++) {\n    //@ts-ignore\n    THComponents[name + i] = defineComponent(value).default\n  }\n}\n\nexport default THComponents","import { PropType, VNode, VNodeChild, CSSProperties } from \"vue\"\nimport { Column } from \"./column\"\n// import type { ComputedRef } from \"vue\"\nimport { ColumnProps, SortOrder } from \"ant-design-vue/lib/table/interface\"\nimport type { TooltipProps } from 'ant-design-vue'\n//@ts-ignore\nimport type { ActionProps as ActionOptions } from '../component/TableAction.vue'\nimport { PaginationProps } from './pagination'\nimport { ColumnModalItem } from './column'\nimport type { TableRowSelection as ITableRowSelection } from 'ant-design-vue/lib/table/interface'\n// import type { ModalProps } from \"../../modal\"\n\nexport type SizeType = 'default' | 'middle' | 'small' | 'large';\n\nexport interface FetchSetting {\n  // 请求接口当前页数\n  pageField: string;\n  // 每页显示多少条\n  sizeField: string;\n  // 请求结果列表字段  支持 a.b.c\n  listField: string;\n  // 请求结果总数字段  支持 a.b.c\n  totalField: string;\n}\n\nexport interface TableCustomRecord<T> {\n  record?: T;\n  index?: number;\n}\n\n\n\nexport interface TableCurrentDataSource<T = Recordable> {\n  currentDataSource: T[];\n}\n\nexport interface TableRowSelection<T = any> extends ITableRowSelection {\n  /**\n   * 当所选行发生更改时执行的回调\n   * @type Function\n   */\n  onChange?: (selectedRowKeys: string[] | number[], selectedRows: T[]) => any;\n\n  /**\n   * 当选择/取消选择一行时执行的回调\n   * @type Function\n   */\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  onSelect?: (record: T, selected: boolean, selectedRows: Object[], nativeEvent: Event) => any;\n\n  /**\n   * 当选择/取消选择所有行时执行回调\n   * @type Function\n   */\n  onSelectAll?: (selected: boolean, selectedRows: T[], changeRows: T[]) => any;\n\n  /**\n   * 当行选择倒置时执行的回调\n   * @type Function\n   */\n  onSelectInvert?: (selectedRows: string[] | number[]) => any;\n}\n\nexport interface SorterResult {\n  column: ColumnProps;\n  order: SortOrder;\n  field: string;\n  columnKey: string;\n}\n// @ts-ignore\nexport interface BasicColumn extends ColumnProps {\n  children?: BasicColumn[];\n  filters?: {\n    text: string;\n    value: string;\n    children?:\n      | unknown[]\n      | (((props: Record<string, unknown>) => unknown[]) & (() => unknown[]) & (() => unknown[]));\n  }[];\n\n  slots?: Recordable;\n\n  // Whether to hide the column by default, it can be displayed in the column configuration\n  defaultHidden?: boolean;\n\n  // Help text for table column header\n  helpMessage?: string | string[];\n\n  // 业务控制是否显示\n  ifShow?: boolean | ((column: BasicColumn) => boolean);\n  // 动态 Disabled\n  editDynamicDisabled?: boolean | ((record: Recordable) => boolean);\n}\n\n\nexport const createButton = () => ({\n  // 是否展示\n  show: { type: Boolean, default: true },\n  // 展示文本\n  text: { type: String, default: '创建' },\n  isDisabled: { type: Boolean, default: false },\n  loading: { type: Boolean, default: false },\n  // sc-ui\n  icon: { type: String, default: '' },\n  // 按钮类型 默认'success', 'info', 'warning', 'error', 'primary'\n  type: { type: String, default: 'info' },\n  action: Function as PropType<(...arg:any) => void>\n})\n\nexport interface CreateButton {\n  show?: boolean,\n  text?: string,\n  isDisabled?: boolean,\n  loading?: boolean,\n  icon?: string,\n  type?: string,\n  action?: (...arg:any) => void\n}\n\n// export declare type CreateButton = ExtractPropTypes<typeof createButton>\n\nexport const multipleActionOptions = () => ({\n  // 是否展示\n  show: { type: Boolean, default: true },\n  triggerMultiple: { type: Boolean, default: false },\n  isNotCheck: { type: Boolean, default: false },\n  styleMode: String,\n  // 操作列表\n  options: {\n    type: Array as PropType<Array<ButtonType>>\n  }\n})\n\ninterface ButtonType {\n  toolOptions?: TooltipProps,\n  tooltipDes?: string,\n  label?: string,\n  value?: string | number,\n  disabled?: boolean | ((...args: any) => boolean),\n  overlayClassName?: string,\n  action?: string | ((...args: any) => void)\n}\n\nexport interface MultipleActionOptions {\n  show?: boolean,\n  options?: Array<ButtonType>,\n  [key:string]: any\n}\n\n// export declare type MultipleActionOptions = ExtractPropTypes<typeof multipleActionOptions>\n\n\nexport const searchOptions = () => ({\n  // 是否展示\n  show: { type: Boolean, default: true },\n  // 是否显示select\n  showSelect: { type: Boolean, default: true },\n  // select选择框数据\n  typeList: [Promise, Array],\n  loading: { type: Boolean, default: false },\n  // 查询方法\n  action: Function as PropType<(fetchParams: FetchParams) => void>,\n  selectOptions: Object as PropType<{\n    placeholder: string, \n    width: string, \n    clearInput: boolean, \n    defaultValue: string\n  }>,\n  inputOptions: Object as PropType<{\n    placeholder: (key:string) => string | string,\n    validator: (key:string) => string | string,\n    validatorTrigger: 'all' | 'search' | 'change',\n    maxlength: number, \n    width: string, \n    allowClear: boolean,\n    defaultValue: string\n  }>\n})\n\nexport interface SearchOptions {\n  show?: boolean,\n  showSelect?: boolean,\n  typeList?: (...arg: any) => Promise<any> | Array<{label: string, value: string, disabled: boolean}>,\n  action?: (fetchParams: FetchParams) => void,\n  loading: boolean,\n  selectOptions?: {\n    placeholder?: string,\n    width?: string,\n    defaultValue?: string,\n    clearInput?: boolean,\n  },\n  inputOptions?: {\n    placeholder?: (key:string) => string | string,\n    validator?: (key:string) => string | string,\n    validatorTrigger?: 'all' | 'search' | 'change',\n    maxlength?: number,\n    width?: string,\n    allowClear?: boolean,\n    defaultValue?: string\n  }\n}\n\nexport interface ScrollProps {\n    x: number,\n    y: number\n}\n\nexport interface ActiveOptions {\n  reload?: {\n    text?: string,\n    show?: boolean,\n    isDisabled?: boolean,\n    loading?: boolean,\n    action?: Fn\n  },\n  download?: {\n    text?: string,\n    show?: boolean,\n    isDisabled?: boolean,\n    loading?: boolean,\n    action?: Fn,\n    href?: string\n  },\n  columnDialog?: {\n    text?: string,\n    show?: boolean,\n    isDisabled?: boolean,\n    loading?: boolean,\n    okModal?: Fn,\n    cancelModal: Fn\n  },\n  // customActiveList: Array<VNode | { \n  //   icon?: string | VNode,\n  //   text?: string,\n  //   show?: boolean,\n  //   isDisabled?: boolean,\n  //   action?: Fn \n  // }>\n}\n\n\nexport interface LocaleProps {\n  filterConfirm?: string,\n  filterReset?: string,\n  emptyText?: string | VNode\n}\nexport const tableProps = () => ({\n  maxHeight: Number,\n  resizeHeightOffset: {\n    type: Number,\n    default: 114\n  },\n  isCanResizeParent: { type: Boolean, default: false },\n  canResize: { type: Boolean, default: false },\n  filterLeftStyle: Object as PropType<CSSProperties>,\n  filterRightStyle: Object as PropType<CSSProperties>,\n  createButtonOptions: {\n    type: Object as PropType<CreateButton>,\n    default () {\n      return {\n        show: true,\n        text: '创建'\n      }\n    }\n  },\n  upTitle: {\n    type: String,\n    default () {\n      return '点击升序'\n    }\n  },\n  downTitle: {\n    type: String,\n    default () {\n      return '点击降序'\n    }\n  },\n  cancelUpTitle: {\n    type: String,\n    default () {\n      return '点击取消升序'\n    }\n  },\n  cancelDownTitle: {\n    type: String,\n    default () {\n      return '点击取消降序'\n    }\n  },\n  multipleOptions: {\n    type: Object as PropType<MultipleActionOptions>\n  },\n  searchOptions: {\n    type: Object as PropType<SearchOptions>\n  },\n  actionsOptions: Object as PropType<ActionOptions>,\n  customFilter: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  filterTag: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  activeOptions: {\n    type: Object as PropType<ActiveOptions>\n  },\n  columnFilterList: {\n    type: Object as PropType<Array<ColumnModalItem>>,\n    default () {\n      return []\n    }\n  },\n  // modalOptions: {\n  //   type: Object as PropType<ModalProps>\n  // },\n  bordered: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  // 自定义排序方法\n  sortFn: Function as PropType<(sortInfo: SorterResult) => any>,\n  // 排序方法\n  filterFn: Function as PropType<(data: Partial<Recordable<string[]>>) => any>,\n\n  pagination: {\n    type: [Object, Boolean] as PropType<PaginationProps | boolean>,\n    default () {\n      return true\n    }\n  },\n  scroll: {\n    type: Object as PropType<ScrollProps>,\n    default () {\n      return {\n        x: 'true'\n      }\n    }\n  },\n  dataSource: Array,\n  isTreeTable: Boolean,\n  autoCreateKey: Boolean,\n  rowKey: [String, Function],\n  defaultExpandAllRows: Boolean,\n  defaultExpandedRowKeys: Object as PropType<string[]>,\n  expandedRowKeys: Object as PropType<string[]>,\n  expandIcon: Object as PropType<Function | VNodeChild | JSX.Element>,\n  expandRowByClick: Boolean,\n  expandIconColumnIndex: Number,\n  size: {\n    type: String as PropType<SizeType>,\n    default () {\n      return 'middle'\n    }\n  },\n  childrenColumnName: String,\n  \n  // 接口请求对象\n  api: Function as PropType<(...arg: any) => Promise<any>>,\n  // 请求之前处理参数\n  beforeFetch: Function as PropType<Fn>,\n  // 自定义处理接口返回参数\n  afterFetch: Function as PropType<Fn>,\n  // 查询条件请求之前处理\n  handleSearchInfoFn: Function as PropType<Fn>,\n  // 请求接口配置\n  fetchSetting: Object as PropType<Partial<FetchSetting>>,\n  // 立即请求接口\n  immediate: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  // 在开起搜索表单的时候，如果没有数据是否显示表格\n  emptyDataIsShowTable: Boolean,\n  // 额外的请求参数\n  searchInfo: Object as PropType<Recordable>,\n  // 默认的排序参数\n  defSort: Object as PropType<Recordable>,\n  // loading加载\n  loading: Boolean,\n  /**\n  * Row's className\n  * @type Function\n  */\n  rowClassName: Function as PropType<<T>(record: TableCustomRecord<T>, index: number) => string>,\n\n  /**\n   * `table-layout` attribute of table element\n   * `fixed` when header/columns are fixed, or using `column.ellipsis`\n   *\n   * @see https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout\n   * @version 1.5.0\n   */\n  tableLayout: String as PropType<'auto' | 'fixed' | string>,\n  showHeader: {\n  type: Boolean,\n  default () {\n    return true\n  }\n  },\n  /**\n  * Set props on per header row\n  * @type Function\n  */\n  customHeaderRow: Function as PropType<(column: ColumnProps, index: number) => object>,\n  /**\n * Set props on per row\n * @type Function\n */\n  customRow: Function as PropType<(record: any, index: number) => object>,\n  /**\n * Row selection config\n * @type object\n */\n  /**\n  * Table footer renderer\n  * @type Function | VNodeChild\n  */\n  footer: [Function, Object] as PropType<Function | VNodeChild | JSX.Element>,\n\n  /**\n * Row selection config\n * @type object\n */\n  rowSelection: Object as PropType<TableRowSelection>,\n  // 列配置\n  columns: Object as PropType<BasicColumn[]>,\n  // 弹窗cancel事件\n  cancelModal: Function as PropType<(...arg: any) => void>,\n  // 弹窗okModal事件\n  okModal: Function as PropType<(...arg: any) => void>,\n  langLocale: {\n    type: Object\n  },\n  locale: {\n    type: Object as PropType<LocaleProps>\n  },\n  indentSize: {\n    type: Number,\n    default () {\n      return 30\n    }\n  }\n})\n\nexport interface TableProps {\n  maxHeight: number,\n  resizeHeightOffset: number,\n  isCanResizeParent: boolean,\n  canResize: boolean,\n  filterLeftStyle: CSSProperties,\n  filterRightStyle: CSSProperties,\n  upTitle: string,\n  downTitle: string,\n  createButtonOptions?: CreateButton,\n  multipleOptions?: MultipleActionOptions,\n  searchOptions?: SearchOptions,\n  actionsOptions?: ActionOptions,\n  customFilter?: boolean,\n  filterTag?: boolean,\n  activeOptions?: ActiveOptions,\n  columnFilterList?: Array<ColumnModalItem>,\n  // modalOptions?: ModalProps,\n  bordered?: boolean,\n  // 自定义排序方法\n  sortFn?: (sortInfo: SorterResult) => any;\n  // 排序方法\n  filterFn?: (data: Partial<Recordable<string[]>>) => any;\n  pagination? : PaginationProps | boolean,\n  scroll?: ScrollProps,\n  dataSource?: Array<any>,\n  isTreeTable: boolean,\n  autoCreateKey: boolean,\n  rowKey?: string | Fn,\n  defaultExpandAllRows?: boolean,\n  defaultExpandedRowKeys?: string[],\n  expandedRowKeys?: string[],\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  expandIcon?: Function | VNodeChild | JSX.Element,\n  expandRowByClick?: boolean,\n  expandIconColumnIndex?: number,\n  size?: SizeType,\n  childrenColumnName?: string,\n  \n  // 接口请求对象\n  api?: (...arg: any) => Promise<any>,\n  // 请求之前处理参数\n  beforeFetch?: Fn,\n  // 自定义处理接口返回参数\n  afterFetch?: Fn,\n  // 查询条件请求之前处理\n  handleSearchInfoFn?: Fn,\n  // 请求接口配置\n  fetchSetting?: Partial<FetchSetting>,\n  // 立即请求接口\n  immediate?: boolean,\n  // 在开起搜索表单的时候，如果没有数据是否显示表格\n  emptyDataIsShowTable?: boolean,\n  // 额外的请求参数\n  searchInfo?: Recordable,\n  // 默认的排序参数\n  defSort?: Recordable,\n  // loading加载\n  loading?: boolean,\n  /**\n   * Row's className\n   * @type Function\n  */\n  rowClassName?: <T>(record: TableCustomRecord<T>, index: number) => string,\n\n  /**\n   * `table-layout` attribute of table element\n   * `fixed` when header/columns are fixed, or using `column.ellipsis`\n   *\n   * @see https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout\n   * @version 1.5.0\n   */\n  tableLayout?: 'auto' | 'fixed' | string,\n  showHeader?: boolean,\n  /**\n   * Set props on per header row\n   * @type Function\n   */\n  customHeaderRow?: (column: ColumnProps, index: number) => object,\n  /**\n  * Set props on per row\n  * @type Function\n  */\n  customRow?: (record: any, index: number) => object;\n  /**\n  * Row selection config\n  * @type object\n  */\n  /**\n   * Table footer renderer\n   * @type Function | VNodeChild\n   */\n  footer?: Function | VNodeChild | JSX.Element,\n\n  rowSelection?: TableRowSelection,\n  // 列配置\n  columns: BasicColumn[],\n  // 弹窗cancel事件\n  cancelModal?: (...arg: any) => void\n  // 弹窗ok事件\n  okModal?: (...arg: any) => void,\n  langLocale?: object,\n  locale?: LocaleProps,\n  indentSize: number\n}\n\nexport interface FetchParams {\n  searchInfo?: Recordable;\n  page?: number;\n  sortInfo?: Recordable;\n  filterInfo?: Recordable;\n}\n\nexport interface GetColumnsParams {\n  ignoreIndex?: boolean;\n  ignoreAction?: boolean;\n  sort?: boolean;\n}\n\nexport interface TableActionType {\n  reload: (opt?: FetchParams) => Promise<void>;\n  setSelectedRows: (rows: Recordable[]) => void;\n  getSelectRows: <T = Recordable>() => T[];\n  clearSelectedRowKeys: () => void;\n  expandAll: () => void;\n  expandRows: (keys: string[] | number[]) => void;\n  collapseAll: () => void;\n  getSelectRowKeys: () => string[];\n  deleteSelectRowByKey: (key: string) => void;\n  setPagination: (info: Partial<PaginationProps>) => void;\n  setTableData: <T = Recordable>(values: T[]) => void;\n  updateTableDataRecord: (rowKey: string | number, record: Recordable) => Recordable | void;\n  deleteTableDataRecord: (rowKey: string | number | string[] | number[]) => void;\n  insertTableDataRecord: (record: Recordable, index?: number) => Recordable | void;\n  findTableDataRecord: (rowKey: string | number) => Recordable | void;\n  getColumns: (opt?: GetColumnsParams) => BasicColumn[];\n  setColumns: (columns: Column[]) => void;\n  getDataSource: <T = Recordable>() => T[];\n  getRawDataSource: <T = Recordable>() => T;\n  setLoading: (loading: boolean) => void;\n  setProps: (props: Partial<TableProps>) => void;\n  setSelectedRowKeys: (rowKeys: string[] | number[]) => void;\n  getPaginationRef: () => PaginationProps | boolean;\n  getRowSelection: () => TableRowSelection<Recordable>;\n  emit?: EmitType;\n  updateTableData: (index: number, key: string, value: any) => Recordable;\n  setShowPagination: (show: boolean) => Promise<void>;\n  getShowPagination: () => boolean;\n  clearFilterDropdownRef: (column: Column) => void,\n  setSearchOptions: (searchOptions: SearchOptions) => void,\n  setMultipleAction: (multipleActionOptions: MultipleActionOptions) => void,\n  setFilterColumnRef: (columns: Column[]) => void,\n  setFilterColumnChecked: (colKeys: string[] | number[]) => void,\n  setFilterColumnDisabled: (colKeys: string[] | number[]) => void,\n}\n\n\n// export declare type TableProps = Partial<ExtractPropTypes<typeof tableProps>>","import type { PaginationProps } from '../types/pagination';\n// import type { TableProps } from '../types/table';\nimport { computed, unref, ref, ComputedRef, watch, h } from 'vue';\nimport { PAGE_SIZE } from '../../../constant';\nimport useLocale from '../../../hooks/useLocale'\n\nconst isBoolean = (source:any) => {\n  return Object.prototype.toString.call(source) === '[object Boolean]'\n}\n\nexport function usePagination(refProps: ComputedRef<Recordable>, props: Recordable) {\n  const configRef = ref<PaginationProps>({});\n  const show = ref(true);\n\n  watch(\n    () => props.pagination,\n    (pagination) => {\n      if (!isBoolean(pagination) && pagination) {\n        configRef.value = {\n          ...unref(configRef),\n          // @ts-ignore\n          ...(pagination ?? {}),\n        };\n      }\n    },\n    {\n      deep: true\n    }\n  );\n  const { curLocale } = useLocale()\n  const getPaginationInfo = computed((): PaginationProps | boolean => {\n    const { pagination } = props;\n\n    if (!unref(show) || (isBoolean(pagination) && !pagination)) {\n      return false;\n    }\n\n    return {\n      current: 1,\n      pageSize: PAGE_SIZE,\n      size: 'default',\n      defaultPageSize: PAGE_SIZE,\n      showTotal: (total) => `${curLocale?.total || '共'} ${total} ${curLocale?.item || '条'}`,\n      itemRender: ({type, originalElement}) => {\n        if (type === 'prev') {\n          return h('i', { class: 'sc-ui sc-you' })\n        } else if (type === 'next') {\n          return h('i', { class: 'sc-ui sc-you' })\n        } else {\n          return originalElement\n        }\n  \n      },\n      showSizeChanger: true,\n      // pageSizeOptions: PAGE_SIZE_OPTIONS,\n      showQuickJumper: true,\n      //@ts-ignore\n      ...(isBoolean(pagination) ? {} : pagination),\n      ...unref(configRef),\n    };\n  });\n\n  function setPagination(info: Partial<PaginationProps>) {\n    const paginationInfo = unref(getPaginationInfo);\n    configRef.value = {\n      // @ts-ignore\n      ...(!isBoolean(paginationInfo) ? paginationInfo : {}),\n      ...info,\n    };\n  }\n\n  function getPagination() {\n    return unref(getPaginationInfo);\n  }\n\n  function getShowPagination() {\n    return unref(show);\n  }\n\n  async function setShowPagination(flag: boolean) {\n    show.value = flag;\n  }\n\n  return { getPagination, getPaginationInfo, setShowPagination, getShowPagination, setPagination };\n}\n","import { h } from \"vue\";\nimport type { ComputedRef, Ref } from 'vue';\n// import type { TableProps } from '../types/table';\nimport { computed, unref, ref, toRaw } from 'vue';\nimport { DoubleRightOutlined } from \"@ant-design/icons-vue\"\n\nconst ROW_KEY = 'key'\n\nexport const useTableExpand = (\n  propsRef: ComputedRef<Recordable>,\n  tableData: Ref<Recordable[]>,\n  emit: EmitType\n  ) => {\n  const expandedRowKeys = ref<string[]>([]);\n\n  const getAutoCreateKey = computed(() => {\n    return unref(propsRef).autoCreateKey && !unref(propsRef).rowKey;\n  });\n\n  const getRowKey = computed(() => {\n    const { rowKey } = unref(propsRef);\n    return unref(getAutoCreateKey) ? ROW_KEY : rowKey;\n  });\n\n  const getExpandOption = computed(() => {\n    const { isTreeTable } = unref(propsRef);\n    if (!isTreeTable) return {};\n\n    return {\n      expandedRowKeys: unref(expandedRowKeys),\n      onExpandedRowsChange: (keys: string[]) => {\n        expandedRowKeys.value = keys;\n        emit('expanded-rows-change', keys);\n      },\n    };\n  });\n\n  function expandAll() {\n    const keys = getAllKeys();\n    expandedRowKeys.value = keys;\n  }\n\n  function expandRows(keys: string[]) {\n    const { isTreeTable } = unref(propsRef);\n    if (!isTreeTable) return;\n    expandedRowKeys.value = [...expandedRowKeys.value, ...keys];\n  }\n\n  function getAllKeys(data?: Recordable[]) {\n    const keys: string[] = [];\n    const { childrenColumnName } = unref(propsRef);\n    toRaw(data || unref(tableData)).forEach((item) => {\n      keys.push(item[unref(getRowKey) as string]);\n      const children = item[childrenColumnName || 'children'];\n      if (children?.length) {\n        keys.push(...getAllKeys(children));\n      }\n    });\n    return keys;\n  }\n\n  function collapseAll() {\n    expandedRowKeys.value = [];\n  }\n\n  const expandIconFnc = (props:any) => {\n    const {record, expanded, onExpand } = props;\n    const { isTreeTable } = unref(propsRef);\n    if (isTreeTable) {\n      if (record?.children?.length > 0 || record?.isShowExPandIcon) {\n        return h(DoubleRightOutlined, {\n          // class: `${expanded ? 'icon-downArrow' : 'icon-upArrow'}`,\n          class: `${expanded ? 'icon-upArrow' : ''}`,\n          onClick: (event: Event) => {\n            onExpand(record, event);\n          }\n        })\n      } else {\n        return h('span', {\n          class: `ant-table-row-indent`\n        })\n      }\n    }\n  }\n  return {\n    expandIconFnc, getExpandOption, expandAll, expandRows, collapseAll\n  }\n}","import { ComputedRef, ref, watchEffect, isRef, unref, Ref, watch, nextTick, onMounted, computed} from \"vue\"\nimport { CreateButton, MultipleActionOptions, SearchOptions } from \"../types/table\"\nimport lodash from 'lodash'\n\nimport { isFunction } from \"@vueuse/core\"\n\nconst { cloneDeep } = lodash\nexport function useFilter (\n  propsRef: ComputedRef<Recordable>,\n  selectedRowKeysRef?: Ref<Recordable[]>,\n  fetchParams?: Ref<Recordable>,\n  tableFilter?: ComputedRef<Recordable>,\n  getDataSourceRef?: Ref<Recordable>,\n  props?: Recordable\n  ) {\n  const createButtonOptions = ref<CreateButton>({})\n  const multipleOptions = ref<Recordable>({})\n  const searchOptions = ref<Recordable>({})\n\n  function setMultipleAction (multipleAction: MultipleActionOptions) {\n    // console.log('multipleAction: ', multipleAction);\n    if (!multipleAction) {\n      return multipleAction\n    }\n    const { show, options, triggerMultiple, styleMode, isNotChecked } = cloneDeep(multipleAction)\n    if (!show) {\n      multipleOptions.value = multipleAction\n      return false\n    }\n    const newmMutilpList = options?.map(item => {\n      if (isFunction(item.disabled)) {\n        // @ts-ignore\n        item.disabled = item?.disabled({selectedRowKeysRef: unref(selectedRowKeysRef), ...unref(fetchParams)})\n      }\n      return item\n    })\n    multipleOptions.value = { show, options: newmMutilpList, triggerMultiple, styleMode, isNotChecked }\n  }\n\n  function clearAll () {\n    if (isRef(tableFilter)) {\n      unref(tableFilter).clearAll()\n    }\n  }\n\n  function getMultipleAction () {\n    return unref(multipleOptions)\n  }\n\n  async function setSearchOptions (search:SearchOptions) {\n    if (!search) {\n      return search\n    }\n    const { show, showSelect, typeList } = search\n    if (!show) {\n      searchOptions.value = search\n      return false;\n    }\n    let newTypeList = []\n    if (showSelect) {\n      // @ts-ignore\n      newTypeList = typeList\n      if (isFunction(typeList)) {\n        // @ts-ignore\n        newTypeList = typeList()\n      }\n      searchOptions.value = { ...search, typeList: [], loading: true}\n      if (Object.prototype.toString.call(typeList) === '[object Promise]') {\n        // @ts-ignore\n        newTypeList = await typeList\n      }\n      // if (isRef(newTypeList)) {\n      //   // console.log('unref(newTypeList): ', unref(newTypeList));\n      //   //@ts-ignore\n      //   isArray(unref(newTypeList)) && (newTypeList = unref(newTypeList).map(item => {\n      //       if (isFunction(item.disabled)) {\n      //         // @ts-ignore\n      //         item.disabled = item?.disabled({ tableRef: unref(tableRef), selectedRowKeysRef: unref(selectedRowKeysRef)})\n      //       }\n      //       return item\n      //     })\n      //   )\n      // }\n    }\n    searchOptions.value = { ...search, typeList: newTypeList, loading: false}\n  }\n\n  function getSearchOptions () {\n    return unref(searchOptions)\n  }\n  \n  const isShowFilter = computed(() => {\n    const isShow = (unref(propsRef)?.activeOptions?.reload?.show \n    || unref(propsRef)?.activeOptions?.columnDialog?.show\n    || unref(propsRef)?.createButton?.show\n    || unref(propsRef)?.activeOptions?.download?.show\n    || unref(propsRef)?.multipleOptions?.show \n    || unref(propsRef)?.searchOptions?.show)\n    return isShow\n  })\n\n  // const isShowLeftFilter = computed(() => {\n  //   const isShow = (unref(propsRef)?.createButtonOptions?.show\n  //   || unref(propsRef)?.multipleOptions?.show )\n  //   return isShow\n  // })\n  const isActiveFilter = computed(() => {\n    const isShow = (unref(propsRef)?.activeOptions?.reload?.show \n    || unref(propsRef)?.activeOptions?.columnDialog?.show\n    || unref(propsRef)?.activeOptions?.download?.show)\n    return isShow ?? false\n  })\n\n  watch(\n    [() => selectedRowKeysRef?.value],\n    () => {\n      nextTick(() => {\n        setMultipleAction(props?.multipleOptions as MultipleActionOptions)\n      })\n    },\n    { deep: true }\n  )\n\n  watch(() => props?.multipleOptions?.show, () => {\n    setMultipleAction(props?.multipleOptions as MultipleActionOptions)\n  })\n\n  onMounted(() => {\n    setMultipleAction(props?.multipleOptions as MultipleActionOptions)\n  })\n\n  watchEffect(() => {\n    createButtonOptions.value = props?.createButtonOptions\n  })\n\n  watchEffect(() => {\n    setSearchOptions(props?.searchOptions as SearchOptions)\n  })\n\n  return {\n    createButtonOptions,\n    multipleOptions,\n    searchOptions,\n    isShowFilter,\n    isActiveFilter,\n    setSearchOptions,\n    getSearchOptions,\n    setMultipleAction,\n    getMultipleAction,\n    clearAll\n  }\n}","import { isFunction } from '../../../utils/is';\nimport type { TableRowSelection } from '../types/table';\nimport { computed, ComputedRef, nextTick, Ref, ref, toRaw, unref, watch } from 'vue';\nimport { ROW_KEY, SELECTION_ROW_KEY } from '../../../constant';\n// import omit from 'lodash/omit'\nimport lodash from 'lodash'\nimport { findNodeAll } from '../../../utils/treeHelper'\n\nconst { omit } = lodash\n\nexport function useRowSelection(\n  propsRef: ComputedRef<Recordable>,\n  tableData: Ref<Recordable[]>,\n  emit: EmitType,\n  props: Recordable\n) {\n  const selectedRowKeysRef = ref<string[]>([]);\n  const selectedRowRef = ref<Recordable[]>([]);\n\n  const getRowSelectionRef = computed((): TableRowSelection | null => {\n    const { rowSelection } = props;\n    if (!rowSelection) {\n      return null;\n    }\n\n    return {\n      selectedRowKeys: unref(selectedRowKeysRef),\n      onChange: (selectedRowKeys: string[]) => {\n        setSelectedRowKeys(selectedRowKeys)\n      },\n      ...omit(rowSelection, ['onChange']),\n    };\n  });\n\n  // watch(\n  //   () => unref(propsRef).rowSelection?.selectedRowKeys,\n  //   (v: string[]) => {\n  //     setSelectedRowKeys(v);\n  //   },\n  // );\n\n  watch(\n    () => selectedRowKeysRef.value,\n    () => {\n      nextTick(() => {\n        const { rowSelection } = props;\n        if (rowSelection) {\n          const { onChange } = rowSelection;\n          if (onChange && isFunction(onChange)) onChange(getSelectRowKeys(), getSelectRows());\n        }\n        emit('selection-change', {\n          keys: getSelectRowKeys(),\n          rows: getSelectRows(),\n        });\n      });\n    },\n    { deep: true },\n  );\n\n  const getAutoCreateKey = computed(() => {\n    return props.autoCreateKey && !props.rowKey;\n  });\n\n  const getRowKey = computed(() => {\n    const { rowKey } = props;\n    return unref(getAutoCreateKey) ? ROW_KEY : isFunction(rowKey) ? SELECTION_ROW_KEY : rowKey;\n  });\n\n  function setSelectedRowKeys(rowKeys: string[]) {\n    selectedRowKeysRef.value = rowKeys;\n    const allSelectedRows = findNodeAll(\n      toRaw(unref(tableData)).concat(toRaw(unref(selectedRowRef))),\n      (item) => rowKeys.includes(item[unref(getRowKey) as string]),\n      {\n        children: props.childrenColumnName ?? 'children',\n      },\n    );\n    const trueSelectedRows: any[] = [];\n    rowKeys.forEach((key: string) => {\n      const found = allSelectedRows.find((item) => item[unref(getRowKey) as string] === key);\n      found && trueSelectedRows.push(found);\n    });\n    selectedRowRef.value = trueSelectedRows;\n  }\n\n  function setSelectedRows(rows: Recordable[]) {\n    selectedRowRef.value = rows;\n  }\n\n  function clearSelectedRowKeys() {\n    selectedRowRef.value = [];\n    selectedRowKeysRef.value = [];\n  }\n\n  function deleteSelectRowByKey(key: string) {\n    const selectedRowKeys = unref(selectedRowKeysRef);\n    const index = selectedRowKeys.findIndex((item) => item === key);\n    if (index !== -1) {\n      unref(selectedRowKeysRef).splice(index, 1);\n    }\n  }\n\n  function getSelectRowKeys() {\n    return unref(selectedRowKeysRef);\n  }\n\n  function getSelectRows<T = Recordable>() {\n    // const ret = toRaw(unref(selectedRowRef)).map((item) => toRaw(item));\n    const { rowKey } = props;\n    return unref(selectedRowRef).map((item: any) => {\n      if (isFunction(rowKey)) {\n        Reflect.deleteProperty(item, SELECTION_ROW_KEY)\n      }\n      return item\n    }) as T[];\n  }\n\n  function getRowSelection() {\n    return unref(getRowSelectionRef)!;\n  }\n\n  return {\n    selectedRowKeysRef,\n    selectedRowRef,\n    getRowSelection,\n    getRowSelectionRef,\n    getSelectRows,\n    getSelectRowKeys,\n    setSelectedRowKeys,\n    clearSelectedRowKeys,\n    deleteSelectRowByKey,\n    setSelectedRows,\n  };\n}\n","import { ref, ComputedRef, unref, computed, watch } from 'vue'\n// import type { TableProps } from '../types/table'\n\nexport function useLoading(props: ComputedRef<Recordable>) {\n  const loadingRef = ref(unref(props).loading);\n\n  watch(\n    () => unref(props).loading,\n    (loading) => {\n      loadingRef.value = loading;\n    },\n  );\n\n  const getLoading = computed(() => unref(loadingRef));\n\n  function setLoading(loading: boolean) {\n    loadingRef.value = loading;\n  }\n\n  return { getLoading, setLoading };\n}\n","import { ref, watch } from 'vue';\nimport { tryOnUnmounted } from '@vueuse/core';\nimport { isFunction } from '../utils/is';\n\nexport function useTimeoutFn(handle: Fn<any>, wait: number, native = false) {\n  if (!isFunction(handle)) {\n    throw new Error('handle is not Function!');\n  }\n\n  const { readyRef, stop, start } = useTimeoutRef(wait);\n  if (native) {\n    handle();\n  } else {\n    watch(\n      readyRef,\n      (maturity) => {\n        maturity && handle();\n      },\n      { immediate: false },\n    );\n  }\n  return { readyRef, stop, start };\n}\n\nexport function useTimeoutRef(wait: number) {\n  const readyRef = ref(false);\n\n  let timer: TimeoutHandle;\n  function stop(): void {\n    readyRef.value = false;\n    timer && window.clearTimeout(timer);\n  }\n  function start(): void {\n    stop();\n    timer = setTimeout(() => {\n      readyRef.value = true;\n    }, wait);\n  }\n\n  start();\n\n  tryOnUnmounted(stop);\n\n  return { readyRef, stop, start };\n}\n","import type { ComputedRef } from \"vue\"\nimport { ref, watchEffect, unref, Ref, computed, watch, onMounted, reactive } from \"vue\"\n\nimport { FETCH_SETTING, PAGE_SIZE } from '../../../constant/index'\nimport { isFunction, isBoolean } from '../../../utils/is'\nimport type { PaginationProps } from '../types/pagination'\nimport { FetchParams, SorterResult } from '../types/table'\nimport { buildUUID } from '../../../utils/uuid'\nimport { useTimeoutFn } from '../../../hooks/useTimeoutFn'\nimport { SELECTION_ROW_KEY } from '../../../constant'\n// import cloneDeep from 'lodash/cloneDeep'\n// import get from 'lodash/get'\n// import merge from 'lodash/merge'\nimport lodash from 'lodash'\n\nconst { cloneDeep, get, merge } = lodash\ninterface ActionType {\n  getPaginationInfo: ComputedRef<boolean | PaginationProps>;\n  setPagination: (info: Partial<PaginationProps>) => void;\n  setLoading: (loading: boolean) => void;\n  clearSelectedRowKeys: () => void;\n  tableData: Ref<Recordable[]>;\n}\n\ninterface SearchState {\n  sortInfo: Recordable;\n  filterInfo: Record<string, string[]>;\n}\n\nconst ROW_KEY = 'key'\n\nexport const useDataSource = (\n  propsRef: ComputedRef<Recordable>,\n  {\n    getPaginationInfo,\n    setPagination,\n    setLoading,\n    clearSelectedRowKeys,\n    tableData,\n  }: ActionType,\n  emit: EmitType,\n  fetchParams: ComputedRef<Recordable>\n) => {\n\n  const searchState = reactive<SearchState>({\n    sortInfo: {},\n    filterInfo: {},\n  });\n  const dataSourceRef = ref<Recordable[]>([])\n  const rawDataSourceRef = ref<Recordable>({})\n\n  const pagination = ref<Recordable>({})\n  const sorter = ref<Recordable>({})\n\n  const handle = (data: any) => {\n    emit('handleTd', data)\n  }\n  const handleEventComp = ['handle', 'address', 'operation']\n\n  const getEvent = (type:string) => {\n    if (handleEventComp.includes(type)) {\n      return { handle }\n    } else {\n      return {}\n    }\n  }\n\n  function handleTableChange(\n    pagination: PaginationProps,\n    filters: Partial<Recordable<string[]>>,\n    sorter: SorterResult,\n  ) {\n    const { clearSelectOnPageChange, sortFn, filterFn } = unref(propsRef);\n    if (clearSelectOnPageChange) {\n      clearSelectedRowKeys();\n    }\n    setPagination(pagination);\n\n    const params: Recordable = {};\n    if (sorter && isFunction(sortFn)) {\n      const sortInfo = sortFn(sorter);\n      searchState.sortInfo = sortInfo;\n      params.sortInfo = sortInfo;\n    }\n\n    if (filters && isFunction(filterFn)) {\n      const filterInfo = filterFn(filters);\n      searchState.filterInfo = filterInfo;\n      params.filterInfo = filterInfo;\n    }\n    fetch(params);\n  }\n  \n  function setTableKey(items: any[]) {\n    if (!items || !Array.isArray(items)) return;\n    items.forEach((item) => {\n      if (!item[ROW_KEY]) {\n        item[ROW_KEY] = buildUUID();\n      }\n      if (item.children && item.children.length) {\n        setTableKey(item.children);\n      }\n    });\n  }\n\n  const getAutoCreateKey = computed(() => {\n    return unref(propsRef).autoCreateKey && !unref(propsRef).rowKey;\n  });\n\n  const getRowKey = computed(() => {\n    const { rowKey } = unref(propsRef);\n    return unref(getAutoCreateKey) ? ROW_KEY : rowKey;\n  });\n\n  const getDataSourceRef = computed(() => {\n    const dataSource = unref(dataSourceRef);\n    if (!dataSource || dataSource.length === 0) {\n      return unref(dataSourceRef);\n    }\n    if (unref(getAutoCreateKey)) {\n      const firstItem = dataSource[0];\n      const lastItem = dataSource[dataSource.length - 1];\n\n      if (firstItem && lastItem) {\n        if (!firstItem[ROW_KEY] || !lastItem[ROW_KEY]) {\n          const data = cloneDeep(unref(dataSourceRef));\n          data.forEach((item) => {\n            if (!item[ROW_KEY]) {\n              item[ROW_KEY] = buildUUID();\n            }\n            if (item.children && item.children.length) {\n              setTableKey(item.children);\n            }\n          });\n          dataSourceRef.value = data;\n        }\n      }\n    }\n    return unref(dataSourceRef);\n  });\n\n  function updateTableDataRecord(\n    rowKey: string | number,\n    record: Recordable,\n  ): Recordable | undefined {\n    const row = findTableDataRecord(rowKey);\n\n    if (row) {\n      //@ts-ignore\n      for (const field in row) {\n        //@ts-ignore\n        if (Reflect.has(record, field)) row[field] = record[field];\n      }\n      for (const field in record) {\n        if (!Reflect.has(record, field)) {\n          //@ts-ignore\n          row[field] = record[field]\n        }\n      }\n      return row\n    }\n  }\n\n  async function updateTableData(index: number, key: string, value: any) {\n    const record = dataSourceRef.value[index];\n    if (record) {\n      dataSourceRef.value[index][key] = value;\n    }\n    return dataSourceRef.value[index];\n  }\n\n  function deleteTableDataRecord(rowKey: string | number | string[] | number[]) {\n    if (!dataSourceRef.value || dataSourceRef.value.length == 0) return;\n    const rowKeyName = unref(getRowKey);\n    if (!rowKeyName) return;\n    const rowKeys = !Array.isArray(rowKey) ? [rowKey] : rowKey;\n    for (const key of rowKeys) {\n      let index: number | undefined = dataSourceRef.value.findIndex((row) => {\n        let targetKeyName: string;\n        if (typeof rowKeyName === 'function') {\n          targetKeyName = rowKeyName(row);\n        } else {\n          targetKeyName = rowKeyName as string;\n        }\n        return row[targetKeyName] === key;\n      });\n      if (index >= 0) {\n        dataSourceRef.value.splice(index, 1);\n      }\n      index = unref(propsRef).dataSource?.findIndex((row) => {\n        let targetKeyName: string;\n        if (typeof rowKeyName === 'function') {\n          targetKeyName = rowKeyName(row);\n        } else {\n          targetKeyName = rowKeyName as string;\n        }\n        return row[targetKeyName] === key;\n      });\n      if (typeof index !== 'undefined' && index !== -1)\n        unref(propsRef).dataSource?.splice(index, 1);\n    }\n    setPagination({\n      total: unref(propsRef).dataSource?.length,\n    });\n  }\n\n  function insertTableDataRecord(record: Recordable, index: number): Recordable | undefined {\n    // if (!dataSourceRef.value || dataSourceRef.value.length == 0) return;\n    index = index ?? dataSourceRef.value?.length;\n    unref(dataSourceRef).splice(index, 0, record);\n    return unref(dataSourceRef);\n  }\n\n  function findTableDataRecord(rowKey: string | number) {\n    if (!dataSourceRef.value || dataSourceRef.value.length == 0) return;\n\n    const rowKeyName = unref(getRowKey);\n    if (!rowKeyName) return;\n\n    const { childrenColumnName = 'children' } = unref(propsRef);\n\n    const findRow = (array: any[]) => {\n      let ret;\n      array.some(function iter(r) {\n        if (typeof rowKeyName === 'function') {\n          if ((rowKeyName(r) as string) === rowKey) {\n            ret = r;\n            return true;\n          }\n        } else {\n          if (Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey) {\n            ret = r;\n            return true;\n          }\n        }\n        return r[childrenColumnName] && r[childrenColumnName].some(iter);\n      });\n      return ret;\n    };\n\n    // const row = dataSourceRef.value.find(r => {\n    //   if (typeof rowKeyName === 'function') {\n    //     return (rowKeyName(r) as string) === rowKey\n    //   } else {\n    //     return Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey\n    //   }\n    // })\n    return findRow(dataSourceRef.value);\n  }\n\n  function setTableData<T = Recordable>(values: T[]) {\n    //@ts-ignore\n    dataSourceRef.value = values;\n  }\n\n  function getDataSource<T = Recordable>() {\n    return getDataSourceRef.value as T[];\n  }\n\n  function getRawDataSource<T = Recordable>() {\n    return rawDataSourceRef.value as T;\n  }\n  // @ts-ignore\n  async function fetch(opt?: FetchParams) {\n    const {\n      api,\n      searchInfo,\n      defSort,\n      fetchSetting,\n      beforeFetch,\n      afterFetch,\n      pagination,\n      rowKey\n    } = unref(propsRef);\n    if (!api || !isFunction(api)) return;\n    try {\n      setLoading(true);\n      const { pageField, sizeField, listField, totalField } = Object.assign(\n        {},\n        FETCH_SETTING,\n        fetchSetting,\n      );\n      let pageParams: Recordable = {};\n\n      const { current = 1, pageSize = PAGE_SIZE } = unref(getPaginationInfo) as PaginationProps;\n\n      if ((isBoolean(pagination) && !pagination) || isBoolean(getPaginationInfo)) {\n        pageParams = {};\n      } else {\n        pageParams[pageField] = (opt && opt.page) || current;\n        pageParams[sizeField] = pageSize;\n      }\n\n      const { sortInfo = {}, filterInfo } = searchState;\n\n      let params: Recordable = merge(\n        pageParams,\n        // useSearchForm ? getFieldsValue() : {},\n        searchInfo,\n        opt?.searchInfo ?? {},\n        defSort,\n        sortInfo,\n        filterInfo,\n        opt?.sortInfo ?? {},\n        opt?.filterInfo ?? {},\n      );\n      if (beforeFetch && isFunction(beforeFetch)) {\n        params = (await beforeFetch(params, unref(fetchParams))) || params;\n      }\n\n      const res = await api(params);\n      rawDataSourceRef.value = res;\n\n      const isArrayResult = Array.isArray(res);\n\n      let resultItems: Recordable[] = isArrayResult ? res : get(res, listField);\n      const resultTotal: number = isArrayResult ? res.length : get(res, totalField);\n\n      // 假如数据变少，导致总页数变少并小于当前选中页码，通过getPaginationRef获取到的页码是不正确的，需获取正确的页码再次执行\n      if (resultTotal) {\n        const currentTotalPage = Math.ceil(resultTotal / pageSize);\n        if (current > currentTotalPage) {\n          setPagination({\n            current: currentTotalPage,\n          });\n          return await fetch(opt);\n        }\n      }\n\n      if (afterFetch && isFunction(afterFetch)) {\n        resultItems = (await afterFetch(resultItems)) || resultItems;\n      }\n      dataSourceRef.value = resultItems.map((item: any) => {\n        if (isFunction(rowKey)) {\n          item[SELECTION_ROW_KEY] = rowKey(item)\n        }\n        return item\n      });\n      setPagination({\n        total: resultTotal || 0,\n      });\n      if (opt && opt.page) {\n        setPagination({\n          current: opt.page || 1,\n        });\n      }\n      emit('fetch-success', {\n        items: unref(resultItems),\n        total: resultTotal,\n      });\n      return resultItems;\n    } catch (error) {\n      emit('fetch-error', error);\n      dataSourceRef.value = [];\n      setPagination({\n        total: 0,\n      });\n    } finally {\n      setLoading(false);\n    }\n  }\n\n  async function reload(opt?: FetchParams) {\n    return await fetch(opt);\n  }\n\n  onMounted(() => {\n    useTimeoutFn(() => {\n      unref(propsRef).immediate && fetch();\n    }, 16);\n  });\n\n  watchEffect(() => {\n    tableData.value = unref(dataSourceRef)\n  })\n  watch(\n    () => unref(propsRef).dataSource,\n    () => {\n      const { dataSource, api, rowKey } = unref(propsRef);\n      !api && dataSource && (dataSourceRef.value = dataSource.map((item:any) => {\n        if (isFunction(rowKey)) {\n          item[SELECTION_ROW_KEY] = rowKey(item)\n        }\n        return item\n      }));\n    },\n    {\n      immediate: true,\n      deep: true\n    },\n  )\n  return {\n    getDataSourceRef,\n    getRowKey,\n    getAutoCreateKey,\n    pagination,\n    sorter,\n    getEvent,\n    getDataSource,\n    handleTableChange,\n    getRawDataSource,\n    setTableData,\n    fetch,\n    reload,\n    updateTableData,\n    updateTableDataRecord,\n    deleteTableDataRecord,\n    insertTableDataRecord,\n    findTableDataRecord,\n  }\n}","\nimport { ComputedRef, ref, Ref, onMounted, unref, watch, nextTick } from \"vue\"\n\n// import { isArray, isFunction } from '../../../utils/is'\nimport type { ActionProps as ActionOptions } from '../component/TableAction.vue'\n// import { TableProps } from \"../types/table\"\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\n// const { cloneDeep } = pkg\n\nconst { cloneDeep } = lodash\n\nexport function useActions (\n  propsRef: ComputedRef<Recordable>,\n  selectedRowKeysRef?: Ref<Recordable[]>,\n  ) {\n    const actionsOptions = ref<Recordable>({})\n\n    function setActionOptions (Options: ActionOptions) {\n      if (!Options) {\n        return false\n      }\n      const { actions } = cloneDeep(Options)\n      // const newActions = flapSetItem(actions as Array<ActionItemProps>)\n      actionsOptions.value = { ...Options, actions: actions }\n    }\n    watch(\n      [() => selectedRowKeysRef],\n      () => {\n        nextTick(() => {\n          setActionOptions(unref(propsRef).actionsOptions as ActionOptions)\n        })\n      },\n      { deep: true }\n    )\n\n    onMounted(() => {\n      setActionOptions(unref(propsRef).actionsOptions as ActionOptions)\n    })\n  return {\n    actionsOptions\n  }  \n}","import { ref, Ref, unref, computed, toRaw, watchEffect } from 'vue'\n// import cloneDeep from 'lodash/cloneDeep'\nimport lodash from 'lodash'\n\nimport { Column, FilterItem } from '../types/column'\nimport { isArray, isFunction } from '../../../utils'\nimport { findNode } from '../../../utils/treeHelper'\nimport useLocale from '../../../hooks/useLocale'\n\nconst { cloneDeep } = lodash\nexport interface GetColumnsParams {\n  ignoreIndex?: boolean;\n  ignoreAction?: boolean;\n  sort?: boolean;\n}\n\nexport function useColumn (\n  propsRef: Ref<Recordable>,\n  fetchParams?: Ref<Recordable>,\n  props?: Recordable\n) {\n  const customComponentKey = ref<string[]>(['tdCopy', 'tdHandle', 'tdEllipsis', 'tdStatus'])\n  const customComponentHeaderKey = ref<string[]>(['thDescribe', 'thUnit'])\n  const columnsRef = ref(unref(propsRef).columns) as unknown as Ref<Column[]>\n  const getColumnRef = ref()\n  const { antLocale } = useLocale()\n  const adapterColumnFunc = (columns: Column[]) => {\n    const newColumns = columns?.map((item) => {\n      if (item?.type?.componentName) {\n        item.slots = {\n          ...item.slots,\n          customRender: item.type.componentName\n        }\n      }\n      if (item?.titleType?.componentName) {\n        item.slots = {\n          ...item.slots,\n          title: item.titleType.componentName\n        }\n      }\n      if (item.filterList) {\n        if (isFunction(item.filterList)) {\n          item.filterList = item.filterList({ propsRef: unref(propsRef), fetchParams: unref(fetchParams) })\n        }\n        item.slots = {\n          ...item.slots,\n          filterDropdown: 'filterDropdown',\n          filterIcon: 'filterIcon',\n        }\n        item.filtered =  item.filtered ?? true\n      }\n      if (!item.filterList && item.filters && item.filters?.length) {\n        item.filterList = (item.filters || [])?.map(item => {\n          return {\n            label: item.text,\n            // value: item.value,\n            key: item.value\n          }\n        })\n        item.slots = {\n          ...item.slots,\n          filterDropdown: 'filterDropdown',\n          filterIcon: 'filterIcon'\n        }\n        item.filtered =  item.filtered ?? true\n      }\n      if (item.filteredValue && isArray(item?.filterList)) {\n        item.filterSelected = item?.filteredValue?.map(_item => {\n          const newItem = findNode(item?.filterList || [], (node:FilterItem) => node.key === _item, { key: 'key' })\n          return newItem ? newItem : {}\n        })\n      }\n      if (antLocale?.locale === 'en') {\n        item.width = item.enWidth || item.width\n      }\n      // console.log('item: ', item);\n      return item\n    })\n    getColumnRef.value = newColumns\n    return newColumns\n  }\n  const filterColumn = ref(unref(propsRef).columnFilterList.length ? unref(propsRef).columnFilterList : unref(getColumnRef))\n  adapterColumnFunc(unref(columnsRef))\n  const getFilterDropdownRef = computed(() => {\n    return filterColumn.value\n  })\n  watchEffect(() => {\n    columnsRef.value = (props?.columns || [])?.map((item: any) => item)\n    filterColumn.value = (props?.columns || [])?.map((item: any) => item)\n    adapterColumnFunc(unref(columnsRef))\n  })\n\n  function setFilterDropdownRef (column:Column, filterItem: FilterItem[]) {\n    const columns = unref(filterColumn)?.map((item: Column) => {\n      if (item.dataIndex === column.dataIndex) {\n        item.filterSelected = filterItem\n      }\n      return item\n    })\n    filterColumn.value = columns\n  }\n\n  function clearFilterDropdownRef (column: Column) {\n    const columns = unref(filterColumn)\n    columns.forEach((item: Column) => {\n      if (item.dataIndex === column.dataIndex) {\n        item.filterSelected = []\n      }\n    })\n    filterColumn.value = columns\n  }\n\n  function clearFilterAllDropdownRef () {\n    const columns = unref(filterColumn)\n    columns.forEach((item: Column) => {\n      item.filterSelected = []\n    })\n    filterColumn.value = columns\n  }\n\n  const getFetchFilter = computed(() => {\n    const filter = {}\n    const columns = unref(filterColumn)\n    columns.forEach((item: Column) => {\n      if (item.filterSelected?.length) {\n        // @ts-ignore\n        filter[item.dataIndex] = item.filterSelected?.map(item => item.key)\n      }\n    })\n    return filter\n  })\n\n  function setColumns (columns: Column[], isSetFilter?: boolean) {\n    columnsRef.value = columns\n    if (isSetFilter) {\n      filterColumn.value = columns\n    }\n  }\n\n  function getRowClassName(record: any, index: number) {\n    const { rowClassName } = unref(propsRef);\n    const classNames: string[] = [];\n    if (record.disabled) {\n      classNames.push('table-disabled')\n    }\n    if (record?.children?.length) {\n      classNames.push('table-expandedRow')\n    }\n    if (rowClassName && isFunction(rowClassName)) {\n      classNames.push(rowClassName(record, index));\n    }\n    return classNames.filter((cls) => !!cls).join(' ');\n  }\n\n  const thColumn = computed(() => {\n    const newColumn = cloneDeep(unref(getFilterColumnRef)?.filter((item:Column) => !!item.titleType))\n    return newColumn\n  })\n\n  const getColumnsRef = computed(() => {\n    const columns = cloneDeep(unref(getFilterColumnRef))?.filter((item: Column) => item.checked)\n    // console.log('filterColumn: ', columns);\n    return columns\n  })\n\n  const getFilterColumnRef = computed(() => {\n    // console.log('filterColumn: ', filterColumn, cloneDeep(unref(filterColumn)));\n    const columns = cloneDeep(unref(filterColumn))?.map((item: Column) => {\n      if (!item.default) {\n        // @ts-ignore\n        item.label = item.title || item.label\n        if (item.titleType) {\n          item.label = item.titleType.props.text\n          // @ts-ignore\n          item.describe =  item.titleType.componentName.indexOf('thUnit') > -1 ? item.titleType.props.unit : ''\n        }\n        // @ts-ignore\n        item.value = item.key\n        if (!item.key) {\n          item.key = item.dataIndex\n          // @ts-ignore\n          item.value = item.dataIndex\n        }\n        item.disabled = item.disabled || false\n        if (item.checked === false) {\n          item.checked = false\n        } else {\n          item.checked = true\n        }\n        item.default = true\n      }\n      return item\n    })\n    // console.log('columns: ', columns);\n    return columns || []\n  })\n\n  const getTypeComponent = (type:string) => {\n    // 预设组件\n    if (unref(customComponentKey).includes(type)) {\n      return type.charAt(0).toLocaleUpperCase() + type.slice(1)\n    } else {\n      // 不识别组件\n      return type\n    }\n  }\n\n  const getTitleComponent = (type:string) => {\n    // 预设组件\n    if (unref(customComponentHeaderKey).includes(type)) {\n      return type.charAt(0).toLocaleUpperCase() + type.slice(1)\n    } else {\n      // 不识别组件\n      return type\n    }\n  }\n\n  function getColumns(opt?: GetColumnsParams) {\n    const { ignoreIndex, ignoreAction } = opt || {};\n    let columns = toRaw(unref(getColumnRef));\n    if (ignoreIndex) {\n      columns = columns.filter((item) => item.flag !== 'INDEX');\n    }\n    if (ignoreAction) {\n      columns = columns.filter((item) => item.flag !== 'ACTION');\n    }\n\n    return columns;\n  }\n\n  function setFilterColumnDisabled (columnIds: string[]) {\n    if (!isArray(columnIds)) {\n      return false\n    }\n    const columns = unref(filterColumn).map((item: Column) => {\n      // @ts-ignore\n      item.disabled = columnIds.includes(item.key)\n      return item\n    })\n    filterColumn.value = columns\n  }\n\n  function setFilterColumnChecked (columnIds: string[]) {\n    if (!isArray(columnIds)) {\n      return false\n    }\n    const columns = unref(getFilterColumnRef).map((item: Column) => {\n      // @ts-ignore\n      item.checked = columnIds.includes(item.key)\n      return item\n    })\n    filterColumn.value = columns\n  }\n\n  function setFilterColumnRef (columns: Column[]) {\n    filterColumn.value = columns || []\n  }\n\n\n\n  return {\n    getColumnRef,\n    getFilterColumnRef,\n    getColumnsRef,\n    thColumn,\n    getFilterDropdownRef,\n    getFetchFilter,\n    customComponentKey,\n    customComponentHeaderKey,\n    // showSortTitle,\n    getRowClassName,\n    getTypeComponent,\n    getTitleComponent,\n    getColumns,\n    setFilterDropdownRef,\n    clearFilterDropdownRef,\n    clearFilterAllDropdownRef,\n    setColumns,\n    setFilterColumnRef,\n    setFilterColumnChecked,\n    setFilterColumnDisabled\n  }\n} ","import { tryOnMounted, tryOnUnmounted, useDebounceFn } from '@vueuse/core';\n\ninterface WindowSizeOptions {\n  once?: boolean;\n  immediate?: boolean;\n  listenerOptions?: AddEventListenerOptions | boolean;\n}\n\nexport function useWindowSizeFn<T>(fn: Fn<T>, wait = 150, options?: WindowSizeOptions) {\n  let handler = () => {\n    fn();\n  };\n  const handleSize = useDebounceFn(handler, wait);\n  handler = handleSize;\n\n  const start = () => {\n    if (options && options.immediate) {\n      handler();\n    }\n    window.addEventListener('resize', handler);\n  };\n\n  const stop = () => {\n    window.removeEventListener('resize', handler);\n  };\n\n  tryOnMounted(() => {\n    start();\n  });\n\n  tryOnUnmounted(() => {\n    stop();\n  });\n  return [start, stop];\n}\n","import { nextTick, onMounted, onActivated } from 'vue';\n\nexport function onMountedOrActivated(hook: Fn) {\n  let mounted: boolean;\n\n  onMounted(() => {\n    hook();\n    nextTick(() => {\n      mounted = true;\n    });\n  });\n\n  onActivated(() => {\n    if (mounted) {\n      hook();\n    }\n  });\n}","import type { TableProps as BasicTableProps, TableRowSelection, BasicColumn } from '../types/table'\nimport { Ref, ComputedRef, ref, computed, unref, nextTick, watch } from 'vue'\nimport { getViewportOffset } from '../../../utils/domUtils'\nimport { isBoolean } from '../../../utils/is'\nimport { useWindowSizeFn } from '../../../hooks/event/useWindowSizeFn'\n// import { useModalContext } from '/@/components/BzModal';\nimport { onMountedOrActivated } from '../../../hooks/core/onMountedOrActivated';\nimport { useDebounceFn } from '@vueuse/core';\n\nexport function useTableScroll(\n  propsRef: ComputedRef<BasicTableProps>,\n  tableElRef: Ref<ComponentRef>,\n  columnsRef: ComputedRef<BasicColumn[]>,\n  rowSelectionRef: ComputedRef<TableRowSelection | null>,\n  getDataSourceRef: ComputedRef<Recordable[]>,\n  wrapRef: Ref<HTMLElement | null>,\n  formRef?: Ref<ComponentRef>,\n) {\n  const tableHeightRef: Ref<Nullable<number | string>> = ref(167);\n  // const modalFn = useModalContext();\n\n  // Greater than animation time 280\n  const debounceRedoHeight = useDebounceFn(redoHeight, 100);\n\n  const getCanResize = computed(() => {\n    const { canResize, scroll } = unref(propsRef);\n    \n    \n    return canResize && !(scroll || {}).y;\n  });\n\n  watch(\n    () => [unref(getCanResize), unref(getDataSourceRef)?.length],\n    () => {\n      debounceRedoHeight();\n    },\n    {\n      flush: 'post',\n    },\n  );\n\n  function redoHeight() {\n    nextTick(() => {\n      calcTableHeight();\n    });\n  }\n\n  function setHeight(height: number) {\n    tableHeightRef.value = height;\n    //  Solve the problem of modal adaptive height calculation when the form is placed in the modal\n    // modalFn?.redoModalHeight?.();\n  }\n\n  // No need to repeat queries\n  let paginationEl: HTMLElement | null;\n  let footerEl: HTMLElement | null;\n  let bodyEl: HTMLElement | null;\n\n  async function calcTableHeight() {\n    const { resizeHeightOffset, pagination, maxHeight, isCanResizeParent } = unref(propsRef);\n    const tableData = unref(getDataSourceRef);\n\n    const table = unref(tableElRef);\n    if (!table) return;\n\n    const tableEl: Element = table.$el;\n    if (!tableEl) return;\n\n    if (!bodyEl) {\n      bodyEl = tableEl.querySelector('.ant-table-body');\n      if (!bodyEl) return;\n    }\n    \n    const hasScrollBarY = bodyEl.scrollHeight > bodyEl.clientHeight;\n    const hasScrollBarX = bodyEl.scrollWidth > bodyEl.clientWidth;\n\n    if (hasScrollBarY) {\n      tableEl.classList.contains('hide-scrollbar-y') &&\n        tableEl.classList.remove('hide-scrollbar-y');\n    } else {\n      !tableEl.classList.contains('hide-scrollbar-y') && tableEl.classList.add('hide-scrollbar-y');\n    }\n\n    if (hasScrollBarX) {\n      tableEl.classList.contains('hide-scrollbar-x') &&\n        tableEl.classList.remove('hide-scrollbar-x');\n    } else {\n      !tableEl.classList.contains('hide-scrollbar-x') && tableEl.classList.add('hide-scrollbar-x');\n    }\n\n    bodyEl!.style.height = 'unset';\n\n    if (!unref(getCanResize) || !unref(tableData) || tableData.length === 0) return;\n\n    await nextTick();\n    // Add a delay to get the correct bottomIncludeBody paginationHeight footerHeight headerHeight\n\n    const headEl = tableEl.querySelector('.ant-table-thead ');\n    \n\n    if (!headEl) return;\n\n    // Table height from bottom height-custom offset\n    let paddingHeight = 32;\n    // Pager height\n    let paginationHeight = 2;\n    if (!isBoolean(pagination)) {\n      paginationEl = tableEl.querySelector('.ant-pagination') as HTMLElement;\n      if (paginationEl) {\n        const offsetHeight = paginationEl.offsetHeight;\n        paginationHeight += offsetHeight || 0;\n      } else {\n        // TODO First fix 24\n        paginationHeight += 24;\n      }\n    } else {\n      paginationHeight = -8;\n    }\n\n    let footerHeight = 0;\n    if (!isBoolean(pagination)) {\n      if (!footerEl) {\n        footerEl = tableEl.querySelector('.ant-table-footer') as HTMLElement;\n      } else {\n        const offsetHeight = footerEl.offsetHeight;\n        footerHeight += offsetHeight || 0;\n      }\n    }\n\n    let headerHeight = 0;\n    if (headEl) {\n      headerHeight = (headEl as HTMLElement).offsetHeight;\n    }\n\n    let bottomIncludeBody = 0;\n    \n    if (unref(wrapRef) && isCanResizeParent) {\n      const tablePadding = 12;\n      const formMargin = 16;\n      let paginationMargin = 10;\n      const wrapHeight = unref(wrapRef)?.offsetHeight ?? 0;\n\n      let formHeight = unref(formRef)?.$el.offsetHeight ?? 0;\n      if (formHeight) {\n        formHeight += formMargin;\n      }\n      if (isBoolean(pagination) && !pagination) {\n        paginationMargin = 0;\n      }\n      // if (isBoolean(useSearchForm) && !useSearchForm) {\n      //   paddingHeight = 0;\n      // }\n\n      const headerCellHeight =\n        (tableEl.querySelector('.ant-table-title') as HTMLElement)?.offsetHeight ?? 0;\n\n      \n      bottomIncludeBody =\n        wrapHeight - formHeight - headerCellHeight - tablePadding - paginationMargin;\n    } else {\n      // Table height from bottom\n      bottomIncludeBody = getViewportOffset(headEl).bottomIncludeBody;\n    }\n\n    let height =\n      bottomIncludeBody -\n      (resizeHeightOffset || 0) -\n      paddingHeight -\n      paginationHeight -\n      footerHeight -\n      headerHeight;\n    height = (height > maxHeight! ? (maxHeight as number) : height) ?? height;\n    \n    setHeight(height);\n\n    bodyEl!.style.height = `${height}px`;\n  }\n  useWindowSizeFn(calcTableHeight, 280);\n  onMountedOrActivated(() => {\n    calcTableHeight();\n    nextTick(() => {\n      debounceRedoHeight();\n    });\n  });\n\n  const getScrollX = computed(() => {\n    let width = 0;\n    if (unref(rowSelectionRef)) {\n      width += 60;\n    }\n\n    // TODO props ?? 0;\n    const NORMAL_WIDTH = 150;\n\n    const columns = unref(columnsRef).filter((item) => !item.defaultHidden);\n    columns.forEach((item) => {\n      width += Number.parseFloat(item.width as string) || 0;\n    });\n    const unsetWidthColumns = columns.filter((item) => !Reflect.has(item, 'width'));\n\n    const len = unsetWidthColumns.length;\n    if (len !== 0) {\n      width += len * NORMAL_WIDTH;\n    }\n\n    const table = unref(tableElRef);\n    const tableWidth = table?.$el?.offsetWidth ?? 0;\n    return tableWidth > width ? '100%' : width;\n  });\n\n  const getScrollRef = computed(() => {\n    const tableHeight = unref(tableHeightRef);\n    const { canResize, scroll } = unref(propsRef);\n    return {\n      x: scroll?.x ? unref(getScrollX) : null,\n      y: canResize ? tableHeight : null,\n      scrollToFirstRowOnChange: false,\n      ...scroll,\n    };\n  });\n\n  return { getScrollRef, redoHeight };\n}\n","import type { Ref } from 'vue';\nimport type { TableProps, TableActionType } from '../types/table';\nimport { provide, inject, ComputedRef } from 'vue';\n\nconst key = Symbol('basic-table');\n\ntype Instance = TableActionType & {\n  wrapRef: Ref<Nullable<HTMLElement>>;\n  getBindValues: ComputedRef<Recordable>;\n};\n\ntype RetInstance = Omit<Instance, 'getBindValues'> & {\n  getBindValues: ComputedRef<TableProps>;\n};\n\nexport function createTableContext(instance: Instance) {\n  provide(key, instance);\n}\n\nexport function useTableContext(): RetInstance {\n  return inject(key) as RetInstance;\n}\n","<template>\n  <div \n    ref=\"wrapRef\" \n    :class=\"[...className, $attrs.class]\"\n    :style=\"$attrs.style\"\n  >\n  <!-- :locale=\"newProps.langLocale\" -->\n    <ConfigProvider \n      :transformCellText=\"({ text }) => isEmptyText(text) ? text : '-'\"\n      :get-popup-container=\"dropdownProps.getPopupContainer\"\n    >\n      <TableFilter\n        v-if=\"isShowFilter || (Object.keys($slots).filter((item) => ['createButton', 'search', 'multipleBtns', 'tableActive'].includes(item))).length\"\n        v-model:selectValue=\"selectValue\"\n        v-model:textValue=\"textValue\"\n        :createButtonOptions=\"createButtonOptions\"\n        :isActiveFilter=\"isActiveFilter\"\n        :isTableActive=\"isTableActive\"\n        :filterLeftStyle=\"newProps.filterLeftStyle\"\n        :filterRightStyle=\"newProps.filterRightStyle\"\n        :multipleActionOptions=\"multipleOptions\"\n        :searchOptions=\"searchOptions\"\n        :dropdownProps=\"dropdownProps\"\n        @createClick=\"createHandle\"\n        @multipleChange=\"multipleChangeHandle\"\n        @searchClick=\"searchClickHandle\"\n        @selectChange=\"handleSelectChange\"\n        ref=\"tableFilter\"\n      >\n        <template\n          template\n          #[item]=\"data\"\n          v-for=\"item in Object.keys($slots).filter((item) =>\n            ['createButton', 'search', 'multipleBtns'].includes(item)\n          )\"\n          :key=\"item\"\n        >\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </template>\n        <template #tableActive v-if=\"!isTableActive\">\n          <Tooltip\n            v-if=\"activeOptions?.reload?.show\"\n            overlayClassName=\"scTooltip-white\"\n            destroyTooltipOnHide\n            trigger=\"hover\"\n          >\n            <template #title v-if=\"activeOptions?.reload?.text\">\n              {{ activeOptions?.reload.text }}\n            </template>\n            <span class=\"active-btn reload-btn\">\n              <Button\n                :disabled=\"activeOptions?.reload?.isDisabled\"\n                :loading=\"activeOptions?.reload?.loading\"\n                @click=\"refresh\"\n              >\n                <i class=\"sc-ui sc-sync\"></i>\n              </Button>\n            </span>\n          </Tooltip>\n          <Tooltip\n            v-if=\"activeOptions?.columnDialog?.show\"\n            overlayClassName=\"scTooltip-white\"\n            destroyTooltipOnHide\n            trigger=\"hover\"\n          >\n            <template #title v-if=\"activeOptions?.columnDialog?.text\">\n              {{ activeOptions?.columnDialog.text }}\n            </template>\n            <span class=\"active-btn setting-btn\">\n              <Button\n                :disabled=\"activeOptions?.columnDialog?.isDisabled\"\n                :loading=\"activeOptions?.columnDialog?.loading\"\n                @click=\"handleModal\"\n              >\n                <i class=\"sc-ui sc-setting\"></i>\n              </Button>\n            </span>\n          </Tooltip>\n          <Tooltip\n            v-if=\"activeOptions?.download?.show\"\n            overlayClassName=\"scTooltip-white\"\n            destroyTooltipOnHide\n            trigger=\"hover\"\n          >\n            <template #title v-if=\"activeOptions?.download?.text\">\n              {{ activeOptions?.download.text }}\n            </template>\n            <span class=\"active-btn download-btn\">\n              <Button\n                :disabled=\"activeOptions?.download?.isDisabled\"\n                :loading=\"activeOptions?.columnDialog?.loading\"\n                @click=\"handleDownload\"\n              >\n                <i class=\"sc-ui sc-download\"></i>\n              </Button>\n            </span>\n          </Tooltip>\n        </template>\n        <template #tableActive v-else>\n          <slot name=\"tableActive\">\n          </slot>\n        </template>\n      </TableFilter>\n      <FilterTagsVue\n        v-if=\"newProps.customFilter && newProps.filterTag\"\n        :columns=\"getFilterDropdownRef\"\n        @closeTag=\"handleCloseTag\"\n        @closeAll=\"handleCloseAll\"\n      >\n      </FilterTagsVue>\n      <!-- :scroll=\"{ x: 'calc(700px + 50%)', y: 240 }\" -->\n      <Table\n        :id=\"uuid\"\n        size=\"small\"\n        ref=\"tableRef\"\n        v-bind=\"tableBindValue\"\n        :rowClassName=\"getRowClassName\"\n        @change=\"handleTableChange\"\n      >\n        <template\n          template\n          #[item]=\"data\"\n          v-for=\"item in Object.keys($slots).filter(item => \n            ![...customComponentKey, ...customComponentHeaderKey, 'renderEmpty'].includes(item)\n          )\"\n          :key=\"item\"\n        >\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </template>\n        \n        <template\n          v-for=\"slotItem in tableBindValue.columns.filter((item:any) => !!item.type)\"\n          #[slotItem.type.componentName]=\"slotProps\"\n        >\n          <component\n            :is=\"getTypeComponent(slotItem.type.componentName)\"\n            v-bind=\"{ ...slotProps, tableName: slotItem.type.componentName }\"\n            :key=\"slotItem.dataIndex\"\n            v-on=\"{...getEvent(slotItem.type.componentName)}\"\n          />\n        </template>\n\n        <template \n          v-for=\"(slotItem) in thColumn\" \n          #[slotItem.titleType.componentName]>\n          <component\n            :is=\"getTitleComponent(slotItem.titleType.componentName)\"\n            v-bind=\"{...slotItem.titleType.props }\"\n            :key=\"slotItem.key\"\n          />\n        </template>\n\n        <template #action=\"{ record, dataIndex }\">\n          <slot v-if=\"isAction\" slot=\"action\" />\n          <ScTableAction\n            v-else\n            name=\"action\"\n            :record=\"record\"\n            :data=\"getDataSourceRef\"\n            :fetchParams=\"fetchParams\"\n            v-bind=\"actionsOptions\"\n            :dataIndex=\"dataIndex\"\n            :dropdownProps=\"dropdownProps\"\n            @onAction=\"(action) => { handle(action, record) }\"\n          />\n        </template>\n        <template\n          v-if=\"isCustomFilter\"\n          #filterDropdown=\"{\n            confirm,\n            column\n          }\"\n        >\n          <FilterDropDownVue\n            :filterList=\"column.filterList || []\"\n            :overlayClassName=\"column.dataIndex + column.key\"\n            :column=\"column\"\n            :filterLoading=\"column.filterLoading\"\n            :filterSelected=\"column.filterSelected\"\n            :dropdownProps=\"dropdownProps\"\n            @filter=\"(item: FilterItem[], keys: string[]) => { filterDropDownClick(item, keys, confirm, column) }\"\n          >\n          </FilterDropDownVue>\n        </template>\n        <template #filterIcon=\"{column}\" v-if=\"isCustomFilter\">\n          <FilterFilled :style=\"{ color: column.filtered && column?.filterSelected?.length ? '#008CD3' : 'rgba(0, 0, 0, 0.26)' }\" :class=\"[ column.filtered && column?.filterSelected?.length ? 'filtered' : 'notFilter' ]\"></FilterFilled>\n          <!-- {{ column }} -->\n        </template>\n      </Table>\n      <ColumnDialogVue\n        v-model:visible=\"visible\"\n        :columnList=\"getFilterColumnRef\"\n        @cancelModal=\"cancelModal\"\n        @okModal=\"okModal\"\n      >\n      </ColumnDialogVue>\n      <template #renderEmpty>\n        <EmptyVue v-if=\"!isRenderEmpty\"></EmptyVue>\n        <slot name=\"renderEmpty\" v-else>\n        </slot>\n      </template>\n      <div class=\"scTable-footer--info\" v-if=\"$slots.footerInfo\">\n        <slot name=\"footerInfo\"></slot>\n      </div>\n    </ConfigProvider>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, ref, defineComponent, unref, onMounted, nextTick, toRaw, watch } from 'vue'\nimport { Table, Tooltip, Button, Spin, ConfigProvider } from 'ant-design-vue'\nimport { FilterFilled } from '@ant-design/icons-vue'\n\nimport { isEmptyText } from '../../../utils/is'\nimport { buildUUID } from '../../../utils/uuid'\nimport { basePrefixCls } from '../../../constant'\nimport TableFilter from './TableFilter.vue'\nimport ScTableAction, { ActionItemProps } from './TableAction.vue'\nimport FilterDropDownVue from './FilterDropDown.vue'\nimport ColumnDialogVue from './ColumnDialog.vue'\nimport EmptyVue from './Empty.vue'\nimport FilterTagsVue from './FilterTags.vue'\n// import { TdCopy, TdEllipsis, TdStatus, TdHandle } from './Td'\nimport TdComponents from './Td'\nimport THComponents from './Th'\nimport useLocale from '../../../hooks/useLocale'\n\n//@ts-ignore\nimport { tableProps, TableProps, ButtonType, TableActionType, SorterResult, PaginationProps } from '../types/table'\nimport { Column, FilterItem } from '../types/column'\nimport { usePagination } from '../hooks/usePagination';\nimport { useTableExpand } from '../hooks/useTableExpand'\nimport { useFilter } from '../hooks/useFIlter'\nimport { useRowSelection } from '../hooks/useRowSelection'\nimport { useLoading } from '../hooks/useLoading'\nimport { useDataSource } from '../hooks/useDataSource'\nimport { useActions } from '../hooks/useActions'\nimport { useColumn } from '../hooks/uesColumn'\nimport { useTableScroll } from '../hooks/useTableScroll'\nimport { createTableContext } from '../hooks/useTableContext'\n// import isFunction from 'lodash/isFunction'\nimport lodash from 'lodash'\n\nconst tablePrefixCls = basePrefixCls + 'Table';\n\nconst { isFunction } = lodash\n\n// const props = defineProps(tableProps())\n// const emits = defineEmits(['onAction', 'tableChange', 'createClick', 'multipleChange', 'filter'])\n\nexport default defineComponent({\n  name: 'ScTable',\n  inheritAttrs: false,\n  props: tableProps(),\n  components: {\n    Table,\n    Tooltip,\n    Button,\n    FilterFilled,\n    TableFilter,\n    ScTableAction,\n    FilterDropDownVue,\n    ColumnDialogVue,\n    Spin,\n    ConfigProvider,\n    EmptyVue,\n    FilterTagsVue,\n    // TdCopy, TdEllipsis, TdStatus, TdHandle,\n    ...TdComponents,\n    ...THComponents\n  },\n  emits: ['change', 'register', 'onAction', 'searchClick', 'onAction', 'expanded-rows-change', 'fetch-success', 'createClick', 'selectChange', 'selection-change', 'multipleChange', 'refresh', 'filter'],\n  setup(props, { attrs, slots, emit, expose }) {\n    const tableRef = ref()\n    const wrapRef = ref()\n    const tableFilter = ref()\n    const tableData = ref<Recordable[]>([])\n\n    const textValue = ref()\n    const selectValue = ref()\n\n    const zhCN = ref({})\n    const enUS = ref({})\n    \n    const tableScrollHeaderClass = ref()\n\n    const { antLocale } = useLocale()\n\n    const uuid = 'sc' + buildUUID()\n\n    const innerPropsRef = ref<Partial<TableProps>>();\n\n    const fetchParams = ref<Recordable>({\n      tableRef,\n      multipleValue: undefined,\n      searchSelect: undefined,\n      searchText: undefined,\n      filters: {},\n      selectedRowKeysRef: [],\n      selectedRowRef: [],\n      columns: [],\n      pagination: {},\n      sorter: {}\n    })\n\n    const newProps = computed(() => {\n      return { ...props, ...unref(innerPropsRef) } as TableProps;\n    })\n    // const newColumns = computed(() => {\n    //   return props.columns\n    // }) \n    const visible = ref(false);\n\n    const { getLoading, setLoading } = useLoading(newProps);\n\n    const {\n      getPaginationInfo,\n      setPagination,\n      getPagination,\n      setShowPagination,\n      getShowPagination,\n    } = usePagination(newProps, props);\n\n    const {\n      expandIconFnc,\n      getExpandOption, \n      expandAll, \n      expandRows, \n      collapseAll,\n    } = useTableExpand(newProps, tableData, emit)\n\n    const {\n      selectedRowKeysRef,\n      selectedRowRef,\n      getRowSelection,\n      getRowSelectionRef,\n      getSelectRows,\n      setSelectedRows,\n      clearSelectedRowKeys,\n      getSelectRowKeys,\n      deleteSelectRowByKey,\n      setSelectedRowKeys,\n    } = useRowSelection(newProps, tableData, emit, props)\n\n    const {\n      actionsOptions\n    } = useActions(newProps, selectedRowKeysRef, fetchParams)\n\n    const {\n      getDataSourceRef,\n      getRowKey,\n      getAutoCreateKey,\n      handleTableChange: onTableChange,\n      getEvent,\n      getDataSource,\n      getRawDataSource,\n      setTableData,\n      updateTableDataRecord,\n      deleteTableDataRecord,\n      insertTableDataRecord,\n      findTableDataRecord,\n      fetch,\n      reload,\n      updateTableData,\n    } = useDataSource(\n      newProps,\n      {\n        tableData,\n        getPaginationInfo,\n        setLoading,\n        setPagination,\n        clearSelectedRowKeys\n      },\n      emit,\n      fetchParams\n    );\n\n    const {\n      isShowFilter,\n      isActiveFilter,\n      createButtonOptions,\n      multipleOptions,\n      searchOptions,\n      setSearchOptions,\n      setMultipleAction,\n    } = useFilter(newProps, selectedRowKeysRef, fetchParams, tableFilter, getDataSourceRef, props)\n    \n    const {\n      customComponentKey,\n      customComponentHeaderKey,\n      getFilterColumnRef,\n      getColumnsRef,\n      getFilterDropdownRef,\n      getFetchFilter,\n      thColumn,\n      // showSortTitle,\n      setColumns,\n      getRowClassName,\n      getColumns,\n      getTypeComponent,\n      getTitleComponent,\n      setFilterDropdownRef,\n      clearFilterDropdownRef,\n      clearFilterAllDropdownRef,\n      setFilterColumnRef,\n      setFilterColumnChecked,\n      setFilterColumnDisabled\n    } = useColumn(newProps, fetchParams, props)\n\n    const { getScrollRef, redoHeight } = useTableScroll(\n      newProps,\n      tableRef,\n      getColumnsRef,\n      getRowSelectionRef,\n      getDataSourceRef,\n      wrapRef,\n    )\n    // showSortTitle(newProps, uuid)\n    const tableBindValue = computed(() => {\n      const dataSource = unref(getDataSourceRef);\n      fetchParams.value = {...unref(fetchParams), selectedRowKeysRef, selectedRowRef, setLoading, pagination: getPaginationInfo}\n      return {\n        ...attrs,\n        ...unref(newProps),\n        scroll: unref(getScrollRef),\n        columns: toRaw(unref(getColumnsRef)),\n        rowSelection: unref(getRowSelectionRef),\n        rowKey: unref(getRowKey),\n        ...unref(getExpandOption),\n        dataSource,\n        loading: unref(getLoading),\n        pagination: toRaw(unref(getPaginationInfo)),\n        indentSize: newProps.value?.indentSize || 30,\n        change: undefined,\n        style: undefined,\n        class: undefined,\n        expandIcon: isExpandIcon.value ? null : (expandIconFnc || newProps?.expandIcon)\n      }\n    })\n    const className = computed(() => {\n      // const { scroll, pagination } = newProps.value\n      const { pagination } = newProps.value\n      // console.log('scroll: ', scroll, scroll.y);\n      const classNames = [\n        tablePrefixCls,\n        uuid,\n        // scroll?.y ? 'not-table-scroll-empty' : '',\n        tableScrollHeaderClass.value,\n        (antLocale || {}).locale === 'zh-cn' ? `${tablePrefixCls}-zh`: '',\n        slots?.footerInfo && pagination !== false ? 'isFooterInfo' : ''\n      ];\n      return classNames;\n    });\n\n    const  dropdownProps = {\n      getPopupContainer: () => {\n          return document.querySelector(`.${uuid} .ant-table`)\n        }\n    }\n\n    const activeOptions = computed(() => {\n      return props.activeOptions;\n    });\n\n    const isAction = computed(() => {\n      return Object.keys(slots).includes('action');\n    });\n    const isRenderEmpty = computed(() => {\n      return Object.keys(slots).includes('renderEmpty');\n    });\n\n    const isTableActive = computed(() => {\n      return Object.keys(slots).includes('tableActive');\n    });\n    const isCustomFilter = computed(() => {\n      return props.customFilter;\n    });\n\n    const isExpandIcon = computed(() => {\n      return Object.keys(slots).includes('expandIcon');\n    });\n\n    function setProps(props: Partial<TableProps>) {\n      innerPropsRef.value = { ...unref(innerPropsRef), ...props };\n      if (props.multipleOptions) {\n        setMultipleAction(props.multipleOptions)\n      }\n      if (props.columns) {\n        setColumns(props.columns, true)\n      }\n    }\n\n    const handle = (action: ActionItemProps, record: any) => {\n      if (isFunction(action.action)) {\n        action.action({...unref(fetchParams), action, record})\n        return false\n      }\n      emit('onAction', {...unref(fetchParams), action, record});\n    };\n\n    const handleSelectChange = (item: string) => {\n      const selectItem = unref(searchOptions).typeList.find((_item: ButtonType) => item === _item.value)\n      // console.log('selectItem: ', selectItem);\n      if (item) {\n        fetchParams.value = {...unref(fetchParams), selectValue: item}\n      }\n      if (isFunction(selectItem.action)) {\n        selectItem.action({...unref(fetchParams)})\n      } else {\n        emit('selectChange', {...unref(fetchParams)})\n      }\n    }\n\n    const createHandle = () => {\n      const options = unref(createButtonOptions)\n      if (isFunction(options.action)) {\n        options.action({...unref(fetchParams)})\n      } else {\n        emit('createClick', {...unref(fetchParams)})\n      }\n    };\n\n    const handleTableChange = (\n      pagination: PaginationProps,\n      filters: Partial<{[key:string]: any}>,\n      sorter: SorterResult,\n      // @ts-ignore\n      // { currentDataSource }\n    ) => {\n      fetchParams.value = {...unref(fetchParams), pagination, sorter}\n      onTableChange.call(null, pagination, unref(getFetchFilter), sorter)\n      emit('change', pagination, unref(getFetchFilter), sorter)\n    };\n\n    const multipleChangeHandle = (value: any) => {\n      fetchParams.value = {...unref(fetchParams), multipleValue: value}\n      if (isFunction(value.action)) {\n        value.action(unref(fetchParams))\n      } else {\n        emit('multipleChange', { ...unref(fetchParams) });\n      }\n    };\n\n    const filterDropDownClick = (\n      items: FilterItem[],\n      keys: string[],\n      confirm: Fn,\n      column: any,\n    ) => {\n      confirm()\n      setPagination({ current: 1})\n      setFilterDropdownRef(column, items)\n      fetchParams.value = {\n        ...unref(fetchParams),\n        filters: {\n          ...unref(fetchParams).filters,\n          [column.dataIndex]: keys.length ? keys : undefined\n        }\n      }\n      handleTableChange(unref(fetchParams).pagination, unref(getFetchFilter), unref(fetchParams).sorter)\n      if (column.filterMultiple) {\n        emit('filter', {\n          imtes: items,\n          column,\n          fetchParams: unref(fetchParams),\n          setLoading\n        });\n      } else {\n        const item = items[0]\n        if (isFunction(item?.action)) {\n          item.action({\n            filterItem: item,\n            column,\n            fetchParams: unref(fetchParams),\n            setLoading\n          })\n        } else {\n          emit('filter', {\n            filterItem: item,\n            column,\n            fetchParams: unref(fetchParams),\n            setLoading\n          });\n        }\n      }\n    };\n\n    const handleCloseTag = (column: Column) => {\n      clearFilterDropdownRef(column)\n      handleTableChange(unref(fetchParams).pagination, unref(getFetchFilter), unref(fetchParams).sorter)\n    }\n\n    const handleCloseAll = () => {\n      clearFilterAllDropdownRef()\n      handleTableChange(unref(fetchParams).pagination, unref(getFetchFilter), unref(fetchParams).sorter)\n    }\n\n    const handleModal = () => {\n      visible.value = !visible.value;\n    };\n\n    const handleDownload = () => {\n      const actives = unref(activeOptions)\n      if (actives?.download?.href) {\n        window.location.href = actives?.download?.href\n        return false\n      }\n      if (isFunction(actives?.download?.action)) {\n        actives?.download?.action({...unref(fetchParams)})\n      }\n    }\n    //@ts-ignore\n    const cancelModal = ({ keys, checkedList }) => {\n      const cancelModal = unref(activeOptions)?.columnDialog?.cancelModal || unref(newProps).cancelModal\n      if (isFunction(cancelModal)) {\n        cancelModal({ keys, checkedList })\n      }\n    }\n    //@ts-ignore\n    const okModal = ({ keys, checkedList, delItemKeys }) => {\n      visible.value = false\n      setFilterColumnChecked(keys)\n      const okModal = unref(activeOptions)?.columnDialog?.okModal || unref(newProps).okModal\n      if (isFunction(okModal)) {\n        okModal({keys, checkedList, delItemKeys})\n      }\n    }\n\n    const searchClickHandle = ({value, type}:any) => {\n      // console.log('type: ', type);\n      // console.log('value: ', value);\n      setPagination({ current: 1})\n      const search = unref(searchOptions)\n      fetchParams.value = {...unref(fetchParams), searchSelect: type, searchText: value}\n      if (isFunction(search?.action)) {\n        search?.action({...unref(fetchParams)})\n      } else {\n        emit('searchClick', { ...unref(fetchParams) })\n      }\n      if (unref(newProps).api) {\n        handleTableChange(unref(fetchParams).pagination, unref(getFetchFilter), unref(fetchParams).sorter)\n      }\n    }\n\n    const refresh = () => {\n      const refresh = unref(activeOptions)\n      if (unref(newProps).api) {\n        reload()\n        return false\n      }\n      if (isFunction(refresh?.reload?.action)) {\n        refresh?.reload?.action({ ...unref(fetchParams) })\n      } else {\n        emit('refresh', { ...unref(fetchParams) })\n      }\n    }\n\n    onMounted(() => {\n      nextTick(() => {\n        fetchParams.value.tableRef = tableRef\n      })\n    })\n\n    watch([() => props.scroll.y, () => props.dataSource], () => {\n      nextTick(() => {\n        const domTableBody = document.querySelector(`.${uuid}.not-table-scroll-empty .ant-table-fixed .ant-table-tbody`)\n        // console.log('domTableBody: ', domTableBody, domTableBody?.scrollHeight, domTableBody?.clientHeight);\n        const tableBodyScroll = domTableBody?.scrollHeight || domTableBody?.clientHeight || 0\n        if (tableBodyScroll > props.scroll.y) {\n          tableScrollHeaderClass.value = 'headerScroll'\n        }\n      })\n    }, {\n      immediate: true\n    })\n\n    // const aa = [{ \"width\":60,\"dataIndex\":\"age\",\"key\":\"age\",\"slots\":{\"customRender\":\"status1\",\"title\":\"thDescribe\"},\"titleType\":{\"componentName\":\"thDescribe\",\"props\":{\"text\":\"Column 2\",\"describe\":\"提示内容\"}},\"value\":\"age\",\"disabled\":false,\"checked\":true,\"default\":true},{\"dataIndex\":\"address\",\"key\":\"1\",\"width\":160,\"type\":{\"componentName\":\"tdEllipsis\",\"props\":{\"lineheigth\":2}},\"titleType\":{\"componentName\":\"thDescribe\",\"props\":{\"text\":\"Column 1\",\"describe\":\"提示内容\"}},\"slots\":{\"customRender\":\"tdEllipsis\",\"title\":\"thDescribe\"},\"value\":\"address\",\"disabled\":false,\"checked\":true,\"default\":true},{\"dataIndex\":\"age\",\"key\":\"2\",\"width\":160,\"titleType\":{\"componentName\":\"thUnit\",\"props\":{\"text\":\"Column 2\",\"unit\":\"(元)\"}},\"slots\":{\"customRender\":\"copy1\",\"title\":\"thUnit\"},\"value\":\"age\",\"disabled\":false,\"checked\":true,\"default\":true}]\n\n\n    const tableAction: TableActionType = {\n      reload,\n      getSelectRows,\n      setSelectedRows,\n      clearSelectedRowKeys,\n      getSelectRowKeys,\n      deleteSelectRowByKey,\n      setPagination,\n      setTableData,\n      updateTableDataRecord,\n      deleteTableDataRecord,\n      insertTableDataRecord,\n      findTableDataRecord,\n      setSelectedRowKeys,\n      setLoading,\n      getDataSource,\n      getRawDataSource,\n      setProps,\n      getRowSelection,\n      getPaginationRef: getPagination,\n      // @ts-ignore\n      getColumns,\n      setColumns,\n      emit,\n      updateTableData,\n      setShowPagination,\n      getShowPagination,\n      expandAll,\n      expandRows,\n      collapseAll,\n      \n      clearFilter: clearFilterAllDropdownRef,\n      clearFilterDropdownRef: clearFilterDropdownRef,\n      setSearchOptions,\n      setMultipleAction,\n      setFilterColumnRef,\n      setFilterColumnChecked,\n      setFilterColumnDisabled\n    };\n    createTableContext({ ...tableAction, wrapRef, getBindValues: tableBindValue });\n    const resetFilterInputValue = () => {\n      tableFilter?.value.resetInput()\n    }\n    expose({\n      ...tableAction,\n      fetch,\n      redoHeight,\n      getAutoCreateKey,\n      resetFilterInputValue\n    })\n    emit('register', tableAction)\n    return {\n      enUS,\n      zhCN,\n      newProps,\n      uuid,\n\n      getDataSourceRef,\n      className,\n      getLoading,\n      visible,\n      isTableActive,\n      isActiveFilter,\n      isCustomFilter,\n      activeOptions,\n      isAction,\n      isRenderEmpty,\n      dropdownProps,\n\n      getPaginationInfo,\n      tableRef,\n      tableFilter,\n\n      tableBindValue,\n      fetchParams,\n      selectValue,\n      textValue,\n\n      multipleOptions,\n      createButtonOptions,\n      searchOptions,\n      actionsOptions,\n      customComponentKey,\n      customComponentHeaderKey,\n      getFilterColumnRef,\n      thColumn,\n      isShowFilter,\n      getFilterDropdownRef,\n      isExpandIcon,\n\n      getRowClassName,\n      setMultipleAction,\n      isEmptyText,\n      handleCloseAll,\n      handle,\n      createHandle,\n      handleModal,\n      filterDropDownClick,\n      multipleChangeHandle,\n      handleTableChange,\n      expandIconFnc,\n      searchClickHandle,\n      getTypeComponent,\n      getTitleComponent,\n      refresh,\n      handleDownload,\n      setFilterColumnRef,\n      cancelModal,\n      okModal,\n      handleSelectChange,\n      handleCloseTag,\n      getEvent\n    };\n  },\n});\n</script>\n","import type { TableProps, TableActionType, FetchParams, BasicColumn, SearchOptions, MultipleActionOptions } from '../types/table'\nimport type { Column } from '../types/column'\nimport { FilterItem } from '../types/column'\nimport type { PaginationProps } from '../types/pagination'\nimport type { DynamicProps } from '../../../../types/utils'\nimport type { WatchStopHandle } from 'vue'\nimport { getDynamicProps, isFunction, isArray } from '../../../utils'\nimport { findNode } from '../../../utils/treeHelper'\nimport { ref, onUnmounted, unref, watch, toRaw } from 'vue'\n\ntype Props = Partial<DynamicProps<TableProps>>;\n\n// type UseTableMethod = TableActionType & {\n//   getForm: () => FormActionType;\n// };\n\nexport function useTable(tableProps?: Props): [\n  (instance: TableActionType) => void,\n  TableActionType\n  // TableActionType & {\n  //   getForm: () => FormActionType;\n  // },\n] {\n  const tableRef = ref<Nullable<TableActionType>>(null);\n  const loadedRef = ref<Nullable<boolean>>(false);\n  // const formRef = ref<Nullable<UseTableMethod>>(null);\n\n  let stopWatch: WatchStopHandle;\n\n  function register(instance: TableActionType) {\n    onUnmounted(() => {\n      tableRef.value = null;\n      loadedRef.value = null;\n    });\n\n    if (unref(loadedRef) && instance === unref(tableRef)) return;\n\n    tableRef.value = instance;\n    // formRef.value = formInstance;\n    tableProps && instance.setProps(getDynamicProps(tableProps));\n    loadedRef.value = true;\n\n    stopWatch?.();\n\n    stopWatch = watch(\n      () => tableProps,\n      () => {\n        const newTableProps = {\n          ...tableProps\n        }\n        if (tableProps?.columns) {\n          newTableProps.columns = tableProps?.columns?.map((item:any) => {\n            if (item?.type?.componentName) {\n              item.slots = {\n                ...item.slots,\n                customRender: item.type.componentName\n              }\n            }\n            if (item?.titleType?.componentName) {\n              item.slots = {\n                ...item.slots,\n                title: item.titleType.componentName\n              }\n            }\n            if (item.filterList) {\n              if (isFunction(item.filterList)) {\n                item.filterList = item.filterList({ propsRef: {}, fetchParams: {} })\n              }\n              item.slots = {\n                ...item.slots,\n                filterDropdown: 'filterDropdown',\n                filterIcon: 'filterIcon',\n              }\n              item.filtered =  item.filtered ?? true\n            }\n            if (!item.filterList && item.filters && item.filters?.length) {\n              item.filterList = (item.filters || [])?.map(item => {\n                return {\n                  label: item.text,\n                  // value: item.value,\n                  key: item.value\n                }\n              })\n              item.slots = {\n                ...item.slots,\n                filterDropdown: 'filterDropdown',\n                filterIcon: 'filterIcon'\n              }\n              item.filtered =  item.filtered ?? true\n            }\n            if (item.filteredValue && isArray(item?.filterList)) {\n              item.filterSelected = item?.filteredValue?.map((_item: any) => {\n                const newItem = findNode(item?.filterList || [], (node:FilterItem) => node.key === _item, { key: 'key' })\n                return newItem ? newItem : {}\n              })\n            }\n            return item\n          })\n        }\n        tableProps && instance.setProps(getDynamicProps(newTableProps));\n      },\n      {\n        immediate: true,\n        deep: true,\n      },\n    );\n  }\n\n  function getTableInstance(): TableActionType {\n    const table = unref(tableRef);\n    if (!table) {\n      console.error(\n        'The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!',\n      );\n    }\n    return table as TableActionType;\n  }\n\n  const methods: TableActionType = {\n    reload: async (opt?: FetchParams) => {\n      return await getTableInstance().reload(opt);\n    },\n    setProps: (props: Partial<TableProps>) => {\n      getTableInstance().setProps(props);\n    },\n    setSelectedRows: (rows: Recordable[]) => {\n      return toRaw(getTableInstance().setSelectedRows(rows));\n    },\n    setLoading: (loading: boolean) => {\n      getTableInstance().setLoading(loading);\n    },\n    getDataSource: () => {\n      return getTableInstance().getDataSource();\n    },\n    getRawDataSource: () => {\n      return getTableInstance().getRawDataSource();\n    },\n    getColumns: ({ ignoreIndex = false }: { ignoreIndex?: boolean } = {}) => {\n      const columns = getTableInstance().getColumns({ ignoreIndex }) || [];\n      return toRaw(columns);\n    },\n    setColumns: (columns: BasicColumn[]) => {\n      getTableInstance().setColumns(columns);\n    },\n    setTableData: (values: any[]) => {\n      return getTableInstance().setTableData(values);\n    },\n    setPagination: (info: Partial<PaginationProps>) => {\n      return getTableInstance().setPagination(info);\n    },\n    deleteSelectRowByKey: (key: string) => {\n      getTableInstance().deleteSelectRowByKey(key);\n    },\n    getSelectRowKeys: () => {\n      return toRaw(getTableInstance().getSelectRowKeys());\n    },\n    getSelectRows: () => {\n      return toRaw(getTableInstance().getSelectRows());\n    },\n    clearSelectedRowKeys: () => {\n      getTableInstance().clearSelectedRowKeys();\n    },\n    setSelectedRowKeys: (keys: string[] | number[]) => {\n      getTableInstance().setSelectedRowKeys(keys);\n    },\n    getPaginationRef: () => {\n      return getTableInstance().getPaginationRef();\n    },\n    // getSize: () => {\n    //   return toRaw(getTableInstance().getSize());\n    // },\n    updateTableData: (index: number, key: string, value: any) => {\n      return getTableInstance().updateTableData(index, key, value);\n    },\n    deleteTableDataRecord: (rowKey: string | number | string[] | number[]) => {\n      return getTableInstance().deleteTableDataRecord(rowKey);\n    },\n    insertTableDataRecord: (record: Recordable | Recordable[], index?: number) => {\n      return getTableInstance().insertTableDataRecord(record, index);\n    },\n    updateTableDataRecord: (rowKey: string | number, record: Recordable) => {\n      return getTableInstance().updateTableDataRecord(rowKey, record);\n    },\n    findTableDataRecord: (rowKey: string | number) => {\n      return getTableInstance().findTableDataRecord(rowKey);\n    },\n    getRowSelection: () => {\n      return toRaw(getTableInstance().getRowSelection());\n    },\n    // clearFilterDropdownRef,\n    // setSearchOptions,\n    // setMutilpAction,\n    // setFilterColumnRef,\n    // setFilterColumnChecked,\n    // setFilterColumnDisabled\n    clearFilterDropdownRef: (column: Column) => {\n      return toRaw(getTableInstance().clearFilterDropdownRef(column));\n    },\n    setSearchOptions: (searchOptions: SearchOptions) => {\n      return toRaw(getTableInstance().setSearchOptions(searchOptions));\n    },\n    setMultipleAction: (multipleActionOptions: MultipleActionOptions) => {\n      return toRaw(getTableInstance().setMultipleAction(multipleActionOptions));\n    },\n    setFilterColumnRef: (columns: Column[]) => {\n      return toRaw(getTableInstance().setFilterColumnRef(columns));\n    },\n    setFilterColumnChecked: (colKeys: string[] | number[]) => {\n      return toRaw(getTableInstance().setFilterColumnChecked(colKeys));\n    },\n    setFilterColumnDisabled: (colKeys: string[] | number[]) => {\n      return toRaw(getTableInstance().setFilterColumnDisabled(colKeys));\n    },\n    // getCacheColumns: () => {\n    //   return toRaw(getTableInstance().getCacheColumns());\n    // },\n    // getForm: () => {\n    //   return unref(formRef) as unknown as FormActionType;\n    // },\n    setShowPagination: async (show: boolean) => {\n      getTableInstance().setShowPagination(show);\n    },\n    getShowPagination: () => {\n      return toRaw(getTableInstance().getShowPagination());\n    },\n    expandAll: () => {\n      getTableInstance().expandAll();\n    },\n    expandRows: (keys: string[]) => {\n      getTableInstance().expandRows(keys);\n    },\n    collapseAll: () => {\n      getTableInstance().collapseAll();\n    }\n  };\n\n  return [register, methods];\n}\n","import { withInstall } from \"../../utils/index\"\nimport scTable from './component/ScTable.vue'\nimport TdCopy from './component/Td/TdCopy.vue'\nimport tableAction from \"./component/TableAction.vue\"\nimport columnDialog from \"./component/ColumnDialog.vue\"\nimport empty from \"./component/Empty.vue\"\nimport filterTags from \"./component/FilterTags.vue\"\nimport filterDropDown from \"./component/FilterDropDown.vue\"\n\nexport * from './types/table'\nexport * from './types/pagination'\nexport * from './types/column'\nexport { useTable } from './hooks/useTable'\n\nexport const ScTable = withInstall(scTable)\nexport const TableAction = withInstall(tableAction)\nexport const Copy = withInstall(TdCopy)\nexport const ColumnDialog = withInstall(columnDialog)\nexport const Empty = withInstall(empty)\nexport const FilterTags = withInstall(filterTags)\nexport const FilterDropDown = withInstall(filterDropDown)","export const props = () => ({\n  value: {\n    type: Number,\n    default: 0\n  },\n  min: {\n    type: [Number, String],\n    default: 0\n  },\n  max: {\n    type: [Number, String],\n    default: 100\n  },\n  mode: {\n    type: String,\n    // 'internal' 'bothSides'\n    default () {\n      return 'bothSides'\n    }\n  },\n  needDefault: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  emitEmpty: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  autoFocus: Boolean,\n  showControl: {\n    type: Boolean,\n    default: true\n  },\n  // 'large' | 'small'\n  size: String,\n  stepStrictly: Boolean,\n  step: {\n    type: [Number, String],\n    default: 1\n  },\n  disabled: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  }\n})","<template>\n  <div :class=\"classNames\">\n    <Button\n      v-if=\"newProps.showControl\"\n      :class=\"[baseClass+'-btn']\"\n      @mousedown=\"changeVal('reduce')\"\n      :disabled=\"newProps.disabled || minDisabled\"\n      :size=\"newProps.size\"\n    >\n      <i class=\"sc-ui sc-remove1\"></i>\n    </Button>\n    <InputNumber\n      ref=\"inputNumberRef\"\n      v-model:value=\"text\"\n      :disabled=\"newProps.disabled\"\n      v-bind=\"vBind\"\n      :min=\"newProps.min\"\n      :max=\"newProps.max\"\n      :step=\"newProps.step\"\n      @blur=\"handleBlur\"\n      @focus=\"handleFocus\"\n      @change=\"handleChange\"\n    />\n      <!-- @keydown.enter.prevent=\"handlePressEnter\" -->\n    <Button\n      v-if=\"newProps.showControl\"\n      :class=\"[baseClass+'-btn']\"\n      @mousedown=\"changeVal('add')\"\n      :disabled=\"newProps.disabled || maxDisabled\"\n    >\n      <i class=\"sc-ui sc-add2\"></i>\n    </Button>\n  </div>\n</template>\n\n<script lang=\"ts\" >\n\nimport { ref, watch, computed, defineComponent, onMounted, nextTick, unref } from 'vue'\nimport { InputNumber, Button } from 'ant-design-vue'\n// import lodash from 'lodash'\nimport { basePrefixCls } from '../../../constant'\nimport { props } from './type'\nimport { isNumber, isEmptyText, isString } from '../../../utils'\n\n// const { debounce } = lodash\n\nexport default defineComponent({\n  name: 'ScInputNumber',\n  inheritAttrs: false,\n  props: props(),\n  components: {\n    InputNumber,\n    Button,\n  },\n  emits: ['change', 'update:value', 'blur', 'focus'],\n  setup(props, { emit, attrs, expose }) {\n\n    const baseClass = basePrefixCls + 'InputNumber'\n    const text = ref()\n    const inputNumberRef = ref()\n    const prevVal = ref()\n    const isBlur = ref(false)\n    const isProps = ref(false)\n\n    \n    const newProps = computed(() => {\n      return {\n        ...props,\n        min: Number.isNaN(parseFloat(props.min + '')) ? 0 : parseFloat(props.min + ''),\n        max: Number.isNaN(parseFloat(props.max + '')) ? 100 : parseFloat(props.max + ''),\n        step: Number.isNaN(parseFloat(props.step + '')) ? 10 : parseFloat(props.step + '')\n      }\n    })\n    \n    const vBind = computed(() => {\n      return {\n        ...attrs,\n      }\n    })\n\n    const maxDisabled = computed(() => {\n      return text.value >= unref(newProps).max\n    })\n    const minDisabled = computed(() => {\n      return text.value <= unref(newProps).min\n    })\n\n    const classNames = computed(() => {\n      return [\n        baseClass,\n        newProps.value.mode,\n        newProps.value.disabled ? 'isDisabled' : '',\n        newProps.value.size,\n        !newProps.value.showControl ? 'notControl' : ''\n      ]\n    })\n\n    watch(\n      () => props.value,\n      (val) => {\n        const { needDefault } = props\n        const { max, min } = unref(newProps)\n        if (needDefault) {\n          if (val < min) {\n            text.value = min\n            return\n          }\n          if (val > max) {\n            text.value = max\n            return\n          }\n          if (val !== text.value) {\n            isProps.value = true\n          }\n          text.value = isEmptyText(val) ? isString(val) ?  parseFloat(val) : val : val\n\n        }\n      },\n      { deep: true, immediate: true }\n    )\n    const debounceStepStrictly = (isClick: boolean) => {\n      const val = text.value\n      const { step, min } = unref(newProps)\n      const curStep = Math.round(val / step) * step\n      text.value = curStep\n      if (!isClick) {\n        emit('update:value', Math.max(text.value, min))\n        emit('change', curStep || min)\n      }\n    }\n\n    watch(\n      () => text.value,\n      (val, oldVal) => {\n        const { stepStrictly, needDefault } = unref(newProps)\n        // Number.isNaN()\n        if (isNaN(oldVal)) {\n          prevVal.value = oldVal\n        }\n        // @ts-ignore\n        if (val !== '' && val !== null) {\n          const { max, disabled } = newProps.value\n          if (!isNumber(val) || val > max) {\n            return false\n          }\n          if (disabled) {\n            return false\n          }\n          if (stepStrictly) {\n            // debounceStepStrictly()\n          } else {\n            if (isProps.value) {\n              isProps.value = false\n              return false\n            }\n            emit('update:value', val)\n            emit('change', val)\n          }\n        }\n        if (!needDefault && (val === '' || val === null)) {\n          emit('update:value', val)\n          emit('change', val)\n        }\n      },\n      { deep: true }\n    )\n\n    const handleChange = () => {\n      isProps.value = false\n    }\n    \n    const changeVal = (type: any) => {\n      const { stepStrictly, min, max, step } = unref(newProps)\n      if (stepStrictly) {\n        // isBlur.value = true\n        debounceStepStrictly(true)\n      }\n      if (type === 'add') {\n        text.value += step || 1\n        if (text.value > max) {\n          text.value = max\n        }\n      } else {\n        text.value -= step || 1\n        if (text.value < min) {\n          text.value = min\n        }\n      }\n      isProps.value = false\n      if (stepStrictly) {\n        emit('update:value', Math.max(text.value, min))\n        emit('change', Math.max(text.value, min))\n        inputNumberRef.value.blur()\n      }\n    }\n\n    const handleFocus = () => {\n      isBlur.value = false\n      emit('focus')\n    }\n\n    const handleBlur = (event:Event) => {\n      const { stepStrictly, min, needDefault, emitEmpty } = unref(newProps)\n      if (stepStrictly) {\n        if (!isBlur.value) {\n          debounceStepStrictly(false)\n          text.value = Math.max(text.value, min)\n        } else {\n          isBlur.value = false\n        }\n      } else {\n        // @ts-ignore\n        if ((text.value === '' || text.value === null) && needDefault) {\n          text.value = isNaN(prevVal.value) ? '' : prevVal.value\n        }\n        if (emitEmpty && (text.value === '' || text.value === null)) {\n          emit('update:value', null)\n          emit('change', null)\n        }\n        if (!needDefault && (text.value === '' || text.value === null)) {\n          text.value = undefined\n        }\n      }\n      emit('blur', event)\n    }\n\n    onMounted(() => {\n      nextTick(() => {\n        const { autoFocus } = newProps.value\n        if (autoFocus) {\n          const timer = setTimeout(() => {\n            inputNumberRef?.value?.focus()\n            clearTimeout(timer)\n          }, 200);\n        }\n      })\n    })\n\n    expose({\n      focus: () => {\n        inputNumberRef.value?.focus()\n      },\n      blur: () => {\n        inputNumberRef.value?.blur()\n      }\n    })\n    return {\n      baseClass,\n      text,\n      newProps,\n      maxDisabled,\n      minDisabled,\n      classNames,\n      vBind,\n      inputNumberRef,\n      changeVal,\n      handleBlur,\n      handleFocus,\n      handleChange\n      // handlePressEnter\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scInputNumber from './component/ScInputNumber.vue'\nimport { props } from './component/type'\n\nexport const ScInputNumber = withInstall(scInputNumber)\nexport declare type InputNumberProps = Partial<ExtractPropTypes<typeof props>> ","// import { tuple } from \"../../../utils\";\nimport { PropTypes } from \"../../../utils/propTypes\";\nimport { PropType } from 'vue'\n// export const SwitchSizes = tuple('small', 'default', 'large');\ntype CheckedType = boolean | string | number;\nconst switchProps = {\n  prefixCls: PropTypes.string,\n  size: {\n    type: String,\n    validator: (v:string) => ['small', 'default', 'large'].includes(v)\n  },\n  disabled: Boolean,\n  checkedChildren: PropTypes.VNodeChild,\n  unCheckedChildren: PropTypes.VNodeChild,\n  tabindex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  autofocus: Boolean,\n  loading: Boolean,\n  checked: PropTypes.oneOfType([PropTypes.string, PropTypes.number, Boolean]),\n  checkedValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number, Boolean]).def(\n    true,\n  ),\n  unCheckedValue: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.number,\n    Boolean,\n  ]).def(false),\n  onChange: {\n    type: Function as PropType<(checked: CheckedType, e: Event) => void>,\n  },\n  onClick: {\n    type: Function as PropType<(checked: CheckedType, e: Event) => void>,\n  },\n  onKeydown: {\n    type: Function as PropType<(e: Event) => void>,\n  },\n  onMouseup: {\n    type: Function as PropType<(e: Event) => void>,\n  },\n  'onUpdate:checked': {\n    type: Function as PropType<(checked: CheckedType) => void>,\n  },\n};\n\nexport { switchProps }\n","<template>\n  <Switch\n    :class=\"[baseClass]\"\n    v-bind=\"bindValue\"\n  >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template> \n  </Switch>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed } from 'vue'\nimport { Switch } from 'ant-design-vue'\nimport { switchProps } from './type'\nimport { basePrefixCls } from '../../../constant'\n\nexport default defineComponent({\n  name: 'ScSwitch',\n  inheritAttrs: false,\n  components: {\n    Switch\n  },\n  props: switchProps,\n  setup (props, { attrs, emit }) {\n    let baseClass = computed(() => {\n      return basePrefixCls + 'Switch ' + (props.size === 'large' ? 'ant-switch-large' : '')\n    })\n    \n    const bindValue = computed(() => {\n      return {\n        ...attrs,\n        ...props,\n        size: props.size === 'large' ? 'default' : props.size\n      }\n    })\n\n    return {\n      baseClass,\n      // checkedValue,\n      bindValue\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scSwitch from './component/ScSwitch.vue'\nimport { switchProps } from './component/type'\n\nexport const ScSwitch = withInstall(scSwitch)\n\nexport declare type SwitchProps = Partial<ExtractPropTypes<typeof switchProps>>;","<script lang=\"tsx\">\n  import type { ContextMenuItem, ItemContentProps, Axis } from './type';\n  import type { FunctionalComponent, CSSProperties, PropType } from 'vue';\n  import { defineComponent, nextTick, onMounted, computed, ref, unref, onUnmounted } from 'vue';\n  import { Menu, Divider } from 'ant-design-vue';\n\n  const prefixCls = 'sc-context-menu';\n\n  const props = {\n    width: { type: Number, default: 156 },\n    customEvent: { type: Object as PropType<Event>, default: null },\n    styles: { type: Object as PropType<CSSProperties> },\n    showIcon: { type: Boolean, default: true },\n    axis: {\n      // The position of the right mouse button click\n      type: Object as PropType<Axis>,\n      default() {\n        return { x: 0, y: 0 };\n      },\n    },\n    items: {\n      // The most important list, if not, will not be displayed\n      type: Array as PropType<ContextMenuItem[]>,\n      default() {\n        return [];\n      },\n    },\n  };\n\n  const ItemContent: FunctionalComponent<ItemContentProps> = (props) => {\n    const { item } = props;\n    return (\n      <span\n        style=\"display: inline-block; width: 100%; \"\n        class=\"px-4\"\n        onClick={props.handler.bind(null, item)}\n      >\n        {props.showIcon && item.icon}\n        <span>{item.label}</span>\n      </span>\n    );\n  };\n\n  export default defineComponent({\n    name: 'ScContextMenu',\n    props,\n    setup(props) {\n      const wrapRef = ref(null);\n      const showRef = ref(false);\n\n      const getStyle = computed((): CSSProperties => {\n        const { axis, items, styles, width } = props;\n        const { x, y } = axis || { x: 0, y: 0 };\n        const menuHeight = (items || []).length * 40;\n        const menuWidth = width;\n        const body = document.body;\n\n        const left = body.clientWidth < x + menuWidth ? x - menuWidth : x;\n        const top = body.clientHeight < y + menuHeight ? y - menuHeight : y;\n        return {\n          ...styles,\n          position: 'absolute',\n          width: `${width}px`,\n          left: `${left + 1}px`,\n          top: `${top + 1}px`,\n          zIndex: 9999,\n        };\n      });\n\n      onMounted(() => {\n        nextTick(() => (showRef.value = true));\n      });\n\n      onUnmounted(() => {\n        const el = unref(wrapRef);\n        el && document.body.removeChild(el);\n      });\n\n      function handleAction(item: ContextMenuItem, e: MouseEvent) {\n        const { handler, disabled } = item;\n        if (disabled) {\n          return;\n        }\n        showRef.value = false;\n        e?.stopPropagation();\n        e?.preventDefault();\n        handler?.();\n      }\n\n      function renderMenuItem(items: ContextMenuItem[]) {\n        const visibleItems = items.filter((item) => !item.hidden);\n        return visibleItems.map((item) => {\n          const { disabled, label, children, divider = false } = item;\n\n          const contentProps = {\n            item,\n            handler: handleAction,\n            showIcon: props.showIcon,\n          };\n\n          if (!children || children.length === 0) {\n            return (\n              <>\n                <Menu.Item disabled={disabled} class={`${prefixCls}__item`} key={label}>\n                  <ItemContent {...contentProps} />\n                </Menu.Item>\n                {divider ? <Divider key={`d-${label}`} /> : null}\n              </>\n            );\n          }\n          if (!unref(showRef)) return null;\n\n          return (\n            <Menu.SubMenu key={label} disabled={disabled} popupClassName={`${prefixCls}__popup`}>\n              {{\n                title: () => <ItemContent {...contentProps} />,\n                default: () => renderMenuItem(children),\n              }}\n            </Menu.SubMenu>\n          );\n        });\n      }\n      return () => {\n        if (!unref(showRef)) {\n          return null;\n        }\n        const { items } = props;\n        return (\n          <div class={prefixCls}>\n            <Menu inlineIndent={12} mode=\"vertical\" ref={wrapRef} style={unref(getStyle)}>\n              {renderMenuItem(items)}\n            </Menu>\n          </div>\n        );\n      };\n    },\n  });\n</script>\n","import contextMenuVue from './ScContextMenu.vue';\nimport { isClient } from '../../../utils/is';\nimport { CreateContextOptions, ContextMenuProps } from './type';\nimport { createVNode, render } from 'vue';\n\nconst menuManager: {\n  domList: Element[];\n  resolve: Fn;\n} = {\n  domList: [],\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  resolve: () => {},\n};\n\nexport const createContextMenu = function (options: CreateContextOptions) {\n  const { event } = options || {};\n\n  event && event?.preventDefault();\n\n  if (!isClient) {\n    return;\n  }\n  return new Promise((resolve) => {\n    const body = document.body;\n\n    const container = document.createElement('div');\n    const propsData: Partial<ContextMenuProps> = {};\n    if (options.styles) {\n      propsData.styles = options.styles;\n    }\n\n    if (options.items) {\n      propsData.items = options.items;\n    }\n\n    if (options.event) {\n      propsData.customEvent = event;\n      propsData.axis = { x: event.clientX, y: event.clientY };\n    }\n\n    const vm = createVNode(contextMenuVue, propsData);\n    render(vm, container);\n\n    const handleClick = function () {\n      menuManager.resolve('');\n    };\n\n    menuManager.domList.push(container);\n\n    const remove = function () {\n      menuManager.domList.forEach((dom: Element) => {\n        try {\n          dom && body.removeChild(dom);\n        } catch (error) {}\n      });\n      body.removeEventListener('click', handleClick);\n      body.removeEventListener('scroll', handleClick);\n    };\n\n    menuManager.resolve = function (arg) {\n      remove();\n      resolve(arg);\n    };\n    remove();\n    body.appendChild(container);\n    body.addEventListener('click', handleClick);\n    body.addEventListener('scroll', handleClick);\n  });\n};\n\nexport const destroyContextMenu = function () {\n  if (menuManager) {\n    menuManager.resolve('');\n    menuManager.domList = [];\n  }\n};\n","import { onUnmounted, getCurrentInstance } from 'vue';\nimport { createContextMenu, destroyContextMenu } from '../component/createContextMenu';\nimport type { ContextMenuItem } from '../component/type';\nexport type { ContextMenuItem };\nexport function useContextMenu(authRemove = true) {\n  if (getCurrentInstance() && authRemove) {\n    onUnmounted(() => {\n      destroyContextMenu();\n    });\n  }\n  return [createContextMenu, destroyContextMenu];\n}","<template>\n  <div :class=\"[baseClass, uuid, isPrefixIcon ? 'is-prefix' : '']\">\n    <Dropdown\n      v-bind=\"bindValue\"\n    >\n      <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n        <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n      </template> \n    </Dropdown>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed } from 'vue'\nimport { Dropdown } from 'ant-design-vue'\nimport { basePrefixCls } from '../../../constant'\nimport { buildUUID } from '../../../utils/uuid'\n\nexport default defineComponent({\n  components: {\n    Dropdown\n  },\n  setup (props, { slots, attrs }) {\n    const baseClass = basePrefixCls + 'Dropdown'\n    const uuid = 'sc' + buildUUID()\n\n    const bindValue = computed(() => {\n      return {\n        ...props,\n        ...attrs\n      }\n    })\n\n    const isPrefixIcon = computed(() => {\n      return Object.keys(slots).includes('prefixIcon')\n    })\n\n    return {\n      uuid,\n      baseClass,\n      bindValue,\n      isPrefixIcon\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scDropDown from './component/ScDropDown.vue'\nimport { props } from './component/type'\n\nexport const ScDropDown = withInstall(scDropDown)\nexport declare type SelectProps = Partial<ExtractPropTypes<typeof props>> ","import { ExtractPropTypes } from \"vue/dist/vue\"\nimport { PropType } from 'vue'\nimport { PropTypes } from \"../../../utils\"\n\nexport const PopconfirmProps = () => ({\n  visible: { type: Boolean, default: false },\n  okBeforeFun: Function as PropType<() => Promise<unknown>>,\n  cancelBeforeFun: Function as PropType<() => Promise<unknown>>,\n  type: {\n    type: String, \n    validator: (v:string) => ['primary', 'success', 'warning', 'error', 'default'].includes(v),\n    default () {\n      return 'default'\n    }\n  },\n  describe: String,\n  icon: PropTypes.any,\n  okText: PropTypes.any,\n  cancelText: PropTypes.any,\n  title: PropTypes.any,\n  isShowIcon: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  }\n})\n\nexport declare type ScPopconfirmProps = Partial<ExtractPropTypes<typeof PopconfirmProps>> ","<template>\n  <Popconfirm\n    v-bind=\"bindValue\"\n    @visibleChange=\"handleVisibleChange\"\n  >\n    <template \n      #[item]=\"data\" \n      v-for=\"item in Object.keys($slots).filter(_item => !['icon', 'title', 'okText'].includes(_item))\"\n      :key=\"item\"\n    >\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n    <template #icon>\n      <span v-if=\"isIcon\" :class=\"[baseClass+ '-icon']\">\n        <slot name=\"icon\"></slot>\n      </span>\n      <span v-else-if=\"!isIcon && !isShowIcon\" class=\"empty-icon\">\n      </span>\n      <span v-else \n        :class=\"[\n          baseClass+ '-icon', \n          getProps.type ? baseClass + '-type' : '' ,\n          getProps.type ? baseClass + '-' + getProps.type : ''\n        ]\"\n      >\n        <i v-if=\"getProps.type !== 'success'\" class=\"sc-ui sc-warning-circle-fill\"></i>\n        <i v-else class=\"sc-ui sc-success\"></i>\n      </span>\n    </template>\n    <template #title>\n      <slot name=\"title\" v-if=\"isTitle\"></slot>\n      <div v-else :class=\"[baseClass+ '-title']\">\n        {{ getProps.title }}\n        <p  v-if=\"getProps.describe\" :class=\"[baseClass+ '-describe']\">\n          {{ getProps.describe }}\n        </p>\n      </div>\n    </template>\n    <template #okText>\n      <span @click=\"handleOkText\">\n        <slot name=\"title\" v-if=\"isOkText\">\n        </slot>\n        <span v-else>\n          {{ getProps.okText }}\n        </span>\n      </span>\n    </template>\n    <template #cancelText>\n      <span @click=\"handleCancelText\">\n        <slot name=\"title\" v-if=\"isCancelText\"></slot>\n        <span v-else>\n          {{ getProps.cancelText }}\n        </span>\n      </span>\n    </template>\n  </Popconfirm>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, unref, ref, watch } from 'vue'\nimport { Popconfirm } from 'ant-design-vue'\n\nimport { ScButton } from '../../button'\nimport { PopconfirmProps } from './type'\nimport { basePrefixCls } from '../../../constant'\nimport { isFunction } from '../../../utils'\n\nexport default defineComponent({\n  name: 'ScPopconfirm',\n  inheritAttrs: false,\n  props: PopconfirmProps(),\n  components: {\n    Popconfirm,\n    ScButton\n  },\n  emits: ['visibleChange', 'update:visible', 'cancel'],\n  setup (props, { attrs, slots, emit }) {\n\n    const visibleRef = ref(false)\n\n    const getProps = computed(() => {\n      const filterKey =  ['icon']\n      const newProps = Object.entries(props).reduce((pre, next) => {\n        if (filterKey.includes(next[0]) && !props.isShowIcon) {\n          return {\n            ...pre\n          }\n        } else {\n          return {\n            ...pre,\n            [next[0]]: next[1]\n          }\n        }\n      }, {})\n      return newProps\n    })\n\n    const handleVisibleChange = (bool: boolean) => {\n      visibleRef.value = bool\n      emit('visibleChange', bool)\n    }\n\n    const baseClass = basePrefixCls + 'Popconfirm'\n\n    const isIcon = computed(() => {\n      return Object.keys(slots).includes('icon')\n    })\n    const isTitle = computed(() => {\n      return Object.keys(slots).includes('title')\n    })\n    const isOkText = computed(() => {\n      return Object.keys(slots).includes('okText')\n    })\n    const isCancelText = computed(() => {\n      return Object.keys(slots).includes('cancelText')\n    })\n\n    const handleOkText = async (e:Event) => {\n      const { onConfirm } = attrs\n      e.stopPropagation();\n      if (isFunction(getProps.value?.okBeforeFun)) {\n        const isClose = await getProps.value?.okBeforeFun()\n        visibleRef.value = isClose\n        if (isFunction(onConfirm)) {\n          await onConfirm(e)\n        }\n        return\n      } else {\n        if (isFunction(onConfirm)) {\n          await onConfirm(e)\n        }\n      }\n      emit('visibleChange', false)\n      visibleRef.value = false\n    }\n\n    const handleCancelText = async (e:Event) => {\n      e.stopPropagation();\n      if (isFunction(getProps.value?.cancelBeforeFun)) {\n        const isClose = await getProps.value?.cancelBeforeFun()\n        visibleRef.value = isClose\n        return\n      }\n      emit('visibleChange', false)\n      emit('cancel', e)\n      visibleRef.value = false\n    }\n\n    watch(() => visibleRef, (val) => {\n      emit('update:visible', val)\n    })\n\n    const bindValue = computed(() => {\n      return {\n        ...unref(getProps),\n        ...attrs,\n        visible: unref(visibleRef),\n        title: undefined,\n        okText: undefined,\n        cancelText: undefined,\n        onVisibleChange: undefined\n      }\n    })\n    return {\n      baseClass,\n      getProps,\n      bindValue,\n      isIcon,\n      isTitle,\n      isOkText,\n      isCancelText,\n      visibleRef,\n      handleVisibleChange,\n      handleOkText,\n      handleCancelText\n    }\n  }\n})\n</script>\n","import { withInstall } from \"../../utils/index\"\nimport scPopconfirm from './component/ScPopconfirm.vue'\n\nexport const ScPopconfirm = withInstall(scPopconfirm)\n\nexport * from './component/type'","import { VNodeChild, PropType } from 'vue'\nexport const props = () => ({\n  value: Array as PropType<string[] | number[]>,\n  disabled: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  widthSize: {\n    type: String,\n    validator: (v:string) => ['l', 'xs', 'x', 'md', 'xl'].includes(v)\n  },\n  prefixIcon: Object as PropType<VNodeChild>\n})","<template>\n  <div :class=\"[baseClass, uuid, newProps.widthSize ? baseClass + '-' + newProps.widthSize : '', isPrefixIcon ? 'is-prefix' : '', newProps.disabled ? 'is-disabled' : '']\">\n    <span>\n      <span :class=\"[baseClass+'-prefix']\" v-if=\"isPrefixIcon\">\n        <slot name=\"prefixIcon\"></slot>\n      </span>\n      <Cascader\n        :class=\"[isPrefixIcon ? 'is-prefix' : '']\"\n        v-bind=\"vBind\"\n        v-model=\"value\"\n        :disabled=\"newProps.disabled\"\n        :dropdownClassName=\"dropdownClassName\"\n      >\n        <!-- @popupVisibleChange=\"handlePopupVisibleChange\" -->\n        <template #[item]=\"data\" v-for=\"item in Object.keys($slots).filter(item => !['clearIcon', 'suffixIcon'].includes(item))\" :key=\"item\">\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </template> \n    \n        <template #suffixIcon>\n          <span v-if=\"!isSuffixIcon\">\n            <i \n              class=\"sc-ui sc-xiangxia\" \n            />\n          </span>\n          <slot v-else slot=\"suffixIcon\" />\n        </template>\n        <template #clearIcon>\n          <CloseCircleFilled class=\"clearSelect\" v-if=\"!isClearIcon\" />\n          <span v-else class=\"clearSelect\">\n            <slot  slot=\"clearIcon\">\n            </slot>\n          </span>\n        </template>\n      </Cascader>\n    </span>\n  </div>\n</template>\n\n<script lang=\"ts\" >\n\nimport { computed, defineComponent, unref } from 'vue'\nimport { Cascader, CheckboxGroup, Checkbox } from 'ant-design-vue'\nimport { CloseCircleFilled } from '@ant-design/icons-vue'\nimport { basePrefixCls } from '../../../constant'\nimport { buildUUID } from '../../../utils/uuid'\nimport { props } from './type'\n\nexport default defineComponent({\n  name: 'ScCascader',\n  // inheritAttrs: false,\n  props: props(),\n  components: {\n    Cascader,\n    CheckboxGroup,\n    Checkbox,\n    CloseCircleFilled,\n  },\n  setup(props, { emit, slots, attrs }) {\n    const baseClass = basePrefixCls + 'Cascader'\n\n    const value = computed({\n      get: () => {\n        return props.value\n      },\n      set: (val) => {\n        emit('update:value', val)\n      }\n    })\n    \n    const newProps = computed(() => {\n      return props\n    })\n\n    const vBind = computed(() => {\n      return {\n        ...unref(newProps),\n        ...attrs,\n        class: undefined,\n        style: undefined\n      }\n    })\n\n    const uuid = 'sc' + buildUUID()\n    \n    const dropdownClassName = computed(() => {\n      const dropdownClass = []\n      if (attrs.size) {\n        dropdownClass.push('dropdown-' + attrs.size)\n      }\n      if (attrs.dropdownClassName) {\n        dropdownClass.push(attrs.dropdownClassName)\n      }\n      return dropdownClass.join(' ')\n    })\n\n    const isSuffixIcon = computed(() => {\n      return Object.keys(slots).includes('suffixIcon')\n    })\n\n    const isPrefixIcon = computed(() => {\n      return Object.keys(slots).includes('prefixIcon')\n    })\n\n    const isClearIcon = computed(() => {\n      return Object.keys(slots).includes('clearIcon')\n    })\n    \n    return {\n      uuid,\n      baseClass,\n      newProps,\n      value,\n      vBind,\n      isSuffixIcon,\n      isPrefixIcon,\n      isClearIcon,\n      dropdownClassName,\n      // handlePopupVisibleChange\n      // handleChange\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scCascader from './component/ScCascader.vue'\nimport { props } from './component/type'\n\nexport const ScCascader = withInstall(scCascader)\nexport declare type SelectProps = Partial<ExtractPropTypes<typeof props>> ","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n    const map = Object.create(null);\n    const list = str.split(',');\n    for (let i = 0; i < list.length; i++) {\n        map[list[i]] = true;\n    }\n    return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n    [1 /* PatchFlags.TEXT */]: `TEXT`,\n    [2 /* PatchFlags.CLASS */]: `CLASS`,\n    [4 /* PatchFlags.STYLE */]: `STYLE`,\n    [8 /* PatchFlags.PROPS */]: `PROPS`,\n    [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n    [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n    [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n    [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n    [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n    [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n    [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n    [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n    [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n    [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n    [1 /* SlotFlags.STABLE */]: 'STABLE',\n    [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n    [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n    'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n    'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n    // Split the content into individual lines but capture the newline sequence\n    // that separated each line. This is important because the actual sequence is\n    // needed to properly take into account the full line length for offset\n    // comparison\n    let lines = source.split(/(\\r?\\n)/);\n    // Separate the lines and newline sequences into separate arrays for easier referencing\n    const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n    lines = lines.filter((_, idx) => idx % 2 === 0);\n    let count = 0;\n    const res = [];\n    for (let i = 0; i < lines.length; i++) {\n        count +=\n            lines[i].length +\n                ((newlineSequences[i] && newlineSequences[i].length) || 0);\n        if (count >= start) {\n            for (let j = i - range; j <= i + range || end > count; j++) {\n                if (j < 0 || j >= lines.length)\n                    continue;\n                const line = j + 1;\n                res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`);\n                const lineLength = lines[j].length;\n                const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n                if (j === i) {\n                    // push underline\n                    const pad = start - (count - (lineLength + newLineSeqLength));\n                    const length = Math.max(1, end > count ? lineLength - pad : end - start);\n                    res.push(`   |  ` + ' '.repeat(pad) + '^'.repeat(length));\n                }\n                else if (j > i) {\n                    if (end > count) {\n                        const length = Math.max(Math.min(end - count, lineLength), 1);\n                        res.push(`   |  ` + '^'.repeat(length));\n                    }\n                    count += lineLength + newLineSeqLength;\n                }\n            }\n            break;\n        }\n    }\n    return res.join('\\n');\n}\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n    `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n    `loop,open,required,reversed,scoped,seamless,` +\n    `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\n */\nfunction includeBooleanAttr(value) {\n    return !!value || value === '';\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n    if (attrValidationCache.hasOwnProperty(name)) {\n        return attrValidationCache[name];\n    }\n    const isUnsafe = unsafeAttrCharRE.test(name);\n    if (isUnsafe) {\n        console.error(`unsafe attribute name: ${name}`);\n    }\n    return (attrValidationCache[name] = !isUnsafe);\n}\nconst propsToAttrMap = {\n    acceptCharset: 'accept-charset',\n    className: 'class',\n    htmlFor: 'for',\n    httpEquiv: 'http-equiv'\n};\n/**\n * CSS properties that accept plain numbers\n */\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\n    `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\n    `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\n    `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\n    `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\n    `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\n    // SVG\n    `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\n    `stroke-miterlimit,stroke-opacity,stroke-width`);\n/**\n * Known attributes, this is used for stringification of runtime static nodes\n * so that we don't stringify bindings that cannot be set from HTML.\n * Don't also forget to allow `data-*` and `aria-*`!\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n */\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\n    `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\n    `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\n    `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\n    `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\n    `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\n    `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\n    `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\n    `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\n    `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\n    `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\n    `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\n    `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\n    `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\n    `value,width,wrap`);\n/**\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\n */\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\n    `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\n    `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\n    `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\n    `color-interpolation-filters,color-profile,color-rendering,` +\n    `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\n    `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\n    `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\n    `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\n    `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\n    `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\n    `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\n    `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\n    `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\n    `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\n    `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\n    `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\n    `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\n    `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\n    `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\n    `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\n    `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\n    `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\n    `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\n    `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\n    `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\n    `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\n    `strikethrough-position,strikethrough-thickness,string,stroke,` +\n    `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\n    `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\n    `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\n    `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\n    `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\n    `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\n    `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\n    `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\n    `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\n    `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\n    `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\n    if (isArray(value)) {\n        const res = {};\n        for (let i = 0; i < value.length; i++) {\n            const item = value[i];\n            const normalized = isString(item)\n                ? parseStringStyle(item)\n                : normalizeStyle(item);\n            if (normalized) {\n                for (const key in normalized) {\n                    res[key] = normalized[key];\n                }\n            }\n        }\n        return res;\n    }\n    else if (isString(value)) {\n        return value;\n    }\n    else if (isObject(value)) {\n        return value;\n    }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n    const ret = {};\n    cssText.split(listDelimiterRE).forEach(item => {\n        if (item) {\n            const tmp = item.split(propertyDelimiterRE);\n            tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n        }\n    });\n    return ret;\n}\nfunction stringifyStyle(styles) {\n    let ret = '';\n    if (!styles || isString(styles)) {\n        return ret;\n    }\n    for (const key in styles) {\n        const value = styles[key];\n        const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n        if (isString(value) ||\n            (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\n            // only render valid values\n            ret += `${normalizedKey}:${value};`;\n        }\n    }\n    return ret;\n}\nfunction normalizeClass(value) {\n    let res = '';\n    if (isString(value)) {\n        res = value;\n    }\n    else if (isArray(value)) {\n        for (let i = 0; i < value.length; i++) {\n            const normalized = normalizeClass(value[i]);\n            if (normalized) {\n                res += normalized + ' ';\n            }\n        }\n    }\n    else if (isObject(value)) {\n        for (const name in value) {\n            if (value[name]) {\n                res += name + ' ';\n            }\n        }\n    }\n    return res.trim();\n}\nfunction normalizeProps(props) {\n    if (!props)\n        return null;\n    let { class: klass, style } = props;\n    if (klass && !isString(klass)) {\n        props.class = normalizeClass(klass);\n    }\n    if (style) {\n        props.style = normalizeStyle(style);\n    }\n    return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n    'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n    'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n    'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n    'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n    'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n    'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n    'option,output,progress,select,textarea,details,dialog,menu,' +\n    'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n    'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n    'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n    'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n    'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n    'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n    'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n    'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n    'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n    'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n    const str = '' + string;\n    const match = escapeRE.exec(str);\n    if (!match) {\n        return str;\n    }\n    let html = '';\n    let escaped;\n    let index;\n    let lastIndex = 0;\n    for (index = match.index; index < str.length; index++) {\n        switch (str.charCodeAt(index)) {\n            case 34: // \"\n                escaped = '&quot;';\n                break;\n            case 38: // &\n                escaped = '&amp;';\n                break;\n            case 39: // '\n                escaped = '&#39;';\n                break;\n            case 60: // <\n                escaped = '&lt;';\n                break;\n            case 62: // >\n                escaped = '&gt;';\n                break;\n            default:\n                continue;\n        }\n        if (lastIndex !== index) {\n            html += str.slice(lastIndex, index);\n        }\n        lastIndex = index + 1;\n        html += escaped;\n    }\n    return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\n// https://www.w3.org/TR/html52/syntax.html#comments\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n    return src.replace(commentStripRE, '');\n}\n\nfunction looseCompareArrays(a, b) {\n    if (a.length !== b.length)\n        return false;\n    let equal = true;\n    for (let i = 0; equal && i < a.length; i++) {\n        equal = looseEqual(a[i], b[i]);\n    }\n    return equal;\n}\nfunction looseEqual(a, b) {\n    if (a === b)\n        return true;\n    let aValidType = isDate(a);\n    let bValidType = isDate(b);\n    if (aValidType || bValidType) {\n        return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n    }\n    aValidType = isSymbol(a);\n    bValidType = isSymbol(b);\n    if (aValidType || bValidType) {\n        return a === b;\n    }\n    aValidType = isArray(a);\n    bValidType = isArray(b);\n    if (aValidType || bValidType) {\n        return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n    }\n    aValidType = isObject(a);\n    bValidType = isObject(b);\n    if (aValidType || bValidType) {\n        /* istanbul ignore if: this if will probably never be called */\n        if (!aValidType || !bValidType) {\n            return false;\n        }\n        const aKeysCount = Object.keys(a).length;\n        const bKeysCount = Object.keys(b).length;\n        if (aKeysCount !== bKeysCount) {\n            return false;\n        }\n        for (const key in a) {\n            const aHasKey = a.hasOwnProperty(key);\n            const bHasKey = b.hasOwnProperty(key);\n            if ((aHasKey && !bHasKey) ||\n                (!aHasKey && bHasKey) ||\n                !looseEqual(a[key], b[key])) {\n                return false;\n            }\n        }\n    }\n    return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n    return arr.findIndex(item => looseEqual(item, val));\n}\n\n/**\n * For converting {{ interpolation }} values to displayed strings.\n * @private\n */\nconst toDisplayString = (val) => {\n    return isString(val)\n        ? val\n        : val == null\n            ? ''\n            : isArray(val) ||\n                (isObject(val) &&\n                    (val.toString === objectToString || !isFunction(val.toString)))\n                ? JSON.stringify(val, replacer, 2)\n                : String(val);\n};\nconst replacer = (_key, val) => {\n    // can't use isRef here since @vue/shared has no deps\n    if (val && val.__v_isRef) {\n        return replacer(_key, val.value);\n    }\n    else if (isMap(val)) {\n        return {\n            [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\n                entries[`${key} =>`] = val;\n                return entries;\n            }, {})\n        };\n    }\n    else if (isSet(val)) {\n        return {\n            [`Set(${val.size})`]: [...val.values()]\n        };\n    }\n    else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n        return String(val);\n    }\n    return val;\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\n    ? Object.freeze({})\n    : {};\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\nconst NOOP = () => { };\n/**\n * Always return false.\n */\nconst NO = () => false;\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith('onUpdate:');\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n    const i = arr.indexOf(el);\n    if (i > -1) {\n        arr.splice(i, 1);\n    }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === '[object Map]';\nconst isSet = (val) => toTypeString(val) === '[object Set]';\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isSymbol = (val) => typeof val === 'symbol';\nconst isObject = (val) => val !== null && typeof val === 'object';\nconst isPromise = (val) => {\n    return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n    // extract \"RawType\" from strings like \"[object RawType]\"\n    return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\nconst isIntegerKey = (key) => isString(key) &&\n    key !== 'NaN' &&\n    key[0] !== '-' &&\n    '' + parseInt(key, 10) === key;\nconst isReservedProp = /*#__PURE__*/ makeMap(\n// the leading comma is intentional so empty string \"\" is also included\n',key,ref,ref_for,ref_key,' +\n    'onVnodeBeforeMount,onVnodeMounted,' +\n    'onVnodeBeforeUpdate,onVnodeUpdated,' +\n    'onVnodeBeforeUnmount,onVnodeUnmounted');\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\nconst cacheStringFunction = (fn) => {\n    const cache = Object.create(null);\n    return ((str) => {\n        const hit = cache[str];\n        return hit || (cache[str] = fn(str));\n    });\n};\nconst camelizeRE = /-(\\w)/g;\n/**\n * @private\n */\nconst camelize = cacheStringFunction((str) => {\n    return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n});\nconst hyphenateRE = /\\B([A-Z])/g;\n/**\n * @private\n */\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\n/**\n * @private\n */\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\n/**\n * @private\n */\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\n// compare whether a value has changed, accounting for NaN.\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n    for (let i = 0; i < fns.length; i++) {\n        fns[i](arg);\n    }\n};\nconst def = (obj, key, value) => {\n    Object.defineProperty(obj, key, {\n        configurable: true,\n        enumerable: false,\n        value\n    });\n};\nconst toNumber = (val) => {\n    const n = parseFloat(val);\n    return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n    return (_globalThis ||\n        (_globalThis =\n            typeof globalThis !== 'undefined'\n                ? globalThis\n                : typeof self !== 'undefined'\n                    ? self\n                    : typeof window !== 'undefined'\n                        ? window\n                        : typeof global !== 'undefined'\n                            ? global\n                            : {}));\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n    return identRE.test(name)\n        ? `__props.${name}`\n        : `__props[${JSON.stringify(name)}]`;\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","\nimport { isArray, isObject, capitalize as toCapitalize } from \"@vue/shared\"\nimport { isClient } from \"@vueuse/core\"\n\n\nexport const EVENT_CODE = {\n  tab: 'Tab',\n  enter: 'Enter',\n  space: 'Space',\n  left: 'ArrowLeft', // 37\n  up: 'ArrowUp', // 38\n  right: 'ArrowRight', // 39\n  down: 'ArrowDown', // 40\n  esc: 'Escape',\n  delete: 'Delete',\n  backspace: 'Backspace',\n  numpadEnter: 'NumpadEnter',\n  pageUp: 'PageUp',\n  pageDown: 'PageDown',\n  home: 'Home',\n  end: 'End',\n}\n\nexport const CHANGE_EVENT = 'change'\n\nexport const UPDATE_MODEL_EVENT = 'update:modelValue'\n\nexport const capitalize = <T extends string>(str: T) => toCapitalize(str) as Capitalize<T>\n\nexport const isUndefined = (val: any): val is undefined => val === undefined\n\nexport const unique = <T>(arr: T[]) => [...new Set(arr)]\n\ntype Many<T> = T | ReadonlyArray<T>\n\nexport type Nullable<T> = T | null\n\nexport const castArray = <T>(arr: Many<T>): T[] => {\n  if(!arr && (arr as any) !== 0) return []\n  return Array.isArray(arr) ? arr : [arr]\n}\n\nexport const isLeaf = (el:HTMLElement) => {\n  return !el.getAttribute('aria-owns')\n}\n\nexport const focusNode = (el:HTMLElement) => {\n  if (!el) {\n    return\n  }\n  el.focus()\n  !isLeaf(el) && el.click()\n}\n\nexport const getSibling = (\n  el: HTMLElement,\n  distance: number,\n  elClass: string\n) => {\n  const { parentNode } = el\n  if (!parentNode) return null\n  const siblings = parentNode.querySelectorAll(elClass)\n  const index = Array.prototype.indexOf.call(siblings, el)\n  return siblings[index + distance] || null\n}\n\nexport const isEmpty = (val:unknown) => {\n  return (!val && val !== 0) || (isArray(val) && val.length === 0) || (isObject(val) && !Object.keys(val).length)\n}\n\nexport function scrollIntoView(\n  container: HTMLElement,\n  selected: HTMLElement\n): void {\n  if (!isClient) return\n\n  if (!selected) {\n    container.scrollTop = 0\n    return\n  }\n\n  const offsetParents: HTMLElement[] = []\n  let pointer = selected.offsetParent\n  while (\n    pointer !== null &&\n    container !== pointer &&\n    container.contains(pointer)\n  ) {\n    offsetParents.push(pointer as HTMLElement)\n    pointer = (pointer as HTMLElement).offsetParent\n  }\n  const top =\n    selected.offsetTop +\n    offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0)\n  const bottom = top + selected.offsetHeight\n  const viewRectTop = container.scrollTop\n  const viewRectBottom = viewRectTop + container.clientHeight\n\n  if (top < viewRectTop) {\n    container.scrollTop = top\n  } else if (bottom > viewRectBottom) {\n    container.scrollTop = bottom - container.clientHeight\n  }\n}\n\nexport const generateId = (): number => Math.floor(Math.random() * 10000)","// @ts-nocheck\nimport { defineComponent, h } from 'vue'\nimport { ScEllipsis } from '../../ellipsis'\nexport default defineComponent({\n  name: 'NodeContent',\n  setup() {\n    const ns = 'scCascader-node'\n    return {\n      ns,\n    }\n  },\n  render() {\n    const { ns } = this\n    const { node, panel } = this.$parent\n    const { data, label } = node\n    const { renderLabelFn, config } = panel\n    const { nodeEllipsis } = config\n    return nodeEllipsis?.open ? h(\n      ScEllipsis, {\n        style: {\n          maxWidth: nodeEllipsis?.maxWidth || '240px',\n          width: nodeEllipsis?.width || '240px'\n        }\n      }, { default: () => h(\n        'span',\n        { class: ns + '-label' },\n        renderLabelFn ? renderLabelFn({ node, data }) : label\n      )}\n    ) : h(\n      'span',\n      { class: ns + '-label' },\n      renderLabelFn ? renderLabelFn({ node, data }) : label\n    )\n  },\n})\n","// @ts-nocheck\nimport type { InjectionKey, VNode } from 'vue'\nimport type { Nullable } from '../utils'\nimport type {\n  default as CascaderNode,\n  CascaderOption,\n  CascaderProps,\n  ExpandTrigger,\n} from './node'\n\nexport type { CascaderNode, CascaderOption, CascaderProps, ExpandTrigger }\n\nexport type CascaderNodeValue = string | number\nexport type CascaderNodePathValue = CascaderNodeValue[]\nexport type CascaderValue =\n  | CascaderNodeValue\n  | CascaderNodePathValue\n  | (CascaderNodeValue | CascaderNodePathValue)[]\nexport type CascaderConfig = Required<CascaderProps>\nexport type isDisabled = (data: CascaderOption, node: CascaderNode) => boolean\nexport type isLeaf = (data: CascaderOption, node: CascaderNode) => boolean\nexport type Resolve = (dataList?: CascaderOption[]) => void\nexport type LazyLoad = (node: CascaderNode, resolve: Resolve) => void\nexport type RenderLabel = ({\n  node: CascaderNode,\n  data: CascaderOption,\n}) => VNode | VNode[]\n\nexport interface Tag {\n  node?: CascaderNode\n  key: number\n  text: string\n  hitState?: boolean\n  closable: boolean\n  isCollapseTag: boolean\n}\n\nexport interface ScCascaderPanelContext {\n  config: CascaderConfig\n  expandingNode: Nullable<CascaderNode>\n  checkedNodes: CascaderNode[]\n  isHoverMenu: boolean\n  initialLoaded: boolean\n  renderLabelFn: RenderLabel\n  lazyLoad: (\n    node?: CascaderNode,\n    cb?: (dataList: CascaderOption[]) => void\n  ) => void\n  expandNode: (node: CascaderNode, silent?: boolean) => void\n  handleCheckChange: (\n    node: CascaderNode,\n    checked: boolean,\n    emitClose?: boolean\n  ) => void\n}\n\nexport const CASCADER_PANEL_INJECTION_KEY: InjectionKey<ScCascaderPanelContext> =\n  Symbol()\n","<template>\n  <li\n    :id=\"`${menuId}-${node.uid}`\"\n    role=\"menuitem\"\n    :aria-haspopup=\"!isLeaf\"\n    :aria-owns=\"isLeaf ? null : menuId\"\n    :aria-expanded=\"inExpandingPath\"\n    :tabindex=\"expandable ? -1 : undefined\"\n    :class=\"[\n      ns,\n      checkStrictly ? 'isSelectable' : '',\n      node.checked ? 'isChecked' : '',\n      !expandable ? 'isDisabled' : '',\n      inExpandingPath && 'in-active-path',\n      inCheckedPath && 'in-checked-path',\n      isLeaf && node.checked && 'isSelected'\n    ]\"\n    @mouseenter=\"handleHoverExpand\"\n    @focus=\"handleHoverExpand\"\n    @click=\"handleClick\"\n  >\n    <!-- prefix -->\n    <Checkbox\n      v-if=\"multiple\"\n      :checked=\"node.checked\"\n      :indeterminate=\"node.indeterminate\"\n      :disabled=\"isDisabled\"\n      @click.stop\n      @update:checked=\"handleSelectCheck\"\n    />\n    <Radio\n      v-else-if=\"checkStrictly\"\n      :checked=\"node.checked\"\n      :label=\"node.uid\"\n      :disabled=\"isDisabled\"\n      @update:checked=\"handleSelectCheck\"\n      @click.stop\n    >\n      <span />\n    </Radio>\n    <!-- <el-icon v-else-if=\"isLeaf && node.checked\" :class=\"[ns + '-prefix' ]\">\n      <Icon icon=\"ep:check\"></Icon>\n    </el-icon> -->\n\n    <!-- content -->\n    <node-content />\n\n    <!-- postfix -->\n    <template v-if=\"!isLeaf\">\n      <span v-if=\"node.loading\" :class=\"['isLoading', ns + '-postfix']\">\n        <span class=\"loading-transition\"></span>\n        <!-- loading... -->\n      </span>\n      <span v-else :class=\"['arrow-right', ns + '-postfix']\">\n        <i class=\"sc-ui sc-you\"></i>\n      </span>\n    </template>\n  </li>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, defineComponent, inject } from 'vue'\nimport { Checkbox, Radio } from 'ant-design-vue'\nimport NodeContent from './node-content'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\nimport type { default as CascaderNode } from './node'\n\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n  name: 'ScCascaderNode',\n\n  components: {\n    Checkbox,\n    Radio,\n    NodeContent\n  },\n\n  props: {\n    node: {\n      type: Object as PropType<CascaderNode>,\n      required: true,\n    },\n    menuId: String,\n  },\n\n  emits: ['expand'],\n\n  setup(props, { emit }) {\n    const panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\n    const ns = 'scCascader-node'\n    const isHoverMenu = computed(() => panel.isHoverMenu)\n    const multiple = computed(() => panel.config.multiple)\n    const checkStrictly = computed(() => panel.config.checkStrictly)\n    const checkedNodeId = computed(() => panel.checkedNodes[0]?.uid)\n    const isDisabled = computed(() => props.node.isDisabled)\n    const isLeaf = computed(() => props.node.isLeaf)\n    const expandable = computed(\n      () => (checkStrictly.value && !isLeaf.value) || !isDisabled.value\n    )\n    const inExpandingPath = computed(() => isInPath(panel.expandingNode!))\n    // only useful in check-strictly mode\n    const inCheckedPath = computed(\n      () => checkStrictly.value && panel.checkedNodes.some(isInPath)\n    )\n\n    const isInPath = (node: CascaderNode) => {\n      const { level, uid } = props.node\n      return node?.pathNodes[level - 1]?.uid === uid\n    }\n\n    const doExpand = () => {\n      if (inExpandingPath.value) return\n      panel.expandNode(props.node)\n    }\n\n    const doCheck = (checked: boolean) => {\n      const { node } = props\n      if (checked === node.checked) return\n      panel.handleCheckChange(node, checked)\n    }\n\n    const doLoad = () => {\n      panel.lazyLoad(props.node, () => {\n        if (!isLeaf.value) doExpand()\n      })\n    }\n\n    const handleHoverExpand = (e: Event) => {\n      if (!isHoverMenu.value) return\n      handleExpand()\n      !isLeaf.value && emit('expand', e)\n    }\n\n    const handleExpand = () => {\n      const { node } = props\n      // do not exclude leaf node because the menus expanded might have to reset\n      if (!expandable.value || node.loading) return\n      node.loaded ? doExpand() : doLoad()\n    }\n\n    const handleClick = () => {\n      if (isHoverMenu.value && !isLeaf.value) return\n\n      if (\n        isLeaf.value &&\n        !isDisabled.value &&\n        !checkStrictly.value &&\n        !multiple.value\n      ) {\n        handleCheck(true)\n      } else {\n        handleExpand()\n      }\n    }\n\n    const handleSelectCheck = (checked: boolean) => {\n      if (checkStrictly.value) {\n        doCheck(checked)\n        if (props.node.loaded) {\n          doExpand()\n        }\n      } else {\n        handleCheck(checked)\n      }\n    }\n\n    const handleCheck = (checked: boolean) => {\n      if (!props.node.loaded) {\n        doLoad()\n      } else {\n        doCheck(checked)\n        !checkStrictly.value && doExpand()\n      }\n    }\n\n    return {\n      panel,\n      isHoverMenu,\n      multiple,\n      checkStrictly,\n      checkedNodeId,\n      isDisabled,\n      isLeaf,\n      expandable,\n      inExpandingPath,\n      inCheckedPath,\n      ns,\n      handleHoverExpand,\n      handleExpand,\n      handleClick,\n      handleCheck,\n      handleSelectCheck,\n    }\n  },\n})\n</script>\n","<template>\n  <sc-scrollbar\n    :key=\"menuId\"\n    tag=\"ul\"\n    role=\"menu\"\n    :class=\"ns\"\n    :wrap-class=\"ns + '-wrap'\"\n    :view-class=\"[ns + '-list', isEmpty ? 'isEmpty' : '']\"\n    @mousemove=\"handleMouseMove\"\n    @mouseleave=\"clearHoverZone\"\n  >\n    <ScCascaderNode\n      v-for=\"node in nodes\"\n      :key=\"node.uid\"\n      :node=\"node\"\n      :menu-id=\"menuId\"\n      @expand=\"handleExpand\"\n    />\n    <div v-if=\"isLoading\" :class=\"ns + '-empty-text'\">\n      <span class=\"loading-transition\"></span>\n    </div>\n    <div v-else-if=\"isEmpty\" :class=\"ns + '-empty-text'\">\n      <Empty v-if=\"!$slots.empty\"></Empty>\n      <slot v-else name=\"empty\"></slot>\n    </div>\n    <svg\n      v-else-if=\"panel?.isHoverMenu\"\n      ref=\"hoverZone\"\n      :class=\"ns + '-hover-zone'\"\n    ></svg>\n  </sc-scrollbar>\n</template>\n\n<script lang=\"ts\">\n\nimport { computed, defineComponent, getCurrentInstance, inject, ref } from 'vue'\nimport { ScScrollbar } from '../../scrollbar'\nimport ScCascaderNode from './node.vue'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\nimport { generateId } from '../utils'\nimport { basePrefixCls } from '../../../constant'\nimport { Empty } from '../../table'\n\nimport type { default as CascaderNode } from './node'\nimport type { PropType, Ref } from 'vue'\n\n\nexport default defineComponent({\n  name: 'ScCascaderMenu',\n\n  components: {\n    ScScrollbar,\n    ScCascaderNode,\n    Empty,\n  },\n\n  props: {\n    nodes: {\n      type: Array as PropType<CascaderNode[]>,\n      required: true,\n    },\n    index: {\n      type: Number,\n      required: true,\n    },\n  },\n\n  setup(props) {\n    const instance = getCurrentInstance()!\n    const ns = basePrefixCls + 'Cascader-menu'\n\n    const id = generateId()\n    let activeNode: Nullable<HTMLElement> = null\n    let hoverTimer: Nullable<number> = null\n\n    const panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\n    const hoverZone = ref<null | SVGSVGElement | Ref>(null)\n\n    const isEmpty = computed(() => !props.nodes.length)\n    const isLoading = computed(() => !panel.initialLoaded)\n    const menuId = computed(() => `cascader-menu-${id}-${props.index}`)\n\n    const handleExpand = (e: MouseEvent) => {\n      activeNode = e.target as HTMLElement\n    }\n\n    const handleMouseMove = (e: MouseEvent) => {\n      if (!panel.isHoverMenu || !activeNode || !hoverZone.value) return\n\n      if (activeNode.contains(e.target as HTMLElement)) {\n        clearHoverTimer()\n\n        const el = instance.vnode.el as HTMLElement\n        const { left } = el.getBoundingClientRect()\n        const { offsetWidth, offsetHeight } = el\n        const startX = e.clientX - left\n        const top = activeNode.offsetTop\n        const bottom = top + activeNode.offsetHeight\n\n        hoverZone.value.innerHTML = `\n          <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M${startX} ${top} L${offsetWidth} 0 V${top} Z\" />\n          <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M${startX} ${bottom} L${offsetWidth} ${offsetHeight} V${bottom} Z\" />\n        `\n      } else if (!hoverTimer) {\n        hoverTimer = window.setTimeout(\n          clearHoverZone,\n          panel.config.hoverThreshold\n        )\n      }\n    }\n\n    const clearHoverTimer = () => {\n      if (!hoverTimer) return\n      clearTimeout(hoverTimer)\n      hoverTimer = null\n    }\n\n    const clearHoverZone = () => {\n      if (!hoverZone.value) return\n      hoverZone.value.innerHTML = ''\n      clearHoverTimer()\n    }\n    return {\n      ns,\n      panel,\n      hoverZone,\n      isEmpty,\n      isLoading,\n      menuId,\n      handleExpand,\n      handleMouseMove,\n      clearHoverZone,\n    }\n  },\n})\n</script>\n","// @ts-nocheck\nimport { isFunction } from '@vue/shared'\nimport { capitalize, isEmpty, isUndefined } from '../utils'\nimport type { VNode } from 'vue'\n\nexport type CascaderNodeValue = string | number\nexport type CascaderNodePathValue = CascaderNodeValue[]\nexport type CascaderValue =\n  | CascaderNodeValue\n  | CascaderNodePathValue\n  | (CascaderNodeValue | CascaderNodePathValue)[]\nexport type CascaderConfig = Required<CascaderProps>\nexport type ExpandTrigger = 'click' | 'hover'\nexport type isDisabled = (data: CascaderOption, node: Node) => boolean\nexport type isLeaf = (data: CascaderOption, node: Node) => boolean\nexport type Resolve = (dataList?: CascaderOption[]) => void\nexport type LazyLoad = (node: Node, resolve: Resolve) => void\nexport type RenderLabel = ({\n  node: Node,\n  data: CascaderOption,\n}) => VNode | VNode[]\nexport interface CascaderOption extends Record<string, unknown> {\n  label?: string\n  value?: CascaderNodeValue\n  children?: CascaderOption[]\n  disabled?: boolean\n  leaf?: boolean\n}\nexport type NodeEllipsis = {\n  maxWidth?: string,\n  width?: string,\n  open?: boolean,\n}\nexport interface CascaderProps {\n  expandTrigger?: ExpandTrigger\n  multiple?: boolean\n  checkStrictly?: boolean\n  emitPath?: boolean\n  lazy?: boolean\n  lazyLoad?: LazyLoad\n  value?: string\n  label?: string\n  children?: string\n  disabled?: string | isDisabled\n  leaf?: string | isLeaf\n  hoverThreshold?: number,\n  nodeEllipsis?: NodeEllipsis\n}\n\nexport type Nullable<T> = null | T\n\ntype ChildrenData = CascaderOption[] | undefined\n\nlet uid = 0\n\nconst calculatePathNodes = (node: Node) => {\n  const nodes = [node]\n  let { parent } = node\n\n  while (parent) {\n    nodes.unshift(parent)\n    parent = parent.parent\n  }\n\n  return nodes\n}\n\nclass Node {\n  readonly uid: number = uid++\n  readonly level: number\n  readonly value: CascaderNodeValue\n  readonly label: string\n  readonly pathNodes: Node[]\n  readonly pathValues: CascaderNodePathValue\n  readonly pathLabels: string[]\n\n  childrenData: ChildrenData\n  children: Node[]\n  text: string\n  loaded: boolean\n  checked = false\n  indeterminate = false\n  loading = false\n\n  constructor(\n    readonly data: Nullable<CascaderOption>,\n    readonly config: CascaderConfig,\n    readonly parent?: Node,\n    readonly root = false\n  ) {\n    const { value: valueKey, label: labelKey, children: childrenKey } = config\n\n    const childrenData = data[childrenKey] as ChildrenData\n    const pathNodes = calculatePathNodes(this)\n\n    this.level = root ? 0 : parent ? parent.level + 1 : 1\n    this.value = data[valueKey] as CascaderNodeValue\n    this.label = data[labelKey] as string\n    this.pathNodes = pathNodes\n    this.pathValues = pathNodes.map((node) => node.value)\n    this.pathLabels = pathNodes.map((node) => node.label)\n    this.childrenData = childrenData\n    this.children = (childrenData || []).map(\n      (child) => new Node(child, config, this)\n    )\n    this.loaded = !config.lazy || this.isLeaf || !isEmpty(childrenData)\n  }\n\n  get isDisabled(): boolean {\n    const { data, parent, config } = this\n    const { disabled, checkStrictly } = config\n    const isDisabled = isFunction(disabled)\n      ? disabled(data, this)\n      : !!data[disabled]\n    return isDisabled || (!checkStrictly && parent?.isDisabled)\n  }\n\n  get isLeaf(): boolean {\n    const { data, config, childrenData, loaded } = this\n    const { lazy, leaf } = config\n    const isLeaf = isFunction(leaf) ? leaf(data, this) : data[leaf]\n\n    return isUndefined(isLeaf)\n      ? lazy && !loaded\n        ? false\n        : !(Array.isArray(childrenData) && childrenData.length)\n      : !!isLeaf\n  }\n\n  get valueByOption() {\n    return this.config.emitPath ? this.pathValues : this.value\n  }\n\n  appendChild(childData: CascaderOption) {\n    const { childrenData, children } = this\n    const node = new Node(childData, this.config, this)\n\n    if (Array.isArray(childrenData)) {\n      childrenData.push(childData)\n    } else {\n      this.childrenData = [childData]\n    }\n\n    children.push(node)\n\n    return node\n  }\n\n  calcText(allLevels: boolean, separator: string) {\n    const text = allLevels ? this.pathLabels.join(separator) : this.label\n    this.text = text\n    return text\n  }\n\n  broadcast(event: string, ...args: unknown[]) {\n    const handlerName = `onParent${capitalize(event)}`\n    this.children.forEach((child) => {\n      if (child) {\n        // bottom up\n        child.broadcast(event, ...args)\n        child[handlerName] && child[handlerName](...args)\n      }\n    })\n  }\n\n  emit(event: string, ...args: unknown[]) {\n    const { parent } = this\n    const handlerName = `onChild${capitalize(event)}`\n    if (parent) {\n      parent[handlerName] && parent[handlerName](...args)\n      parent.emit(event, ...args)\n    }\n  }\n\n  onParentCheck(checked: boolean) {\n    if (!this.isDisabled) {\n      this.setCheckState(checked)\n    }\n  }\n\n  onChildCheck() {\n    const { children } = this\n    const validChildren = children.filter((child) => !child.isDisabled)\n    const checked = validChildren.length\n      ? validChildren.every((child) => child.checked)\n      : false\n\n    this.setCheckState(checked)\n  }\n\n  setCheckState(checked: boolean) {\n    const totalNum = this.children.length\n    const checkedNum = this.children.reduce((c, p) => {\n      const num = p.checked ? 1 : p.indeterminate ? 0.5 : 0\n      return c + num\n    }, 0)\n\n    this.checked =\n      this.loaded &&\n      this.children\n        .filter((child) => !child.isDisabled)\n        .every((child) => child.loaded && child.checked) &&\n      checked\n    this.indeterminate =\n      this.loaded && checkedNum !== totalNum && checkedNum > 0\n  }\n\n  doCheck(checked: boolean) {\n    if (this.checked === checked) return\n\n    const { checkStrictly, multiple } = this.config\n\n    if (checkStrictly || !multiple) {\n      this.checked = checked\n    } else {\n      // bottom up to unify the calculation of the indeterminate state\n      this.broadcast('check', checked)\n      this.setCheckState(checked)\n      this.emit('check')\n    }\n  }\n}\n\nexport default Node\n","import lodash from 'lodash'\n// import isEqual from 'lodash/isEqual'\nimport Node from './node'\n\nimport type { Nullable } from '../utils'\nimport type {\n  CascaderConfig,\n  CascaderNodePathValue,\n  CascaderNodeValue,\n  CascaderOption,\n} from './node'\n\nconst { isEqual } = lodash\n\nconst flatNodes = (nodes: Node[], leafOnly: boolean) => {\n  return nodes.reduce((res, node) => {\n    if (node.isLeaf) {\n      res.push(node)\n    } else {\n      !leafOnly && res.push(node)\n      res = res.concat(flatNodes(node.children, leafOnly))\n    }\n    return res\n  }, [] as Node[])\n}\n\nexport default class Store {\n  readonly nodes: Node[]\n  readonly allNodes: Node[]\n  readonly leafNodes: Node[]\n\n  constructor(data: CascaderOption[], readonly config: CascaderConfig) {\n    const nodes = (data || []).map(\n      (nodeData) => new Node(nodeData, this.config)\n    )\n    this.nodes = nodes\n    this.allNodes = flatNodes(nodes, false)\n    this.leafNodes = flatNodes(nodes, true)\n  }\n\n  getNodes() {\n    return this.nodes\n  }\n\n  getFlattedNodes(leafOnly: boolean) {\n    return leafOnly ? this.leafNodes : this.allNodes\n  }\n\n  appendNode(nodeData: CascaderOption, parentNode?: Node) {\n    const node = parentNode\n      ? parentNode.appendChild(nodeData)\n      : new Node(nodeData, this.config)\n\n    if (!parentNode) this.nodes.push(node)\n\n    this.allNodes.push(node)\n    node.isLeaf && this.leafNodes.push(node)\n  }\n\n  appendNodes(nodeDataList: CascaderOption[], parentNode: Node) {\n    nodeDataList.forEach((nodeData) => this.appendNode(nodeData, parentNode))\n  }\n\n  // when checkStrictly, leaf node first\n  getNodeByValue(\n    value: CascaderNodeValue | CascaderNodePathValue,\n    leafOnly = false\n  ): Nullable<Node> {\n    if (!value && value !== 0) return null\n\n    const node = this.getFlattedNodes(leafOnly).find(\n      (node) => isEqual(node.value, value) || isEqual(node.pathValues, value)\n    )\n\n    return node || null\n  }\n\n  getSameNode(node: Node): Nullable<Node> {\n    if (!node) return null\n\n    const node_ = this.getFlattedNodes(false).find(\n      ({ value, level }) => isEqual(node.value, value) && node.level === level\n    )\n\n    return node_ || null\n  }\n}\n","import { computed } from 'vue'\nimport { NOOP } from '@vue/shared'\n\nimport type { PropType } from 'vue'\nimport type {\n  CascaderConfig,\n  CascaderOption,\n  CascaderProps,\n  CascaderValue,\n} from './node'\n\nexport const CommonProps = {\n  modelValue: [Number, String, Array] as PropType<CascaderValue>,\n  options: {\n    type: Array as PropType<CascaderOption[]>,\n    default: () => [] as CascaderOption[],\n  },\n  props: {\n    type: Object as PropType<CascaderProps>,\n    default: () => ({} as CascaderProps),\n  },\n}\n\nexport const DefaultProps: CascaderConfig = {\n  expandTrigger: 'click',\n  multiple: false,\n  checkStrictly: false, // whether all nodes can be selected\n  emitPath: true, // wether to emit an array of all levels value in which node is located\n  lazy: false,\n  lazyLoad: NOOP,\n  value: 'value',\n  label: 'label',\n  children: 'children',\n  leaf: 'leaf',\n  disabled: 'disabled',\n  hoverThreshold: 500,\n  nodeEllipsis: {\n    open: false,\n    maxWidth: '240px',\n    width: '240px'\n  }\n}\n\nexport const useCascaderConfig = (props: { props: CascaderProps }) => {\n  return computed(() => ({\n    ...DefaultProps,\n    ...props.props,\n  }))\n}\n","import { isLeaf } from '../utils'\nimport type { default as CascaderNode } from './node'\n\nexport const getMenuIndex = (el: HTMLElement) => {\n  if (!el) return 0\n  const pieces = el.id.split('-')\n  return Number(pieces[pieces.length - 2])\n}\n\nexport const checkNode = (el: HTMLElement) => {\n  if (!el) return\n\n  const input = el.querySelector('input')\n  if (input) {\n    input.click()\n  } else if (isLeaf(el)) {\n    el.click()\n  }\n}\n\nexport const sortByOriginalOrder = (\n  oldNodes: CascaderNode[],\n  newNodes: CascaderNode[]\n) => {\n  const newNodesCopy = newNodes.slice(0)\n  const newIds = newNodesCopy.map((node) => node.uid)\n  const res = oldNodes.reduce((acc, item) => {\n    const index = newIds.indexOf(item.uid)\n    if (index > -1) {\n      acc.push(item)\n      newNodesCopy.splice(index, 1)\n      newIds.splice(index, 1)\n    }\n    return acc\n  }, [] as CascaderNode[])\n\n  res.push(...newNodesCopy)\n\n  return res\n}\n","<template>\n  <div\n    :class=\"[ns + '-panel', border ? 'isBordered': '']\"\n    @keydown=\"handleKeyDown\"\n  >\n    <ScCascaderMenu\n      v-for=\"(menu, index) in menus\"\n      :key=\"index\"\n      :ref=\"(item) => (menuList[index] = item)\"\n      :index=\"index\"\n      :nodes=\"[...menu]\"\n    >\n      <template #empty v-if=\"$slots.empty\">\n        <slot name=\"empty\"></slot>\n      </template>\n    </ScCascaderMenu>\n  </div>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport {\n  computed,\n  defineComponent,\n  nextTick,\n  onBeforeUpdate,\n  onMounted,\n  provide,\n  reactive,\n  ref,\n  watch,\n} from 'vue'\n// import cloneDeep from 'lodash/cloneDeep'\n// import flattenDeep from 'lodash/flattenDeep'\n// import isEqual from 'lodash/isEqual'\nimport lodash from 'lodash'\nimport { isClient } from '@vueuse/core'\nimport {\n  castArray,\n  focusNode,\n  getSibling,\n  isEmpty,\n  scrollIntoView,\n  unique,\n  EVENT_CODE,\n  CHANGE_EVENT,\n  UPDATE_MODEL_EVENT\n} from '../utils'\n\nimport ScCascaderMenu from './menu.vue'\nimport Store from './store'\nimport Node from './node'\nimport { CommonProps, useCascaderConfig } from './config'\nimport { checkNode, getMenuIndex, sortByOriginalOrder } from './utils'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\nimport { basePrefixCls } from '../../../constant'\n\nimport type { PropType } from 'vue'\nimport type { Nullable } from '../utils'\nimport type {\n  default as CascaderNode,\n  CascaderNodeValue,\n  CascaderOption,\n  CascaderValue,\n  RenderLabel,\n} from './node'\n\nimport type { ScCascaderPanelContext } from './types'\n\nconst { cloneDeep, flattenDeep, isEqual } = lodash\n\nexport default defineComponent({\n  name: 'ScCascaderPanel',\n\n  components: {\n    ScCascaderMenu,\n  },\n\n  props: {\n    ...CommonProps,\n    border: {\n      type: Boolean,\n      default: true,\n    },\n    renderLabel: Function as PropType<RenderLabel>,\n  },\n\n  emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT, 'close', 'expand-change'],\n\n  setup(props, { emit, slots }) {\n    // for interrupt sync check status in lazy mode\n    let manualChecked = false\n\n    const ns = basePrefixCls + 'Cascader'\n    const config = useCascaderConfig(props)\n\n    let store: Nullable<Store> = null\n    const initialLoaded = ref(true)\n    const menuList = ref<any[]>([])\n    const checkedValue = ref<Nullable<CascaderValue>>(null)\n    const menus = ref<CascaderNode[][]>([])\n    const expandingNode = ref<Nullable<CascaderNode>>(null)\n    const checkedNodes = ref<CascaderNode[]>([])\n\n    const isHoverMenu = computed(() => config.value.expandTrigger === 'hover')\n    const renderLabelFn = computed(() => props.renderLabel || slots.default)\n\n    const initStore = () => {\n      const { options } = props\n      const cfg = config.value\n\n      manualChecked = false\n      store = new Store(options, cfg)\n      menus.value = [store.getNodes()]\n\n      if (cfg.lazy && isEmpty(props.options)) {\n        initialLoaded.value = false\n        lazyLoad(undefined, (list) => {\n          if (list) {\n            store = new Store(list, cfg)\n            menus.value = [store.getNodes()]\n          }\n          initialLoaded.value = true\n          syncCheckedValue(false, true)\n        })\n      } else {\n        syncCheckedValue(false, true)\n      }\n    }\n\n    const lazyLoad: ScCascaderPanelContext['lazyLoad'] = (node, cb) => {\n      const cfg = config.value\n      node! = node || new Node({}, cfg, undefined, true)\n      node.loading = true\n\n      const resolve = (dataList: CascaderOption[]) => {\n        const _node = node as Node\n        const parent = _node.root ? null : _node\n        dataList && store?.appendNodes(dataList, parent as any)\n        _node.loading = false\n        _node.loaded = true\n        _node.childrenData = _node.childrenData || []\n        cb && cb(dataList)\n      }\n\n      cfg.lazyLoad(node, resolve as any)\n    }\n\n    const expandNode: ScCascaderPanelContext['expandNode'] = (node, silent) => {\n      const { level } = node\n      const newMenus = menus.value.slice(0, level)\n      let newExpandingNode: Nullable<CascaderNode>\n\n      if (node.isLeaf) {\n        newExpandingNode = node.pathNodes[level - 2]\n      } else {\n        newExpandingNode = node\n        newMenus.push(node.children)\n      }\n\n      if (expandingNode.value?.uid !== newExpandingNode?.uid) {\n        expandingNode.value = node\n        menus.value = newMenus\n        !silent && emit('expand-change', node?.pathValues || [])\n      }\n    }\n\n    const handleCheckChange: ScCascaderPanelContext['handleCheckChange'] = (\n      node,\n      checked,\n      emitClose = true\n    ) => {\n      const { checkStrictly, multiple } = config.value\n      const oldNode = checkedNodes.value[0]\n      manualChecked = true\n\n      !multiple && oldNode?.doCheck(false)\n      node.doCheck(checked)\n      calculateCheckedValue()\n      emitClose && !multiple && !checkStrictly && emit('close')\n      !emitClose && !multiple && !checkStrictly && expandParentNode(node)\n    }\n\n    const expandParentNode = (node) => {\n      if (!node) return\n      node = node.parent\n      expandParentNode(node)\n      node && expandNode(node)\n    }\n\n    const getFlattedNodes = (leafOnly: boolean) => {\n      return store?.getFlattedNodes(leafOnly)\n    }\n\n    const getCheckedNodes = (leafOnly: boolean) => {\n      return getFlattedNodes(leafOnly)?.filter((node) => node.checked !== false)\n    }\n\n    const getCheckedNodeKeys = (leafOnly: boolean) => {\n      const nodes = getFlattedNodes(leafOnly)?.filter((node) => node.checked !== false)\n      return nodes?.map(item => item.pathValues)\n    }\n\n    const clearCheckedNodes = () => {\n      checkedNodes.value.forEach((node) => node.doCheck(false))\n      calculateCheckedValue()\n    }\n\n    const calculateCheckedValue = () => {\n      const { checkStrictly, multiple } = config.value\n      const oldNodes = checkedNodes.value\n      const newNodes = getCheckedNodes(!checkStrictly)!\n      // ensure the original order\n      const nodes = sortByOriginalOrder(oldNodes, newNodes)\n      const values = nodes.map((node) => node.valueByOption)\n      checkedNodes.value = nodes\n      checkedValue.value = multiple ? values : values[0] ?? null\n    }\n\n    const syncCheckedValue = (loaded = false, forced = false) => {\n      const { modelValue } = props\n      const { lazy, multiple, checkStrictly } = config.value\n      const leafOnly = !checkStrictly\n\n      if (\n        !initialLoaded.value ||\n        manualChecked ||\n        (!forced && isEqual(modelValue, checkedValue.value))\n      )\n        return\n\n      if (lazy && !loaded) {\n        const values: CascaderNodeValue[] = unique(\n          flattenDeep(castArray(modelValue))\n        )\n        const nodes = values\n          .map((val) => store?.getNodeByValue(val))\n          .filter((node) => !!node && !node.loaded && !node.loading) as Node[]\n\n        if (nodes.length) {\n          nodes.forEach((node) => {\n            lazyLoad(node, () => syncCheckedValue(false, forced))\n          })\n        } else {\n          syncCheckedValue(true, forced)\n        }\n      } else {\n        const values = multiple ? castArray(modelValue) : [modelValue]\n        const nodes = unique(\n          values.map((val) => store?.getNodeByValue(val, leafOnly))\n        ) as Node[]\n        syncMenuState(nodes, forced)\n        checkedValue.value = cloneDeep(modelValue)\n      }\n    }\n\n    const syncMenuState = (\n      newCheckedNodes: CascaderNode[],\n      reserveExpandingState = true\n    ) => {\n      const { checkStrictly } = config.value\n      const oldNodes = checkedNodes.value\n      const newNodes = newCheckedNodes.filter(\n        (node) => !!node && (checkStrictly || node.isLeaf)\n      )\n      const oldExpandingNode = store?.getSameNode(expandingNode.value!)\n      const newExpandingNode =\n        (reserveExpandingState && oldExpandingNode) || newNodes[0]\n\n      if (newExpandingNode) {\n        newExpandingNode.pathNodes.forEach((node) => expandNode(node, true))\n      } else {\n        expandingNode.value = null\n      }\n\n      oldNodes.forEach((node) => node.doCheck(false))\n      newNodes.forEach((node) => node.doCheck(true))\n\n      checkedNodes.value = newNodes\n      nextTick(scrollToExpandingNode)\n    }\n\n    const scrollToExpandingNode = () => {\n      if (!isClient) return\n\n      menuList.value.forEach((menu) => {\n        const menuElement = menu?.$el\n        if (menuElement) {\n          const container = menuElement.querySelector(\n            `.${ns}-menu-wrap`\n          )\n          const activeNode =\n          menuElement.querySelector(`.${ns+'-node'}.isActive`) ||\n          menuElement.querySelector(`.${ns+'-node'}.in-active-path`) ||\n          menuElement.querySelector(`.${ns+'-node'}.isSelected`)\n          scrollIntoView(container, activeNode)\n        }\n      })\n    }\n\n    const handleKeyDown = (e: KeyboardEvent) => {\n      const target = e.target as HTMLElement\n      const { code } = e\n\n      switch (code) {\n        case EVENT_CODE.up:\n        case EVENT_CODE.down: {\n          e.preventDefault()\n          const distance = code === EVENT_CODE.up ? -1 : 1\n          focusNode(\n            getSibling(target, distance, `.${ns+'-node'}[tabindex=\"-1\"]`)\n          )\n          break\n        }\n        case EVENT_CODE.left: {\n          e.preventDefault()\n          const preMenu = menuList.value[getMenuIndex(target) - 1]\n          const expandedNode = preMenu?.$el.querySelector(\n            `.${ns+'-node'}[aria-expanded=\"true\"]`\n          )\n          focusNode(expandedNode)\n          break\n        }\n        case EVENT_CODE.right: {\n          e.preventDefault()\n          const nextMenu = menuList.value[getMenuIndex(target) + 1]\n          const firstNode = nextMenu?.$el.querySelector(\n            `.${ns+'-node'}[tabindex=\"-1\"]`\n          )\n          focusNode(firstNode)\n          break\n        }\n        case EVENT_CODE.enter:\n          checkNode(target)\n          break\n      }\n    }\n\n    provide(\n      CASCADER_PANEL_INJECTION_KEY,\n      reactive({\n        config,\n        expandingNode,\n        checkedNodes,\n        isHoverMenu,\n        initialLoaded,\n        renderLabelFn,\n        lazyLoad,\n        expandNode,\n        handleCheckChange,\n      })\n    )\n\n    watch([config, () => props.options], initStore, {\n      deep: true,\n      immediate: true,\n    })\n\n    watch(\n      () => props.modelValue,\n      () => {\n        manualChecked = false\n        syncCheckedValue()\n      },\n      {\n        deep: true,\n      }\n    )\n\n    watch(\n      () => checkedValue.value,\n      (val) => {\n        if (!isEqual(val, props.modelValue)) {\n          emit(UPDATE_MODEL_EVENT, val)\n          emit(CHANGE_EVENT, val)\n        }\n      }\n    )\n\n    onBeforeUpdate(() => (menuList.value = []))\n\n    onMounted(() => !isEmpty(props.modelValue) && syncCheckedValue())\n\n    return {\n      ns,\n      menuList,\n      menus,\n      checkedNodes,\n      handleKeyDown,\n      handleCheckChange,\n      getFlattedNodes,\n      getCheckedNodes,\n      getCheckedNodeKeys,\n      clearCheckedNodes,\n      calculateCheckedValue,\n      scrollToExpandingNode,\n    }\n  },\n})\n</script>\n","import { withInstall } from \"../../utils/index\"\nimport scCascaderPanel from \"./component/index.vue\"\nexport * from \"./component/node\"\nexport * from \"./component/config\"\n\nexport const ScCascaderPanel = withInstall(scCascaderPanel)\n","import type { ExtractPropTypes } from \"vue\"\nexport const tagProps = () => ({\n  color: String,\n  size: {\n    type: String,\n    validator: (v:string) => ['small', 'default', 'large', 'medium'].includes(v) \n  },\n  tooltipDes: String,\n  /**\n * @description type\n */\n  type: {\n    type: String,\n    values: ['dark', 'light', 'outline', 'lightOutline'],\n    default: 'lightOutline',\n  },\n  status: {\n    type: String,\n    values: ['success', 'warning', 'error', 'primary', 'default', 'process', 'freeze'],\n    default: 'default',\n  },\n  border: {\n    type: Boolean,\n    default: true\n  },\n  checked: Boolean,\n  selected: Boolean,\n  disabled: Boolean,\n  loading: Boolean\n})\n\nexport type TagProps = ExtractPropTypes<typeof tagProps>","<template>\n  <Tag\n    v-bind=\"$attrs\"\n    :color=\"compProps.color\"\n    :disable=\"compProps.disabled\"\n    :class=\"classNames\"\n    @click=\"handleChange\"\n    :style=\"varStyle\"\n  >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <span\n        v-if=\"compProps.loading\"\n        :class=\"['loading-transition', baseClass + '-loading']\">\n      </span>\n      <Tooltip\n        placement=\"top\"\n      >\n        <template #title v-if=\"compProps.tooltipDes\">\n          {{ tooltipDes }}\n        </template>\n        <span :class=\"[compProps.tooltipDes ? 'underline-dashed ' : '']\">\n          <slot :name=\"item\" v-bind=\"data || {}\">\n          </slot>\n        </span>\n      </Tooltip>\n    </template>\n  </Tag>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, unref, computed, ref, watch } from 'vue'\nimport { Tag, Tooltip } from 'ant-design-vue'\n\nimport { basePrefixCls } from '../../../constant'\nimport { tagProps } from './type'\nimport { parseColorString, toRgbaString } from '../../../utils/hextorgba'\n\nexport default defineComponent({\n  name: 'ScTag',\n  inheritAttrs: false,\n  components: {\n    Tag,\n    Tooltip\n  },\n  props: tagProps(),\n  emits: ['change', 'update:checked'],\n  setup (props, { attrs, emit }) {\n    const baseClass = basePrefixCls + 'Tag';\n\n    const checked = ref()\n\n    const compProps = computed(() => {\n      return props\n    })\n    \n    watch(() => props.checked, (val) => {\n      checked.value = val\n    }, {\n      immediate: true\n    })\n    \n    const classNames = computed(() => {\n      const { type, size, status, selected, disabled, color, border, loading } = unref(compProps)\n      return [\n        attrs.class,\n        baseClass,\n        size ? baseClass + '--' + size : '',\n        status ? 'is-' + status : '',\n        type ? baseClass + '-' + type : '',\n        selected ? unref(checked) ? 'is-selected onSelect' : 'onSelect' : '',\n        disabled ? 'is-disabled' : '',\n        color ? 'is-custom-color' : '',\n        border ? '' : 'notBorder',\n        loading ? 'is-loading' : ''\n      ]\n    })\n\n    const varStyle = computed(() => {\n      const { color } = props;\n      const rgbaColor = color ? parseColorString(color) : ''\n      const shadowOutColor = rgbaColor ? toRgbaString(Object.assign(rgbaColor, { a: 0.1 })) : ''\n      const borderOutColor = rgbaColor ? toRgbaString(Object.assign(rgbaColor, { a: 0 })) : ''\n      if (!color) {\n        return {}\n      }\n      return {\n        '--customColor': color,\n        '--customBgColor': shadowOutColor,\n        '--customBorderColor': borderOutColor,\n      }\n    })\n\n    const handleChange = () => {\n      const { disabled } = unref(compProps)\n      if (disabled) {\n        return false\n      }\n      emit('update:checked', !checked.value)\n      emit('change', !checked.value)\n    }\n    return {\n      baseClass,\n      classNames,\n      compProps,\n      handleChange,\n      varStyle\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scTag from './component/ScTag.vue'\nimport { tagProps } from './component/type'\n\nexport const ScTag = withInstall(scTag)\nexport declare type TagProps = Partial<ExtractPropTypes<typeof tagProps>> ","import { isClient } from '@vueuse/core'\nimport { isElement } from '../utils/nodeType'\n\nimport type {\n  ComponentPublicInstance,\n  DirectiveBinding,\n  ObjectDirective,\n} from 'vue'\n\ntype DocumentHandler = <T extends MouseEvent>(mouseup: T, mousedown: T) => void\ntype FlushList = Map<\n  HTMLElement,\n  {\n    documentHandler: DocumentHandler\n    bindingFn: (...args: unknown[]) => unknown\n  }[]\n>\n\nconst nodeList: FlushList = new Map()\n\nlet startClick: MouseEvent\n\nif (isClient) {\n  document.addEventListener('mousedown', (e: MouseEvent) => (startClick = e))\n  document.addEventListener('mouseup', (e: MouseEvent) => {\n    for (const handlers of nodeList.values()) {\n      for (const { documentHandler } of handlers) {\n        documentHandler(e as MouseEvent, startClick)\n      }\n    }\n  })\n}\n\nfunction createDocumentHandler(\n  el: HTMLElement,\n  binding: DirectiveBinding\n): DocumentHandler {\n  let excludes: HTMLElement[] = []\n  if (Array.isArray(binding.arg)) {\n    excludes = binding.arg\n  } else if (isElement(binding.arg)) {\n    // due to current implementation on binding type is wrong the type casting is necessary here\n    excludes.push(binding.arg as unknown as HTMLElement)\n  }\n  return function (mouseup, mousedown) {\n    const popperRef = (\n      binding.instance as ComponentPublicInstance<{\n        popperRef: HTMLElement\n      }>\n    ).popperRef\n    const mouseUpTarget = mouseup.target as Node\n    const mouseDownTarget = mousedown?.target as Node\n    const isBound = !binding || !binding.instance\n    const isTargetExists = !mouseUpTarget || !mouseDownTarget\n    const isContainedByEl =\n      el.contains(mouseUpTarget) || el.contains(mouseDownTarget)\n    const isSelf = el === mouseUpTarget\n\n    const isTargetExcluded =\n      (excludes.length &&\n        excludes.some((item) => item?.contains(mouseUpTarget))) ||\n      (excludes.length && excludes.includes(mouseDownTarget as HTMLElement))\n    const isContainedByPopper =\n      popperRef &&\n      (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget))\n    if (\n      isBound ||\n      isTargetExists ||\n      isContainedByEl ||\n      isSelf ||\n      isTargetExcluded ||\n      isContainedByPopper\n    ) {\n      return\n    }\n    binding.value(mouseup, mousedown)\n  }\n}\n\nconst ClickOutside: ObjectDirective = {\n  beforeMount(el: HTMLElement, binding: DirectiveBinding) {\n    // there could be multiple handlers on the element\n    if (!nodeList.has(el)) {\n      nodeList.set(el, [])\n    }\n\n    nodeList.get(el)!.push({\n      documentHandler: createDocumentHandler(el, binding),\n      bindingFn: binding.value,\n    })\n  },\n  updated(el: HTMLElement, binding: DirectiveBinding) {\n    if (!nodeList.has(el)) {\n      nodeList.set(el, [])\n    }\n\n    const handlers = nodeList.get(el)!\n    const oldHandlerIndex = handlers.findIndex(\n      (item) => item.bindingFn === binding.oldValue\n    )\n    const newHandler = {\n      documentHandler: createDocumentHandler(el, binding),\n      bindingFn: binding.value,\n    }\n\n    if (oldHandlerIndex >= 0) {\n      // replace the old handler to the new handler\n      handlers.splice(oldHandlerIndex, 1, newHandler)\n    } else {\n      handlers.push(newHandler)\n    }\n  },\n  unmounted(el: HTMLElement) {\n    // remove all listeners when a component unmounted\n    nodeList.delete(el)\n  },\n}\n\nexport default ClickOutside\n","export const isLeaf = (el: HTMLElement) => !el.getAttribute('aria-owns')\n\nexport const getSibling = (\n  el: HTMLElement,\n  distance: number,\n  elClass: string\n) => {\n  const { parentNode } = el\n  if (!parentNode) return null\n  const siblings = parentNode.querySelectorAll(elClass)\n  const index = Array.prototype.indexOf.call(siblings, el)\n  return siblings[index + distance] || null\n}\n\nexport const focusNode = (el: HTMLElement) => {\n  if (!el) return\n  el.focus()\n  !isLeaf(el) && el.click()\n}\n\nexport const isKorean = (text: string) =>\n  /([(\\uAC00-\\uD7AF)|(\\u3130-\\u318F)])+/gi.test(text)\n","import { Slot, CSSProperties, VNode, ExtractPropTypes } from \"vue\"\n\nimport { SizeEnum } from './../../../enums/sizeEnum'\n\nexport const componentSizes = ['', 'default', 'small', 'large'] as const\n\nexport type { Placement, Options } from '@popperjs/core'\n\nexport interface OptionsItem {\n  label: string,\n  value: string,\n  children: string,\n  disabled: boolean,\n  [key: string]: any\n}\nexport interface ShowSearch {\n  filter?: (inputValue: string, options: OptionsItem[], fieldNames: OptionsItem) => boolean;\n  render?: (arg?: {\n    inputValue: string;\n    path: OptionsItem[];\n    prefixCls: string;\n    fieldNames: OptionsItem;\n  }) => any;\n  sort?: (a: OptionsItem[], b: OptionsItem[], inputValue: string, fieldNames: OptionsItem) => number;\n  matchInputWidth?: boolean;\n  limit?: number | false;\n}\nexport type NodeEllipsis = {\n  maxWidth?: string,\n  width?: string,\n  open?: boolean,\n}\nexport interface CascaderProps {\n  allowClear: boolean,\n  autofocus: boolean,\n  bordered: boolean,\n  clearIcon: Slot,\n  defaultValue: string[] | number[],\n  disabled: boolean,\n  dropdownClassName: string,\n  dropdownStyle: CSSProperties,\n  expandIcon: Slot,\n  expandTrigger: 'click' | 'hover',\n  fieldNames: Partial<OptionsItem>,\n  getPopupContainer: (triggerNode: HTMLElement) => void,\n\n  // displayRender\n  // loadData:\n\n  maxTagCount: number,\n  maxTagPlaceholder: any,\n  multiple: boolean,\n  notFoundContent: string | Slot,\n  open: boolean,\n  options: Partial<OptionsItem[]>,\n  placeholder: string,\n  placement: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight',\n  removeIcon: Slot,\n  searchValue: string,\n  showSearch: boolean | ShowSearch,\n  size: SizeEnum,\n  suffixIcon: VNode | Slot,\n  tagRender: Slot,\n  value: string | number | string[] | number[],\n  nodeEllipsis?: NodeEllipsis\n}\n\nexport const tagProps = () => ({\n  closable: Boolean,\n  type: {\n    type: String,\n    values: ['success', 'info', 'warning', 'danger', ''],\n    default: '',\n  },\n  hit: Boolean,\n  disableTransitions: Boolean,\n  color: {\n    type: String,\n    default: '',\n  },\n  size: {\n    type: String,\n    values: componentSizes,\n    default: '',\n  },\n  effect: {\n    type: String,\n    values: ['dark', 'light', 'plain'],\n    default: 'light',\n  },\n  round: Boolean,\n} as const)\nexport type TagProps = ExtractPropTypes<typeof tagProps>\n\nexport type ScCascaderNewProps = CascaderProps","<template>\n  <!-- :overlayStyle=\"{'display': isDefaultValue ? 'static' : 'none'}\" -->\n  <Tooltip\n    ref=\"tooltipRef\"\n    :visible=\"popperVisible\"\n    :teleported=\"teleported\"\n    :overlayClassName=\"`${[nsCascader + '-dropdown', popperClass, popupClassName, uuid].join(' ')}`\"\n    :overlayStyle=\"popupStyle\"\n    :popper-options=\"popperOptions\"\n    :fallback-placements=\"[\n      'bottomLeft',\n      'bottom',\n      'topLeft',\n      'top',\n      'right',\n      'left',\n    ]\"\n    :stop-popper-mouse-event=\"false\"\n    :gpu-acceleration=\"false\"\n    :placement=\"popupPlacement || 'bottomLeft'\"\n    :transition=\"`${nsCascader}-zoom-in-top`\"\n    effect=\"light\"\n    pure\n    persistent\n    @visible-change=\"hideSuggestionPanel\"\n    trigger=\"click\"\n    :get-popup-container=\"getPopupContainer\"\n  >\n    <template #default>\n      <div\n        v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n        :class=\"[\n          nsCascader,\n          nsCascader + '-' + realSize,\n          isDisabled ? 'isDisabled' : '',\n          // nsCascader.is('disabled', isDisabled),\n          multiple ? 'isMultiple' : ''\n        ]\"\n        ref=\"cascaderRef\"\n        :style=\"$attrs.style\"\n        @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n        @keydown=\"handleKeyDown\"\n        @mouseenter=\"inputHover = true\"\n        @mouseleave=\"inputHover = false\"\n      >\n      <!-- nsCascader.is('focus', popperVisible) -->\n        <ScInput\n          ref=\"input\"\n          v-model:value=\"inputValue\"\n          :placeholder=\"multiple ? currentPlaceholder : inputPlaceholder\"\n          :readonly=\"readonly\"\n          :disabled=\"isDisabled\"\n          :validate-event=\"false\"\n          :size=\"realSize\"\n          :class=\"popperVisible ? 'isFocus' : ''\"\n          @compositionstart=\"handleComposition\"\n          @compositionupdate=\"handleComposition\"\n          @compositionend=\"handleComposition\"\n          @focus=\"(e) => $emit('focus', e)\"\n          @blur=\"(e) => $emit('blur', e)\"\n          @input=\"handleInput\"\n        >\n          <template #prefix v-if=\"isPrefixIcon\">\n            <slot name=\"prefixIcon\"></slot>\n          </template>\n          <template #suffix>\n            <i\n              v-if=\"clearBtnVisible\"\n              key=\"clear\"\n              class=\"sc-ui sc-error-fill\"\n              @click.stop=\"handleClear\"\n            ></i>\n            <i\n              v-else\n              :class=\"[\n                'sc-ui', \n                'sc-xiangxia',\n                popperVisible ? 'isReverse' : ''\n              ]\"\n              key=\"arrow-down\"\n              @click.stop=\"togglePopperVisible()\"\n            >\n            </i>\n            <template v-if=\"isInfoTooltip\">\n              <Tooltip\n              >\n                <template #title>\n                  {{ infoTooltip }}\n                </template>\n                <i class=\"sc-ui sc-question-circle\"></i>\n              </Tooltip>\n            </template>\n          </template>\n        </ScInput>\n        <div v-if=\"multiple\" ref=\"tagWrapper\" :class=\"[nsCascader + '-tags', collapseTags ? 'isCollapseTags' : '', multiple && isPrefixIcon ? 'isMultiple-prefixIcon-tags' : '']\">\n          <div v-if=\"multiple && isPrefixIcon\" class=\"isMultiple-prefixIcon\">\n            <slot name=\"prefixIcon\"></slot>\n          </div>\n          <div v-if=\"isPrefixIcon\" class=\"isMultiple-prefixIcon-tags__container\">\n            <ScTag\n              v-for=\"tag in presentTags\"\n              :key=\"tag.key\"\n              :type=\"tagType\"\n              :size=\"tagSize\"\n              :hit=\"tag.hitState\"\n              :closable=\"tag.closable\"\n              :class=\"[tag.isCollapseTag ? 'isTooltipTag' : '']\"\n              disable-transitions\n              @close=\"(event) => { event.stopPropagation(); deleteTag(tag); }\"\n            >\n              <template v-if=\"tag.isCollapseTag === false\">\n                <span >{{ tag.text }}</span>\n              </template>\n              <template v-else>\n                <template v-if=\"collapseTagsTooltip === false\">\n                    <span>{{ tag.text }}</span>\n                </template>\n                <template v-else>\n                  <Tooltip\n                    :disabled=\"popperVisible || !collapseTagsTooltip\"\n                    :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n                    placement=\"bottom\"\n                    overlay-class-name=\"isTooltipTag-pd0\"\n                    effect=\"light\"\n                  >\n                    <template #default>\n                      <span>{{ tag.text }}</span>\n                    </template>\n                    <template #title>\n                      <ScScrollbar\n                        :max-height=\"searchHeight\"\n                        :view-class=\"nsCascader + '-collapse-tags'\"\n                      >\n                        <div\n                          v-for=\"(tag2, idx) in allPresentTags.slice(1)\"\n                          :key=\"idx\"\n                          :class=\"nsCascader + '-collapse-tag'\"\n                        >\n                          <ScTag\n                            :key=\"tag2.key\"\n                            :class=\"['in-tooltip']\"\n                            :type=\"tagType\"\n                            :size=\"tagSize\"\n                            :hit=\"tag2.hitState\"\n                            :closable=\"tag2.closable\"\n                            disable-transitions\n                            @close=\"(event) => {  event.stopPropagation(); deleteTag(tag2); }\"\n                            @click.stop=\"togglePopperVisible()\"\n                          >\n                            <span>{{ tag2.text }}</span>\n                          </ScTag>\n                        </div>\n                      </ScScrollbar>\n                    </template>\n                  </Tooltip>\n                </template>\n              </template>\n            </ScTag>\n            <input\n              v-if=\"filterable && !isDisabled\"\n              v-model=\"searchInputValue\"\n              type=\"text\"\n              :class=\"nsCascader + '-search-input'\"\n              :placeholder=\"presentText || presentTags.length ? '' : inputPlaceholder\"\n              @input=\"(e) => handleInput(searchInputValue, e)\"\n              @click.stop=\"togglePopperVisible(true)\"\n              @keydown.delete=\"handleDelete\"\n              @focus=\"(e) => $emit('focus', e)\"\n              @blur=\"(e) => $emit('blur', e)\"\n              @compositionstart=\"handleComposition\"\n              @compositionupdate=\"handleComposition\"\n              @compositionend=\"handleComposition\"\n            />\n          </div>\n          <template v-else>\n            <ScTag\n              v-for=\"tag in presentTags\"\n              :key=\"tag.key\"\n              :type=\"tagType\"\n              :size=\"tagSize\"\n              :hit=\"tag.hitState\"\n              :closable=\"tag.closable\"\n              :class=\"[tag.isCollapseTag ? 'isTooltipTag' : '']\"\n              disable-transitions\n              @close=\"(event) => { event.stopPropagation(); deleteTag(tag); }\"\n            >\n              <template v-if=\"tag.isCollapseTag === false\">\n                <span >{{ tag.text }}</span>\n              </template>\n              <template v-else>\n                <template v-if=\"collapseTagsTooltip === false\">\n                    <span>{{ tag.text }}</span>\n                </template>\n                <template v-else>\n                  <Tooltip\n                    :disabled=\"popperVisible || !collapseTagsTooltip\"\n                    :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n                    placement=\"bottom\"\n                    overlay-class-name=\"isTooltipTag-pd0\"\n                    effect=\"light\"\n                  >\n                    <template #default>\n                      <span>{{ tag.text }}</span>\n                    </template>\n                    <template #title>\n                      <ScScrollbar\n                        :max-height=\"searchHeight\"\n                        :view-class=\"nsCascader + '-collapse-tags'\"\n                      >\n                        <div\n                          v-for=\"(tag2, idx) in allPresentTags.slice(1)\"\n                          :key=\"idx\"\n                          :class=\"nsCascader + '-collapse-tag'\"\n                        >\n                          <ScTag\n                            :key=\"tag2.key\"\n                            :class=\"['in-tooltip']\"\n                            :type=\"tagType\"\n                            :size=\"tagSize\"\n                            :hit=\"tag2.hitState\"\n                            :closable=\"tag2.closable\"\n                            disable-transitions\n                            @close=\"(event) => {  event.stopPropagation(); deleteTag(tag2); }\"\n                            @click.stop=\"togglePopperVisible()\"\n                          >\n                            <span>{{ tag2.text }}</span>\n                          </ScTag>\n                        </div>\n                      </ScScrollbar>\n                    </template>\n                  </Tooltip>\n                </template>\n              </template>\n            </ScTag>\n            <input\n              v-if=\"filterable && !isDisabled\"\n              v-model=\"searchInputValue\"\n              type=\"text\"\n              :class=\"nsCascader + '-search-input'\"\n              :placeholder=\"presentText || presentTags.length ? '' : inputPlaceholder\"\n              @input=\"(e) => handleInput(searchInputValue, e)\"\n              @click.stop=\"togglePopperVisible(true)\"\n              @keydown.delete=\"handleDelete\"\n              @focus=\"(e) => $emit('focus', e)\"\n              @blur=\"(e) => $emit('blur', e)\"\n              @compositionstart=\"handleComposition\"\n              @compositionupdate=\"handleComposition\"\n              @compositionend=\"handleComposition\"\n            />\n          </template>\n        </div>\n\n        <div v-if=\"!isDefaultValue\" style=\"height: 0; opacity: 0; width: 0; overflow: hidden; position: relative;\">\n          <ScCascaderPanel\n            ref=\"panel1\"\n            v-model=\"checkedValue\"\n            :options=\"options\"\n            :props=\"props\"\n            :border=\"false\"\n            :render-label=\"$slots.default\"\n            @expand-change=\"handleExpandChange\"\n            @close=\"$nextTick(() => togglePopperVisible(false))\"\n          />\n        </div>\n      </div>\n    </template>\n\n    <template #title>\n      <ScCascaderPanel\n        v-show=\"!filtering\"\n        ref=\"panel\"\n        v-model=\"checkedValue\"\n        :options=\"options\"\n        :props=\"props\"\n        :border=\"false\"\n        @expand-change=\"handleExpandChange\"\n        @close=\"$nextTick(() => togglePopperVisible(false))\"\n      >\n        <template #empty v-if=\"$slots.empty\">\n          <slot name=\"empty\"></slot>\n        </template>\n        <template #default=\"{ node, data }\" v-if=\"$slots.default\">\n          <slot name=\"default\" v-bind=\"{ node, data}\"></slot>\n        </template>\n      </ScCascaderPanel>\n      <ScScrollbar\n        v-if=\"filterable\"\n        v-show=\"filtering\"\n        ref=\"suggestionPanel\"\n        tag=\"ul\"\n        :max-height=\"searchHeight\"\n        :class=\"nsCascader + '-suggestion-panel'\"\n        :view-class=\"nsCascader + '-suggestion-list'\"\n        @keydown=\"handleSuggestionKeyDown\"\n      >\n        <template v-if=\"suggestions.length\">\n          <li\n            v-for=\"item in suggestions\"\n            :key=\"item.uid\"\n            :class=\"[\n              nsCascader + '-suggestion-item',\n              item.checked ? 'isChecked' : ''\n              // nsCascader.is('checked', item.checked),\n            ]\"\n            :tabindex=\"-1\"\n            @click=\" handleSuggestionClick(item)\"\n          >\n            <Checkbox\n              v-model:checked=\"item.checked\"\n            >\n              <span>{{ item.text }}</span>\n            </Checkbox>\n          </li>\n        </template>\n        <slot v-else name=\"empty\">\n          <li :class=\"nsCascader + '-empty-text'\" v-if=\"!$slots.empty\">\n            <!-- {{ t('el.cascader.noMatch') }} -->\n            暂无数据\n          </li>\n          <slot name=\"empty\"></slot>\n        </slot>\n      </ScScrollbar>\n    </template>\n  </Tooltip>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, defineComponent, nextTick, onMounted, ref, watch } from 'vue'\nimport { isPromise } from '@vue/shared'\nimport lodash from 'lodash'\n\nimport { isClient, useCssVar, useResizeObserver } from '@vueuse/core'\nimport {\n  ScCascaderPanel,\n  CommonProps,\n} from '../../cascaderPanel'\nimport { ScInput } from '../../input'\n\nimport { ScScrollbar } from '../../scrollbar'\nimport { ScTag } from '../../tag'\nimport { Tooltip, Checkbox } from 'ant-design-vue'\nimport ClickOutside from '../../../directives/clickOutside'\n\nimport {\n  focusNode,\n  getSibling,\n  isKorean\n} from './utils'\n\nimport {\n  CHANGE_EVENT,\n  EVENT_CODE,\n  UPDATE_MODEL_EVENT,\n} from '../../cascaderPanel/utils'\n\n// import { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\n\nimport type { Options } from './type'\nimport { tagProps } from './type'\n\nimport { pxToRem, isArray } from '../../../utils'\n\nimport { buildUUID } from '../../../utils/uuid'\n\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type {\n  CascaderNode,\n  CascaderValue,\n  Tag as TagType,\n} from '../../cascaderPanel'\n\nimport type { ComponentSize } from './type'\n\nconst { cloneDeep, debounce, isEqual } = lodash\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype tooltipType = InstanceType<typeof ElTooltip>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst popperOptions: Partial<Options> = {\n  modifiers: [\n    {\n      name: 'arrowPosition',\n      enabled: true,\n      phase: 'main',\n      fn: ({ state }) => {\n        const { modifiersData, placement } = state as any\n        if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n        modifiersData.arrow.x = 35\n      },\n      requires: ['arrow'],\n    },\n  ],\n}\nconst COMPONENT_NAME = 'ScCascaderNew'\nexport default defineComponent({\n  name: COMPONENT_NAME,\n\n  components: {\n    ScCascaderPanel,\n    ScInput,\n    Tooltip,\n    ScScrollbar,\n    ScTag,\n    Checkbox\n  },\n\n  directives: {\n    Clickoutside: ClickOutside,\n  },\n\n  props: {\n    ...CommonProps,\n    size: {\n      type: String as PropType<ComponentSize>,\n      validator: (type) => { return ['', 'default', 'small', 'large'].includes(type) },\n    },\n    placeholder: {\n      type: String,\n    },\n    disabled: Boolean,\n    allowClear: Boolean,\n    popupClassName: String,\n    popupStyle: Object,\n    filterable: Boolean,\n    popupPlacement: String,\n    getPopupContainer: Function as PropType<(triggerNode: HTMLElement) => void>,\n    filterMethod: {\n      type: Function as PropType<\n        (node: CascaderNode, keyword: string) => boolean\n      >,\n      default: (node: CascaderNode, keyword: string) =>\n        node.text.includes(keyword),\n    },\n    separator: {\n      type: String,\n      default: ' / ',\n    },\n    showAllLevels: {\n      type: Boolean,\n      default: true,\n    },\n    collapseTags: Boolean,\n    collapseTagsTooltip: {\n      type: Boolean,\n      default: false,\n    },\n    debounce: {\n      type: Number,\n      default: 300,\n    },\n    beforeFilter: {\n      type: Function as PropType<(value: string) => boolean | Promise<any>>,\n      default: () => true,\n    },\n    popperClass: {\n      type: String,\n      default: '',\n    },\n    teleported: Object,\n    tagType: { ...tagProps.type, default: 'dark' },\n    validateEvent: {\n      type: Boolean,\n      default: true,\n    },\n    infoTooltip: String\n  },\n\n  emits: [\n    UPDATE_MODEL_EVENT,\n    CHANGE_EVENT,\n    'focus',\n    'blur',\n    'visible-change',\n    'expand-change',\n    'remove-tag',\n  ],\n\n  setup(props, { emit, slots }) {\n    let inputInitialHeight = 0\n    let pressDeleteCount = 0\n\n    const nsCascader = 'scCascaderNew'\n    const nsInput = 'ScInputCascaderNew'\n\n    const uuid = 'scCascader' + buildUUID()\n\n    // const { t } = useLocale()\n    // const { form, formItem } = useFormItem()\n\n    const tooltipRef: Ref<tooltipType | null> = ref(null)\n    const input: Ref<inputType | null> = ref(null)\n    const cascaderRef = ref(null)\n    const tagWrapper = ref(null)\n    const panel: Ref<cascaderPanelType | null> = ref(null)\n    const panel1: Ref<cascaderPanelType | null> = ref(null)\n    const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n    const popperVisible = ref(false)\n    const inputHover = ref(false)\n    const filtering = ref(false)\n    const inputValue = ref('')\n    const searchInputValue = ref('')\n    const presentTags: Ref<TagType[]> = ref([])\n    const allPresentTags: Ref<TagType[]> = ref([])\n    const suggestions: Ref<CascaderNode[]> = ref([])\n    const isOnComposition = ref(false)\n    const isDefaultValue = ref(false)\n\n    const searchHeight = pxToRem(260)\n\n\n    // const defaultValue = ref()calculateCheckedValue\n\n    // const isDisabled = computed(() => props.disabled || form?.disabled)\n\n    const isPrefixIcon = computed(() => {\n      return Object.keys(slots).includes('prefixIcon')\n    })\n    const isDisabled = computed(() => props.disabled)\n    const inputPlaceholder = computed(\n      () => props.placeholder || '请选择'\n    )\n    const currentPlaceholder = computed(() =>\n      searchInputValue.value || presentTags.value.length > 0\n        ? ''\n        : inputPlaceholder.value\n    )\n    const realSize = computed(() => {\n      return 'default'\n    })\n    const tagSize = computed(() =>\n      ['small'].includes(realSize.value) ? 'small' : 'default'\n    )\n    const multiple = computed(() => !!props.props.multiple)\n    const collapseTags = computed(() => !!props.collapseTags)\n    const readonly = computed(() => !props.filterable || multiple.value)\n    const searchKeyword = computed(() =>\n      multiple.value ? searchInputValue.value : inputValue.value\n    )\n    const isInfoTooltip = computed(() => !!props.infoTooltip)\n    const infoTooltip = computed(() => props.infoTooltip)\n    const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n      () => {\n        return panel.value?.checkedNodes || panel1.value?.checkedNodes || []\n      }\n    )\n    const clearBtnVisible = computed(() => {\n      if (\n        !props.allowClear ||\n        isDisabled.value ||\n        filtering.value ||\n        !inputHover.value\n      )\n        return false\n\n      return !!checkedNodes.value.length\n    })\n    const presentText = computed(() => {\n      const { showAllLevels, separator } = props\n      const nodes = checkedNodes.value\n      return nodes.length\n        ? multiple.value\n          ? ''\n          : nodes[0].calcText(showAllLevels, separator)\n        : ''\n    })\n\n    const checkedValue = computed<CascaderValue>({\n      get() {\n        return cloneDeep(props.modelValue) as CascaderValue\n      },\n      set(val) {\n        emit(UPDATE_MODEL_EVENT, val)\n        const newCheckedNodes = checkedNodes.value?.map(item => {\n          return {...item, ...item.data}\n        })\n        emit(CHANGE_EVENT, val, newCheckedNodes)\n        if (props.validateEvent) {\n          // formItem?.validate('change').catch((err) => debugWarn(err))\n        }\n      },\n    })\n\n    watch(() => popperVisible.value, (val) => {\n      if (val && !isDefaultValue.value) {\n        const timer = setTimeout(() => {\n          isDefaultValue.value = true\n          clearTimeout(timer)\n        })\n      }\n      if (val) {\n        const inputDom = cascaderRef?.value?.querySelector('.scInput input');\n        inputDom.addEventListener('mousedown', (e: MouseEvent) => {\n          e.preventDefault()\n        })\n      }\n    })\n\n    // const popperPaneRef = computed(() => {\n    //   console.log('tooltipRef: ', tooltipRef.value);\n    //   return tooltipRef.value?.popperRef?.contentRef\n    // })\n    const popperPaneRef = ref()\n    const multipleOptionRef = ref()\n\n    const togglePopperVisible = (visible?: boolean) => {\n      if (isDisabled.value) return\n\n      visible = visible ?? !popperVisible.value\n\n      if (visible !== popperVisible.value) {\n        popperVisible.value = visible\n        input.value?.input?.input?.setAttribute('aria-expanded', `${visible}`)\n\n        if (visible) {\n          updatePopperPosition()\n          nextTick(panel.value?.scrollToExpandingNode)\n        } else if (props.filterable) {\n          syncPresentTextValue()\n        }\n\n        emit('visible-change', visible)\n      }\n\n      nextTick(() => {\n        // const timer = setTimeout(() => {\n          //   clearTimeout(timer)\n          // }, 100)\n          const timer = window.requestAnimationFrame(() => {\n            const cascaderPanelPop = document && document.querySelector('.'+uuid)\n            popperPaneRef.value = cascaderPanelPop\n            multipleOptionRef.value = suggestionPanel.value?.wrapRef\n        })\n      })\n    }\n\n    const updatePopperPosition = () => {\n      nextTick(() => {\n        tooltipRef.value?.updatePopper?.()\n      })\n    }\n\n    const hideSuggestionPanel = () => {\n      filtering.value = false\n    }\n\n    const genTag = (node: CascaderNode): TagType => {\n      const { showAllLevels, separator } = props\n      return {\n        node,\n        key: node.uid,\n        text: node.calcText(showAllLevels, separator),\n        hitState: false,\n        closable: !isDisabled.value && !node.isDisabled,\n        isCollapseTag: false,\n      }\n    }\n\n    const deleteTag = (tag: TagType) => {\n      const node = tag.node as CascaderNode\n      if (panel.value && panel.value.calculateCheckedValue) {\n        node.doCheck(false)\n        panel.value?.calculateCheckedValue()\n        emit('remove-tag', node.valueByOption)\n      } else {\n        const { emitPath } = props.props\n        const currentValue = emitPath === false ? node.value : node.pathValues\n        const newData = (props.modelValue || []).filter((val:any) => {\n          if (!emitPath) {\n            if (isArray(val) || isArray(currentValue)) {\n              return !isEqual(val, currentValue)\n            } \n            return currentValue !== val\n          }\n          return !isEqual(val, currentValue)\n        })\n        emit(UPDATE_MODEL_EVENT, newData)\n        emit(CHANGE_EVENT, newData)\n      }\n    }\n\n    const calculatePresentTags = () => {\n      if (!multiple.value) return\n\n      const nodes = checkedNodes.value\n      const tags: TagType[] = []\n\n      const allTags: TagType[] = []\n      nodes.forEach((node) => allTags.push(genTag(node)))\n      allPresentTags.value = allTags\n\n      if (nodes.length) {\n        const [first, ...rest] = nodes\n        const restCount = rest.length\n\n        tags.push(genTag(first))\n\n        if (restCount) {\n          if (props.collapseTags) {\n            tags.push({\n              key: -1,\n              text: `+ ${restCount}`,\n              closable: false,\n              isCollapseTag: true,\n            })\n          } else {\n            rest.forEach((node) => tags.push(genTag(node)))\n          }\n        }\n      }\n\n      presentTags.value = tags\n    }\n\n    const calculateSuggestions = () => {\n      const { filterMethod, showAllLevels, separator } = props\n      const res = panel.value\n        ?.getFlattedNodes(!props.props.checkStrictly)\n        ?.filter((node) => {\n          if (node.isDisabled) return false\n          node.calcText(showAllLevels, separator)\n          return filterMethod(node, searchKeyword.value)\n        })\n\n      if (multiple.value) {\n        presentTags.value.forEach((tag) => {\n          tag.hitState = false\n        })\n        allPresentTags.value.forEach((tag) => {\n          tag.hitState = false\n        })\n      }\n\n      filtering.value = true\n      suggestions.value = res!\n      updatePopperPosition()\n    }\n\n    const focusFirstNode = () => {\n      let firstNode!: HTMLElement\n\n      if (filtering.value && suggestionPanel.value) {\n        firstNode = suggestionPanel.value.$el.querySelector(\n          `.${nsCascader + '-suggestion-item'}`\n        )\n      } else {\n        firstNode = panel.value?.$el.querySelector(\n          `.${nsCascader + 'node'}[tabindex=\"-1\"]`\n        )\n      }\n\n      if (firstNode) {\n        firstNode.focus()\n        !filtering.value && firstNode.click()\n      }\n    }\n\n    const updateStyle = () => {\n      const inputInner = input.value?.input?.input\n      const tagWrapperEl = tagWrapper.value\n      const suggestionPanelEl = suggestionPanel.value?.$el\n\n      if (!isClient || !inputInner) return\n\n      if (suggestionPanelEl) {\n        const suggestionList = suggestionPanelEl.querySelector(\n          `.${nsCascader + 'suggestion-list'}`\n        )\n        if (suggestionList) {\n          suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n        }\n      }\n\n      if (tagWrapperEl) {\n        const { offsetHeight } = tagWrapperEl\n        const height =\n          presentTags.value.length > 0\n            ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n            : `${inputInitialHeight}px`\n        inputInner.style.height = height\n        updatePopperPosition()\n      }\n    }\n\n    const getCheckedNodes = (leafOnly: boolean) => {\n      return panel?.value?.getCheckedNodes(leafOnly)\n    }\n\n    const getCheckedNodeKeys = (leafOnly: boolean) => {\n      return panel?.value?.getCheckedNodeKeys(leafOnly)\n    }\n\n    const handleExpandChange = (value: CascaderValue) => {\n      updatePopperPosition()\n      emit('expand-change', value)\n    }\n\n    const handleComposition = (event: CompositionEvent) => {\n      const text = (event.target as HTMLInputElement)?.value\n      if (event.type === 'compositionend') {\n        isOnComposition.value = false\n        nextTick(() => handleInput(text))\n      } else {\n        const lastCharacter = text[text.length - 1] || ''\n        isOnComposition.value = !isKorean(lastCharacter)\n      }\n    }\n\n    const handleKeyDown = (e: KeyboardEvent) => {\n      if (isOnComposition.value) return\n\n      switch (e.code) {\n        case EVENT_CODE.enter:\n          togglePopperVisible()\n          break\n        case EVENT_CODE.down:\n          togglePopperVisible(true)\n          nextTick(focusFirstNode)\n          e.preventDefault()\n          break\n        case EVENT_CODE.esc:\n          if (popperVisible.value === true) {\n            e.preventDefault()\n            e.stopPropagation()\n            togglePopperVisible(false)\n          }\n          break\n        case EVENT_CODE.tab:\n          togglePopperVisible(false)\n          break\n      }\n    }\n\n    const handleClear = () => {\n      if (panel.value && panel.value.clearCheckedNodes) {\n        panel.value?.clearCheckedNodes()\n      } else {\n        window?.requestAnimationFrame(() => {\n          togglePopperVisible(true)\n          window?.requestAnimationFrame(() => {\n            panel.value?.clearCheckedNodes()\n            togglePopperVisible(false)\n          })\n        })\n        \n      }\n      if (!popperVisible.value && props.filterable) {\n        syncPresentTextValue()\n      }\n      togglePopperVisible(false)\n    }\n\n    const syncPresentTextValue = () => {\n      const { value } = presentText\n      inputValue.value = value\n      searchInputValue.value = value\n    }\n\n    const handleSuggestionClick = (node: CascaderNode) => {\n      const { checked } = node\n      if (multiple.value) {\n        panel.value?.handleCheckChange(node, !checked, false)\n      } else {\n        !checked && panel.value?.handleCheckChange(node, true, false)\n        togglePopperVisible(false)\n      }\n    }\n\n    const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n      const target = e.target as HTMLElement\n      const { code } = e\n\n      switch (code) {\n        case EVENT_CODE.up:\n        case EVENT_CODE.down: {\n          const distance = code === EVENT_CODE.up ? -1 : 1\n          focusNode(\n            getSibling(\n              target,\n              distance,\n              `.${nsCascader + 'suggestion-item'}[tabindex=\"-1\"]`\n            )\n          )\n          break\n        }\n        case EVENT_CODE.enter:\n          target.click()\n          break\n      }\n    }\n\n    const handleDelete = () => {\n      const tags = presentTags.value\n      const lastTag = tags[tags.length - 1]\n      pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n      if (\n        !lastTag ||\n        !pressDeleteCount ||\n        (props.collapseTags && tags.length > 1)\n      )\n        return\n\n      if (lastTag.hitState) {\n        deleteTag(lastTag)\n      } else {\n        lastTag.hitState = true\n      }\n    }\n\n    const handleFilter = debounce(() => {\n      const { value } = searchKeyword\n\n      if (!value) return\n\n      const passed = props.beforeFilter(value)\n\n      if (isPromise(passed)) {\n        passed.then(calculateSuggestions).catch(() => {\n          /* prevent log error */\n        })\n      } else if (passed !== false) {\n        calculateSuggestions()\n      } else {\n        hideSuggestionPanel()\n      }\n    }, props.debounce)\n\n    const handleInput = (val: string, e?: KeyboardEvent) => {\n      !popperVisible.value && togglePopperVisible(true)\n\n      if (e?.isComposing) return\n\n      val ? handleFilter() : hideSuggestionPanel()\n    }\n\n    watch(filtering, updatePopperPosition)\n\n    watch([checkedNodes, isDisabled], calculatePresentTags)\n\n    watch(presentTags, () => {\n      nextTick(() => updateStyle())\n    })\n\n    watch(presentText, syncPresentTextValue, { immediate: true })\n\n    onMounted(() => {\n      const inputInner = input.value?.input?.input\n\n      const inputInnerHeight =\n        Number.parseFloat(\n          useCssVar(`${'--' + nsInput + '-input-height'}`, inputInner).value\n        ) - 2\n\n      inputInitialHeight = inputInner.offsetHeight || inputInnerHeight\n      useResizeObserver(inputInner, updateStyle)\n    })\n\n    // const overlayClassName = [nsCascader + '-dropdown', popperClass, uuid].\n\n    return {\n      isInfoTooltip,\n      infoTooltip,\n      popperOptions,\n      tooltipRef,\n      popperPaneRef,\n      input,\n      tagWrapper,\n      panel,\n      panel1,\n      suggestionPanel,\n      popperVisible,\n      inputHover,\n      inputPlaceholder,\n      currentPlaceholder,\n      filtering,\n      presentText,\n      checkedValue,\n      inputValue,\n      searchInputValue,\n      presentTags,\n      allPresentTags,\n      suggestions,\n      isDisabled,\n      isOnComposition,\n      realSize,\n      tagSize,\n      multiple,\n      readonly,\n      clearBtnVisible,\n\n      nsCascader,\n      nsInput,\n      uuid,\n      isDefaultValue,\n      multipleOptionRef,\n      isPrefixIcon,\n      searchHeight,\n      collapseTags,\n      cascaderPanelRef: panel,\n      cascaderRef,\n\n      // t,\n      togglePopperVisible,\n      hideSuggestionPanel,\n      deleteTag,\n      focusFirstNode,\n      getCheckedNodes,\n      getCheckedNodeKeys,\n      handleExpandChange,\n      handleKeyDown,\n      handleComposition,\n      handleClear,\n      handleSuggestionClick,\n      handleSuggestionKeyDown,\n      handleDelete,\n      handleInput,\n    }\n  },\n})\n</script>\n","import { withInstall } from \"../../utils/index\"\nimport scCascaderNew from \"./component/index.vue\"\nexport type * from \"./component/type\"\n\nexport const ScCascaderNew = withInstall(scCascaderNew)\n","export const Props = () => ({\n  \n})","<template>\n  <Breadcrumb\n    v-bind=\"vBindValue\"\n  >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\"  v-bind=\"data || {}\"></slot>\n    </template>\n  </Breadcrumb>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, computed, unref } from 'vue'\nimport { Breadcrumb } from 'ant-design-vue'\n\nimport { Props } from './type'\n\nexport default defineComponent({\n  name: 'ScBreadcrumb',\n  inheritAttrs: false,\n  props: Props(),\n  components: {\n    Breadcrumb\n  },\n  setup (props, { attrs }) {\n    const newProps = computed(() => {\n      return props\n    })\n\n    const vBindValue = computed(() => {\n      return {\n        ...unref(newProps),\n        ...attrs\n      }\n    })\n    return {\n      newProps,\n      vBindValue\n    }\n  }\n})\n</script>","<template>\n  <BreadcrumbItem\n    v-bind=\"vBindValue\"\n  >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\"  v-bind=\"data || {}\"></slot>\n    </template>\n  </BreadcrumbItem>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, computed, unref } from 'vue'\nimport { BreadcrumbItem } from 'ant-design-vue'\n\nimport { Props } from './type'\n\nexport default defineComponent({\n  name: 'ScBreadcrumbItem',\n  inheritAttrs: false,\n  props: Props(),\n  components: {\n    BreadcrumbItem\n  },\n  setup (props, { attrs }) {\n    const newProps = computed(() => {\n      return props\n    })\n\n    const vBindValue = computed(() => {\n      return {\n        ...unref(newProps),\n        ...attrs\n      }\n    })\n    return {\n      newProps,\n      vBindValue\n    }\n  }\n})\n</script>","// import { VNode } from 'vue';\nimport { ExtractPropTypes } from \"vue/dist/vue\"\n\nimport { withInstall } from \"../../utils/index\"\nimport scBreadcrumb from './component/ScBreadcrumb.vue'\nimport scBreadcrumbItem from './component/ScBreadcrumbItem.vue'\nimport { Props } from \"./component/type\"\n\nexport const ScBreadcrumb = withInstall(scBreadcrumb)\nexport const ScBreadcrumbItem = withInstall(scBreadcrumbItem)\n\nexport declare type BreadcrumbProps = Partial<ExtractPropTypes<typeof Props>> ","import { VNode, h } from 'vue'\nimport { message } from \"ant-design-vue\"\nimport { buildUUID } from '../utils/uuid'\nimport { basePrefixCls } from '../constant'\n\n\ntype NoticeType = 'info' | 'success' | 'error' | 'warning' | 'loading';\ninterface Options {\n  type?: NoticeType;\n  content?: VNode | string;\n  duration?: number;\n  onClose?: () => void;\n  icon?: VNode;\n}\n\nexport const createCloseMessage = ({\n  type = 'info',\n  content,\n  duration = 3000,\n  onClose,\n  icon\n}: Options) => {\n  const uuid = buildUUID()\n  switch(type) {\n    default:\n      message.open({ \n        type: type, \n        content: h('span', { \n            class: `${basePrefixCls}Message-allowClose`\n          }, \n          [\n            content, \n            h('i', { \n              class: 'sc-ui sc-guanbi',\n              onClick: () => {\n                message.destroy({key: uuid})\n              }\n            })\n          ]\n        ), \n        duration, \n        onClose, \n        icon: type === 'loading' ? h('span', { class: 'loading-transition' }) : icon, \n        key: uuid\n      })\n  }\n}\n\nexport const useMessage = () => {\n  return {\n    createCloseMessage\n  }\n}","export enum sizeEnum {\n  XS = 'XS',\n  SM = 'SM',\n  MD = 'MD',\n  LG = 'LG',\n  XL = 'XL',\n  XXL = 'XXL',\n}\n\nexport enum screenEnum {\n  XS = 480,\n  SM = 576,\n  MD = 768,\n  LG = 992,\n  XL = 1200,\n  XXL = 1600,\n}\n\nconst screenMap = new Map<sizeEnum, number>();\n\nscreenMap.set(sizeEnum.XS, screenEnum.XS);\nscreenMap.set(sizeEnum.SM, screenEnum.SM);\nscreenMap.set(sizeEnum.MD, screenEnum.MD);\nscreenMap.set(sizeEnum.LG, screenEnum.LG);\nscreenMap.set(sizeEnum.XL, screenEnum.XL);\nscreenMap.set(sizeEnum.XXL, screenEnum.XXL);\n\nexport { screenMap };\n","import { ref, computed, ComputedRef, unref } from 'vue';\nimport { useEventListener } from './useEventListener';\nimport { screenMap, sizeEnum, screenEnum } from '../../enums/breakpointEnum';\n\nlet globalScreenRef: ComputedRef<sizeEnum | undefined>;\nlet globalWidthRef: ComputedRef<number>;\nlet globalRealWidthRef: ComputedRef<number>;\n\nexport interface CreateCallbackParams {\n  screen: ComputedRef<sizeEnum | undefined>;\n  width: ComputedRef<number>;\n  realWidth: ComputedRef<number>;\n  screenEnum: typeof screenEnum;\n  screenMap: Map<sizeEnum, number>;\n  sizeEnum: typeof sizeEnum;\n}\n\nexport function useBreakpoint() {\n  return {\n    screenRef: computed(() => unref(globalScreenRef)),\n    widthRef: globalWidthRef,\n    screenEnum,\n    realWidthRef: globalRealWidthRef,\n  };\n}\n\n// Just call it once\nexport function createBreakpointListen(fn?: (opt: CreateCallbackParams) => void) {\n  const screenRef = ref<sizeEnum>(sizeEnum.XL);\n  const realWidthRef = ref(window.innerWidth);\n\n  function getWindowWidth() {\n    const width = document.body.clientWidth;\n    const xs = screenMap.get(sizeEnum.XS)!;\n    const sm = screenMap.get(sizeEnum.SM)!;\n    const md = screenMap.get(sizeEnum.MD)!;\n    const lg = screenMap.get(sizeEnum.LG)!;\n    const xl = screenMap.get(sizeEnum.XL)!;\n    if (width < xs) {\n      screenRef.value = sizeEnum.XS;\n    } else if (width < sm) {\n      screenRef.value = sizeEnum.SM;\n    } else if (width < md) {\n      screenRef.value = sizeEnum.MD;\n    } else if (width < lg) {\n      screenRef.value = sizeEnum.LG;\n    } else if (width < xl) {\n      screenRef.value = sizeEnum.XL;\n    } else {\n      screenRef.value = sizeEnum.XXL;\n    }\n    realWidthRef.value = width;\n  }\n\n  useEventListener({\n    el: window,\n    name: 'resize',\n\n    listener: () => {\n      getWindowWidth();\n      resizeFn();\n    },\n    // wait: 100,\n  });\n\n  getWindowWidth();\n  globalScreenRef = computed(() => unref(screenRef));\n  globalWidthRef = computed((): number => screenMap.get(unref(screenRef)!)!);\n  globalRealWidthRef = computed((): number => unref(realWidthRef));\n\n  function resizeFn() {\n    fn?.({\n      screen: globalScreenRef,\n      width: globalWidthRef,\n      realWidth: globalRealWidthRef,\n      screenEnum,\n      screenMap,\n      sizeEnum,\n    });\n  }\n\n  resizeFn();\n  return {\n    screenRef: globalScreenRef,\n    screenEnum,\n    widthRef: globalWidthRef,\n    realWidthRef: globalRealWidthRef,\n  };\n}\n","import { createFromIconfontCN } from '@ant-design/icons-vue'\n\nconst isBrowser = () => typeof window !== 'undefined';\n\nexport default function useIcon<ExtraCommonProps extends { [key: string]: any } | undefined> (\n  extraCommonProps: ExtraCommonProps\n) {\n\n  let scriptUrl = '//at.alicdn.com/t/c/font_3690753_eb2vxb8uhuc.js'\n  if (isBrowser()) {\n    if (window?.iconfontUrl) {\n      scriptUrl = window.iconfontUrl\n    }\n  }\n  const ScIconComponent = createFromIconfontCN({\n    scriptUrl: scriptUrl, // 在 iconfont.cn 上生成,\n    extraCommonProps: extraCommonProps\n  })\n\n  return ScIconComponent\n}","/* eslint-disable no-console */\nlet warned: Record<string, boolean> = {};\n\nexport function warning(valid: boolean, message: string) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.error(`Warning: ${message}`);\n  }\n}\n\nexport function note(valid: boolean, message: string) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.warn(`Note: ${message}`);\n  }\n}\n\nexport function resetWarned() {\n  warned = {};\n}\n\nexport function call(\n  method: (valid: boolean, message: string) => void,\n  valid: boolean,\n  message: string,\n) {\n  if (!valid && !warned[message]) {\n    method(false, message);\n    warned[message] = true;\n  }\n}\n\nexport function warningOnce(valid: boolean, message: string) {\n  call(warning, valid, message);\n}\n\nexport function noteOnce(valid: boolean, message: string) {\n  call(note, valid, message);\n}\n\nexport default warningOnce;\n/* eslint-enable */\n","import devWarning, { resetWarned } from './warning';\n\nexport { resetWarned };\n\nexport default (valid: boolean, component: string, message: string): void => {\n  devWarning(valid, `[ant-design-vue: ${component}] ${message}`);\n};\n","import type { ComputedRef, InjectionKey, ConcreteComponent } from 'vue';\nimport {\n  watch,\n  computed,\n  inject,\n  provide,\n  ref,\n  onBeforeUnmount,\n  getCurrentInstance,\n  defineComponent,\n} from 'vue';\nimport devWarning from '../../utils/devWarning';\n\nexport type FormItemContext = {\n  id: ComputedRef<string>;\n  onFieldBlur: () => void;\n  onFieldChange: () => void;\n  clearValidate: () => void;\n};\n\ntype InternalFormItemContext = {\n  addFormItemField: (key: Symbol, type: ConcreteComponent) => void;\n  removeFormItemField: (key: Symbol) => void;\n};\n\nconst ContextKey: InjectionKey<FormItemContext> = Symbol('ContextProps');\n\nconst InternalContextKey: InjectionKey<InternalFormItemContext> = Symbol('InternalContextProps');\n\nexport const useProvideFormItemContext = (\n  props: FormItemContext,\n  useValidation: ComputedRef<boolean> = computed(() => true),\n) => {\n  const formItemFields = ref(new Map<Symbol, ConcreteComponent>());\n  const addFormItemField = (key: Symbol, type: ConcreteComponent) => {\n    formItemFields.value.set(key, type);\n    formItemFields.value = new Map(formItemFields.value);\n  };\n  const removeFormItemField = (key: Symbol) => {\n    formItemFields.value.delete(key);\n    formItemFields.value = new Map(formItemFields.value);\n  };\n  const instance = getCurrentInstance();\n  watch([useValidation, formItemFields], () => {\n    if (process.env.NODE_ENV !== 'production') {\n      if (useValidation.value && formItemFields.value.size > 1) {\n        devWarning(\n          false,\n          'Form.Item',\n          `FormItem can only collect one field item, you haved set ${[\n            ...formItemFields.value.values(),\n          ]\n            .map(v => `\\`${v.name}\\``)\n            .join(', ')} ${formItemFields.value.size} field items.\n        You can set not need to be collected fields into \\`a-form-item-rest\\``,\n        );\n        let cur = instance;\n        while (cur.parent) {\n          console.warn('at', cur.type);\n          cur = cur.parent;\n        }\n      }\n    }\n  });\n  provide(ContextKey, props);\n  provide(InternalContextKey, {\n    addFormItemField,\n    removeFormItemField,\n  });\n};\n\nconst defaultContext: FormItemContext = {\n  id: computed(() => undefined),\n  onFieldBlur: () => {},\n  onFieldChange: () => {},\n  clearValidate: () => {},\n};\nconst defaultInternalContext: InternalFormItemContext = {\n  addFormItemField: () => {},\n  removeFormItemField: () => {},\n};\nexport const useInjectFormItemContext = () => {\n  const internalContext = inject(InternalContextKey, defaultInternalContext);\n  const formItemFieldKey = Symbol('FormItemFieldKey');\n  const instance = getCurrentInstance();\n  internalContext.addFormItemField(formItemFieldKey, instance.type);\n  onBeforeUnmount(() => {\n    internalContext.removeFormItemField(formItemFieldKey);\n  });\n  // We should prevent the passing of context for children\n  provide(InternalContextKey, defaultInternalContext);\n  provide(ContextKey, defaultContext);\n  return inject(ContextKey, defaultContext);\n};\n\nexport default defineComponent({\n  name: 'AFormItemRest',\n  setup(_, { slots }) {\n    provide(InternalContextKey, defaultInternalContext);\n    provide(ContextKey, defaultContext);\n    return () => {\n      return slots.default?.();\n    };\n  },\n});\n","(function(t,e){\"object\"===typeof exports&&\"object\"===typeof module?module.exports=e(require(\"vue\")):\"function\"===typeof define&&define.amd?define([\"vue\"],e):\"object\"===typeof exports?exports[\"vue-slider-component\"]=e(require(\"vue\")):t[\"vue-slider-component\"]=e(t[\"Vue\"])})(\"undefined\"!==typeof self?self:this,(function(t){return function(){var e={388:function(t,e){var n,r,i;(function(o,a){r=[],n=a,i=\"function\"===typeof n?n.apply(e,r):n,void 0===i||(t.exports=i)})(\"undefined\"!==typeof self&&self,(function(){function t(){var e=Object.getOwnPropertyDescriptor(document,\"currentScript\");if(!e&&\"currentScript\"in document&&document.currentScript)return document.currentScript;if(e&&e.get!==t&&document.currentScript)return document.currentScript;try{throw new Error}catch(f){var n,r,i,o=/.*at [^(]*\\((.*):(.+):(.+)\\)$/gi,a=/@([^@]*):(\\d+):(\\d+)\\s*$/gi,s=o.exec(f.stack)||a.exec(f.stack),l=s&&s[1]||!1,u=s&&s[2]||!1,c=document.location.href.replace(document.location.hash,\"\"),d=document.getElementsByTagName(\"script\");l===c&&(n=document.documentElement.outerHTML,r=new RegExp(\"(?:[^\\\\n]+?\\\\n){0,\"+(u-2)+\"}[^<]*<script>([\\\\d\\\\D]*?)<\\\\/script>[\\\\d\\\\D]*\",\"i\"),i=n.replace(r,\"$1\").trim());for(var h=0;h<d.length;h++){if(\"interactive\"===d[h].readyState)return d[h];if(d[h].src===l)return d[h];if(l===c&&d[h].innerHTML&&d[h].innerHTML.trim()===i)return d[h]}return null}}return t}))},831:function(t,e){\"use strict\";e.Z=(t,e)=>{const n=t.__vccOpts||t;for(const[r,i]of e)n[r]=i;return n}},927:function(e){\"use strict\";e.exports=t}},n={};function r(t){var i=n[t];if(void 0!==i)return i.exports;var o=n[t]={exports:{}};return e[t].call(o.exports,o,o.exports,r),o.exports}!function(){r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})}}(),function(){r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){r.p=\"\"}();var i={};return function(){\"use strict\";if(r.d(i,{default:function(){return St}}),\"undefined\"!==typeof window){var t=window.document.currentScript,e=r(388);t=e(),\"currentScript\"in document||Object.defineProperty(document,\"currentScript\",{get:e});var n=t&&t.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/);n&&(r.p=n[1])}var o=r(927);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var s={key:0,class:\"vue-slider-marks\"};function l(t,e,n,r,i,l){var u=(0,o.resolveComponent)(\"vue-slider-mark\"),c=(0,o.resolveComponent)(\"vue-slider-dot\");return(0,o.openBlock)(),(0,o.createElementBlock)(\"div\",(0,o.mergeProps)({ref:\"container\",class:t.containerClasses,style:t.containerStyles,onClick:e[2]||(e[2]=function(){return t.clickHandle&&t.clickHandle.apply(t,arguments)}),onTouchstartPassive:e[3]||(e[3]=function(){return t.dragStartOnProcess&&t.dragStartOnProcess.apply(t,arguments)}),onMousedownPassive:e[4]||(e[4]=function(){return t.dragStartOnProcess&&t.dragStartOnProcess.apply(t,arguments)})},t.$attrs),[(0,o.createElementVNode)(\"div\",{class:\"vue-slider-rail\",style:(0,o.normalizeStyle)(t.railStyle)},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(t.processArray,(function(e,n){return(0,o.renderSlot)(t.$slots,\"process\",(0,o.normalizeProps)((0,o.guardReactiveProps)(e)),(function(){return[((0,o.openBlock)(),(0,o.createElementBlock)(\"div\",{class:\"vue-slider-process\",key:\"process-\".concat(n),style:(0,o.normalizeStyle)(e.style)},null,4))]}))})),256)),t.sliderMarks&&t.control?((0,o.openBlock)(),(0,o.createElementBlock)(\"div\",s,[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(t.control.markList,(function(n,r){return(0,o.renderSlot)(t.$slots,\"mark\",(0,o.normalizeProps)((0,o.guardReactiveProps)(n)),(function(){var i;return[((0,o.openBlock)(),(0,o.createBlock)(u,{key:\"mark-\".concat(r),mark:n,hideLabel:t.hideLabel,style:(0,o.normalizeStyle)((i={},a(i,t.isHorizontal?\"height\":\"width\",\"100%\"),a(i,t.isHorizontal?\"width\":\"height\",t.tailSize),a(i,t.mainDirection,\"\".concat(n.pos,\"%\")),i)),stepStyle:t.stepStyle,stepActiveStyle:t.stepActiveStyle,labelStyle:t.labelStyle,labelActiveStyle:t.labelActiveStyle,onPressLabel:e[0]||(e[0]=function(e){return t.clickable&&t.setValueByPos(e)})},{step:(0,o.withCtx)((function(){return[(0,o.renderSlot)(t.$slots,\"step\",(0,o.normalizeProps)((0,o.guardReactiveProps)(n)))]})),label:(0,o.withCtx)((function(){return[(0,o.renderSlot)(t.$slots,\"label\",(0,o.normalizeProps)((0,o.guardReactiveProps)(n)))]})),_:2},1032,[\"mark\",\"hideLabel\",\"style\",\"stepStyle\",\"stepActiveStyle\",\"labelStyle\",\"labelActiveStyle\"]))]}))})),256))])):(0,o.createCommentVNode)(\"\",!0),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(t.dots,(function(n,r){var i;return(0,o.openBlock)(),(0,o.createBlock)(c,(0,o.mergeProps)({ref_for:!0,ref:\"dot-\".concat(r),key:\"dot-\".concat(r),value:n.value,disabled:n.disabled,focus:n.focus,\"dot-style\":[n.style,n.disabled?n.disabledStyle:null,n.focus?n.focusStyle:null],tooltip:n.tooltip||t.tooltip,\"tooltip-style\":[t.tooltipStyle,n.tooltipStyle,n.disabled?n.tooltipDisabledStyle:null,n.focus?n.tooltipFocusStyle:null],\"tooltip-formatter\":Array.isArray(t.sliderTooltipFormatter)?t.sliderTooltipFormatter[r]:t.sliderTooltipFormatter,\"tooltip-placement\":t.tooltipDirections[r],style:[t.dotBaseStyle,(i={},a(i,t.mainDirection,\"\".concat(n.pos,\"%\")),a(i,\"transition\",\"\".concat(t.mainDirection,\" \").concat(t.animateTime,\"s\")),i)],onDragStart:function(){return t.dragStart(r)},role:\"slider\",\"aria-valuenow\":n.value,\"aria-valuemin\":t.min,\"aria-valuemax\":t.max,\"aria-orientation\":t.isHorizontal?\"horizontal\":\"vertical\",tabindex:\"0\",onFocus:function(){return t.focus(n,r)},onBlur:e[1]||(e[1]=function(){return t.blur()})},t.dotAttrs),{dot:(0,o.withCtx)((function(){return[(0,o.renderSlot)(t.$slots,\"dot\",(0,o.normalizeProps)((0,o.guardReactiveProps)(n)))]})),tooltip:(0,o.withCtx)((function(){return[(0,o.renderSlot)(t.$slots,\"tooltip\",(0,o.normalizeProps)((0,o.guardReactiveProps)(n)))]})),_:2},1040,[\"value\",\"disabled\",\"focus\",\"dot-style\",\"tooltip\",\"tooltip-style\",\"tooltip-formatter\",\"tooltip-placement\",\"style\",\"onDragStart\",\"aria-valuenow\",\"aria-valuemin\",\"aria-valuemax\",\"aria-orientation\",\"onFocus\"])})),128))],4),(0,o.renderSlot)(t.$slots,\"default\",{value:t.getValue()})],16)}var u=[\"aria-valuetext\"],c={class:\"vue-slider-dot-tooltip-text\"};function d(t,e,n,r,i,a){var s;return(0,o.openBlock)(),(0,o.createElementBlock)(\"div\",{ref:\"dot\",class:(0,o.normalizeClass)(t.dotClasses),\"aria-valuetext\":null===(s=t.tooltipValue)||void 0===s?void 0:s.toString(),onMousedownPassive:e[0]||(e[0]=function(){return t.dragStart&&t.dragStart.apply(t,arguments)}),onTouchstartPassive:e[1]||(e[1]=function(){return t.dragStart&&t.dragStart.apply(t,arguments)})},[(0,o.renderSlot)(t.$slots,\"dot\",{},(function(){return[(0,o.createElementVNode)(\"div\",{class:(0,o.normalizeClass)(t.handleClasses),style:(0,o.normalizeStyle)(t.dotStyle)},null,6)]})),\"none\"!==t.tooltip?((0,o.openBlock)(),(0,o.createElementBlock)(\"div\",{key:0,class:(0,o.normalizeClass)(t.tooltipClasses)},[(0,o.renderSlot)(t.$slots,\"tooltip\",{},(function(){return[(0,o.createElementVNode)(\"div\",{class:(0,o.normalizeClass)(t.tooltipInnerClasses),style:(0,o.normalizeStyle)(t.tooltipStyle)},[(0,o.createElementVNode)(\"span\",c,(0,o.toDisplayString)(t.tooltipValue),1)],6)]}))],2)):(0,o.createCommentVNode)(\"\",!0)],42,u)}var h=(0,o.defineComponent)({name:\"VueSliderDot\",emits:[\"drag-start\"],props:{value:{type:[String,Number],default:0},tooltip:{type:String,required:!0},tooltipPlacement:{type:String,validator:function(t){return[\"top\",\"right\",\"bottom\",\"left\"].indexOf(t)>-1},required:!0},tooltipFormatter:{type:[String,Function]},focus:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},dotStyle:{type:Object},tooltipStyle:{type:Object}},computed:{dotClasses:function(){return[\"vue-slider-dot\",{\"vue-slider-dot-hover\":\"hover\"===this.tooltip||\"active\"===this.tooltip,\"vue-slider-dot-disabled\":this.disabled,\"vue-slider-dot-focus\":this.focus}]},handleClasses:function(){return[\"vue-slider-dot-handle\",{\"vue-slider-dot-handle-disabled\":this.disabled,\"vue-slider-dot-handle-focus\":this.focus}]},tooltipClasses:function(){return[\"vue-slider-dot-tooltip\",[\"vue-slider-dot-tooltip-\".concat(this.tooltipPlacement)],{\"vue-slider-dot-tooltip-show\":this.showTooltip}]},tooltipInnerClasses:function(){return[\"vue-slider-dot-tooltip-inner\",[\"vue-slider-dot-tooltip-inner-\".concat(this.tooltipPlacement)],{\"vue-slider-dot-tooltip-inner-disabled\":this.disabled,\"vue-slider-dot-tooltip-inner-focus\":this.focus}]},showTooltip:function(){switch(this.tooltip){case\"always\":return!0;case\"none\":return!1;case\"focus\":case\"active\":return!!this.focus;default:return!1}},tooltipValue:function(){return this.tooltipFormatter?\"string\"===typeof this.tooltipFormatter?this.tooltipFormatter.replace(/\\{value\\}/,String(this.value)):this.tooltipFormatter(this.value):this.value}},methods:{dragStart:function(){if(this.disabled)return!1;this.$emit(\"drag-start\")}}}),f=r(831);const p=(0,f.Z)(h,[[\"render\",d]]);var m=p;function y(t,e,n,r,i,a){return(0,o.openBlock)(),(0,o.createElementBlock)(\"div\",{class:(0,o.normalizeClass)(t.marksClasses)},[(0,o.renderSlot)(t.$slots,\"step\",{},(function(){return[(0,o.createElementVNode)(\"div\",{class:(0,o.normalizeClass)(t.stepClasses),style:(0,o.normalizeStyle)([t.stepStyle,t.mark.style||{},t.mark.active&&t.stepActiveStyle?t.stepActiveStyle:{},t.mark.active&&t.mark.activeStyle?t.mark.activeStyle:{}])},null,6)]})),t.hideLabel?(0,o.createCommentVNode)(\"\",!0):(0,o.renderSlot)(t.$slots,\"label\",{key:0},(function(){return[(0,o.createElementVNode)(\"div\",{class:(0,o.normalizeClass)(t.labelClasses),style:(0,o.normalizeStyle)([t.labelStyle,t.mark.labelStyle||{},t.mark.active&&t.labelActiveStyle?t.labelActiveStyle:{},t.mark.active&&t.mark.labelActiveStyle?t.mark.labelActiveStyle:{}]),onClick:e[0]||(e[0]=function(){return t.labelClickHandle&&t.labelClickHandle.apply(t,arguments)})},(0,o.toDisplayString)(t.mark.label),7)]}))],2)}var v=(0,o.defineComponent)({name:\"VueSliderMark\",emits:[\"press-label\"],props:{mark:{type:Object,required:!0},hideLabel:{type:Boolean},stepStyle:{type:Object,default:function(){return{}}},stepActiveStyle:{type:Object,default:function(){return{}}},labelStyle:{type:Object,default:function(){return{}}},labelActiveStyle:{type:Object,default:function(){return{}}}},computed:{marksClasses:function(){return[\"vue-slider-mark\",{\"vue-slider-mark-active\":this.mark.active}]},stepClasses:function(){return[\"vue-slider-mark-step\",{\"vue-slider-mark-step-active\":this.mark.active}]},labelClasses:function(){return[\"vue-slider-mark-label\",{\"vue-slider-mark-label-active\":this.mark.active}]}},methods:{labelClickHandle:function(t){t.stopPropagation(),this.$emit(\"press-label\",this.mark.pos)}}});const g=(0,f.Z)(v,[[\"render\",y]]);var b,k=g,S=function(t){return\"number\"===typeof t?\"\".concat(t,\"px\"):t},x=function(t){var e=document.documentElement,n=document.body,r=t.getBoundingClientRect(),i={y:r.top+(window.pageYOffset||e.scrollTop)-(e.clientTop||n.clientTop||0),x:r.left+(window.pageXOffset||e.scrollLeft)-(e.clientLeft||n.clientLeft||0)};return i},P=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=\"targetTouches\"in t?t.targetTouches[0]:t,o=x(e),a={x:i.pageX-o.x,y:i.pageY-o.y};return{x:n?e.offsetWidth*r-a.x:a.x,y:n?e.offsetHeight*r-a.y:a.y}};(function(t){t[t[\"PAGE_UP\"]=33]=\"PAGE_UP\",t[t[\"PAGE_DOWN\"]=34]=\"PAGE_DOWN\",t[t[\"END\"]=35]=\"END\",t[t[\"HOME\"]=36]=\"HOME\",t[t[\"LEFT\"]=37]=\"LEFT\",t[t[\"UP\"]=38]=\"UP\",t[t[\"RIGHT\"]=39]=\"RIGHT\",t[t[\"DOWN\"]=40]=\"DOWN\"})(b||(b={}));var O=function(t,e){if(e.hook){var n=e.hook(t);if(\"function\"===typeof n)return n;if(!n)return null}switch(t.keyCode){case b.UP:return function(t){return\"ttb\"===e.direction?t-1:t+1};case b.RIGHT:return function(t){return\"rtl\"===e.direction?t-1:t+1};case b.DOWN:return function(t){return\"ttb\"===e.direction?t+1:t-1};case b.LEFT:return function(t){return\"rtl\"===e.direction?t+1:t-1};case b.END:return function(){return e.max};case b.HOME:return function(){return e.min};case b.PAGE_UP:return function(t){return t+10};case b.PAGE_DOWN:return function(t){return t-10};default:return null}};function D(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function E(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function R(t,e,n){return e&&E(t.prototype,e),n&&E(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}function A(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var w,V,j=function(){function t(e){D(this,t),A(this,\"num\",void 0),this.num=e}return R(t,[{key:\"decimal\",value:function(t,e){var n=this.num,r=this.getDecimalLen(n),i=this.getDecimalLen(t),o=0;switch(e){case\"+\":o=this.getExponent(r,i),this.num=(this.safeRoundUp(n,o)+this.safeRoundUp(t,o))/o;break;case\"-\":o=this.getExponent(r,i),this.num=(this.safeRoundUp(n,o)-this.safeRoundUp(t,o))/o;break;case\"*\":this.num=this.safeRoundUp(this.safeRoundUp(n,this.getExponent(r)),this.safeRoundUp(t,this.getExponent(i)))/this.getExponent(r+i);break;case\"/\":o=this.getExponent(r,i),this.num=this.safeRoundUp(n,o)/this.safeRoundUp(t,o);break;case\"%\":o=this.getExponent(r,i),this.num=this.safeRoundUp(n,o)%this.safeRoundUp(t,o)/o;break}return this}},{key:\"plus\",value:function(t){return this.decimal(t,\"+\")}},{key:\"minus\",value:function(t){return this.decimal(t,\"-\")}},{key:\"multiply\",value:function(t){return this.decimal(t,\"*\")}},{key:\"divide\",value:function(t){return this.decimal(t,\"/\")}},{key:\"remainder\",value:function(t){return this.decimal(t,\"%\")}},{key:\"toNumber\",value:function(){return this.num}},{key:\"getDecimalLen\",value:function(t){var e=\"\".concat(t).split(\"e\");return(\"\".concat(e[0]).split(\".\")[1]||\"\").length-(e[1]?+e[1]:0)}},{key:\"getExponent\",value:function(t,e){return Math.pow(10,void 0!==e?Math.max(t,e):t)}},{key:\"safeRoundUp\",value:function(t,e){return Math.round(t*e)}}]),t}();function B(t,e){return I(t)||L(t,e)||H(t,e)||C()}function C(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function L(t,e){var n=null==t?null:\"undefined\"!==typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done);a=!0)if(o.push(r.value),e&&o.length===e)break}catch(l){s=!0,i=l}finally{try{a||null==n[\"return\"]||n[\"return\"]()}finally{if(s)throw i}}return o}}function I(t){if(Array.isArray(t))return t}function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?z(Object(n),!0).forEach((function(e){q(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function M(t){return $(t)||F(t)||H(t)||T()}function T(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function H(t,e){if(t){if(\"string\"===typeof t)return U(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?U(t,e):void 0}}function F(t){if(\"undefined\"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function $(t){if(Array.isArray(t))return U(t)}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function W(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function G(t,e,n){return e&&_(t.prototype,e),n&&_(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}function q(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}(function(t){t[t[\"VALUE\"]=1]=\"VALUE\",t[t[\"INTERVAL\"]=2]=\"INTERVAL\",t[t[\"MIN\"]=3]=\"MIN\",t[t[\"MAX\"]=4]=\"MAX\",t[t[\"ORDER\"]=5]=\"ORDER\"})(V||(V={}));var X=(w={},q(w,V.VALUE,'The type of the \"value\" is illegal'),q(w,V.INTERVAL,'The prop \"interval\" is invalid, \"(max - min)\" must be divisible by \"interval\"'),q(w,V.MIN,'The \"value\" must be greater than or equal to the \"min\".'),q(w,V.MAX,'The \"value\" must be less than or equal to the \"max\".'),q(w,V.ORDER,'When \"order\" is false, the parameters \"minRange\", \"maxRange\", \"fixed\", \"enabled\" are invalid.'),w),K=function(){function t(e){W(this,t),q(this,\"dotsPos\",[]),q(this,\"dotsValue\",[]),q(this,\"data\",void 0),q(this,\"enableCross\",void 0),q(this,\"fixed\",void 0),q(this,\"max\",void 0),q(this,\"min\",void 0),q(this,\"interval\",void 0),q(this,\"minRange\",void 0),q(this,\"maxRange\",void 0),q(this,\"order\",void 0),q(this,\"marks\",void 0),q(this,\"included\",void 0),q(this,\"process\",void 0),q(this,\"adsorb\",void 0),q(this,\"dotOptions\",void 0),q(this,\"onError\",void 0),q(this,\"cacheRangeDir\",{}),this.data=e.data,this.max=e.max,this.min=e.min,this.interval=e.interval,this.order=e.order,this.marks=e.marks,this.included=e.included,this.process=e.process,this.adsorb=e.adsorb,this.dotOptions=e.dotOptions,this.onError=e.onError,this.order?(this.minRange=e.minRange||0,this.maxRange=e.maxRange||0,this.enableCross=e.enableCross,this.fixed=e.fixed):((e.minRange||e.maxRange||!e.enableCross||e.fixed)&&this.emitError(V.ORDER),this.minRange=0,this.maxRange=0,this.enableCross=!0,this.fixed=!1),this.setValue(e.value)}return G(t,[{key:\"setValue\",value:function(t){this.setDotsValue(Array.isArray(t)?M(t):[t],!0)}},{key:\"setDotsValue\",value:function(t,e){this.dotsValue=t,e&&this.syncDotsPos()}},{key:\"setDotsPos\",value:function(t){var e=this,n=this.order?M(t).sort((function(t,e){return t-e})):t;this.dotsPos=n,this.setDotsValue(n.map((function(t){return e.getValueByPos(t)})),this.adsorb)}},{key:\"getValueByPos\",value:function(t){var e=this.parsePos(t);if(this.included){var n=100;this.markList.forEach((function(r){var i=Math.abs(r.pos-t);i<n&&(n=i,e=r.value)}))}return e}},{key:\"syncDotsPos\",value:function(){var t=this;this.dotsPos=this.dotsValue.map((function(e){return t.parseValue(e)}))}},{key:\"markList\",get:function(){var t=this;if(!this.marks)return[];var e=function(e,n){var r=t.parseValue(e);return N({pos:r,value:e,label:e,active:t.isActiveByPos(r)},n)};return!0===this.marks?this.getValues().map((function(t){return e(t)})):\"[object Object]\"===Object.prototype.toString.call(this.marks)?Object.keys(this.marks).sort((function(t,e){return+t-+e})).map((function(n){var r=t.marks[n];return e(n,\"string\"!==typeof r?r:{label:r})})):Array.isArray(this.marks)?this.marks.map((function(t){return e(t)})):\"function\"===typeof this.marks?this.getValues().map((function(e){return{value:e,result:t.marks(e)}})).filter((function(t){var e=t.result;return!!e})).map((function(t){var n=t.value,r=t.result;return e(n,r)})):[]}},{key:\"getRecentDot\",value:function(t){var e=this.dotsPos.map((function(e){return Math.abs(e-t)}));return e.indexOf(Math.min.apply(Math,M(e)))}},{key:\"getIndexByValue\",value:function(t){return this.data?this.data.indexOf(t):new j(+t).minus(this.min).divide(this.interval).toNumber()}},{key:\"getValueByIndex\",value:function(t){return t<0?t=0:t>this.total&&(t=this.total),this.data?this.data[t]:new j(t).multiply(this.interval).plus(this.min).toNumber()}},{key:\"setDotPos\",value:function(t,e){t=this.getValidPos(t,e).pos;var n=t-this.dotsPos[e];if(n){var r=new Array(this.dotsPos.length);this.fixed?r=this.getFixedChangePosArr(n,e):this.minRange||this.maxRange?r=this.getLimitRangeChangePosArr(t,n,e):r[e]=n,this.setDotsPos(this.dotsPos.map((function(t,e){return t+(r[e]||0)})))}}},{key:\"getFixedChangePosArr\",value:function(t,e){var n=this;return this.dotsPos.forEach((function(r,i){if(i!==e){var o=n.getValidPos(r+t,i),a=o.pos,s=o.inRange;s||(t=Math.min(Math.abs(a-r),Math.abs(t))*(t<0?-1:1))}})),this.dotsPos.map((function(e){return t}))}},{key:\"getLimitRangeChangePosArr\",value:function(t,e,n){var r=this,i=[{index:n,changePos:e}],o=e;return[this.minRange,this.maxRange].forEach((function(a,s){if(!a)return!1;var l=0===s,u=e>0,c=0;c=l?u?1:-1:u?-1:1;var d=function(t,e){var n=Math.abs(t-e);return l?n<r.minRangeDir:n>r.maxRangeDir},h=n+c,f=r.dotsPos[h],p=t;while(r.isPos(f)&&d(f,p)){var m=r.getValidPos(f+o,h),y=m.pos;i.push({index:h,changePos:y-f}),h+=c,p=y,f=r.dotsPos[h]}})),this.dotsPos.map((function(t,e){var n=i.filter((function(t){return t.index===e}));return n.length?n[0].changePos:0}))}},{key:\"isPos\",value:function(t){return\"number\"===typeof t}},{key:\"getValidPos\",value:function(t,e){var n=this.valuePosRange[e],r=!0;return t<n[0]?(t=n[0],r=!1):t>n[1]&&(t=n[1],r=!1),{pos:t,inRange:r}}},{key:\"parseValue\",value:function(t){if(this.data)t=this.data.indexOf(t);else if(\"number\"===typeof t||\"string\"===typeof t){if(t=+t,t<this.min)return this.emitError(V.MIN),0;if(t>this.max)return this.emitError(V.MAX),0;if(\"number\"!==typeof t||t!==t)return this.emitError(V.VALUE),0;t=new j(t).minus(this.min).divide(this.interval).toNumber()}var e=new j(t).multiply(this.gap).toNumber();return e<0?0:e>100?100:e}},{key:\"parsePos\",value:function(t){var e=Math.round(t/this.gap);return this.getValueByIndex(e)}},{key:\"isActiveByPos\",value:function(t){return this.processArray.some((function(e){var n=B(e,2),r=n[0],i=n[1];return t>=r&&t<=i}))}},{key:\"getValues\",value:function(){if(this.data)return this.data;for(var t=[],e=0;e<=this.total;e++)t.push(new j(e).multiply(this.interval).plus(this.min).toNumber());return t}},{key:\"getRangeDir\",value:function(t){return t?new j(t).divide(new j(this.data?this.data.length-1:this.max).minus(this.data?0:this.min).toNumber()).multiply(100).toNumber():100}},{key:\"emitError\",value:function(t){this.onError&&this.onError(t,X[t])}},{key:\"processArray\",get:function(){if(this.process){if(\"function\"===typeof this.process)return this.process(this.dotsPos);if(1===this.dotsPos.length)return[[0,this.dotsPos[0]]];if(this.dotsPos.length>1)return[[Math.min.apply(Math,M(this.dotsPos)),Math.max.apply(Math,M(this.dotsPos))]]}return[]}},{key:\"total\",get:function(){var t=0;return t=this.data?this.data.length-1:new j(this.max).minus(this.min).divide(this.interval).toNumber(),t-Math.floor(t)!==0?(this.emitError(V.INTERVAL),0):t}},{key:\"gap\",get:function(){return 100/this.total}},{key:\"minRangeDir\",get:function(){return this.cacheRangeDir[this.minRange]?this.cacheRangeDir[this.minRange]:this.cacheRangeDir[this.minRange]=this.getRangeDir(this.minRange)}},{key:\"maxRangeDir\",get:function(){return this.cacheRangeDir[this.maxRange]?this.cacheRangeDir[this.maxRange]:this.cacheRangeDir[this.maxRange]=this.getRangeDir(this.maxRange)}},{key:\"getDotRange\",value:function(t,e,n){if(!this.dotOptions)return n;var r=Array.isArray(this.dotOptions)?this.dotOptions[t]:this.dotOptions;return r&&void 0!==r[e]?this.parseValue(r[e]):n}},{key:\"valuePosRange\",get:function(){var t=this,e=this.dotsPos,n=[];return e.forEach((function(r,i){n.push([Math.max(t.minRange?t.minRangeDir*i:0,t.enableCross?0:e[i-1]||0,t.getDotRange(i,\"min\",0)),Math.min(t.minRange?100-t.minRangeDir*(e.length-1-i):100,t.enableCross?100:e[i+1]||100,t.getDotRange(i,\"max\",100))])})),n}},{key:\"dotsIndex\",get:function(){var t=this;return this.dotsValue.map((function(e){return t.getIndexByValue(e)}))}}]),t}();function Z(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Y(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function J(t,e,n){return e&&Y(t.prototype,e),n&&Y(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}function Q(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var tt=function(){function t(e){Z(this,t),Q(this,\"map\",void 0),Q(this,\"states\",0),this.map=e}return J(t,[{key:\"add\",value:function(t){this.states|=t}},{key:\"delete\",value:function(t){this.states&=~t}},{key:\"toggle\",value:function(t){this.has(t)?this.delete(t):this.add(t)}},{key:\"has\",value:function(t){return!!(this.states&t)}}]),t}();function et(t){return it(t)||rt(t)||dt(t)||nt()}function nt(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function rt(t){if(\"undefined\"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}function it(t){if(Array.isArray(t))return ht(t)}function ot(t){return ot=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},ot(t)}function at(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function st(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?at(Object(n),!0).forEach((function(e){lt(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function lt(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ut(t,e){return pt(t)||ft(t,e)||dt(t,e)||ct()}function ct(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function dt(t,e){if(t){if(\"string\"===typeof t)return ht(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ht(t,e):void 0}}function ht(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function ft(t,e){var n=null==t?null:\"undefined\"!==typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done);a=!0)if(o.push(r.value),e&&o.length===e)break}catch(l){s=!0,i=l}finally{try{a||null==n[\"return\"]||n[\"return\"]()}finally{if(s)throw i}}return o}}function pt(t){if(Array.isArray(t))return t}var mt={None:0,Drag:2,Focus:4},yt=4,vt=(0,o.defineComponent)({name:\"VueSlider\",components:{VueSliderDot:m,VueSliderMark:k},emits:[\"change\",\"drag-start\",\"dragging\",\"drag-end\",\"error\",\"update:modelValue\"],data:function(){return{control:null,states:new tt(mt),scale:1,focusDotIndex:0}},props:{modelValue:{type:[Number,String,Array],default:0},silent:{type:Boolean,default:!1},direction:{type:String,default:\"ltr\",validator:function(t){return[\"ltr\",\"rtl\",\"ttb\",\"btt\"].indexOf(t)>-1}},width:{type:[Number,String]},height:{type:[Number,String]},dotSize:{type:[Number,Array],default:14},contained:{type:Boolean,default:!1},min:{type:Number,default:0},max:{type:Number,default:100},interval:{type:Number,default:1},disabled:{type:Boolean,default:!1},clickable:{type:Boolean,default:!0},dragOnClick:{type:Boolean,default:!1},duration:{type:Number,default:.5},data:{type:[Object,Array]},dataValue:{type:String,default:\"value\"},dataLabel:{type:String,default:\"label\"},lazy:{type:Boolean,default:!1},tooltip:{type:String,default:\"active\",validator:function(t){return[\"none\",\"always\",\"focus\",\"hover\",\"active\"].indexOf(t)>-1}},tooltipPlacement:{type:[String,Array],validator:function(t){return(Array.isArray(t)?t:[t]).every((function(t){return[\"top\",\"right\",\"bottom\",\"left\"].indexOf(t)>-1}))}},tooltipFormatter:{type:[String,Array,Function]},useKeyboard:{type:Boolean,default:!0},keydownHook:{type:Function},enableCross:{type:Boolean,default:!0},fixed:{type:Boolean,default:!1},order:{type:Boolean,default:!0},minRange:{type:Number},maxRange:{type:Number},marks:{type:[Boolean,Object,Array,Function],default:!1},process:{type:[Boolean,Function],default:!0},zoom:{type:Number},included:{type:Boolean},adsorb:{type:Boolean},hideLabel:{type:Boolean},dotOptions:{type:[Object,Array]},dotAttrs:{type:Object},railStyle:{type:Object},processStyle:{type:Object},dotStyle:{type:Object},tooltipStyle:{type:Object},stepStyle:{type:Object},stepActiveStyle:{type:Object},labelStyle:{type:Object},labelActiveStyle:{type:Object}},computed:{isHorizontal:function(){return\"ltr\"===this.direction||\"rtl\"===this.direction},isReverse:function(){return\"rtl\"===this.direction||\"btt\"===this.direction},tailSize:function(){return S((this.isHorizontal?this.height:this.width)||yt)},containerClasses:function(){return[\"vue-slider\",[\"vue-slider-\".concat(this.direction)],{\"vue-slider-disabled\":this.disabled}]},containerStyles:function(){var t=Array.isArray(this.dotSize)?this.dotSize:[this.dotSize,this.dotSize],e=ut(t,2),n=e[0],r=e[1],i=this.width?S(this.width):this.isHorizontal?\"auto\":S(yt),o=this.height?S(this.height):this.isHorizontal?S(yt):\"auto\";return{padding:this.contained?\"\".concat(r/2,\"px \").concat(n/2,\"px\"):this.isHorizontal?\"\".concat(r/2,\"px 0\"):\"0 \".concat(n/2,\"px\"),width:i,height:o}},processArray:function(){var t=this;return this.control.processArray.map((function(e,n){var r,i=ut(e,3),o=i[0],a=i[1],s=i[2];if(o>a){var l=[a,o];o=l[0],a=l[1]}var u=t.isHorizontal?\"width\":\"height\";return{start:o,end:a,index:n,style:st(st((r={},lt(r,t.isHorizontal?\"height\":\"width\",\"100%\"),lt(r,t.isHorizontal?\"top\":\"left\",0),lt(r,t.mainDirection,\"\".concat(o,\"%\")),lt(r,u,\"\".concat(a-o,\"%\")),lt(r,\"transitionProperty\",\"\".concat(u,\",\").concat(t.mainDirection)),lt(r,\"transitionDuration\",\"\".concat(t.animateTime,\"s\")),r),t.processStyle),s)}}))},dotBaseStyle:function(){var t,e=Array.isArray(this.dotSize)?this.dotSize:[this.dotSize,this.dotSize],n=ut(e,2),r=n[0],i=n[1];return t=this.isHorizontal?lt({transform:\"translate(\".concat(this.isReverse?\"50%\":\"-50%\",\", -50%)\"),WebkitTransform:\"translate(\".concat(this.isReverse?\"50%\":\"-50%\",\", -50%)\"),top:\"50%\"},\"ltr\"===this.direction?\"left\":\"right\",\"0\"):lt({transform:\"translate(-50%, \".concat(this.isReverse?\"50%\":\"-50%\",\")\"),WebkitTransform:\"translate(-50%, \".concat(this.isReverse?\"50%\":\"-50%\",\")\"),left:\"50%\"},\"btt\"===this.direction?\"bottom\":\"top\",\"0\"),st({width:\"\".concat(r,\"px\"),height:\"\".concat(i,\"px\")},t)},mainDirection:function(){switch(this.direction){case\"ltr\":return\"left\";case\"rtl\":return\"right\";case\"btt\":return\"bottom\";case\"ttb\":return\"top\";default:return\"left\"}},tooltipDirections:function(){var t=this.tooltipPlacement||(this.isHorizontal?\"top\":\"left\");return Array.isArray(t)?t:this.dots.map((function(){return t}))},dots:function(){var t=this;return this.control.dotsPos.map((function(e,n){return st({pos:e,index:n,value:t.control.dotsValue[n],focus:t.states.has(mt.Focus)&&t.focusDotIndex===n,disabled:t.disabled,style:t.dotStyle},(Array.isArray(t.dotOptions)?t.dotOptions[n]:t.dotOptions)||{})}))},animateTime:function(){return this.states.has(mt.Drag)?0:this.duration},canSort:function(){return this.order&&!this.minRange&&!this.maxRange&&!this.fixed&&this.enableCross},sliderData:function(){var t=this;return this.isObjectArrayData(this.data)?this.data.map((function(e){return e[t.dataValue]})):this.isObjectData(this.data)?Object.keys(this.data):this.data},sliderMarks:function(){var t=this;return this.marks?this.marks:this.isObjectArrayData(this.data)?function(e){var n={label:e};return t.data.some((function(r){return r[t.dataValue]===e&&(n.label=r[t.dataLabel],!0)})),n}:this.isObjectData(this.data)?this.data:void 0},sliderTooltipFormatter:function(){var t=this;if(this.tooltipFormatter)return this.tooltipFormatter;if(this.isObjectArrayData(this.data))return function(e){var n=\"\"+e;return t.data.some((function(r){return r[t.dataValue]===e&&(n=r[t.dataLabel],!0)})),n};if(this.isObjectData(this.data)){var e=this.data;return function(t){return e[t]}}},isNotSync:function(){var t=this.control.dotsValue;return Array.isArray(this.modelValue)?this.modelValue.length!==t.length||this.modelValue.some((function(e,n){return e!==t[n]})):this.modelValue!==t[0]},dragRange:function(){var t=this.dots[this.focusDotIndex-1],e=this.dots[this.focusDotIndex+1];return[t?t.pos:-1/0,e?e.pos:1/0]}},watch:{modelValue:function(){this.control&&!this.states.has(mt.Drag)&&this.isNotSync&&this.control.setValue(this.modelValue)}},methods:{isObjectData:function(t){return!!t&&\"[object Object]\"===Object.prototype.toString.call(t)},isObjectArrayData:function(t){return!!t&&Array.isArray(t)&&t.length>0&&\"object\"===ot(t[0])},bindEvent:function(){document.addEventListener(\"touchmove\",this.dragMove,{passive:!1}),document.addEventListener(\"touchend\",this.dragEnd,{passive:!1}),document.addEventListener(\"mousedown\",this.blurHandle),document.addEventListener(\"mousemove\",this.dragMove),document.addEventListener(\"mouseup\",this.dragEnd),document.addEventListener(\"mouseleave\",this.dragEnd),document.addEventListener(\"keydown\",this.keydownHandle)},unbindEvent:function(){document.removeEventListener(\"touchmove\",this.dragMove),document.removeEventListener(\"touchend\",this.dragEnd),document.removeEventListener(\"mousedown\",this.blurHandle),document.removeEventListener(\"mousemove\",this.dragMove),document.removeEventListener(\"mouseup\",this.dragEnd),document.removeEventListener(\"mouseleave\",this.dragEnd),document.removeEventListener(\"keydown\",this.keydownHandle)},setScale:function(){this.scale=new j(Math.floor(this.isHorizontal?this.$el.offsetWidth:this.$el.offsetHeight)).multiply(this.zoom||1).divide(100).toNumber()},initControl:function(){var t=this;this.control=new K({value:this.modelValue,data:this.sliderData,enableCross:this.enableCross,fixed:this.fixed,max:this.max,min:this.min,interval:this.interval,minRange:this.minRange,maxRange:this.maxRange,order:this.order,marks:this.sliderMarks,included:this.included,process:this.process,adsorb:this.adsorb,dotOptions:this.dotOptions,onError:this.emitError}),[\"data\",\"enableCross\",\"fixed\",\"max\",\"min\",\"interval\",\"minRange\",\"maxRange\",\"order\",\"marks\",\"process\",\"adsorb\",\"included\",\"dotOptions\"].forEach((function(e){t.$watch(e,(function(n){if(\"data\"===e&&Array.isArray(t.control.data)&&Array.isArray(n)&&t.control.data.length===n.length&&n.every((function(e,n){return e===t.control.data[n]})))return!1;switch(e){case\"data\":case\"dataLabel\":case\"dataValue\":t.control.data=t.sliderData;break;case\"mark\":t.control.marks=t.sliderMarks;break;default:t.control[e]=n}[\"data\",\"max\",\"min\",\"interval\"].indexOf(e)>-1&&t.control.syncDotsPos()}))}))},syncValueByPos:function(){var t=this.control.dotsValue;if(this.isDiff(t,Array.isArray(this.modelValue)?this.modelValue:[this.modelValue])){var e=1===t.length?t[0]:et(t);this.$emit(\"change\",e,this.focusDotIndex),this.$emit(\"update:modelValue\",e)}},isDiff:function(t,e){return t.length!==e.length||t.some((function(t,n){return t!==e[n]}))},emitError:function(t,e){this.silent||console.error(\"[VueSlider error]: \".concat(e)),this.$emit(\"error\",t,e)},dragStartOnProcess:function(t){if(this.dragOnClick){this.setScale();var e=this.getPosByEvent(t),n=this.control.getRecentDot(e);if(this.dots[n].disabled)return;this.dragStart(n),this.control.setDotPos(e,this.focusDotIndex),this.lazy||this.syncValueByPos()}},dragStart:function(t){this.focusDotIndex=t,this.setScale(),this.states.add(mt.Drag),this.states.add(mt.Focus),this.$emit(\"drag-start\",this.focusDotIndex)},dragMove:function(t){if(!this.states.has(mt.Drag))return!1;t.preventDefault();var e=this.getPosByEvent(t);this.isCrossDot(e),this.control.setDotPos(e,this.focusDotIndex),this.lazy||this.syncValueByPos();var n=this.control.dotsValue;this.$emit(\"dragging\",1===n.length?n[0]:et(n),this.focusDotIndex)},isCrossDot:function(t){if(this.canSort){var e=this.focusDotIndex,n=t;if(n>this.dragRange[1]?(n=this.dragRange[1],this.focusDotIndex++):n<this.dragRange[0]&&(n=this.dragRange[0],this.focusDotIndex--),e!==this.focusDotIndex){var r=this.$refs[\"dot-\".concat(this.focusDotIndex)];r&&r.$el&&r.$el.focus(),this.control.setDotPos(n,e)}}},dragEnd:function(t){var e=this;if(!this.states.has(mt.Drag))return!1;setTimeout((function(){e.lazy&&e.syncValueByPos(),e.included&&e.isNotSync?e.control.setValue(e.modelValue):e.control.syncDotsPos(),e.states.delete(mt.Drag),e.useKeyboard&&!(\"targetTouches\"in t)||e.states.delete(mt.Focus),e.$emit(\"drag-end\",e.focusDotIndex)}))},blurHandle:function(t){if(!this.states.has(mt.Focus)||!this.$refs.container||this.$refs.container.contains(t.target))return!1;this.states.delete(mt.Focus)},clickHandle:function(t){if(!this.clickable||this.disabled)return!1;if(!this.states.has(mt.Drag)){this.setScale();var e=this.getPosByEvent(t);this.setValueByPos(e)}},focus:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.disabled||(this.states.add(mt.Focus),this.focusDotIndex=e)},blur:function(){this.states.delete(mt.Focus)},getValue:function(){var t=this.control.dotsValue;return 1===t.length?t[0]:t},getIndex:function(){var t=this.control.dotsIndex;return 1===t.length?t[0]:t},setValue:function(t){this.control.setValue(Array.isArray(t)?et(t):[t]),this.syncValueByPos()},setIndex:function(t){var e=this,n=Array.isArray(t)?t.map((function(t){return e.control.getValueByIndex(t)})):this.control.getValueByIndex(t);this.setValue(n)},setValueByPos:function(t){var e=this,n=this.control.getRecentDot(t);if(this.disabled||this.dots[n].disabled)return!1;this.focusDotIndex=n,this.control.setDotPos(t,n),this.syncValueByPos(),this.useKeyboard&&this.states.add(mt.Focus),setTimeout((function(){e.included&&e.isNotSync?e.control.setValue(e.modelValue):e.control.syncDotsPos()}))},keydownHandle:function(t){var e=this;if(!this.useKeyboard||!this.states.has(mt.Focus))return!1;var n=this.included&&this.marks,r=O(t,{direction:this.direction,max:n?this.control.markList.length-1:this.control.total,min:0,hook:this.keydownHook});if(r){t.preventDefault();var i=-1,o=0;n?(this.control.markList.some((function(t,n){return t.value===e.control.dotsValue[e.focusDotIndex]&&(i=r(n),!0)})),i<0?i=0:i>this.control.markList.length-1&&(i=this.control.markList.length-1),o=this.control.markList[i].pos):(i=r(this.control.getIndexByValue(this.control.dotsValue[this.focusDotIndex])),o=this.control.parseValue(this.control.getValueByIndex(i))),this.isCrossDot(o),this.control.setDotPos(o,this.focusDotIndex),this.syncValueByPos()}},getPosByEvent:function(t){return P(t,this.$el,this.isReverse,this.zoom)[this.isHorizontal?\"x\":\"y\"]/this.scale},renderSlot:function(t,e,n){var r=this.$slots[t];return r?r(e):n}},created:function(){this.initControl()},mounted:function(){this.bindEvent()},beforeUnmount:function(){this.unbindEvent()}});const gt=(0,f.Z)(vt,[[\"render\",l]]);var bt=gt;bt.VueSliderMark=k,bt.VueSliderDot=m;var kt=bt,St=kt}(),i=i[\"default\"],i}()}));\n//# sourceMappingURL=vue-slider-component.umd.min.js.map","import { TooltipProp } from 'vue-slider-component'\nimport { PropType, VNode, ExtractPropTypes } from 'vue'\n\nexport interface TooltipInfo {\n  bgColor?: string;\n  desc?: string;\n  color?: string;\n  Icon?: string | VNode;\n  dotLabel?: string;\n  label?: string;\n  marker?: {\n    markerColor?: string;\n    icon?: string | VNode;\n    label?: string;\n  };\n}\n\nexport interface InputNumberOptions {\n  placeholder?: string\n  readonly?: boolean\n  stepStrictly?: boolean\n}\n\nexport interface TooltipInfos {\n  [key:string]: TooltipInfo\n}\n\nexport const Props = () => ({\n  tooltip: {\n    type: String as PropType<TooltipProp>,\n    default () {\n      return 'none'\n    }\n  },\n  isShowNextUnit: Boolean,\n  value: {\n    type: [Number, String],\n    default: 0\n  },\n  min: {\n    type: [Number, String],\n    default: 0\n  },\n  max: {\n    type: [Number, String],\n    default: 100\n  },\n  silent: {\n    type: Boolean,\n    default: true\n  },\n  step: {\n    type: [Number, String],\n    default: 10\n  },\n  wrapperWidth: {\n    type: [Number, String],\n    default: 480\n  },\n  dotWidth: {\n    type: [Number, String],\n    default: 60\n  },\n  unit: {\n    type: [Number, String],\n    default: 'G'\n  },\n  infos: {\n    type:  Object as PropType<TooltipInfos>,\n    default: () => {\n      return []\n    }\n  },\n  disabled: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  dotCircle: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  customMarker: Boolean,\n  showMinMaxMarker: Boolean,\n  inputNumberOptions: Object as PropType<InputNumberOptions>\n})\n\nexport declare type SliderProps = Partial<ExtractPropTypes<typeof Props>>","import { VNode, isVNode, h } from \"vue\"\n\ntype IconType = string | VNode\n\nexport const getIcon = (Icon:IconType) => {\n  if (!Icon) {\n    return\n  }\n  if (isVNode(Icon)) {\n    return Icon\n  }\n  return h('img', { class: 'scSlider-tooltip__img', src: Icon })\n}","<template>\n  <div\n    :class=\"[baseClass+'-main', dotCircle ? 'dotCircle' : '']\"\n  >\n    <div \n      :class=\"[baseClass+'-container']\"\n      :style=\"{ 'width': transformPxtoRem(newProps?.wrapperWidth) }\"\n    >\n      <VueSlider\n        v-bind=\"vBindValue\"\n        v-model=\"valueSliderRef\"\n        @change=\"handleChange\"\n        >\n        <template \n          #[item]=\"data\" \n          v-for=\"item in Object.keys($slots).filter((_item) => !['dot', 'label'].includes(_item))\"\n          :key=\"item\"\n        >\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </template> \n        <template v-slot:dot=\"{ value, focus }\" v-if=\"!isDot\">\n          <Tooltip\n            :color=\"infos[value]?.bgColor\"\n          >\n            <template #title\n              v-if=\"infos[value]?.desc || dotCircle\"\n            >\n              <div \n                :class=\"[baseClass+'-tooltip']\"\n                :style=\"{ color: infos[value]?.color }\"\n                v-if=\"!dotCircle || infos[value]?.desc\"\n              >\n                <component :is=\"getIcon(infos[value]?.Icon)\"></component>\n                <p\n                  :class=\"[baseClass+'-tooltip__title']\"\n                >\n                  {{ infos[value]?.desc }}\n                </p>\n              </div>\n              <div class v-else>\n                {{ value }} {{ newProps.unit }}\n              </div>\n            </template>\n            <div \n              :class=\"['sc-dot-wrapper']\"\n              :style=\"{\n                'min-width': dotCircle ? 'auto' : pxToRem(newProps?.dotWidth)\n              }\"\n            >\n              <div :class=\"['sc-dot', { focus }]\">\n                <slot\n                  name=\"dot\"\n                  :value=\"value\"\n                  :focus=\"focus\"\n                  v-if=\"!dotCircle\"\n                  >\n                  <span \n                    v-if=\"infos[value]?.dotLabel || infos[value]?.label || infos.marker?.label\"\n                  >\n                    {{ infos[value]?.dotLabel || infos[value]?.label || infos.marker?.label }}\n                  </span>\n                  <span v-else>\n                    {{ value }} {{ newProps.unit }}\n                  </span>\n                </slot>\n              </div>\n            </div>\n          </Tooltip>\n        </template>\n        <template v-slot:dot=\"{ value, focus }\" v-else>\n          <slot\n            name=\"dot\"\n            :value=\"value\"\n            :focus=\"focus\"\n            >\n          </slot>\n        </template>\n        <template v-slot:label=\"{ label, active }\">\n          <slot\n            name=\"label\"\n            :label=\"label\"\n            :active=\"active\"\n          >\n            <div\n              v-if=\"!isLabel && !newProps.showMinMaxMarker && newProps.customMarker\"\n              :class=\"['vue-slider-mark-label', 'custom-label', active ? 'vue-slider-mark-label-active' : '']\"\n              :style=\"{ color: infos[label]?.marker?.markerColor }\"\n            >\n              <span :class=\"[baseClass + '-marker__icon']\">\n                <component v-if=\"infos[label]?.marker?.icon\" :is=\"getIcon(infos[label]?.marker?.icon)\"></component>\n              </span>\n              <span :class=\"[baseClass + '-marker__text']\">\n                {{ infos[label]?.marker?.label }}\n              </span>\n            </div>\n          </slot>\n        </template>\n      </VueSlider>\n    </div>\n    <ScInputNumber\n      v-if=\"newProps.inputNumberOptions\"\n      v-model:value=\"valueRef\"\n      :min=\"newProps.min\"\n      :max=\"newProps.max\"\n      :step=\"newProps.step\"\n      :disabled=\"newProps.disabled\"\n      v-bind=\"{...newProps?.inputNumberOptions, stepStrictly: newProps?.inputNumberOptions.stepStrictly ?? true}\"\n      @blur=\"handleBlur\"\n      @focus=\"handleFocus\"\n    >\n      <!-- @change=\"handleInputNumberChange\" -->\n      <!-- @pressEnter=\"handleChange\" -->\n\n    </ScInputNumber>\n    <span\n      v-if=\"newProps.isShowNextUnit\"\n      :class=\"[baseClass + '-nextUnit']\"\n    >\n      {{\n        newProps.unit\n      }}\n    </span>\n  </div>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, unref, ref, watch, isVNode } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\nimport { ScInputNumber } from '../../inputNumber'\nimport { transformPxtoRem } from '../../../utils'\nimport { useInjectFormItemContext } from '../../form/FormItemContext';\n\nimport VueSlider from 'vue-slider-component/dist-css/vue-slider-component.umd.min.js'\n\nimport { basePrefixCls } from '../../../constant'\nimport { pxToRem, buildUUID, isNumber } from '../../../utils'\nimport { Props } from './type'\nimport { getIcon } from '../hooks/index'\n\nexport default defineComponent({\n  name: 'ScSlider',\n  inheritAttrs: false,\n  props: Props(),\n  components: {\n    VueSlider,\n    Tooltip,\n    ScInputNumber\n  },\n  emits: ['change', 'update:value', 'blur', 'focus'],\n  setup (props, { slots, attrs, emit }) {\n    // const curProps = {\n    //   ...props,\n    //   // min: parseFloat(props.min + '' || '0'),\n    //   // max: parseFloat(props.max + '' || '100')\n    // }\n    // const isNull\n    const valueRef = ref(props.value)\n    const valueSliderRef = ref(props.value)\n    const uuid = basePrefixCls + buildUUID()\n    const baseClass = basePrefixCls+'Slider'\n    const formItemContext = useInjectFormItemContext()\n\n    const newProps = computed(() => {\n      return {\n        ...props,\n        min: Number.isNaN(parseFloat(props.min + '')) ? 0 : parseFloat(props.min + ''),\n        max: Number.isNaN(parseFloat(props.max + '')) ? 100 : parseFloat(props.max + ''),\n        step: Number.isNaN(parseFloat(props.step + '')) ? 10 : parseFloat(props.step + '')\n      }\n    })\n\n    const infos = computed(() => {\n      return unref(newProps).infos\n    })\n\n    const marks = computed(() => {\n      const { showMinMaxMarker } =  unref(newProps)\n      if (showMinMaxMarker) {\n        const { min, max, unit } = unref(newProps)\n        \n        return {\n          [min]: {\n            label: min + unit\n          },\n          [max]: {\n            label: max + unit\n          }\n        }\n      }\n      return undefined\n    })\n\n    const vBindValue = computed(() => {\n      const { customMarker } =  unref(newProps)\n      return {\n        marks: customMarker ? undefined : unref(marks),\n        lazy: true,\n        ...unref(newProps),\n        ...attrs,\n        class: [baseClass],\n        wrapperWidth: undefined,\n        unit: undefined,\n        tooltipInfos: undefined\n      }\n    })\n    watch(() => props.value, () => {\n      const value = Number(unref(newProps).value) > unref(newProps).max ? unref(newProps).max : Number(unref(newProps).value) < unref(newProps).min ? unref(newProps).min : unref(newProps).value\n      valueRef.value = unref(newProps).inputNumberOptions ? Number(props.value) : Number(props.value)\n      valueSliderRef.value = value\n    }, {\n      deep: true,\n      immediate: true\n    })\n    watch(() => valueRef.value, (val) => {\n      if (unref(newProps).inputNumberOptions) {\n        if (!isNumber(val)) {\n          return false;\n        }\n      }\n      emit('update:value', val)\n      emit('change', val)\n      formItemContext.onFieldChange()\n    }, {\n      flush: 'post'\n    })\n\n    const isDot = computed(() => {\n      return Object.keys(slots).includes('slot')\n    })\n\n    const isLabel = computed(() => {\n      return Object.keys(slots).includes('label')\n    })\n\n    const handleChange = (val:any) => {\n      valueRef.value = val\n    }\n\n    const handleBlur = (event: Event) => {\n      emit('blur', event)\n    }\n    const handleFocus = () => {\n      emit('focus')\n    }\n\n    return {\n      baseClass,\n      vBindValue,\n      newProps,\n      isDot,\n      isLabel,\n      valueRef,\n      valueSliderRef,\n      uuid,\n      infos,\n      transformPxtoRem,\n      pxToRem,\n      isVNode,\n      getIcon,\n      handleChange,\n      handleBlur,\n      handleFocus\n      // handleInputNumberChange\n    }\n  }\n})\n</script>\n","import { withInstall } from \"../../utils/index\"\nimport scSlider from './component/ScSlider.vue'\n\nexport const ScSlider = withInstall(scSlider)\n\nexport * from './component/type'","import { defineComponent, computed, unref } from 'vue'\nimport useIcon from '../../../hooks/useIcon'\nconst ScIconComponent = useIcon({})\n{/* <template>\n  <ScIconComponent\n    v-bind=\"newProps\"\n    :type=\"newProps.type\"\n  />\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed } from 'vue'\nimport useIcon from '../../../hooks/useIcon'\nconst ScIconComponent = useIcon({})\n\nexport default defineComponent({\n  name: 'ScIcon',\n  components: {\n    ScIconComponent\n  },\n  props: {\n    type: {\n      type: String,\n      require: true\n    },\n  },\n  setup (props, { attrs }) {\n    const newProps = computed(() => {\n      return {\n        ...attrs,\n        ...props,\n        class: [props.type, attrs.class].join('')\n      }\n    })\n    return {\n      newProps\n    }\n  }\n})\n</script> */}\n\nfunction ScIcon () {\n  return defineComponent({\n    name: 'ScIcon',\n    components: {\n      ScIconComponent\n    },\n    props: {\n      type: {\n        type: String,\n        require: true\n      },\n    },\n    setup (props, { attrs }) {\n      const newProps = computed(() => {\n        return {\n          ...attrs,\n          ...props,\n          class: [props.type, attrs.class].join('')\n        }\n      })\n      // return {\n      //   newProps\n      // }\n      return () => (\n        <ScIconComponent\n          type={unref(newProps).type || ''}\n          style={unref(newProps).style || {}}\n          class={unref(newProps).class || ''}\n        />\n      )\n    }\n  })\n}\n\nexport default ScIcon()","import { withInstall } from \"../../utils/index\"\nimport scIcon from './component/index'\n\nexport const ScIcon = withInstall(scIcon)","import type { Component, ExtractPropTypes } from \"vue\"\nimport { definePropType } from \"../../../utils/propTypes\"\nexport const iconPropType = definePropType<string | Component>([\n  String,\n  Object,\n  Function,\n])\nexport const linkProps = () => ({\n  size: {\n    type: String,\n    validator: (v:string) => ['small', 'default', 'large', 'medium'].includes(v) \n  },\n  /**\n * @description type\n */\n  type: {\n    type: String,\n    values: ['primary', 'success', 'warning', 'info', 'danger', 'default'],\n    default: 'default',\n  },\n  /**\n   * @description whether the component has underline\n   */\n  underline: {\n    type: Boolean,\n    default: false,\n  },\n  /**\n   * @description whether the component has underline\n   */\n  hoverUnderline: {\n    type: Boolean,\n    default: false,\n  },\n  /**\n   * @description whether the component is disabled\n   */\n  disabled: { type: Boolean, default: false },\n  /**\n   * @description same as native hyperlink's `href`\n   */\n  href: { type: String, default: '' },\n  /**\n   * @description icon component\n   */\n  icon: {\n    type: iconPropType,\n  },\n  handle: Function\n})\n\nexport type LinkProps = ExtractPropTypes<typeof linkProps>","<template>\n  <a\n    :class=\"classNames\"\n    :href=\"!currentProps.disabled && currentProps.href ? currentProps.href : 'javascript: void(0)'\"\n    @click=\"handleClick\"\n  >\n    <span class=\"prepend\" v-if=\"currentProps.icon\">\n      <ScIcon :type=\"currentProps.icon\" v-if=\"isString(currentProps.icon)\"></ScIcon>\n      <component v-else :is=\"currentProps.icon\"></component>\n    </span>\n    <span v-if=\"$slots.default\" :class=\"[baseClass + '-inner']\" ><slot name=\"default\"></slot></span>\n    <slot v-if=\"$slots.icon\" name=\"icon\" />\n  </a>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, unref, isVNode } from 'vue';\n\nimport { linkProps } from './type';\nimport { basePrefixCls } from '../../../constant';\nimport { isString, isFunction } from '../../../utils/is';\nimport { ScIcon } from '../../icon';\n\nexport default defineComponent({\n  name: 'ScLink',\n  props: linkProps(),\n  components: {\n    ScIcon\n  },\n  emits: ['click'],\n  setup (props) {\n    const currentProps = computed(() => {\n      return props\n    })\n    const baseClass = basePrefixCls + 'Link'\n    const classNames = [\n      baseClass,\n      unref(currentProps)?.type ? baseClass + '-' + unref(currentProps)?.type : '',\n      unref(currentProps).disabled ? 'isDisabled' : '',\n      unref(currentProps).underline ? 'isUnderline' : '',\n      unref(currentProps).hoverUnderline ? 'isHoverUnderline' : '',\n      unref(currentProps).size ? baseClass + '-' + unref(currentProps).size : ''\n    ]\n    const handleClick = () => {\n      const { handle, disabled } = currentProps.value\n      // handle()\n      if (isFunction(handle) && !disabled) {\n        handle()\n      }\n    }\n    return {\n      currentProps,\n      baseClass,\n      classNames,\n      isString,\n      isVNode,\n      handleClick\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from \"vue\"\nimport { withInstall } from \"../../utils/index\"\nimport scLink from './component/ScLink.vue'\nimport { linkProps } from \"./component/type\"\n\nexport const ScLink = withInstall(scLink)\n\nexport type LinkProps = ExtractPropTypes<typeof linkProps>","export const badgeProps = {\n  shadow: {\n    type: Boolean\n  },\n  color: {\n    type: String\n  }\n}\n","<template>\n  <Badge\n    v-bind=\"curProps\"\n    :class=\"baseClass\"\n    :style=\"{...varStyle}\"\n  >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template> \n  </Badge>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, computed, unref } from 'vue'\nimport { Badge } from 'ant-design-vue'\nimport { badgeProps } from './type'\nimport { basePrefixCls } from '../../../constant'\nimport { toRgbaString, parseColorString } from '../../../utils/hextorgba'\n\nexport default defineComponent({\n  name: 'ScBadge',\n  inheritAttrs: false,\n  props: badgeProps,\n  components: {\n    Badge\n  },\n  setup (props, { attrs }) {\n    const curProps = computed(() => {\n      return {\n        ...attrs,\n        ...props\n      }\n    })\n\n    const baseClass = computed(() => {\n      const { shadow } = unref(curProps)\n      return [\n        shadow ? basePrefixCls + 'BadgeCustom' : ''\n      ]\n    })\n\n    const varStyle = computed(() => {\n      const { color } = props;\n      const rgbaColor = color ? parseColorString(color) : ''\n      const shadowOutColor = rgbaColor ? toRgbaString(Object.assign(rgbaColor, { a: 0.18 })) : undefined\n      const shadowInColor = rgbaColor ? toRgbaString(Object.assign(rgbaColor, { a: 0.6 })) : undefined\n      if (!color) {\n        return {}\n      }\n      return {\n        '--shadowBgColor': color,\n        '--shadowOutColor': shadowOutColor,\n        '--shadowInColor': shadowInColor\n      }\n    })\n\n    return {\n      curProps,\n      baseClass,\n      varStyle\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scBadge from './component/ScBadge.vue'\nimport { badgeProps } from './component/type'\n\nexport const ScBadge = withInstall(scBadge)\n\nexport declare type BadgeProps = Partial<ExtractPropTypes<typeof badgeProps>>","<template>\n  <!-- 图片加载中 -->\n  <span \n    v-loading=\"loadingRef\"\n    style=\"display: inline-block;\"\n    :class=\"[clsPrefix]\"\n    :style=\"styleCompt\"\n  >\n    <img\n      v-bind=\"$attrs\"\n      @load=\"handleLoad\"\n    >\n  </span>  \n</template>\n\n<script lang='ts'>\nimport { defineComponent, ref, computed } from 'vue'\n\nimport LoadingDirective from '../../../directives/loading'\nimport { basePrefixCls } from '../../../constant'\n\nexport default defineComponent({\n  name: 'ScImage',\n  directives: {\n    loading: LoadingDirective\n  },\n  setup(props, {attrs}) {\n    const loadingRef = ref(true)\n    const handleLoad = () => {\n      loadingRef.value = false\n    }\n    const clsPrefix = basePrefixCls + 'Image'\n\n    const styleCompt = computed(() => {\n      return { \n        width: attrs.width + 'px',\n        height: attrs.height + 'px'\n      }\n    })\n    return {\n      loadingRef,\n      handleLoad,\n      clsPrefix,\n      styleCompt\n    }\n  }\n})\n</script>\n","import { withInstall } from \"../../utils/index\"\nimport scImage from './components/index.vue'\n\nexport const ScImage = withInstall(scImage)","import type { Dayjs } from 'dayjs';\nimport dayjs from 'dayjs';\nimport weekday from 'dayjs/plugin/weekday';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport type { GenerateConfig } from '.';\nimport { noteOnce } from '../../../utils/warning';\n\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\n\ndayjs.extend((_o, c) => {\n  // todo support Wo (ISO week)\n  const proto = c.prototype;\n  const oldFormat = proto.format;\n  proto.format = function f(formatStr: string) {\n    const str = (formatStr || '').replace('Wo', 'wo');\n    return oldFormat.bind(this)(str);\n  };\n});\n\ntype IlocaleMapObject = Record<string, string>;\nconst localeMap: IlocaleMapObject = {\n  en_GB: 'en-gb',\n  en_US: 'en',\n  zh_CN: 'zh-cn',\n  zh_TW: 'zh-tw',\n};\n\nconst parseLocale = (locale: string) => {\n  const mapLocale = localeMap[locale];\n  return mapLocale || locale.split('_')[0];\n};\n\nconst parseNoMatchNotice = () => {\n  /* istanbul ignore next */\n  noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\n\nconst generateConfig: GenerateConfig<Dayjs> = {\n  // get\n  getNow: () => dayjs(),\n  getFixedDate: string => dayjs(string, 'YYYY-MM-DD'),\n  getEndDate: date => date.endOf('month'),\n  getWeekDay: date => {\n    const clone = date.locale('en');\n    return clone.weekday() + clone.localeData().firstDayOfWeek();\n  },\n  getYear: date => date.year(),\n  getMonth: date => date.month(),\n  getDate: date => date.date(),\n  getHour: date => date.hour(),\n  getMinute: date => date.minute(),\n  getSecond: date => date.second(),\n\n  // set\n  addYear: (date, diff) => date.add(diff, 'year'),\n  addMonth: (date, diff) => date.add(diff, 'month'),\n  addDate: (date, diff) => date.add(diff, 'day'),\n  setYear: (date, year) => date.year(year),\n  setMonth: (date, month) => date.month(month),\n  setDate: (date, num) => date.date(num),\n  setHour: (date, hour) => date.hour(hour),\n  setMinute: (date, minute) => date.minute(minute),\n  setSecond: (date, second) => date.second(second),\n\n  // Compare\n  isAfter: (date1, date2) => date1.isAfter(date2),\n  isValidate: date => date.isValid(),\n\n  locale: {\n    getWeekFirstDay: locale => dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek(),\n    getWeekFirstDate: (locale, date) => date.locale(parseLocale(locale)).weekday(0),\n    getWeek: (locale, date) => date.locale(parseLocale(locale)).week(),\n    getShortWeekDays: locale => dayjs().locale(parseLocale(locale)).localeData().weekdaysMin(),\n    getShortMonths: locale => dayjs().locale(parseLocale(locale)).localeData().monthsShort(),\n    format: (locale, date, format) => date.locale(parseLocale(locale)).format(format),\n    parse: (locale, text, formats) => {\n      const localeStr = parseLocale(locale);\n      for (let i = 0; i < formats.length; i += 1) {\n        const format = formats[i];\n        const formatText = text;\n        if (format.includes('wo') || format.includes('Wo')) {\n          // parse Wo\n          const year = formatText.split('-')[0];\n          const weekStr = formatText.split('-')[1];\n          const firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n          for (let j = 0; j <= 52; j += 1) {\n            const nextWeek = firstWeek.add(j, 'week');\n            if (nextWeek.format('Wo') === weekStr) {\n              return nextWeek;\n            }\n          }\n          parseNoMatchNotice();\n          return null;\n        }\n        const date = dayjs(formatText, format, true).locale(localeStr);\n        if (date.isValid()) {\n          return date;\n        }\n      }\n\n      if (!text) {\n        parseNoMatchNotice();\n      }\n      return null;\n    },\n  },\n\n  toDate: (value, valueFormat) => {\n    if (Array.isArray(value)) {\n      return value.map((val: any) =>\n        typeof val === 'string' && val ? dayjs(val, valueFormat) : val || null,\n      ) as Dayjs[];\n    } else {\n      return (\n        typeof value === 'string' && value ? dayjs(value, valueFormat) : value || null\n      ) as Dayjs;\n    }\n  },\n  toString: (value, valueFormat) => {\n    if (Array.isArray(value)) {\n      return value.map((val: any) => (dayjs.isDayjs(val) ? val.format(valueFormat) : val));\n    } else {\n      return dayjs.isDayjs(value) ? value.format(valueFormat) : value;\n    }\n  },\n};\n\nexport default generateConfig;\n","import type { FunctionalComponent } from 'vue';\nimport type { ButtonProps } from 'ant-design-vue';\nimport {Button} from 'ant-design-vue';\n\nconst PickerButton: FunctionalComponent<ButtonProps> = (props: ButtonProps, { attrs, slots }) => {\n  return <Button size=\"small\" type=\"primary\" {...props} {...attrs} v-slots={slots}></Button>;\n};\nexport default PickerButton;\n","import type { TagProps } from 'ant-design-vue';\nimport { Tag } from 'ant-design-vue';\n\nexport default function PickerTag(props: TagProps, { slots, attrs }) {\n  return <Tag color=\"blue\" {...props} {...attrs} v-slots={slots} />;\n}\n","import type { HTMLAttributes } from 'vue';\nimport { useAttrs } from 'vue';\n\n// 仅用在函数式组件中，不用考虑响应式问题\nexport default function useMergeProps<T>(props: T) {\n  const attrs: HTMLAttributes = useAttrs();\n  return { ...props, ...attrs };\n}\n","import type { InjectionKey, Ref } from 'vue';\nimport { inject, provide } from 'vue';\nimport type { OnSelect, PanelMode } from './interface';\n\nexport type ContextOperationRefProps = {\n  onKeydown?: (e: KeyboardEvent) => boolean;\n  onClose?: () => void;\n};\n\nexport type PanelContextProps = {\n  operationRef?: Ref<ContextOperationRefProps | null>;\n  /** Only work with time panel */\n  hideHeader?: Ref<boolean>;\n  panelRef?: Ref<HTMLDivElement>;\n  hidePrevBtn?: Ref<boolean>;\n  hideNextBtn?: Ref<boolean>;\n  onDateMouseenter?: (date: any) => void;\n  onDateMouseleave?: (date: any) => void;\n  onSelect?: OnSelect<any>;\n  hideRanges?: Ref<boolean>;\n  open?: Ref<boolean>;\n  mode?: Ref<PanelMode>;\n\n  /** Only used for TimePicker and this is a deprecated prop */\n  defaultOpenValue?: Ref<any>;\n};\n\nconst PanelContextKey: InjectionKey<PanelContextProps> = Symbol('PanelContextProps');\n\nexport const useProvidePanel = (props: PanelContextProps) => {\n  provide(PanelContextKey, props);\n};\n\nexport const useInjectPanel = () => {\n  return inject(PanelContextKey, {});\n};\n\nexport default PanelContextKey;\n","import type { CSSProperties } from 'vue';\nimport type { VueNode } from '../../../utils/type';\nimport useMergeProps from '../hooks/useMergeProps';\nimport { useInjectPanel } from '../PanelContext';\n\nconst HIDDEN_STYLE: CSSProperties = {\n  visibility: 'hidden',\n};\n\nexport type HeaderProps = {\n  prefixCls: string;\n\n  // Icons\n  prevIcon?: VueNode;\n  nextIcon?: VueNode;\n  superPrevIcon?: VueNode;\n  superNextIcon?: VueNode;\n\n  /** Last one step */\n  onPrev?: () => void;\n  /** Next one step */\n  onNext?: () => void;\n  /** Last multiple steps */\n  onSuperPrev?: () => void;\n  /** Next multiple steps */\n  onSuperNext?: () => void;\n\n  children?: VueNode;\n};\n\nfunction Header(_props: HeaderProps, { slots }) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    prevIcon = '\\u2039',\n    nextIcon = '\\u203A',\n    superPrevIcon = '\\u00AB',\n    superNextIcon = '\\u00BB',\n    onSuperPrev,\n    onSuperNext,\n    onPrev,\n    onNext,\n  } = props;\n  const { hideNextBtn, hidePrevBtn } = useInjectPanel();\n\n  return (\n    <div class={prefixCls}>\n      {onSuperPrev && (\n        <button\n          type=\"button\"\n          onClick={onSuperPrev}\n          tabindex={-1}\n          class={`${prefixCls}-super-prev-btn`}\n          style={hidePrevBtn.value ? HIDDEN_STYLE : {}}\n        >\n          {superPrevIcon}\n        </button>\n      )}\n      {onPrev && (\n        <button\n          type=\"button\"\n          onClick={onPrev}\n          tabindex={-1}\n          class={`${prefixCls}-prev-btn`}\n          style={hidePrevBtn.value ? HIDDEN_STYLE : {}}\n        >\n          {prevIcon}\n        </button>\n      )}\n      <div class={`${prefixCls}-view`}>{slots.default?.()}</div>\n      {onNext && (\n        <button\n          type=\"button\"\n          onClick={onNext}\n          tabindex={-1}\n          class={`${prefixCls}-next-btn`}\n          style={hideNextBtn.value ? HIDDEN_STYLE : {}}\n        >\n          {nextIcon}\n        </button>\n      )}\n      {onSuperNext && (\n        <button\n          type=\"button\"\n          onClick={onSuperNext}\n          tabindex={-1}\n          class={`${prefixCls}-super-next-btn`}\n          style={hideNextBtn.value ? HIDDEN_STYLE : {}}\n        >\n          {superNextIcon}\n        </button>\n      )}\n    </div>\n  );\n}\n\nHeader.displayName = 'Header';\nHeader.inheritAttrs = false;\n\nexport default Header;\n","import Header from '../Header';\nimport type { GenerateConfig } from '../../generate';\nimport { DECADE_DISTANCE_COUNT } from '.';\nimport { useInjectPanel } from '../../PanelContext';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type YearHeaderProps<DateType> = {\n  prefixCls: string;\n  viewDate: DateType;\n  generateConfig: GenerateConfig<DateType>;\n\n  onPrevDecades: () => void;\n  onNextDecades: () => void;\n};\n\nfunction DecadeHeader<DateType>(_props: YearHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, generateConfig, viewDate, onPrevDecades, onNextDecades } = props;\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader) {\n    return null;\n  }\n\n  const headerPrefixCls = `${prefixCls}-header`;\n\n  const yearNumber = generateConfig.getYear(viewDate);\n  const startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n  const endYear = startYear + DECADE_DISTANCE_COUNT - 1;\n\n  return (\n    <Header\n      {...props}\n      prefixCls={headerPrefixCls}\n      onSuperPrev={onPrevDecades}\n      onSuperNext={onNextDecades}\n    >\n      {startYear}-{endYear}\n    </Header>\n  );\n}\n\nDecadeHeader.displayName = 'DecadeHeader';\nDecadeHeader.inheritAttrs = false;\n\nexport default DecadeHeader;\n","import type { NullableDateType } from '../interface';\nimport type { GenerateConfig } from '../generate';\n\nexport function setTime<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  date: DateType,\n  hour: number,\n  minute: number,\n  second: number,\n): DateType {\n  let nextTime = generateConfig.setHour(date, hour);\n  nextTime = generateConfig.setMinute(nextTime, minute);\n  nextTime = generateConfig.setSecond(nextTime, second);\n  return nextTime;\n}\n\nexport function setDateTime<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  date: DateType,\n  defaultDate: NullableDateType<DateType>,\n) {\n  if (!defaultDate) {\n    return date;\n  }\n\n  let newDate = date;\n  newDate = generateConfig.setHour(newDate, generateConfig.getHour(defaultDate));\n  newDate = generateConfig.setMinute(newDate, generateConfig.getMinute(defaultDate));\n  newDate = generateConfig.setSecond(newDate, generateConfig.getSecond(defaultDate));\n  return newDate;\n}\n\nexport function getLowerBoundTime(\n  hour: number,\n  minute: number,\n  second: number,\n  hourStep: number,\n  minuteStep: number,\n  secondStep: number,\n): [number, number, number] {\n  const lowerBoundHour = Math.floor(hour / hourStep) * hourStep;\n  if (lowerBoundHour < hour) {\n    return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];\n  }\n  const lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;\n  if (lowerBoundMinute < minute) {\n    return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];\n  }\n  const lowerBoundSecond = Math.floor(second / secondStep) * secondStep;\n  return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];\n}\n\nexport function getLastDay<DateType>(generateConfig: GenerateConfig<DateType>, date: DateType) {\n  const year = generateConfig.getYear(date);\n  const month = generateConfig.getMonth(date) + 1;\n  const endDate = generateConfig.getEndDate(generateConfig.getFixedDate(`${year}-${month}-01`));\n  const lastDay = generateConfig.getDate(endDate);\n  const monthShow = month < 10 ? `0${month}` : `${month}`;\n  return `${year}-${monthShow}-${lastDay}`;\n}\n","import { isArray, isString, isObject } from './is';\nfunction classNames(...args: any[]) {\n  const classes = [];\n  for (let i = 0; i < args.length; i++) {\n    const value = args[i];\n    if (!value) continue;\n    if (isString(value)) {\n      classes.push(value);\n    } else if (isArray(value)) {\n      for (let i = 0; i < value.length; i++) {\n        const inner = classNames(value[i]);\n        if (inner) {\n          classes.push(inner);\n        }\n      }\n    } else if (isObject(value)) {\n      for (const name in value) {\n        if (value[name]) {\n          classes.push(name);\n        }\n      }\n    }\n  }\n  return classes.join(' ');\n}\n\nexport default classNames;\n","import { useInjectPanel } from '../PanelContext';\nimport type { GenerateConfig } from '../generate';\nimport { getLastDay } from '../utils/timeUtil';\nimport type { PanelMode } from '../interface';\nimport { getCellDateDisabled } from '../utils/dateUtil';\nimport type { VueNode } from '../../../utils/type';\nimport classNames from '../../../utils/classNames';\nimport useMergeProps from '../hooks/useMergeProps';\nimport { isArray, isFunction } from '../../../utils';\n\nexport type PanelBodyProps<DateType> = {\n  prefixCls: string;\n  disabledDate?: (date: DateType) => boolean;\n  onSelect: (value: DateType) => void | Array<(value: DateType) => void>;\n  picker?: PanelMode;\n\n  // By panel\n  headerCells?: VueNode[];\n  rowNum: number;\n  colNum: number;\n  baseDate: DateType;\n  getCellClassName: (date: DateType) => Record<string, boolean | undefined>;\n  getCellDate: (date: DateType, offset: number) => DateType;\n  getCellText: (date: DateType) => VueNode;\n  getCellNode?: (date: DateType) => VueNode;\n  titleCell?: (date: DateType) => string;\n  generateConfig: GenerateConfig<DateType>;\n\n  // Used for week panel\n  prefixColumn?: (date: DateType) => VueNode;\n  rowClassName?: (date: DateType) => string;\n};\n\nfunction PanelBody<DateType>(_props: PanelBodyProps<DateType>) {\n  const {\n    prefixCls,\n    disabledDate,\n    onSelect,\n    picker,\n    rowNum,\n    colNum,\n    prefixColumn,\n    rowClassName,\n    baseDate,\n    getCellClassName,\n    getCellText,\n    getCellNode,\n    getCellDate,\n    generateConfig,\n    titleCell,\n    headerCells,\n  } = useMergeProps(_props);\n  const { onDateMouseenter, onDateMouseleave, mode } = useInjectPanel();\n\n  const cellPrefixCls = `${prefixCls}-cell`;\n\n  // =============================== Body ===============================\n  const rows: VueNode[] = [];\n\n  for (let i = 0; i < rowNum; i += 1) {\n    const row: VueNode[] = [];\n    let rowStartDate: DateType;\n\n    for (let j = 0; j < colNum; j += 1) {\n      const offset = i * colNum + j;\n      const currentDate = getCellDate(baseDate, offset);\n      const disabled = getCellDateDisabled({\n        cellDate: currentDate,\n        mode: mode.value,\n        disabledDate,\n        generateConfig,\n      });\n\n      if (j === 0) {\n        rowStartDate = currentDate;\n\n        if (prefixColumn) {\n          row.push(prefixColumn(rowStartDate));\n        }\n      }\n\n      const title = titleCell && titleCell(currentDate);\n\n      row.push(\n        <td\n          key={j}\n          title={title}\n          class={classNames(cellPrefixCls, {\n            [`${cellPrefixCls}-disabled`]: disabled,\n            [`${cellPrefixCls}-start`]:\n              getCellText(currentDate) === 1 || (picker === 'year' && Number(title) % 10 === 0),\n            [`${cellPrefixCls}-end`]:\n              title === getLastDay(generateConfig, currentDate) ||\n              (picker === 'year' && Number(title) % 10 === 9),\n            ...getCellClassName(currentDate),\n          })}\n          onClick={() => {\n            if (!disabled) {\n              if (isArray(onSelect)) {\n                onSelect?.[1](currentDate)\n              }\n              if (isFunction(onSelect)) {\n                onSelect(currentDate)\n              }\n            }\n          }}\n          onMouseenter={() => {\n            if (!disabled && onDateMouseenter) {\n              onDateMouseenter(currentDate);\n            }\n          }}\n          onMouseleave={() => {\n            if (!disabled && onDateMouseleave) {\n              onDateMouseleave(currentDate);\n            }\n          }}\n        >\n          {getCellNode ? (\n            getCellNode(currentDate)\n          ) : (\n            <div class={`${cellPrefixCls}-inner`}>{getCellText(currentDate)}</div>\n          )}\n        </td>,\n      );\n    }\n\n    rows.push(\n      <tr key={i} class={rowClassName && rowClassName(rowStartDate!)}>\n        {row}\n      </tr>,\n    );\n  }\n\n  return (\n    <div class={`${prefixCls}-body`}>\n      <table class={`${prefixCls}-content`}>\n        {headerCells && (\n          <thead>\n            <tr>{headerCells}</tr>\n          </thead>\n        )}\n        <tbody>{rows}</tbody>\n      </table>\n    </div>\n  );\n}\n\nPanelBody.displayName = 'PanelBody';\nPanelBody.inheritAttrs = false;\n\nexport default PanelBody;\n","import type { GenerateConfig } from '../../generate';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from '.';\nimport PanelBody from '../PanelBody';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport const DECADE_COL_COUNT = 3;\nconst DECADE_ROW_COUNT = 4;\n\nexport type YearBodyProps<DateType> = {\n  prefixCls: string;\n  generateConfig: GenerateConfig<DateType>;\n  viewDate: DateType;\n  disabledDate?: (date: DateType) => boolean;\n  onSelect: (value: DateType) => void;\n};\n\nfunction DecadeBody<DateType>(_props: YearBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n  const { prefixCls, viewDate, generateConfig } = props;\n\n  const cellPrefixCls = `${prefixCls}-cell`;\n\n  const yearNumber = generateConfig.getYear(viewDate);\n  const decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n\n  const startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n  const endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n\n  const baseDecadeYear = generateConfig.setYear(\n    viewDate,\n    startDecadeYear -\n      Math.ceil(\n        (DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2,\n      ),\n  );\n\n  const getCellClassName = (date: DateType) => {\n    const startDecadeNumber = generateConfig.getYear(date);\n    const endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n\n    return {\n      [`${cellPrefixCls}-in-view`]:\n        startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear,\n      [`${cellPrefixCls}-selected`]: startDecadeNumber === decadeYearNumber,\n    };\n  };\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={DECADE_ROW_COUNT}\n      colNum={DECADE_COL_COUNT}\n      baseDate={baseDecadeYear}\n      getCellText={date => {\n        const startDecadeNumber = generateConfig.getYear(date);\n        return `${startDecadeNumber}-${startDecadeNumber + DECADE_UNIT_DIFF_DES}`;\n      }}\n      getCellClassName={getCellClassName}\n      getCellDate={(date, offset) => generateConfig.addYear(date, offset * DECADE_UNIT_DIFF)}\n    />\n  );\n}\n\nDecadeBody.displayName = 'DecadeBody';\nDecadeBody.inheritAttrs = false;\n\nexport default DecadeBody;\n","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nconst KeyCode = {\n  /**\n   * MAC_ENTER\n   */\n  MAC_ENTER: 3,\n  /**\n   * BACKSPACE\n   */\n  BACKSPACE: 8,\n  /**\n   * TAB\n   */\n  TAB: 9,\n  /**\n   * NUMLOCK on FF/Safari Mac\n   */\n  NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac\n  /**\n   * ENTER\n   */\n  ENTER: 13,\n  /**\n   * SHIFT\n   */\n  SHIFT: 16,\n  /**\n   * CTRL\n   */\n  CTRL: 17,\n  /**\n   * ALT\n   */\n  ALT: 18,\n  /**\n   * PAUSE\n   */\n  PAUSE: 19,\n  /**\n   * CAPS_LOCK\n   */\n  CAPS_LOCK: 20,\n  /**\n   * ESC\n   */\n  ESC: 27,\n  /**\n   * SPACE\n   */\n  SPACE: 32,\n  /**\n   * PAGE_UP\n   */\n  PAGE_UP: 33, // also NUM_NORTH_EAST\n  /**\n   * PAGE_DOWN\n   */\n  PAGE_DOWN: 34, // also NUM_SOUTH_EAST\n  /**\n   * END\n   */\n  END: 35, // also NUM_SOUTH_WEST\n  /**\n   * HOME\n   */\n  HOME: 36, // also NUM_NORTH_WEST\n  /**\n   * LEFT\n   */\n  LEFT: 37, // also NUM_WEST\n  /**\n   * UP\n   */\n  UP: 38, // also NUM_NORTH\n  /**\n   * RIGHT\n   */\n  RIGHT: 39, // also NUM_EAST\n  /**\n   * DOWN\n   */\n  DOWN: 40, // also NUM_SOUTH\n  /**\n   * PRINT_SCREEN\n   */\n  PRINT_SCREEN: 44,\n  /**\n   * INSERT\n   */\n  INSERT: 45, // also NUM_INSERT\n  /**\n   * DELETE\n   */\n  DELETE: 46, // also NUM_DELETE\n  /**\n   * ZERO\n   */\n  ZERO: 48,\n  /**\n   * ONE\n   */\n  ONE: 49,\n  /**\n   * TWO\n   */\n  TWO: 50,\n  /**\n   * THREE\n   */\n  THREE: 51,\n  /**\n   * FOUR\n   */\n  FOUR: 52,\n  /**\n   * FIVE\n   */\n  FIVE: 53,\n  /**\n   * SIX\n   */\n  SIX: 54,\n  /**\n   * SEVEN\n   */\n  SEVEN: 55,\n  /**\n   * EIGHT\n   */\n  EIGHT: 56,\n  /**\n   * NINE\n   */\n  NINE: 57,\n  /**\n   * QUESTION_MARK\n   */\n  QUESTION_MARK: 63, // needs localization\n  /**\n   * A\n   */\n  A: 65,\n  /**\n   * B\n   */\n  B: 66,\n  /**\n   * C\n   */\n  C: 67,\n  /**\n   * D\n   */\n  D: 68,\n  /**\n   * E\n   */\n  E: 69,\n  /**\n   * F\n   */\n  F: 70,\n  /**\n   * G\n   */\n  G: 71,\n  /**\n   * H\n   */\n  H: 72,\n  /**\n   * I\n   */\n  I: 73,\n  /**\n   * J\n   */\n  J: 74,\n  /**\n   * K\n   */\n  K: 75,\n  /**\n   * L\n   */\n  L: 76,\n  /**\n   * M\n   */\n  M: 77,\n  /**\n   * N\n   */\n  N: 78,\n  /**\n   * O\n   */\n  O: 79,\n  /**\n   * P\n   */\n  P: 80,\n  /**\n   * Q\n   */\n  Q: 81,\n  /**\n   * R\n   */\n  R: 82,\n  /**\n   * S\n   */\n  S: 83,\n  /**\n   * T\n   */\n  T: 84,\n  /**\n   * U\n   */\n  U: 85,\n  /**\n   * V\n   */\n  V: 86,\n  /**\n   * W\n   */\n  W: 87,\n  /**\n   * X\n   */\n  X: 88,\n  /**\n   * Y\n   */\n  Y: 89,\n  /**\n   * Z\n   */\n  Z: 90,\n  /**\n   * META\n   */\n  META: 91, // WIN_KEY_LEFT\n  /**\n   * WIN_KEY_RIGHT\n   */\n  WIN_KEY_RIGHT: 92,\n  /**\n   * CONTEXT_MENU\n   */\n  CONTEXT_MENU: 93,\n  /**\n   * NUM_ZERO\n   */\n  NUM_ZERO: 96,\n  /**\n   * NUM_ONE\n   */\n  NUM_ONE: 97,\n  /**\n   * NUM_TWO\n   */\n  NUM_TWO: 98,\n  /**\n   * NUM_THREE\n   */\n  NUM_THREE: 99,\n  /**\n   * NUM_FOUR\n   */\n  NUM_FOUR: 100,\n  /**\n   * NUM_FIVE\n   */\n  NUM_FIVE: 101,\n  /**\n   * NUM_SIX\n   */\n  NUM_SIX: 102,\n  /**\n   * NUM_SEVEN\n   */\n  NUM_SEVEN: 103,\n  /**\n   * NUM_EIGHT\n   */\n  NUM_EIGHT: 104,\n  /**\n   * NUM_NINE\n   */\n  NUM_NINE: 105,\n  /**\n   * NUM_MULTIPLY\n   */\n  NUM_MULTIPLY: 106,\n  /**\n   * NUM_PLUS\n   */\n  NUM_PLUS: 107,\n  /**\n   * NUM_MINUS\n   */\n  NUM_MINUS: 109,\n  /**\n   * NUM_PERIOD\n   */\n  NUM_PERIOD: 110,\n  /**\n   * NUM_DIVISION\n   */\n  NUM_DIVISION: 111,\n  /**\n   * F1\n   */\n  F1: 112,\n  /**\n   * F2\n   */\n  F2: 113,\n  /**\n   * F3\n   */\n  F3: 114,\n  /**\n   * F4\n   */\n  F4: 115,\n  /**\n   * F5\n   */\n  F5: 116,\n  /**\n   * F6\n   */\n  F6: 117,\n  /**\n   * F7\n   */\n  F7: 118,\n  /**\n   * F8\n   */\n  F8: 119,\n  /**\n   * F9\n   */\n  F9: 120,\n  /**\n   * F10\n   */\n  F10: 121,\n  /**\n   * F11\n   */\n  F11: 122,\n  /**\n   * F12\n   */\n  F12: 123,\n  /**\n   * NUMLOCK\n   */\n  NUMLOCK: 144,\n  /**\n   * SEMICOLON\n   */\n  SEMICOLON: 186, // needs localization\n  /**\n   * DASH\n   */\n  DASH: 189, // needs localization\n  /**\n   * EQUALS\n   */\n  EQUALS: 187, // needs localization\n  /**\n   * COMMA\n   */\n  COMMA: 188, // needs localization\n  /**\n   * PERIOD\n   */\n  PERIOD: 190, // needs localization\n  /**\n   * SLASH\n   */\n  SLASH: 191, // needs localization\n  /**\n   * APOSTROPHE\n   */\n  APOSTROPHE: 192, // needs localization\n  /**\n   * SINGLE_QUOTE\n   */\n  SINGLE_QUOTE: 222, // needs localization\n  /**\n   * OPEN_SQUARE_BRACKET\n   */\n  OPEN_SQUARE_BRACKET: 219, // needs localization\n  /**\n   * BACKSLASH\n   */\n  BACKSLASH: 220, // needs localization\n  /**\n   * CLOSE_SQUARE_BRACKET\n   */\n  CLOSE_SQUARE_BRACKET: 221, // needs localization\n  /**\n   * WIN_KEY\n   */\n  WIN_KEY: 224,\n  /**\n   * MAC_FF_META\n   */\n  MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91\n  /**\n   * WIN_IME\n   */\n  WIN_IME: 229,\n\n  // ======================== Function ========================\n  /**\n   * whether text and modified key is entered at the same time.\n   */\n  isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e: KeyboardEvent) {\n    const { keyCode } = e;\n    if (\n      (e.altKey && !e.ctrlKey) ||\n      e.metaKey ||\n      // Function keys don't generate text\n      (keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12)\n    ) {\n      return false;\n    }\n\n    // The following keys are quite harmless, even in combination with\n    // CTRL, ALT or SHIFT.\n    switch (keyCode) {\n      case KeyCode.ALT:\n      case KeyCode.CAPS_LOCK:\n      case KeyCode.CONTEXT_MENU:\n      case KeyCode.CTRL:\n      case KeyCode.DOWN:\n      case KeyCode.END:\n      case KeyCode.ESC:\n      case KeyCode.HOME:\n      case KeyCode.INSERT:\n      case KeyCode.LEFT:\n      case KeyCode.MAC_FF_META:\n      case KeyCode.META:\n      case KeyCode.NUMLOCK:\n      case KeyCode.NUM_CENTER:\n      case KeyCode.PAGE_DOWN:\n      case KeyCode.PAGE_UP:\n      case KeyCode.PAUSE:\n      case KeyCode.PRINT_SCREEN:\n      case KeyCode.RIGHT:\n      case KeyCode.SHIFT:\n      case KeyCode.UP:\n      case KeyCode.WIN_KEY:\n      case KeyCode.WIN_KEY_RIGHT:\n        return false;\n      default:\n        return true;\n    }\n  },\n\n  /**\n   * whether character is entered.\n   */\n  isCharacterKey: function isCharacterKey(keyCode: number) {\n    if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n      return true;\n    }\n\n    if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n      return true;\n    }\n\n    if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n      return true;\n    }\n\n    // Safari sends zero key code for non-latin characters.\n    if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n      return true;\n    }\n\n    switch (keyCode) {\n      case KeyCode.SPACE:\n      case KeyCode.QUESTION_MARK:\n      case KeyCode.NUM_PLUS:\n      case KeyCode.NUM_MINUS:\n      case KeyCode.NUM_PERIOD:\n      case KeyCode.NUM_DIVISION:\n      case KeyCode.SEMICOLON:\n      case KeyCode.DASH:\n      case KeyCode.EQUALS:\n      case KeyCode.COMMA:\n      case KeyCode.PERIOD:\n      case KeyCode.SLASH:\n      case KeyCode.APOSTROPHE:\n      case KeyCode.SINGLE_QUOTE:\n      case KeyCode.OPEN_SQUARE_BRACKET:\n      case KeyCode.BACKSLASH:\n      case KeyCode.CLOSE_SQUARE_BRACKET:\n        return true;\n      default:\n        return false;\n    }\n  },\n};\n\nexport default KeyCode;\n","import isVisible from '../../../utils/dom/isVisible';\nimport KeyCode from '../../../utils/KeyCode';\nimport raf from '../../../utils/raf';\nimport type { GenerateConfig } from '../generate';\nimport type { CustomFormat, PanelMode, PickerMode } from '../interface';\n\nconst scrollIds = new Map<HTMLElement, number>();\n\n/** Trigger when element is visible in view */\nexport function waitElementReady(element: HTMLElement, callback: () => void): () => void {\n  let id: number;\n\n  function tryOrNextFrame() {\n    if (isVisible(element)) {\n      callback();\n    } else {\n      id = raf(() => {\n        tryOrNextFrame();\n      });\n    }\n  }\n\n  tryOrNextFrame();\n\n  return () => {\n    raf.cancel(id);\n  };\n}\n\n/* eslint-disable no-param-reassign */\nexport function scrollTo(element: HTMLElement, to: number, duration: number) {\n  if (scrollIds.get(element)) {\n    raf.cancel(scrollIds.get(element)!);\n  }\n\n  // jump to target if duration zero\n  if (duration <= 0) {\n    scrollIds.set(\n      element,\n      raf(() => {\n        element.scrollTop = to;\n      }),\n    );\n\n    return;\n  }\n  const difference = to - element.scrollTop;\n  const perTick = (difference / duration) * 10;\n\n  scrollIds.set(\n    element,\n    raf(() => {\n      element.scrollTop += perTick;\n      if (element.scrollTop !== to) {\n        scrollTo(element, to, duration - 10);\n      }\n    }),\n  );\n}\n/* eslint-enable */\n\nexport type KeyboardConfig = {\n  onLeftRight?: ((diff: number) => void) | null;\n  onCtrlLeftRight?: ((diff: number) => void) | null;\n  onUpDown?: ((diff: number) => void) | null;\n  onPageUpDown?: ((diff: number) => void) | null;\n  onEnter?: (() => void) | null;\n};\nexport function createKeydownHandler(\n  event: KeyboardEvent,\n  { onLeftRight, onCtrlLeftRight, onUpDown, onPageUpDown, onEnter }: KeyboardConfig,\n): boolean {\n  const { which, ctrlKey, metaKey } = event;\n\n  switch (which) {\n    case KeyCode.LEFT:\n      if (ctrlKey || metaKey) {\n        if (onCtrlLeftRight) {\n          onCtrlLeftRight(-1);\n          return true;\n        }\n      } else if (onLeftRight) {\n        onLeftRight(-1);\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n\n    case KeyCode.RIGHT:\n      if (ctrlKey || metaKey) {\n        if (onCtrlLeftRight) {\n          onCtrlLeftRight(1);\n          return true;\n        }\n      } else if (onLeftRight) {\n        onLeftRight(1);\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n\n    case KeyCode.UP:\n      if (onUpDown) {\n        onUpDown(-1);\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n\n    case KeyCode.DOWN:\n      if (onUpDown) {\n        onUpDown(1);\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n\n    case KeyCode.PAGE_UP:\n      if (onPageUpDown) {\n        onPageUpDown(-1);\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n\n    case KeyCode.PAGE_DOWN:\n      if (onPageUpDown) {\n        onPageUpDown(1);\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n\n    case KeyCode.ENTER:\n      if (onEnter) {\n        onEnter();\n        return true;\n      }\n      /* istanbul ignore next */\n      break;\n  }\n\n  return false;\n}\n\n// ===================== Format =====================\nexport function getDefaultFormat<DateType>(\n  format: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[] | undefined,\n  picker: PickerMode | undefined,\n  showTime: boolean | object | undefined,\n  use12Hours: boolean | undefined,\n) {\n  let mergedFormat = format;\n  if (!mergedFormat) {\n    switch (picker) {\n      case 'time':\n        mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\n        break;\n\n      case 'week':\n        mergedFormat = 'gggg-wo';\n        break;\n\n      case 'month':\n        mergedFormat = 'YYYY-MM';\n        break;\n\n      case 'quarter':\n        mergedFormat = 'YYYY-[Q]Q';\n        break;\n\n      case 'year':\n        mergedFormat = 'YYYY';\n        break;\n\n      default:\n        mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\n    }\n  }\n\n  return mergedFormat;\n}\n\nexport function getInputSize<DateType>(\n  picker: PickerMode | undefined,\n  format: string | CustomFormat<DateType>,\n  generateConfig: GenerateConfig<DateType>,\n) {\n  const defaultSize = picker === 'time' ? 8 : 10;\n  const length =\n    typeof format === 'function' ? format(generateConfig.getNow()).length : format.length;\n  return Math.max(defaultSize, length) + 2;\n}\n\n// ===================== Window =====================\ntype ClickEventHandler = (event: MouseEvent) => void;\nlet globalClickFunc: ClickEventHandler | null = null;\nconst clickCallbacks = new Set<ClickEventHandler>();\n\nexport function addGlobalMousedownEvent(callback: ClickEventHandler) {\n  if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {\n    globalClickFunc = (e: MouseEvent) => {\n      // Clone a new list to avoid repeat trigger events\n      [...clickCallbacks].forEach(queueFunc => {\n        queueFunc(e);\n      });\n    };\n    window.addEventListener('mousedown', globalClickFunc);\n  }\n\n  clickCallbacks.add(callback);\n\n  return () => {\n    clickCallbacks.delete(callback);\n    if (clickCallbacks.size === 0) {\n      window.removeEventListener('mousedown', globalClickFunc!);\n      globalClickFunc = null;\n    }\n  };\n}\n\nexport function getTargetFromEvent(e: Event) {\n  const target = e.target as HTMLElement;\n\n  // get target if in shadow dom\n  if (e.composed && target.shadowRoot) {\n    return (e.composedPath?.()[0] || target) as HTMLElement;\n  }\n\n  return target;\n}\n\n// ====================== Mode ======================\nconst getYearNextMode = (next: PanelMode): PanelMode => {\n  if (next === 'month' || next === 'date') {\n    return 'year';\n  }\n  return next;\n};\n\nconst getMonthNextMode = (next: PanelMode): PanelMode => {\n  if (next === 'date') {\n    return 'month';\n  }\n  return next;\n};\n\nconst getQuarterNextMode = (next: PanelMode): PanelMode => {\n  if (next === 'month' || next === 'date') {\n    return 'quarter';\n  }\n  return next;\n};\n\nconst getWeekNextMode = (next: PanelMode): PanelMode => {\n  if (next === 'date') {\n    return 'week';\n  }\n  return next;\n};\n\nexport const PickerModeMap: Record<PickerMode, ((next: PanelMode) => PanelMode) | null> = {\n  year: getYearNextMode,\n  month: getMonthNextMode,\n  quarter: getQuarterNextMode,\n  week: getWeekNextMode,\n  time: null,\n  date: null,\n};\n\nexport function elementsContains(\n  elements: (HTMLElement | undefined | null)[],\n  target: HTMLElement,\n) {\n  if (process.env.NODE_ENV === 'test') {\n    return false;\n  }\n  return elements.some(ele => ele && ele.contains(target));\n}\n","import DecadeHeader from './DecadeHeader';\nimport DecadeBody, { DECADE_COL_COUNT } from './DecadeBody';\nimport type { PanelSharedProps } from '../../interface';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type DecadePanelProps<DateType> = PanelSharedProps<DateType>;\n\nexport const DECADE_UNIT_DIFF = 10;\nexport const DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;\n\nfunction DecadePanel<DateType>(_props: DecadePanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    onViewDateChange,\n    generateConfig,\n    viewDate,\n    operationRef,\n    onSelect,\n    onPanelChange,\n  } = props;\n\n  const panelPrefixCls = `${prefixCls}-decade-panel`;\n\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: diff => {\n          onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');\n        },\n        onCtrlLeftRight: diff => {\n          onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');\n        },\n        onUpDown: diff => {\n          onSelect(\n            generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT),\n            'key',\n          );\n        },\n        onEnter: () => {\n          onPanelChange('year', viewDate);\n        },\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onDecadesChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n  const onInternalSelect = (date: DateType) => {\n    onSelect(date, 'mouse');\n    onPanelChange('year', date);\n  };\n\n  return (\n    <div class={panelPrefixCls}>\n      <DecadeHeader\n        {...props}\n        prefixCls={prefixCls}\n        onPrevDecades={() => {\n          onDecadesChange(-1);\n        }}\n        onNextDecades={() => {\n          onDecadesChange(1);\n        }}\n      />\n      <DecadeBody {...props} prefixCls={prefixCls} onSelect={onInternalSelect} />\n    </div>\n  );\n}\n\nDecadePanel.displayName = 'DecadePanel';\nDecadePanel.inheritAttrs = false;\n\nexport default DecadePanel;\n","import { DECADE_UNIT_DIFF } from '../panels/DecadePanel/index';\nimport type { PanelMode, NullableDateType, PickerMode, Locale, CustomFormat } from '../interface';\nimport type { GenerateConfig } from '../generate';\n\nexport const WEEK_DAY_COUNT = 7;\n\nexport function isNullEqual<T>(value1: T, value2: T): boolean | undefined {\n  if (!value1 && !value2) {\n    return true;\n  }\n  if (!value1 || !value2) {\n    return false;\n  }\n  return undefined;\n}\n\nexport function isSameDecade<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  decade1: NullableDateType<DateType>,\n  decade2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(decade1, decade2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n\n  const num1 = Math.floor(generateConfig.getYear(decade1!) / 10);\n  const num2 = Math.floor(generateConfig.getYear(decade2!) / 10);\n  return num1 === num2;\n}\n\nexport function isSameYear<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  year1: NullableDateType<DateType>,\n  year2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(year1, year2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n\n  return generateConfig.getYear(year1!) === generateConfig.getYear(year2!);\n}\n\nexport function getQuarter<DateType>(generateConfig: GenerateConfig<DateType>, date: DateType) {\n  const quota = Math.floor(generateConfig.getMonth(date) / 3);\n  return quota + 1;\n}\n\nexport function isSameQuarter<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  quarter1: NullableDateType<DateType>,\n  quarter2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(quarter1, quarter2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n\n  return (\n    isSameYear(generateConfig, quarter1, quarter2) &&\n    getQuarter(generateConfig, quarter1!) === getQuarter(generateConfig, quarter2!)\n  );\n}\n\nexport function isSameMonth<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  month1: NullableDateType<DateType>,\n  month2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(month1, month2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n  return (\n    isSameYear(generateConfig, month1, month2) &&\n    generateConfig.getMonth(month1!) === generateConfig.getMonth(month2!)\n  );\n}\n\nexport function isSameDate<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  date1: NullableDateType<DateType>,\n  date2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(date1, date2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n\n  return (\n    generateConfig.getYear(date1!) === generateConfig.getYear(date2!) &&\n    generateConfig.getMonth(date1!) === generateConfig.getMonth(date2!) &&\n    generateConfig.getDate(date1!) === generateConfig.getDate(date2!)\n  );\n}\n\nexport function isSameTime<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  time1: NullableDateType<DateType>,\n  time2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(time1, time2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n\n  return (\n    generateConfig.getHour(time1!) === generateConfig.getHour(time2!) &&\n    generateConfig.getMinute(time1!) === generateConfig.getMinute(time2!) &&\n    generateConfig.getSecond(time1!) === generateConfig.getSecond(time2!)\n  );\n}\n\nexport function isSameWeek<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  locale: string,\n  date1: NullableDateType<DateType>,\n  date2: NullableDateType<DateType>,\n) {\n  const equal = isNullEqual(date1, date2);\n  if (typeof equal === 'boolean') {\n    return equal;\n  }\n\n  return (\n    generateConfig.locale.getWeek(locale, date1!) === generateConfig.locale.getWeek(locale, date2!)\n  );\n}\n\nexport function isEqual<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  value1: NullableDateType<DateType>,\n  value2: NullableDateType<DateType>,\n) {\n  return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);\n}\n\n/** Between in date but not equal of date */\nexport function isInRange<DateType>(\n  generateConfig: GenerateConfig<DateType>,\n  startDate: NullableDateType<DateType>,\n  endDate: NullableDateType<DateType>,\n  current: NullableDateType<DateType>,\n) {\n  if (!startDate || !endDate || !current) {\n    return false;\n  }\n\n  return (\n    !isSameDate(generateConfig, startDate, current) &&\n    !isSameDate(generateConfig, endDate, current) &&\n    generateConfig.isAfter(current, startDate) &&\n    generateConfig.isAfter(endDate, current)\n  );\n}\n\nexport function getWeekStartDate<DateType>(\n  locale: string,\n  generateConfig: GenerateConfig<DateType>,\n  value: DateType,\n) {\n  const weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n  const monthStartDate = generateConfig.setDate(value, 1);\n  const startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n\n  let alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n\n  if (\n    generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) &&\n    generateConfig.getDate(alignStartDate) > 1\n  ) {\n    alignStartDate = generateConfig.addDate(alignStartDate, -7);\n  }\n\n  return alignStartDate;\n}\n\nexport function getClosingViewDate<DateType>(\n  viewDate: DateType,\n  picker: PickerMode,\n  generateConfig: GenerateConfig<DateType>,\n  offset = 1,\n): DateType {\n  switch (picker) {\n    case 'year':\n      return generateConfig.addYear(viewDate, offset * 10);\n    case 'quarter':\n    case 'month':\n      return generateConfig.addYear(viewDate, offset);\n    default:\n      return generateConfig.addMonth(viewDate, offset);\n  }\n}\n\nexport function formatValue<DateType>(\n  value: DateType,\n  {\n    generateConfig,\n    locale,\n    format,\n  }: {\n    generateConfig: GenerateConfig<DateType>;\n    locale: Locale;\n    format: string | CustomFormat<DateType>;\n  },\n) {\n  return typeof format === 'function'\n    ? format(value)\n    : generateConfig.locale.format(locale.locale, value, format);\n}\n\nexport function parseValue<DateType>(\n  value: string,\n  {\n    generateConfig,\n    locale,\n    formatList,\n  }: {\n    generateConfig: GenerateConfig<DateType>;\n    locale: Locale;\n    formatList: (string | CustomFormat<DateType>)[];\n  },\n) {\n  if (!value || typeof formatList[0] === 'function') {\n    return null;\n  }\n\n  return generateConfig.locale.parse(locale.locale, value, formatList as string[]);\n}\n\n// eslint-disable-next-line consistent-return\nexport function getCellDateDisabled<DateType>({\n  cellDate,\n  mode,\n  disabledDate,\n  generateConfig,\n}: {\n  cellDate: DateType;\n  mode: Omit<PanelMode, 'time'>;\n  generateConfig: GenerateConfig<DateType>;\n  disabledDate?: (date: DateType) => boolean;\n}): boolean {\n  if (!disabledDate) return false;\n  // Whether cellDate is disabled in range\n  const getDisabledFromRange = (\n    currentMode: 'date' | 'month' | 'year',\n    start: number,\n    end: number,\n  ) => {\n    let current = start;\n    while (current <= end) {\n      let date: DateType;\n      switch (currentMode) {\n        case 'date': {\n          date = generateConfig.setDate(cellDate, current);\n          if (!disabledDate(date)) {\n            return false;\n          }\n          break;\n        }\n        case 'month': {\n          date = generateConfig.setMonth(cellDate, current);\n          if (\n            !getCellDateDisabled({\n              cellDate: date,\n              mode: 'month',\n              generateConfig,\n              disabledDate,\n            })\n          ) {\n            return false;\n          }\n          break;\n        }\n        case 'year': {\n          date = generateConfig.setYear(cellDate, current);\n          if (\n            !getCellDateDisabled({\n              cellDate: date,\n              mode: 'year',\n              generateConfig,\n              disabledDate,\n            })\n          ) {\n            return false;\n          }\n          break;\n        }\n      }\n      current += 1;\n    }\n    return true;\n  };\n  switch (mode) {\n    case 'date':\n    case 'week': {\n      return disabledDate(cellDate);\n    }\n    case 'month': {\n      const startDate = 1;\n      const endDate = generateConfig.getDate(generateConfig.getEndDate(cellDate));\n      return getDisabledFromRange('date', startDate, endDate);\n    }\n    case 'quarter': {\n      const startMonth = Math.floor(generateConfig.getMonth(cellDate) / 3) * 3;\n      const endMonth = startMonth + 2;\n      return getDisabledFromRange('month', startMonth, endMonth);\n    }\n    case 'year': {\n      return getDisabledFromRange('month', 0, 11);\n    }\n    case 'decade': {\n      const year = generateConfig.getYear(cellDate);\n      const startYear = Math.floor(year / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n      const endYear = startYear + DECADE_UNIT_DIFF - 1;\n      return getDisabledFromRange('year', startYear, endYear);\n    }\n  }\n}\n","import Header from '../Header';\nimport type { Locale } from '../../interface';\nimport type { GenerateConfig } from '../../generate';\nimport { useInjectPanel } from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type TimeHeaderProps<DateType> = {\n  prefixCls: string;\n  value?: DateType | null;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n  format: string;\n};\n\nfunction TimeHeader<DateType>(_props: TimeHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader.value) {\n    return null;\n  }\n\n  const { prefixCls, generateConfig, locale, value, format } = props;\n  const headerPrefixCls = `${prefixCls}-header`;\n\n  return (\n    <Header prefixCls={headerPrefixCls}>\n      {value\n        ? formatValue(value, {\n            locale,\n            format,\n            generateConfig,\n          })\n        : '\\u00A0'}\n    </Header>\n  );\n}\n\nTimeHeader.displayName = 'TimeHeader';\nTimeHeader.inheritAttrs = false;\n\nexport default TimeHeader;\n","import { scrollTo, waitElementReady } from '../../utils/uiUtil';\nimport { useInjectPanel } from '../../PanelContext';\nimport classNames from '../../../../utils/classNames';\nimport { ref, onBeforeUnmount, watch, defineComponent, nextTick, onMounted } from 'vue';\n// import { debounce } from 'lodash';\nimport lodash from 'lodash'\n\nconst { debounce } = lodash\n\nexport type Unit = {\n  label: any;\n  value: number;\n  disabled: boolean;\n};\n\nexport type TimeUnitColumnProps = {\n  prefixCls?: string;\n  units?: Unit[];\n  value?: number;\n  active?: boolean;\n  hideDisabledOptions?: boolean;\n  onSelect?: (value: number) => void;\n};\n\nexport default defineComponent<TimeUnitColumnProps>({\n  name: 'TimeUnitColumn',\n  props: ['prefixCls', 'units', 'onSelect', 'value', 'active', 'hideDisabledOptions'] as any,\n  setup(props) {\n    const { open } = useInjectPanel();\n\n    const ulRef = ref<HTMLUListElement>(null);\n    const liRefs = ref<Map<number, HTMLElement | null>>(new Map());\n    const scrollRef = ref<Function>();\n    let notScroll = false;\n    let isDefault = true;\n\n    watch(\n      () => props.value,\n      () => {\n        const li = liRefs.value.get(props.value!);\n        notScroll = true\n        //@ts-ignore\n        if (li && open.value !== false) {\n          //@ts-ignore\n          scrollTo(ulRef.value!, li.offsetTop - 100, 120);\n        }\n        const timer = setTimeout(() => {\n          notScroll = false\n          clearTimeout(timer)\n        }, 300)\n      },\n    );\n    onBeforeUnmount(() => {\n      scrollRef.value?.();\n    });\n\n    const scrollUrl = debounce((event: any) => {\n      const { onSelect } = props;\n      const ulRefOffsetTop = event?.target?.scrollTop || 0\n      if (!notScroll && !isDefault) {\n        let keyValue = props.value\n        const oldKeyValue = props.value\n        // let lastOffsetTop = 0\n        let lastValue = 0\n        const ulHeight = ulRef.value.scrollHeight - 196 - 96 - 20\n        // console.log('ulRefOffsetTop > ulHeight: ', ulRefOffsetTop > ulHeight);\n        // if (ulRefOffsetTop > ulHeight) {\n        //   // @ts-ignore\n        //   const lastLiRef = (Array?.from(liRefs.value).pop())?.[1] as HTMLElement\n        //   // @ts-ignore\n        //   const lastValue = parseInt(lastLiRef?.textContent)\n        //   notScroll = true\n        //   const timer = setTimeout(() => {\n        //     //@ts-ignore\n        //     scrollTo(ulRef.value!, (lastValue || 1) * 30, 40)\n        //     //@ts-ignore\n        //     notScroll = false\n        //     clearTimeout(timer)\n        //   }, 300)\n        //   return false\n        // }\n        // // console.log('ulHeight: ', ulHeight);\n        liRefs.value && liRefs.value.forEach((liRef: any) => {\n          const liRefOffsetTop = liRef?.offsetTop - 100\n          if ((liRefOffsetTop - 15) < ulRefOffsetTop &&  ulRefOffsetTop < (liRefOffsetTop + 15)) {\n            keyValue = parseInt(liRef.textContent)\n          }\n          lastValue = parseInt(liRef.textContent)\n          // lastOffsetTop = liRef.offsetTop - 100\n        })\n        if (oldKeyValue === keyValue) {\n          if (ulRefOffsetTop > ulHeight) {\n            notScroll = true\n            // @ts-ignore\n            scrollTo(ulRef.value!, (lastValue || 1) * 30, 80)\n            notScroll = false\n            return false\n          }\n          if (oldKeyValue !== -1 && keyValue !== -1) {\n            // @ts-ignore\n            scrollTo(ulRef.value!, (keyValue || 1) * 30, 80)\n          }\n        } else {\n          // console.log('ulRefOffsetTop > ulHeight: ', ulRefOffsetTop > ulHeight);\n          if (ulRefOffsetTop > ulHeight) {\n            // @ts-ignore\n            onSelect?.(lastValue)\n            return false\n          }\n          // @ts-ignore\n          onSelect?.(keyValue)\n        }\n      }\n    }, 88)\n    \n    onMounted(() => {\n      // @ts-ignore\n      waitElementReady(ulRef.value, () => {\n        ulRef.value.addEventListener('scroll', scrollUrl, {\n        })\n      })\n    })\n    \n    //@ts-ignore\n    watch(\n      open,\n      () => {\n        scrollRef.value?.();\n        nextTick(() => {\n          // @ts-ignore\n          if (open.value) {\n            const li = liRefs.value.get(props.value!);\n            if (li) {\n              scrollRef.value = waitElementReady(li, () => {\n                // @ts-ignore\n                scrollTo(ulRef.value!, li.offsetTop - 100, 0)\n              });\n            }\n            setTimeout(() => {\n              isDefault = false\n            }, 500)\n          }\n        });\n      },\n      { immediate: true, flush: 'post' },\n    );\n    return () => {\n      const { prefixCls, units, onSelect, value, active, hideDisabledOptions } = props;\n      const cellPrefixCls = `${prefixCls}-cell`;\n      return (\n        <ul\n          class={classNames(`${prefixCls}-column`, {\n            [`${prefixCls}-column-active`]: active,\n          })}\n          ref={ulRef}\n          style={{ position: 'relative' }}\n        >\n          {units!.map(unit => {\n            if (hideDisabledOptions && unit.disabled) {\n              return null;\n            }\n\n            return (\n              <li\n                key={unit.value}\n                ref={element => {\n                  liRefs.value.set(unit.value, element as HTMLElement);\n                }}\n                class={classNames(cellPrefixCls, {\n                  [`${cellPrefixCls}-disabled`]: unit.disabled,\n                  [`${cellPrefixCls}-selected`]: value === unit.value,\n                })}\n                onClick={() => {\n                  if (unit.disabled) {\n                    return;\n                  }\n                  notScroll = true\n                  // @ts-ignore\n                  onSelect!(unit.value);\n                  const timer = setTimeout(() => {\n                    notScroll = false\n                    clearTimeout(timer)\n                  }, 300)\n                }}\n              >\n                <div class={`${cellPrefixCls}-inner`}>{unit.label}</div>\n              </li>\n            );\n          })}\n        </ul>\n      );\n    };\n  },\n});\n","export function leftPad(str: string | number, length: number, fill = '0') {\n  let current = String(str);\n  while (current.length < length) {\n    current = `${fill}${str}`;\n  }\n  return current;\n}\n\nexport const tuple = <T extends string[]>(...args: T) => args;\n\nexport function toArray<T>(val: T | T[]): T[] {\n  if (val === null || val === undefined) {\n    return [];\n  }\n\n  return Array.isArray(val) ? val : [val];\n}\n\nexport default function getDataOrAriaProps(props: any) {\n  const retProps: any = {};\n\n  Object.keys(props).forEach(key => {\n    if (\n      (key.substr(0, 5) === 'data-' ||\n        key.substr(0, 5) === 'aria-' ||\n        key === 'role' ||\n        key === 'name') &&\n      key.substr(0, 7) !== 'data-__'\n    ) {\n      retProps[key] = props[key];\n    }\n  });\n\n  return retProps;\n}\n\nexport function getValue<T>(values: null | undefined | (T | null)[], index: number): T | null {\n  return values ? values[index] : null;\n}\n\ntype UpdateValue<T> = (prev: T) => T;\n\nexport function updateValues<T, R = [T | null, T | null] | null>(\n  values: [T | null, T | null] | null,\n  value: T | UpdateValue<T>,\n  index: number,\n): R {\n  const newValues: [T | null, T | null] = [getValue(values, 0), getValue(values, 1)];\n\n  newValues[index] =\n    typeof value === 'function' ? (value as UpdateValue<T | null>)(newValues[index]) : value;\n\n  if (!newValues[0] && !newValues[1]) {\n    return null as unknown as R;\n  }\n\n  return newValues as unknown as R;\n}\n","import type { VueNode } from './type';\nexport const isFunction = val => typeof val === 'function';\nexport const controlDefaultValue = Symbol('controlDefaultValue') as any;\nexport const isArray = Array.isArray;\nexport const isString = val => typeof val === 'string';\nexport const isSymbol = val => typeof val === 'symbol';\nexport const isObject = val => val !== null && typeof val === 'object';\nconst onRE = /^on[^a-z]/;\nconst isOn = key => onRE.test(key);\n\nconst cacheStringFunction = fn => {\n  const cache = Object.create(null);\n  return str => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(str => {\n  return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\n});\n\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(str => {\n  return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n\nconst capitalize = cacheStringFunction(str => {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\n\n// change from vue sourcecode\nfunction resolvePropValue(options, props, key, value) {\n  const opt = options[key];\n  if (opt != null) {\n    const hasDefault = hasOwn(opt, 'default');\n    // default values\n    if (hasDefault && value === undefined) {\n      const defaultValue = opt.default;\n      value = opt.type !== Function && isFunction(defaultValue) ? defaultValue() : defaultValue;\n    }\n    // boolean casting\n    if (opt.type === Boolean) {\n      if (!hasOwn(props, key) && !hasDefault) {\n        value = false;\n      } else if (value === '') {\n        value = true;\n      }\n    }\n  }\n  return value;\n}\n\nexport function getDataAndAriaProps(props) {\n  return Object.keys(props).reduce((memo, key) => {\n    if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n      memo[key] = props[key];\n    }\n    return memo;\n  }, {});\n}\n\nexport function toPx(val) {\n  if (typeof val === 'number') return `${val}px`;\n  return val;\n}\n\nexport function renderHelper<T = Record<string, any>>(\n  v: VueNode | ((arg0: T) => VueNode),\n  props: T = {} as T,\n  defaultV?: any,\n) {\n  if (typeof v === 'function') {\n    return v(props);\n  }\n  return v ?? defaultV;\n}\n\nexport { isOn, cacheStringFunction, camelize, hyphenate, capitalize, resolvePropValue };\n","const isValid = (value: any): boolean => {\n  return value !== undefined && value !== null && value !== '';\n};\nexport default isValid;\n","// @ts-nocheck\n\n// import isPlainObject from 'lodash/isPlainObject';\nimport lodash from 'lodash'\nimport classNames from '../classNames';\nimport { isVNode, Fragment, Comment, Text, h } from 'vue';\nimport { camelize, hyphenate, isOn, resolvePropValue } from '../util';\nimport isValid from '../isValid';\nimport initDefaultProps from './initDefaultProps';\n// function getType(fn) {\n//   const match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n//   return match ? match[1] : '';\n// }\n\nconst { isPlainObject } = lodash\n\nconst splitAttrs = attrs => {\n  const allAttrs = Object.keys(attrs);\n  const eventAttrs = {};\n  const onEvents = {};\n  const extraAttrs = {};\n  for (let i = 0, l = allAttrs.length; i < l; i++) {\n    const key = allAttrs[i];\n    if (isOn(key)) {\n      eventAttrs[key[2].toLowerCase() + key.slice(3)] = attrs[key];\n      onEvents[key] = attrs[key];\n    } else {\n      extraAttrs[key] = attrs[key];\n    }\n  }\n  return { onEvents, events: eventAttrs, extraAttrs };\n};\nconst parseStyleText = (cssText = '', camel) => {\n  const res = {};\n  const listDelimiter = /;(?![^(]*\\))/g;\n  const propertyDelimiter = /:(.+)/;\n  if (typeof cssText === 'object') return cssText;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      const tmp = item.split(propertyDelimiter);\n      if (tmp.length > 1) {\n        const k = camel ? camelize(tmp[0].trim()) : tmp[0].trim();\n        res[k] = tmp[1].trim();\n      }\n    }\n  });\n  return res;\n};\n\nconst hasProp = (instance, prop) => {\n  return instance[prop] !== undefined;\n};\n// 重构后直接使用 hasProp 替换\nconst slotHasProp = (slot, prop) => {\n  return hasProp(slot, prop);\n};\n\nconst getScopedSlots = ele => {\n  return (ele.data && ele.data.scopedSlots) || {};\n};\n\nconst getSlots = ele => {\n  let componentOptions = ele.componentOptions || {};\n  if (ele.$vnode) {\n    componentOptions = ele.$vnode.componentOptions || {};\n  }\n  const children = ele.children || componentOptions.children || [];\n  const slots = {};\n  children.forEach(child => {\n    if (!isEmptyElement(child)) {\n      const name = (child.data && child.data.slot) || 'default';\n      slots[name] = slots[name] || [];\n      slots[name].push(child);\n    }\n  });\n  return { ...slots, ...getScopedSlots(ele) };\n};\n\nconst flattenChildren = (children = [], filterEmpty = true) => {\n  const temp = Array.isArray(children) ? children : [children];\n  const res = [];\n  temp.forEach(child => {\n    if (Array.isArray(child)) {\n      res.push(...flattenChildren(child, filterEmpty));\n    } else if (child && child.type === Fragment) {\n      res.push(...flattenChildren(child.children, filterEmpty));\n    } else if (child && isVNode(child)) {\n      if (filterEmpty && !isEmptyElement(child)) {\n        res.push(child);\n      } else if (!filterEmpty) {\n        res.push(child);\n      }\n    } else if (isValid(child)) {\n      res.push(child);\n    }\n  });\n  return res;\n};\n\nconst getSlot = (self, name = 'default', options = {}) => {\n  if (isVNode(self)) {\n    if (self.type === Fragment) {\n      return name === 'default' ? flattenChildren(self.children) : [];\n    } else if (self.children && self.children[name]) {\n      return flattenChildren(self.children[name](options));\n    } else {\n      return [];\n    }\n  } else {\n    let res = self.$slots[name] && self.$slots[name](options);\n    return flattenChildren(res);\n  }\n};\n\nconst getAllChildren = ele => {\n  let componentOptions = ele.componentOptions || {};\n  if (ele.$vnode) {\n    componentOptions = ele.$vnode.componentOptions || {};\n  }\n  return ele.children || componentOptions.children || [];\n};\nconst getSlotOptions = () => {\n  throw Error('使用 .type 直接取值');\n};\nconst findDOMNode = instance => {\n  let node = instance?.vnode?.el || (instance && (instance.$el || instance));\n  while (node && !node.tagName) {\n    node = node.nextSibling;\n  }\n  return node;\n};\nconst getOptionProps = instance => {\n  const res = {};\n  if (instance.$ && instance.$.vnode) {\n    const props = instance.$.vnode.props || {};\n    Object.keys(instance.$props).forEach(k => {\n      const v = instance.$props[k];\n      const hyphenateKey = hyphenate(k);\n      if (v !== undefined || hyphenateKey in props) {\n        res[k] = v; // 直接取 $props[k]\n      }\n    });\n  } else if (isVNode(instance) && typeof instance.type === 'object') {\n    const originProps = instance.props || {};\n    const props = {};\n    Object.keys(originProps).forEach(key => {\n      props[camelize(key)] = originProps[key];\n    });\n    const options = instance.type.props || {};\n    Object.keys(options).forEach(k => {\n      const v = resolvePropValue(options, props, k, props[k]);\n      if (v !== undefined || k in props) {\n        res[k] = v;\n      }\n    });\n  }\n  return res;\n};\nconst getComponent = (instance, prop = 'default', options = instance, execute = true) => {\n  let com = undefined;\n  if (instance.$) {\n    const temp = instance[prop];\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(options) : temp;\n    } else {\n      com = instance.$slots[prop];\n      com = execute && com ? com(options) : com;\n    }\n  } else if (isVNode(instance)) {\n    const temp = instance.props && instance.props[prop];\n    if (temp !== undefined && instance.props !== null) {\n      return typeof temp === 'function' && execute ? temp(options) : temp;\n    } else if (instance.type === Fragment) {\n      com = instance.children;\n    } else if (instance.children && instance.children[prop]) {\n      com = instance.children[prop];\n      com = execute && com ? com(options) : com;\n    }\n  }\n  if (Array.isArray(com)) {\n    com = flattenChildren(com);\n    com = com.length === 1 ? com[0] : com;\n    com = com.length === 0 ? undefined : com;\n  }\n  return com;\n};\nconst getComponentFromProp = (instance, prop, options = instance, execute = true) => {\n  if (instance.$createElement) {\n    // const h = instance.$createElement;\n    const temp = instance[prop];\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(h, options) : temp;\n    }\n    return (\n      (instance.$scopedSlots[prop] && execute && instance.$scopedSlots[prop](options)) ||\n      instance.$scopedSlots[prop] ||\n      instance.$slots[prop] ||\n      undefined\n    );\n  } else {\n    // const h = instance.context.$createElement;\n    const temp = getPropsData(instance)[prop];\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(h, options) : temp;\n    }\n    const slotScope = getScopedSlots(instance)[prop];\n    if (slotScope !== undefined) {\n      return typeof slotScope === 'function' && execute ? slotScope(h, options) : slotScope;\n    }\n    const slotsProp = [];\n    const componentOptions = instance.componentOptions || {};\n    (componentOptions.children || []).forEach(child => {\n      if (child.data && child.data.slot === prop) {\n        if (child.data.attrs) {\n          delete child.data.attrs.slot;\n        }\n        if (child.tag === 'template') {\n          slotsProp.push(child.children);\n        } else {\n          slotsProp.push(child);\n        }\n      }\n    });\n    return slotsProp.length ? slotsProp : undefined;\n  }\n};\n\nconst getAllProps = ele => {\n  let props = getOptionProps(ele);\n  if (ele.$) {\n    props = { ...props, ...this.$attrs };\n  } else {\n    props = { ...ele.props, ...props };\n  }\n  return props;\n};\n\nconst getPropsData = ins => {\n  const vnode = ins.$ ? ins.$ : ins;\n  const res = {};\n  const originProps = vnode.props || {};\n  const props = {};\n  Object.keys(originProps).forEach(key => {\n    props[camelize(key)] = originProps[key];\n  });\n  const options = isPlainObject(vnode.type) ? vnode.type.props : {};\n  options &&\n    Object.keys(options).forEach(k => {\n      const v = resolvePropValue(options, props, k, props[k]);\n      if (k in props) {\n        // 仅包含 props，不包含默认值\n        res[k] = v;\n      }\n    });\n  return { ...props, ...res }; // 合并事件、未声明属性等\n};\nconst getValueByProp = (ele, prop) => {\n  return getPropsData(ele)[prop];\n};\n\nconst getAttrs = ele => {\n  let data = ele.data;\n  if (ele.$vnode) {\n    data = ele.$vnode.data;\n  }\n  return data ? data.attrs || {} : {};\n};\n\nconst getKey = ele => {\n  let key = ele.key;\n  return key;\n};\n\nexport function getEvents(ele = {}, on = true) {\n  let props = {};\n  if (ele.$) {\n    props = { ...props, ...ele.$attrs };\n  } else {\n    props = { ...props, ...ele.props };\n  }\n  return splitAttrs(props)[on ? 'onEvents' : 'events'];\n}\n\nexport function getEvent(child, event) {\n  return child.props && child.props[event];\n}\n\n// 获取 xxx.native 或者 原生标签 事件\nexport function getDataEvents(child) {\n  let events = {};\n  if (child.data && child.data.on) {\n    events = child.data.on;\n  }\n  return { ...events };\n}\n\n// use getListeners instead this.$listeners\n// https://github.com/vueComponent/ant-design-vue/issues/1705\nexport function getListeners(context) {\n  return (context.$vnode ? context.$vnode.componentOptions.listeners : context.$listeners) || {};\n}\nexport function getClass(ele) {\n  const props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n  let tempCls = props.class || {};\n  let cls = {};\n  if (typeof tempCls === 'string') {\n    tempCls.split(' ').forEach(c => {\n      cls[c.trim()] = true;\n    });\n  } else if (Array.isArray(tempCls)) {\n    classNames(tempCls)\n      .split(' ')\n      .forEach(c => {\n        cls[c.trim()] = true;\n      });\n  } else {\n    cls = { ...cls, ...tempCls };\n  }\n  return cls;\n}\nexport function getStyle(ele, camel) {\n  const props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n  let style = props.style || {};\n  if (typeof style === 'string') {\n    style = parseStyleText(style, camel);\n  } else if (camel && style) {\n    // 驼峰化\n    const res = {};\n    Object.keys(style).forEach(k => (res[camelize(k)] = style[k]));\n    return res;\n  }\n  return style;\n}\n\nexport function getComponentName(opts) {\n  return opts && (opts.Ctor.options.name || opts.tag);\n}\n\nexport function isFragment(c) {\n  return c.length === 1 && c[0].type === Fragment;\n}\n\nexport function isEmptyContent(c) {\n  return c === undefined || c === null || c === '' || (Array.isArray(c) && c.length === 0);\n}\n\nexport function isEmptyElement(c) {\n  return (\n    c &&\n    (c.type === Comment ||\n      (c.type === Fragment && c.children.length === 0) ||\n      (c.type === Text && c.children.trim() === ''))\n  );\n}\n\nexport function isEmptySlot(c) {\n  return !c || c().every(isEmptyElement);\n}\n\nexport function isStringElement(c) {\n  return c && c.type === Text;\n}\n\nexport function filterEmpty(children = []) {\n  const res = [];\n  children.forEach(child => {\n    if (Array.isArray(child)) {\n      res.push(...child);\n    } else if (child.type === Fragment) {\n      res.push(...child.children);\n    } else {\n      res.push(child);\n    }\n  });\n  return res.filter(c => !isEmptyElement(c));\n}\n\nexport function mergeProps() {\n  const args = [].slice.call(arguments, 0);\n  const props = {};\n  args.forEach((p = {}) => {\n    for (const [k, v] of Object.entries(p)) {\n      props[k] = props[k] || {};\n      if (isPlainObject(v)) {\n        Object.assign(props[k], v);\n      } else {\n        props[k] = v;\n      }\n    }\n  });\n  return props;\n}\n\nfunction isValidElement(element) {\n  if (Array.isArray(element) && element.length === 1) {\n    element = element[0];\n  }\n  return element && element.__v_isVNode && typeof element.type !== 'symbol'; // remove text node\n}\n\nfunction getPropsSlot(slots, props, prop = 'default') {\n  return props[prop] ?? slots[prop]?.();\n}\n\nexport const getTextFromElement = ele => {\n  if (isValidElement(ele) && isStringElement(ele[0])) {\n    return ele[0].children;\n  }\n  return ele;\n};\nexport {\n  splitAttrs,\n  hasProp,\n  getOptionProps,\n  getComponent,\n  getComponentFromProp,\n  getSlotOptions,\n  slotHasProp,\n  getPropsData,\n  getKey,\n  getAttrs,\n  getValueByProp,\n  parseStyleText,\n  initDefaultProps,\n  isValidElement,\n  camelize,\n  getSlots,\n  getSlot,\n  getAllProps,\n  getAllChildren,\n  findDOMNode,\n  flattenChildren,\n  getPropsSlot,\n};\nexport default hasProp;\n","import { filterEmpty } from './props-util/index';\nimport type { VNode, VNodeProps } from 'vue';\nimport { cloneVNode } from 'vue';\nimport warning from './warning';\nimport type { RefObject } from './createRef';\n\nexport function cloneElement<T, U>(\n  vnode: VNode<T, U> | VNode<T, U>[],\n  nodeProps: Record<string, any> &\n    Omit<VNodeProps, 'ref'> & { ref?: VNodeProps['ref'] | RefObject } = {},\n  override = true,\n  mergeRef = false,\n): VNode<T, U> {\n  let ele = vnode;\n  if (Array.isArray(vnode)) {\n    ele = filterEmpty(vnode)[0];\n  }\n  if (!ele) {\n    return null;\n  }\n  const node = cloneVNode(ele as VNode<T, U>, nodeProps as any, mergeRef);\n\n  // cloneVNode内部是合并属性，这里改成覆盖属性\n  node.props = (override ? { ...node.props, ...nodeProps } : node.props) as any;\n  warning(typeof node.props.class !== 'object', 'class must be string');\n  return node;\n}\n\nexport function cloneVNodes(vnodes, nodeProps = {}, override = true) {\n  return vnodes.map(vnode => cloneElement(vnode, nodeProps, override));\n}\n","import type { GenerateConfig } from '../../generate';\nimport type { Locale, OnSelect } from '../../interface';\nimport type { Unit } from './TimeUnitColumn';\nimport TimeUnitColumn from './TimeUnitColumn';\nimport { leftPad } from '../../utils/miscUtil';\nimport type { SharedTimeProps } from '.';\nimport { setTime as utilSetTime } from '../../utils/timeUtil';\nimport { cloneElement } from '../../../../utils/vnode';\nimport type { VueNode } from '../../../../utils/type';\nimport type { Ref, VNode } from 'vue';\nimport { onBeforeUpdate, ref, watchEffect, computed, defineComponent } from 'vue';\n\nfunction generateUnits(\n  start: number,\n  end: number,\n  step: number,\n  disabledUnits: number[] | undefined,\n) {\n  const units: Unit[] = [];\n  for (let i = start; i <= end; i += step) {\n    units.push({\n      label: leftPad(i, 2),\n      value: i,\n      disabled: (disabledUnits || []).includes(i),\n    });\n  }\n  return units;\n}\n\nexport type BodyOperationRef = {\n  onUpDown: (diff: number) => void;\n};\n\nexport type TimeBodyProps<DateType> = {\n  prefixCls: string;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n  value?: DateType | null;\n  onSelect: OnSelect<DateType>;\n  activeColumnIndex: number;\n  operationRef: Ref<BodyOperationRef | undefined>;\n} & SharedTimeProps<DateType>;\n\nconst TimeBody = defineComponent({\n  name: 'TimeBody',\n  inheritAttrs: false,\n  props: [\n    'generateConfig',\n    'prefixCls',\n    'operationRef',\n    'activeColumnIndex',\n    'value',\n    'showHour',\n    'showMinute',\n    'showSecond',\n    'use12Hours',\n    'hourStep',\n    'minuteStep',\n    'secondStep',\n    'disabledHours',\n    'disabledMinutes',\n    'disabledSeconds',\n    'disabledTime',\n    'hideDisabledOptions',\n    'onSelect',\n  ],\n  setup(props) {\n    const originHour = computed(() =>\n      props.value ? props.generateConfig.getHour(props.value) : -1,\n    );\n    const isPM = computed(() => {\n      if (props.use12Hours) {\n        return originHour.value >= 12; // -1 means should display AM\n      } else {\n        return false;\n      }\n    });\n    const hour = computed(() => {\n      // Should additional logic to handle 12 hours\n      if (props.use12Hours) {\n        return originHour.value % 12;\n      } else {\n        return originHour.value;\n      }\n    });\n    const minute = computed(() => (props.value ? props.generateConfig.getMinute(props.value) : -1));\n    const second = computed(() => (props.value ? props.generateConfig.getSecond(props.value) : -1));\n\n    const now = ref(props.generateConfig.getNow());\n    const mergedDisabledHours = ref();\n    const mergedDisabledMinutes = ref();\n    const mergedDisabledSeconds = ref();\n    onBeforeUpdate(() => {\n      now.value = props.generateConfig.getNow();\n    });\n    watchEffect(() => {\n      if (props.disabledTime) {\n        const disabledConfig = props.disabledTime(now);\n        [mergedDisabledHours.value, mergedDisabledMinutes.value, mergedDisabledSeconds.value] = [\n          disabledConfig.disabledHours,\n          disabledConfig.disabledMinutes,\n          disabledConfig.disabledSeconds,\n        ];\n      } else {\n        [mergedDisabledHours.value, mergedDisabledMinutes.value, mergedDisabledSeconds.value] = [\n          props.disabledHours,\n          props.disabledMinutes,\n          props.disabledSeconds,\n        ];\n      }\n    });\n    const setTime = (\n      isNewPM: boolean | undefined,\n      newHour: number,\n      newMinute: number,\n      newSecond: number,\n    ) => {\n      let newDate = props.value || props.generateConfig.getNow();\n\n      const mergedHour = Math.max(0, newHour);\n      const mergedMinute = Math.max(0, newMinute);\n      const mergedSecond = Math.max(0, newSecond);\n\n      newDate = utilSetTime(\n        props.generateConfig,\n        newDate,\n        !props.use12Hours || !isNewPM ? mergedHour : mergedHour + 12,\n        mergedMinute,\n        mergedSecond,\n      );\n\n      return newDate;\n    };\n\n    // ========================= Unit =========================\n    const rawHours = computed(() =>\n      generateUnits(\n        0,\n        23,\n        props.hourStep ?? 1,\n        mergedDisabledHours.value && mergedDisabledHours.value(),\n      ),\n    );\n\n    // const memorizedRawHours = useMemo(() => rawHours, rawHours, shouldUnitsUpdate);\n\n    const AMPMDisabled = computed(() => {\n      if (!props.use12Hours) {\n        return [false, false];\n      }\n      const AMPMDisabled = [true, true];\n      rawHours.value.forEach(({ disabled, value: hourValue }) => {\n        if (disabled) return;\n        if (hourValue >= 12) {\n          AMPMDisabled[1] = false;\n        } else {\n          AMPMDisabled[0] = false;\n        }\n      });\n      return AMPMDisabled;\n    });\n\n    const hours = computed(() => {\n      if (!props.use12Hours) return rawHours.value;\n      return rawHours.value\n        .filter(isPM.value ? hourMeta => hourMeta.value >= 12 : hourMeta => hourMeta.value < 12)\n        .map(hourMeta => {\n          const hourValue = hourMeta.value % 12;\n          const hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n          return {\n            ...hourMeta,\n            label: hourLabel,\n            value: hourValue,\n          };\n        });\n    });\n\n    const minutes = computed(() =>\n      generateUnits(\n        0,\n        59,\n        props.minuteStep ?? 1,\n        mergedDisabledMinutes.value && mergedDisabledMinutes.value(originHour.value),\n      ),\n    );\n\n    const seconds = computed(() =>\n      generateUnits(\n        0,\n        59,\n        props.secondStep ?? 1,\n        mergedDisabledSeconds.value && mergedDisabledSeconds.value(originHour.value, minute),\n      ),\n    );\n\n    return () => {\n      const {\n        prefixCls,\n        operationRef,\n        activeColumnIndex,\n        showHour,\n        showMinute,\n        showSecond,\n        use12Hours,\n        hideDisabledOptions = true,\n        onSelect,\n      } = props;\n\n      const columns: {\n        node: VueNode;\n        value: number;\n        units: Unit[];\n        onSelect: (diff: number) => void;\n      }[] = [];\n      const contentPrefixCls = `${prefixCls}-content`;\n      const maskPrefixCls = `${prefixCls}-time-mask`;\n      const columnPrefixCls = `${prefixCls}-time-panel`;\n\n      // ====================== Operations ======================\n      operationRef.value = {\n        onUpDown: (diff: number) => {\n          const column = columns[activeColumnIndex];\n          if (column) {\n            const valueIndex = column.units.findIndex(unit => unit.value === column.value);\n\n            const unitLen = column.units.length;\n            for (let i = 1; i < unitLen; i += 1) {\n              const nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n\n              if (nextUnit.disabled !== true) {\n                column.onSelect(nextUnit.value);\n                break;\n              }\n            }\n          }\n        },\n      };\n\n      // ======================== Render ========================\n      function addColumnNode(\n        condition: boolean | undefined,\n        node: VueNode,\n        columnValue: number,\n        units: Unit[],\n        onColumnSelect: (diff: number) => void,\n      ) {\n        if (condition !== false) {\n          columns.push({\n            node: cloneElement(node as unknown as VNode, {\n              prefixCls: columnPrefixCls,\n              value: columnValue,\n              active: activeColumnIndex === columns.length,\n              onSelect: onColumnSelect,\n              units,\n              hideDisabledOptions,\n            }),\n            onSelect: onColumnSelect,\n            value: columnValue,\n            units,\n          });\n        }\n      }\n\n      // Hour\n      addColumnNode(showHour, <TimeUnitColumn key=\"hour\" />, hour.value, hours.value, num => {\n        onSelect(setTime(isPM.value, num, minute.value, second.value), 'mouse');\n      });\n\n      // Minute\n      addColumnNode(\n        showMinute,\n        <TimeUnitColumn key=\"minute\" />,\n        minute.value,\n        minutes.value,\n        num => {\n          onSelect(setTime(isPM.value, hour.value, num, second.value), 'mouse');\n        },\n      );\n\n      // Second\n      addColumnNode(\n        showSecond,\n        <TimeUnitColumn key=\"second\" />,\n        second.value,\n        seconds.value,\n        num => {\n          onSelect(setTime(isPM.value, hour.value, minute.value, num), 'mouse');\n        },\n      );\n\n      // 12 Hours\n      let PMIndex = -1;\n      if (typeof isPM.value === 'boolean') {\n        PMIndex = isPM.value ? 1 : 0;\n      }\n\n      addColumnNode(\n        use12Hours === true,\n        <TimeUnitColumn key=\"12hours\" />,\n        PMIndex,\n        [\n          { label: 'AM', value: 0, disabled: AMPMDisabled.value[0] },\n          { label: 'PM', value: 1, disabled: AMPMDisabled.value[1] },\n        ],\n        num => {\n          onSelect(setTime(!!num, hour.value, minute.value, second.value), 'mouse');\n        },\n      );\n\n      return <div class={contentPrefixCls}>\n        {columns.map(({ node }) => node)}\n        <div class={maskPrefixCls}>\n          {columns.map(() => <div class={maskPrefixCls+'-item'}></div>)}\n        </div>\n      </div>;\n    };\n  },\n});\n\nexport default TimeBody;\n","import TimeHeader from './TimeHeader';\nimport type { BodyOperationRef } from './TimeBody';\nimport TimeBody from './TimeBody';\nimport type { PanelSharedProps, DisabledTimes } from '../../interface';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport classNames from '../../../../utils/classNames';\nimport { ref } from 'vue';\nimport useMergeProps from '../../hooks/useMergeProps';\n// import type { RangeType } from '../../RangePicker';\n\nexport type SharedTimeProps<DateType> = {\n  format?: string;\n  showNow?: boolean;\n  showHour?: boolean;\n  showMinute?: boolean;\n  showSecond?: boolean;\n  use12Hours?: boolean;\n  hourStep?: number;\n  minuteStep?: number;\n  secondStep?: number;\n  hideDisabledOptions?: boolean;\n  defaultValue?: DateType;\n\n  /** @deprecated Please use `disabledTime` instead. */\n  disabledHours?: DisabledTimes['disabledHours'];\n  /** @deprecated Please use `disabledTime` instead. */\n  disabledMinutes?: DisabledTimes['disabledMinutes'];\n  /** @deprecated Please use `disabledTime` instead. */\n  disabledSeconds?: DisabledTimes['disabledSeconds'];\n\n  disabledTime?: (date: DateType) => DisabledTimes;\n};\n\nexport type TimePanelProps<DateType> = {\n  format?: string;\n  active?: boolean;\n} & PanelSharedProps<DateType> &\n  SharedTimeProps<DateType>;\n\nconst countBoolean = (boolList: (boolean | undefined)[]) =>\n  boolList.filter(bool => bool !== false).length;\n\nfunction TimePanel<DateType>(_props: TimePanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    generateConfig,\n    format = 'HH:mm:ss',\n    prefixCls,\n    active,\n    operationRef,\n    showHour,\n    showMinute,\n    showSecond,\n    use12Hours = false,\n    onSelect,\n    value,\n  } = props;\n  const panelPrefixCls = `${prefixCls}-time-panel`;\n  const bodyOperationRef = ref<BodyOperationRef>();\n\n  // ======================= Keyboard =======================\n  const activeColumnIndex = ref(-1);\n  const columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: diff => {\n          activeColumnIndex.value = (activeColumnIndex.value + diff + columnsCount) % columnsCount;\n        },\n        onUpDown: diff => {\n          if (activeColumnIndex.value === -1) {\n            activeColumnIndex.value = 0;\n          } else if (bodyOperationRef.value) {\n            bodyOperationRef.value.onUpDown(diff);\n          }\n        },\n        onEnter: () => {\n          onSelect(value || generateConfig.getNow(), 'key');\n          activeColumnIndex.value = -1;\n        },\n      }),\n\n    onBlur: () => {\n      activeColumnIndex.value = -1;\n    },\n  };\n\n  return (\n    <div\n      class={classNames(panelPrefixCls, {\n        [`${panelPrefixCls}-active`]: active,\n      })}\n    >\n      <TimeHeader {...props} format={format} prefixCls={prefixCls} />\n      <TimeBody\n        {...props}\n        prefixCls={prefixCls}\n        activeColumnIndex={activeColumnIndex.value}\n        operationRef={bodyOperationRef}\n      />\n    </div>\n  );\n}\n\nTimePanel.displayName = 'TimePanel';\nTimePanel.inheritAttrs = false;\n\nexport default TimePanel;\n","import { isInRange } from '../utils/dateUtil';\nimport type { GenerateConfig } from '../generate';\nimport type { RangeValue, NullableDateType } from '../interface';\nimport { getValue } from '../utils/miscUtil';\n\nexport default function useCellClassName<DateType>({\n  cellPrefixCls,\n  generateConfig,\n  rangedValue,\n  hoverRangedValue,\n  isInView,\n  isSameCell,\n  offsetCell,\n  today,\n  value,\n}: {\n  cellPrefixCls: string;\n  generateConfig: GenerateConfig<DateType>;\n  isSameCell: (current: NullableDateType<DateType>, target: NullableDateType<DateType>) => boolean;\n  offsetCell: (date: DateType, offset: number) => DateType;\n  isInView: (date: DateType) => boolean;\n  rangedValue?: RangeValue<DateType>;\n  hoverRangedValue?: RangeValue<DateType>;\n  today?: NullableDateType<DateType>;\n  value?: NullableDateType<DateType>;\n}) {\n  function getClassName(currentDate: DateType) {\n    const prevDate = offsetCell(currentDate, -1);\n    const nextDate = offsetCell(currentDate, 1);\n\n    const rangeStart = getValue(rangedValue, 0);\n    const rangeEnd = getValue(rangedValue, 1);\n\n    const hoverStart = getValue(hoverRangedValue, 0);\n    const hoverEnd = getValue(hoverRangedValue, 1);\n\n    const isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n\n    function isRangeStart(date: DateType) {\n      return isSameCell(rangeStart, date);\n    }\n    function isRangeEnd(date: DateType) {\n      return isSameCell(rangeEnd, date);\n    }\n    const isHoverStart = isSameCell(hoverStart, currentDate);\n    const isHoverEnd = isSameCell(hoverEnd, currentDate);\n\n    const isHoverEdgeStart =\n      (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));\n    const isHoverEdgeEnd =\n      (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));\n\n    return {\n      // In view\n      [`${cellPrefixCls}-in-view`]: isInView(currentDate),\n\n      // Range\n      [`${cellPrefixCls}-in-range`]: isInRange<DateType>(\n        generateConfig,\n        rangeStart,\n        rangeEnd,\n        currentDate,\n      ),\n      [`${cellPrefixCls}-range-start`]: isRangeStart(currentDate),\n      [`${cellPrefixCls}-range-end`]: isRangeEnd(currentDate),\n      [`${cellPrefixCls}-range-start-single`]: isRangeStart(currentDate) && !rangeEnd,\n      [`${cellPrefixCls}-range-end-single`]: isRangeEnd(currentDate) && !rangeStart,\n      [`${cellPrefixCls}-range-start-near-hover`]:\n        isRangeStart(currentDate) &&\n        (isSameCell(prevDate, hoverStart) ||\n          isInRange(generateConfig, hoverStart, hoverEnd, prevDate)),\n      [`${cellPrefixCls}-range-end-near-hover`]:\n        isRangeEnd(currentDate) &&\n        (isSameCell(nextDate, hoverEnd) ||\n          isInRange(generateConfig, hoverStart, hoverEnd, nextDate)),\n\n      // Range Hover\n      [`${cellPrefixCls}-range-hover`]: isRangeHovered,\n      [`${cellPrefixCls}-range-hover-start`]: isHoverStart,\n      [`${cellPrefixCls}-range-hover-end`]: isHoverEnd,\n\n      // Range Edge\n      [`${cellPrefixCls}-range-hover-edge-start`]: isHoverEdgeStart,\n      [`${cellPrefixCls}-range-hover-edge-end`]: isHoverEdgeEnd,\n      [`${cellPrefixCls}-range-hover-edge-start-near-range`]:\n        isHoverEdgeStart && isSameCell(prevDate, rangeEnd),\n      [`${cellPrefixCls}-range-hover-edge-end-near-range`]:\n        isHoverEdgeEnd && isSameCell(nextDate, rangeStart),\n\n      // Others\n      [`${cellPrefixCls}-today`]: isSameCell(today, currentDate),\n      [`${cellPrefixCls}-selected`]: isSameCell(value, currentDate),\n    };\n  }\n\n  return getClassName;\n}\n","import type { InjectionKey, PropType, Ref } from 'vue';\nimport { defineComponent, inject, provide, ref, toRef, watch } from 'vue';\nimport type { NullableDateType, RangeValue } from './interface';\n\nexport type RangeContextProps = {\n  /**\n   * Set displayed range value style.\n   * Panel only has one value, this is only style effect.\n   */\n  rangedValue?: Ref<[NullableDateType<any>, NullableDateType<any>] | null>;\n  hoverRangedValue?: Ref<RangeValue<any>>;\n  inRange?: Ref<boolean>;\n  panelPosition?: Ref<'left' | 'right' | false>;\n};\n\ntype RangeContextProviderValue = {\n  /**\n   * Set displayed range value style.\n   * Panel only has one value, this is only style effect.\n   */\n  rangedValue?: [NullableDateType<any>, NullableDateType<any>] | null;\n  hoverRangedValue?: RangeValue<any>;\n  inRange?: boolean;\n  panelPosition?: 'left' | 'right' | false;\n};\n\nconst RangeContextKey: InjectionKey<RangeContextProps> = Symbol('RangeContextProps');\n\nexport const useProvideRange = (props: RangeContextProps) => {\n  provide(RangeContextKey, props);\n};\n\nexport const useInjectRange = () => {\n  return inject(RangeContextKey, {\n    rangedValue: ref(),\n    hoverRangedValue: ref(),\n    inRange: ref(),\n    panelPosition: ref(),\n  });\n};\n\nexport const RangeContextProvider = defineComponent({\n  name: 'PanelContextProvider',\n  inheritAttrs: false,\n  props: {\n    value: {\n      type: Object as PropType<RangeContextProviderValue>,\n      default: () => ({} as RangeContextProviderValue),\n    },\n  },\n  setup(props, { slots }) {\n    const value: RangeContextProps = {\n      rangedValue: ref(props.value.rangedValue),\n      hoverRangedValue: ref(props.value.hoverRangedValue),\n      inRange: ref(props.value.inRange),\n      panelPosition: ref(props.value.panelPosition),\n    };\n    useProvideRange(value);\n    toRef;\n    watch(\n      () => props.value,\n      () => {\n        Object.keys(props.value).forEach(key => {\n          if (value[key]) {\n            value[key].value = props.value[key];\n          }\n        });\n      },\n    );\n    return () => slots.default?.();\n  },\n});\n\nexport default RangeContextKey;\n","import type { GenerateConfig } from '../../generate';\nimport {\n  WEEK_DAY_COUNT,\n  getWeekStartDate,\n  isSameDate,\n  isSameMonth,\n  formatValue,\n} from '../../utils/dateUtil';\nimport type { Locale } from '../../interface';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nimport type { VueNode } from '../../../../utils/type';\nimport { useInjectRange } from '../../RangeContext';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type DateRender<DateType> = (props: { current: DateType; today: DateType }) => VueNode;\n\nexport type DateBodyPassProps<DateType> = {\n  dateRender?: DateRender<DateType>;\n  disabledDate?: (date: DateType) => boolean;\n\n  // Used for week panel\n  prefixColumn?: (date: DateType) => VueNode;\n  rowClassName?: (date: DateType) => string;\n};\n\nexport type DateBodyProps<DateType> = {\n  prefixCls: string;\n  generateConfig: GenerateConfig<DateType>;\n  value?: DateType | null;\n  viewDate: DateType;\n  locale: Locale;\n  rowCount: number;\n  onSelect: (value: DateType) => void;\n} & DateBodyPassProps<DateType>;\n\nfunction DateBody<DateType>(_props: DateBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, generateConfig, prefixColumn, locale, rowCount, viewDate, value, dateRender } =\n    props;\n\n  const { rangedValue, hoverRangedValue } = useInjectRange();\n\n  const baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);\n  const cellPrefixCls = `${prefixCls}-cell`;\n  const weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n  const today = generateConfig.getNow();\n\n  // ============================== Header ==============================\n  const headerCells: VueNode[] = [];\n  const weekDaysLocale: string[] =\n    locale.shortWeekDays ||\n    (generateConfig.locale.getShortWeekDays\n      ? generateConfig.locale.getShortWeekDays(locale.locale)\n      : []);\n\n  if (prefixColumn) {\n    headerCells.push(<th key=\"empty\" aria-label=\"empty cell\" />);\n  }\n  for (let i = 0; i < WEEK_DAY_COUNT; i += 1) {\n    headerCells.push(<th key={i}>{weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]}</th>);\n  }\n\n  // =============================== Body ===============================\n  const getCellClassName = useCellClassName({\n    cellPrefixCls,\n    today,\n    value,\n    generateConfig,\n    rangedValue: prefixColumn ? null : rangedValue.value,\n    hoverRangedValue: prefixColumn ? null : hoverRangedValue.value,\n    isSameCell: (current, target) => isSameDate(generateConfig, current, target),\n    isInView: date => isSameMonth(generateConfig, date, viewDate),\n    offsetCell: (date, offset) => generateConfig.addDate(date, offset),\n  });\n\n  const getCellNode = dateRender\n    ? (date: DateType) => dateRender({ current: date, today })\n    : undefined;\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={rowCount}\n      colNum={WEEK_DAY_COUNT}\n      baseDate={baseDate}\n      getCellNode={getCellNode}\n      getCellText={generateConfig.getDate}\n      getCellClassName={getCellClassName}\n      getCellDate={generateConfig.addDate}\n      titleCell={date =>\n        formatValue(date, {\n          locale,\n          format: 'YYYY-MM-DD',\n          generateConfig,\n        })\n      }\n      headerCells={headerCells}\n    />\n  );\n}\n\nDateBody.displayName = 'DateBody';\nDateBody.inheritAttrs = false;\nDateBody.props = [\n  'prefixCls',\n  'generateConfig',\n  'value?',\n  'viewDate',\n  'locale',\n  'rowCount',\n  'onSelect',\n  'dateRender?',\n  'disabledDate?',\n  // Used for week panel\n  'prefixColumn?',\n  'rowClassName?',\n];\nexport default DateBody;\n","import Header from '../Header';\nimport type { Locale } from '../../interface';\nimport type { GenerateConfig } from '../../generate';\nimport { useInjectPanel } from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nimport type { VueNode } from '../../../../utils/type';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type DateHeaderProps<DateType> = {\n  prefixCls: string;\n  viewDate: DateType;\n  value?: DateType | null;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n\n  onPrevYear: () => void;\n  onNextYear: () => void;\n  onPrevMonth: () => void;\n  onNextMonth: () => void;\n  onYearClick: () => void;\n  onMonthClick: () => void;\n};\n\nfunction DateHeader<DateType>(_props: DateHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    generateConfig,\n    locale,\n    viewDate,\n    onNextMonth,\n    onPrevMonth,\n    onNextYear,\n    onPrevYear,\n    onYearClick,\n    onMonthClick,\n  } = props;\n\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader.value) {\n    return null;\n  }\n\n  const headerPrefixCls = `${prefixCls}-header`;\n\n  const monthsLocale: string[] =\n    locale.shortMonths ||\n    (generateConfig.locale.getShortMonths\n      ? generateConfig.locale.getShortMonths(locale.locale)\n      : []);\n\n  const month = generateConfig.getMonth(viewDate);\n\n  // =================== Month & Year ===================\n  const yearNode: VueNode = (\n    <button\n      type=\"button\"\n      key=\"year\"\n      onClick={onYearClick}\n      tabindex={-1}\n      class={`${prefixCls}-year-btn`}\n    >\n      {formatValue(viewDate, {\n        locale,\n        format: locale.yearFormat,\n        generateConfig,\n      })}\n    </button>\n  );\n  const monthNode: VueNode = (\n    <button\n      type=\"button\"\n      key=\"month\"\n      onClick={onMonthClick}\n      tabindex={-1}\n      class={`${prefixCls}-month-btn`}\n    >\n      {locale.monthFormat\n        ? formatValue(viewDate, {\n            locale,\n            format: locale.monthFormat,\n            generateConfig,\n          })\n        : monthsLocale[month]}\n    </button>\n  );\n\n  const monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n\n  return (\n    <Header\n      {...props}\n      prefixCls={headerPrefixCls}\n      onSuperPrev={onPrevYear}\n      onPrev={onPrevMonth}\n      onNext={onNextMonth}\n      onSuperNext={onNextYear}\n    >\n      {monthYearNodes}\n    </Header>\n  );\n}\n\nDateHeader.displayName = 'DateHeader';\nDateHeader.inheritAttrs = false;\nexport default DateHeader;\n","import type { DateBodyPassProps, DateRender } from './DateBody';\nimport DateBody from './DateBody';\nimport DateHeader from './DateHeader';\nimport type { PanelSharedProps } from '../../interface';\nimport { WEEK_DAY_COUNT } from '../../utils/dateUtil';\nimport type { KeyboardConfig } from '../../utils/uiUtil';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport classNames from '../../../../utils/classNames';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nconst DATE_ROW_COUNT = 6;\n\nexport type DatePanelProps<DateType> = {\n  active?: boolean;\n  dateRender?: DateRender<DateType>;\n\n  // Used for week panel\n  panelName?: string;\n  keyboardConfig?: KeyboardConfig;\n} & PanelSharedProps<DateType> &\n  DateBodyPassProps<DateType>;\n\nfunction DatePanel<DateType>(_props: DatePanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls = 'scPicker',\n    panelName = 'date',\n    keyboardConfig,\n    active,\n    operationRef,\n    generateConfig,\n    value,\n    viewDate,\n    onViewDateChange,\n    onPanelChange,\n    onSelect,\n  } = props;\n  const sourceProps = {}\n  Object.keys(props).forEach(item => {\n    if (item !== 'onSelect') {\n      sourceProps[item] = props[item]\n    }\n  })\n  const panelPrefixCls = `${prefixCls}-${panelName}-panel`;\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: diff => {\n          onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n        },\n        onCtrlLeftRight: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onUpDown: diff => {\n          onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n        },\n        onPageUpDown: diff => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n        },\n        ...keyboardConfig,\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onYearChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n  const onMonthChange = (diff: number) => {\n    const newDate = generateConfig.addMonth(viewDate, diff);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n  // delete props?.onSelect\n\n  return (\n    <div\n      class={classNames(panelPrefixCls, {\n        [`${panelPrefixCls}-active`]: active,\n      })}\n    >\n      <DateHeader\n        {...props}\n        prefixCls={prefixCls}\n        value={value}\n        viewDate={viewDate}\n        // View Operation\n        onPrevYear={() => {\n          onYearChange(-1);\n        }}\n        onNextYear={() => {\n          onYearChange(1);\n        }}\n        onPrevMonth={() => {\n          onMonthChange(-1);\n        }}\n        onNextMonth={() => {\n          onMonthChange(1);\n        }}\n        onMonthClick={() => {\n          onPanelChange('month', viewDate);\n        }}\n        onYearClick={() => {\n          onPanelChange('year', viewDate);\n        }}\n      />\n      <DateBody\n        {...sourceProps}\n        onSelect={date => onSelect(date, 'mouse')}\n        prefixCls={prefixCls}\n        value={value}\n        viewDate={viewDate}\n        rowCount={DATE_ROW_COUNT}\n      />\n    </div>\n  );\n}\n\nDatePanel.displayName = 'DatePanel';\nDatePanel.inheritAttrs = false;\n\nexport default DatePanel;\n","import type { DatePanelProps } from '../DatePanel';\nimport DatePanel from '../DatePanel';\nimport type { SharedTimeProps } from '../TimePanel';\nimport TimePanel from '../TimePanel';\nimport { tuple } from '../../utils/miscUtil';\nimport { setDateTime as setTime } from '../../utils/timeUtil';\nimport type { PanelRefProps, DisabledTime } from '../../interface';\nimport KeyCode from '../../../../utils/KeyCode';\nimport classNames from '../../../../utils/classNames';\nimport { ref } from 'vue';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type DatetimePanelProps<DateType> = {\n  disabledTime?: DisabledTime<DateType>;\n  showTime?: boolean | SharedTimeProps<DateType>;\n  defaultValue?: DateType;\n} & Omit<DatePanelProps<DateType>, 'disabledHours' | 'disabledMinutes' | 'disabledSeconds'>;\n\nconst ACTIVE_PANEL = tuple('date', 'time');\ntype ActivePanelType = typeof ACTIVE_PANEL[number];\n\nfunction DatetimePanel<DateType>(_props: DatetimePanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    operationRef,\n    generateConfig,\n    value,\n    defaultValue,\n    disabledTime,\n    showTime,\n    onSelect,\n  } = props;\n  const panelPrefixCls = `${prefixCls}-datetime-panel`;\n  const activePanel = ref<ActivePanelType | null>(null);\n\n  const dateOperationRef = ref<PanelRefProps>({});\n  const timeOperationRef = ref<PanelRefProps>({});\n\n  const timeProps = typeof showTime === 'object' ? { ...showTime } : {};\n\n  // ======================= Keyboard =======================\n  function getNextActive(offset: number) {\n    const activeIndex = ACTIVE_PANEL.indexOf(activePanel.value!) + offset;\n    const nextActivePanel = ACTIVE_PANEL[activeIndex] || null;\n    return nextActivePanel;\n  }\n\n  const onBlur = (e?: FocusEvent) => {\n    if (timeOperationRef.value.onBlur) {\n      timeOperationRef.value.onBlur(e!);\n    }\n    activePanel.value = null;\n  };\n\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) => {\n      // Switch active panel\n      if (event.which === KeyCode.TAB) {\n        const nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);\n        activePanel.value = nextActivePanel;\n\n        if (nextActivePanel) {\n          event.preventDefault();\n        }\n\n        return true;\n      }\n\n      // Operate on current active panel\n      if (activePanel.value) {\n        const ref = activePanel.value === 'date' ? dateOperationRef : timeOperationRef;\n\n        if (ref.value && ref.value.onKeydown) {\n          ref.value.onKeydown(event);\n        }\n\n        return true;\n      }\n\n      // Switch first active panel if operate without panel\n      if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN].includes(event.which)) {\n        activePanel.value = 'date';\n        return true;\n      }\n\n      return false;\n    },\n    onBlur,\n    onClose: onBlur,\n  };\n\n  const sourceProps = {}\n  Object.keys(props).forEach(item => {\n    if (item !== 'onSelect') {\n      sourceProps[item] = props[item]\n    }\n  })\n\n  // ======================== Events ========================\n  const onInternalSelect = (date: DateType, source: 'date' | 'time') => {\n    let selectedDate = date;\n\n    if (source === 'date' && !value && timeProps.defaultValue) {\n      // Date with time defaultValue\n      selectedDate = generateConfig.setHour(\n        selectedDate,\n        generateConfig.getHour(timeProps.defaultValue),\n      );\n      selectedDate = generateConfig.setMinute(\n        selectedDate,\n        generateConfig.getMinute(timeProps.defaultValue),\n      );\n      selectedDate = generateConfig.setSecond(\n        selectedDate,\n        generateConfig.getSecond(timeProps.defaultValue),\n      );\n    } else if (source === 'time' && !value && defaultValue) {\n      selectedDate = generateConfig.setYear(selectedDate, generateConfig.getYear(defaultValue));\n      selectedDate = generateConfig.setMonth(selectedDate, generateConfig.getMonth(defaultValue));\n      selectedDate = generateConfig.setDate(selectedDate, generateConfig.getDate(defaultValue));\n    }\n\n    if (onSelect) {\n      onSelect(selectedDate, 'mouse');\n    }\n  };\n\n  // ======================== Render ========================\n  const disabledTimes = disabledTime ? disabledTime(value || null) : {};\n\n  return (\n    <div\n      class={classNames(panelPrefixCls, {\n        [`${panelPrefixCls}-active`]: activePanel.value,\n      })}\n    >\n      <DatePanel\n        {...sourceProps}\n        operationRef={dateOperationRef}\n        active={activePanel.value === 'date'}\n        onSelect={date => {\n          onInternalSelect(\n            setTime(\n              generateConfig,\n              date,\n              !value && typeof showTime === 'object' ? showTime.defaultValue : null,\n            ),\n            'date',\n          );\n        }}\n      />\n      <TimePanel\n        {...sourceProps}\n        format={undefined}\n        {...timeProps}\n        {...disabledTimes}\n        disabledTime={null}\n        defaultValue={undefined}\n        operationRef={timeOperationRef}\n        active={activePanel.value === 'time'}\n        onSelect={date => {\n          onInternalSelect(date, 'time');\n        }}\n      />\n    </div>\n  );\n}\n\nDatetimePanel.displayName = 'DatetimePanel';\nDatetimePanel.inheritAttrs = false;\n\nexport default DatetimePanel;\n","import DatePanel from '../DatePanel';\nimport type { PanelSharedProps } from '../../interface';\nimport { isSameWeek } from '../../utils/dateUtil';\nimport classNames from '../../../../utils/classNames';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type WeekPanelProps<DateType> = PanelSharedProps<DateType>;\n\nfunction WeekPanel<DateType>(_props: WeekPanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, generateConfig, locale, value } = props;\n\n  // Render additional column\n  const cellPrefixCls = `${prefixCls}-cell`;\n  const prefixColumn = (date: DateType) => (\n    <td key=\"week\" class={classNames(cellPrefixCls, `${cellPrefixCls}-week`)}>\n      {generateConfig.locale.getWeek(locale.locale, date)}\n    </td>\n  );\n\n  // Add row className\n  const rowPrefixCls = `${prefixCls}-week-panel-row`;\n  const rowClassName = (date: DateType) =>\n    classNames(rowPrefixCls, {\n      [`${rowPrefixCls}-selected`]: isSameWeek(generateConfig, locale.locale, value, date),\n    });\n\n  return (\n    <DatePanel\n      {...props}\n      panelName=\"week\"\n      prefixColumn={prefixColumn}\n      rowClassName={rowClassName}\n      keyboardConfig={{\n        onLeftRight: null,\n      }}\n    />\n  );\n}\n\nWeekPanel.displayName = 'WeekPanel';\nWeekPanel.inheritAttrs = false;\n\nexport default WeekPanel;\n","import Header from '../Header';\nimport type { Locale } from '../../interface';\nimport type { GenerateConfig } from '../../generate';\nimport { useInjectPanel } from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type MonthHeaderProps<DateType> = {\n  prefixCls: string;\n  viewDate: DateType;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n\n  onPrevYear: () => void;\n  onNextYear: () => void;\n  onYearClick: () => void;\n};\n\nfunction MonthHeader<DateType>(_props: MonthHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, generateConfig, locale, viewDate, onNextYear, onPrevYear, onYearClick } =\n    props;\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader.value) {\n    return null;\n  }\n\n  const headerPrefixCls = `${prefixCls}-header`;\n\n  return (\n    <Header\n      {...props}\n      prefixCls={headerPrefixCls}\n      onSuperPrev={onPrevYear}\n      onSuperNext={onNextYear}\n    >\n      <button type=\"button\" onClick={onYearClick} class={`${prefixCls}-year-btn`}>\n        {formatValue(viewDate, {\n          locale,\n          format: locale.yearFormat,\n          generateConfig,\n        })}\n      </button>\n    </Header>\n  );\n}\n\nMonthHeader.displayName = 'MonthHeader';\nMonthHeader.inheritAttrs = false;\n\nexport default MonthHeader;\n","import type { GenerateConfig } from '../../generate';\nimport type { Locale } from '../../interface';\nimport { formatValue, isSameMonth } from '../../utils/dateUtil';\nimport { useInjectRange } from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nimport type { VueNode } from '../../../../utils/type';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport const MONTH_COL_COUNT = 3;\nconst MONTH_ROW_COUNT = 4;\n\nexport type MonthCellRender<DateType> = (obj: { current: DateType; locale: Locale }) => VueNode;\n\nexport type MonthBodyProps<DateType> = {\n  prefixCls: string;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n  value?: DateType | null;\n  viewDate: DateType;\n  disabledDate?: (date: DateType) => boolean;\n  monthCellRender?: MonthCellRender<DateType>;\n  onSelect: (value: DateType) => void;\n};\n\nfunction MonthBody<DateType>(_props: MonthBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, locale, value, viewDate, generateConfig, monthCellRender } = props;\n\n  const { rangedValue, hoverRangedValue } = useInjectRange();\n\n  const cellPrefixCls = `${prefixCls}-cell`;\n\n  const today = generateConfig.getNow();\n\n  const getCellClassName = useCellClassName({\n    cellPrefixCls,\n    today,\n    value,\n    generateConfig,\n    rangedValue: rangedValue.value,\n    hoverRangedValue: hoverRangedValue.value,\n    isSameCell: (current, target) => isSameMonth(generateConfig, current, target),\n    isInView: () => true,\n    offsetCell: (date, offset) => generateConfig.addMonth(date, offset),\n  });\n\n  const monthsLocale: string[] =\n    locale.shortMonths ||\n    (generateConfig.locale.getShortMonths\n      ? generateConfig.locale.getShortMonths(locale.locale)\n      : []);\n\n  const baseMonth = generateConfig.setMonth(viewDate, 0);\n\n  const getCellNode = monthCellRender\n    ? (date: DateType) => monthCellRender({ current: date, locale })\n    : undefined;\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={MONTH_ROW_COUNT}\n      colNum={MONTH_COL_COUNT}\n      baseDate={baseMonth}\n      getCellNode={getCellNode}\n      getCellText={date =>\n        locale.monthFormat\n          ? formatValue(date, {\n              locale,\n              format: locale.monthFormat,\n              generateConfig,\n            })\n          : monthsLocale[generateConfig.getMonth(date)]\n      }\n      getCellClassName={getCellClassName}\n      getCellDate={generateConfig.addMonth}\n      titleCell={date =>\n        formatValue(date, {\n          locale,\n          format: 'YYYY-MM',\n          generateConfig,\n        })\n      }\n    />\n  );\n}\n\nMonthBody.displayName = 'MonthBody';\nMonthBody.inheritAttrs = false;\n\nexport default MonthBody;\n","import MonthHeader from './MonthHeader';\nimport type { MonthCellRender } from './MonthBody';\nimport MonthBody, { MONTH_COL_COUNT } from './MonthBody';\nimport type { PanelSharedProps } from '../../interface';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type MonthPanelProps<DateType> = {\n  monthCellContentRender?: MonthCellRender<DateType>;\n} & PanelSharedProps<DateType>;\n\nfunction MonthPanel<DateType>(_props: MonthPanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    operationRef,\n    onViewDateChange,\n    generateConfig,\n    value,\n    viewDate,\n    onPanelChange,\n    onSelect,\n  } = props;\n\n  const sourceProps = {}\n  Object.keys(props).forEach(item => {\n    if (item !== 'onSelect') {\n      sourceProps[item] = props[item]\n    }\n  })\n\n  const panelPrefixCls = `${prefixCls}-month-panel`;\n\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: diff => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n        },\n        onCtrlLeftRight: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onUpDown: diff => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n        },\n        onEnter: () => {\n          onPanelChange('date', value || viewDate);\n        },\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onYearChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n  return (\n    <div class={panelPrefixCls}>\n      <MonthHeader\n        {...props}\n        prefixCls={prefixCls}\n        onPrevYear={() => {\n          onYearChange(-1);\n        }}\n        onNextYear={() => {\n          onYearChange(1);\n        }}\n        onYearClick={() => {\n          onPanelChange('year', viewDate);\n        }}\n      />\n      <MonthBody<DateType>\n        {...sourceProps}\n        prefixCls={prefixCls}\n        onSelect={date => {\n          onSelect(date, 'mouse');\n          onPanelChange('date', date);\n        }}\n      />\n    </div>\n  );\n}\n\nMonthPanel.displayName = 'MonthPanel';\nMonthPanel.inheritAttrs = false;\n\nexport default MonthPanel;\n","import Header from '../Header';\nimport type { Locale } from '../../interface';\nimport type { GenerateConfig } from '../../generate';\nimport { useInjectPanel } from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type QuarterHeaderProps<DateType> = {\n  prefixCls: string;\n  viewDate: DateType;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n\n  onPrevYear: () => void;\n  onNextYear: () => void;\n  onYearClick: () => void;\n};\n\nfunction QuarterHeader<DateType>(_props: QuarterHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, generateConfig, locale, viewDate, onNextYear, onPrevYear, onYearClick } =\n    props;\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader.value) {\n    return null;\n  }\n\n  const headerPrefixCls = `${prefixCls}-header`;\n  return (\n    <Header\n      {...props}\n      prefixCls={headerPrefixCls}\n      onSuperPrev={onPrevYear}\n      onSuperNext={onNextYear}\n    >\n      <button type=\"button\" onClick={onYearClick} class={`${prefixCls}-year-btn`}>\n        {formatValue(viewDate, {\n          locale,\n          format: locale.yearFormat,\n          generateConfig,\n        })}\n      </button>\n    </Header>\n  );\n}\n\nQuarterHeader.displayName = 'QuarterHeader';\nQuarterHeader.inheritAttrs = false;\n\nexport default QuarterHeader;\n","import type { GenerateConfig } from '../../generate';\nimport type { Locale } from '../../interface';\nimport { formatValue, isSameQuarter } from '../../utils/dateUtil';\nimport { useInjectRange } from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport const QUARTER_COL_COUNT = 4;\nconst QUARTER_ROW_COUNT = 1;\n\nexport type QuarterBodyProps<DateType> = {\n  prefixCls: string;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n  value?: DateType | null;\n  viewDate: DateType;\n  disabledDate?: (date: DateType) => boolean;\n  onSelect: (value: DateType) => void;\n};\n\nfunction QuarterBody<DateType>(_props: QuarterBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, locale, value, viewDate, generateConfig } = props;\n\n  const { rangedValue, hoverRangedValue } = useInjectRange();\n\n  const cellPrefixCls = `${prefixCls}-cell`;\n\n  const today = generateConfig.getNow();\n\n  const getCellClassName = useCellClassName({\n    cellPrefixCls,\n    today,\n    value,\n    generateConfig,\n    rangedValue: rangedValue.value,\n    hoverRangedValue: hoverRangedValue.value,\n    isSameCell: (current, target) => isSameQuarter(generateConfig, current, target),\n    isInView: () => true,\n    offsetCell: (date, offset) => generateConfig.addMonth(date, offset * 3),\n  });\n\n  const baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={QUARTER_ROW_COUNT}\n      colNum={QUARTER_COL_COUNT}\n      baseDate={baseQuarter}\n      getCellText={date =>\n        formatValue(date, {\n          locale,\n          format: locale.quarterFormat || '[Q]Q',\n          generateConfig,\n        })\n      }\n      getCellClassName={getCellClassName}\n      getCellDate={(date, offset) => generateConfig.addMonth(date, offset * 3)}\n      titleCell={date =>\n        formatValue(date, {\n          locale,\n          format: 'YYYY-[Q]Q',\n          generateConfig,\n        })\n      }\n    />\n  );\n}\n\nQuarterBody.displayName = 'QuarterBody';\nQuarterBody.inheritAttrs = false;\nexport default QuarterBody;\n","import QuarterHeader from './QuarterHeader';\nimport QuarterBody from './QuarterBody';\nimport type { PanelSharedProps } from '../../interface';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type QuarterPanelProps<DateType> = {} & PanelSharedProps<DateType>;\n\nfunction QuarterPanel<DateType>(_props: QuarterPanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    operationRef,\n    onViewDateChange,\n    generateConfig,\n    value,\n    viewDate,\n    onPanelChange,\n    onSelect,\n  } = props;\n\n  const panelPrefixCls = `${prefixCls}-quarter-panel`;\n\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: diff => {\n          onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');\n        },\n        onCtrlLeftRight: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onUpDown: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onYearChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n  const sourceProps = {}\n  Object.keys(props).forEach(item => {\n    if (item !== 'onSelect') {\n      sourceProps[item] = props[item]\n    }\n  })\n\n  return (\n    <div class={panelPrefixCls}>\n      <QuarterHeader\n        {...props}\n        prefixCls={prefixCls}\n        onPrevYear={() => {\n          onYearChange(-1);\n        }}\n        onNextYear={() => {\n          onYearChange(1);\n        }}\n        onYearClick={() => {\n          onPanelChange('year', viewDate);\n        }}\n      />\n      <QuarterBody<DateType>\n        {...sourceProps}\n        prefixCls={prefixCls}\n        onSelect={date => {\n          onSelect(date, 'mouse');\n        }}\n      />\n    </div>\n  );\n}\n\nQuarterPanel.displayName = 'QuarterPanel';\nQuarterPanel.inheritAttrs = false;\n\nexport default QuarterPanel;\n","import Header from '../Header';\nimport type { GenerateConfig } from '../../generate';\nimport { YEAR_DECADE_COUNT } from '.';\nimport { useInjectPanel } from '../../PanelContext';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type YearHeaderProps<DateType> = {\n  prefixCls: string;\n  viewDate: DateType;\n  value?: DateType | null;\n  generateConfig: GenerateConfig<DateType>;\n\n  onPrevDecade: () => void;\n  onNextDecade: () => void;\n  onDecadeClick: () => void;\n};\n\nfunction YearHeader<DateType>(_props: YearHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, generateConfig, viewDate, onPrevDecade, onNextDecade, onDecadeClick } = props;\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader.value) {\n    return null;\n  }\n\n  const headerPrefixCls = `${prefixCls}-header`;\n\n  const yearNumber = generateConfig.getYear(viewDate);\n  const startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n  const endYear = startYear + YEAR_DECADE_COUNT - 1;\n\n  return (\n    <Header\n      {...props}\n      prefixCls={headerPrefixCls}\n      onSuperPrev={onPrevDecade}\n      onSuperNext={onNextDecade}\n    >\n      <button type=\"button\" onClick={onDecadeClick} class={`${prefixCls}-decade-btn`}>\n        {startYear}-{endYear}\n      </button>\n    </Header>\n  );\n}\n\nYearHeader.displayName = 'YearHeader';\nYearHeader.inheritAttrs = false;\n\nexport default YearHeader;\n","import type { GenerateConfig } from '../../generate';\nimport { YEAR_DECADE_COUNT } from '.';\nimport type { Locale, NullableDateType } from '../../interface';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport { formatValue, isSameYear } from '../../utils/dateUtil';\nimport { useInjectRange } from '../../RangeContext';\nimport PanelBody from '../PanelBody';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport const YEAR_COL_COUNT = 3;\nconst YEAR_ROW_COUNT = 4;\n\nexport type YearBodyProps<DateType> = {\n  prefixCls: string;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n  value?: NullableDateType<DateType>;\n  viewDate: DateType;\n  disabledDate?: (date: DateType) => boolean;\n  onSelect: (value: DateType) => void;\n};\n\nfunction YearBody<DateType>(_props: YearBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const { prefixCls, value, viewDate, locale, generateConfig } = props;\n  const { rangedValue, hoverRangedValue } = useInjectRange();\n\n  const yearPrefixCls = `${prefixCls}-cell`;\n\n  // =============================== Year ===============================\n  const yearNumber = generateConfig.getYear(viewDate);\n\n  const today = generateConfig.getNow();\n  \n  const startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n  const endYear = startYear + YEAR_DECADE_COUNT - 1;\n  const baseYear = generateConfig.setYear(\n    viewDate,\n    startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2),\n  );\n\n  const isInView = (date: DateType) => {\n    const currentYearNumber = generateConfig.getYear(date);\n    return startYear <= currentYearNumber && currentYearNumber <= endYear;\n  };\n\n  const getCellClassName = useCellClassName<DateType>({\n    cellPrefixCls: yearPrefixCls,\n    today,\n    value,\n    generateConfig,\n    rangedValue: rangedValue.value,\n    hoverRangedValue: hoverRangedValue.value,\n    isSameCell: (current, target) => isSameYear(generateConfig, current, target),\n    isInView,\n    offsetCell: (date, offset) => generateConfig.addYear(date, offset),\n  });\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={YEAR_ROW_COUNT}\n      colNum={YEAR_COL_COUNT}\n      baseDate={baseYear}\n      getCellText={generateConfig.getYear}\n      getCellClassName={getCellClassName}\n      getCellDate={generateConfig.addYear}\n      titleCell={date =>\n        formatValue(date, {\n          locale,\n          format: 'YYYY',\n          generateConfig,\n        })\n      }\n    />\n  );\n}\n\nYearBody.displayName = 'YearBody';\nYearBody.inheritAttrs = false;\n\nexport default YearBody;\n","import YearHeader from './YearHeader';\nimport YearBody, { YEAR_COL_COUNT } from './YearBody';\nimport type { PanelSharedProps, PanelMode } from '../../interface';\nimport { createKeydownHandler } from '../../utils/uiUtil';\nimport useMergeProps from '../../hooks/useMergeProps';\n\nexport type YearPanelProps<DateType> = {\n  sourceMode: PanelMode;\n} & PanelSharedProps<DateType>;\n\nexport const YEAR_DECADE_COUNT = 10;\n\nfunction YearPanel<DateType>(_props: YearPanelProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    operationRef,\n    onViewDateChange,\n    generateConfig,\n    value,\n    viewDate,\n    sourceMode,\n    onSelect,\n    onPanelChange,\n  } = props;\n\n  const panelPrefixCls = `${prefixCls}-year-panel`;\n\n  // ======================= Keyboard =======================\n  operationRef.value = {\n    onKeydown: (event: KeyboardEvent) =>\n      createKeydownHandler(event, {\n        onLeftRight: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n        },\n        onCtrlLeftRight: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n        },\n        onUpDown: diff => {\n          onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n        },\n        onEnter: () => {\n          onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n        },\n      }),\n  };\n\n  // ==================== View Operation ====================\n  const onDecadeChange = (diff: number) => {\n    const newDate = generateConfig.addYear(viewDate, diff * 10);\n    onViewDateChange(newDate);\n    onPanelChange(null, newDate);\n  };\n\n\n  const sourceProps = {}\n  Object.keys(props).forEach(item => {\n    if (item !== 'onSelect') {\n      sourceProps[item] = props[item]\n    }\n  })\n\n  return (\n    <div class={panelPrefixCls}>\n      <YearHeader\n        {...props}\n        prefixCls={prefixCls}\n        onPrevDecade={() => {\n          onDecadeChange(-1);\n        }}\n        onNextDecade={() => {\n          onDecadeChange(1);\n        }}\n        onDecadeClick={() => {\n          onPanelChange('decade', viewDate);\n        }}\n      />\n      <YearBody\n        {...sourceProps}\n        prefixCls={prefixCls}\n        onSelect={date => {\n          onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n          onSelect(date, 'mouse');\n        }}\n      />\n    </div>\n  );\n}\n\nYearPanel.displayName = 'YearPanel';\nYearPanel.inheritAttrs = false;\n\nexport default YearPanel;\n","import type { PanelMode } from '../interface';\n\nexport default function getExtraFooter(\n  prefixCls: string,\n  mode: PanelMode,\n  renderExtraFooter?: (mode: PanelMode) => any,\n) {\n  if (!renderExtraFooter) {\n    return null;\n  }\n\n  return <div class={`${prefixCls}-footer-extra`}>{renderExtraFooter(mode)}</div>;\n}\n","import type { VueNode } from '../../../utils/type';\nimport type { Components, RangeList, Locale } from '../interface';\n\nexport type RangesProps = {\n  prefixCls: string;\n  rangeList?: RangeList;\n  components?: Components;\n  needConfirmButton: boolean;\n  onNow?: null | (() => void) | false;\n  onOk?: null | (() => void) | false;\n  okDisabled?: boolean;\n  showNow?: boolean;\n  locale: Locale;\n};\n\nexport default function getRanges({\n  prefixCls,\n  rangeList = [],\n  components = {},\n  needConfirmButton,\n  onNow,\n  onOk,\n  okDisabled,\n  showNow,\n  locale,\n}: RangesProps) {\n  let presetNode: VueNode;\n  let okNode: VueNode;\n\n  if (rangeList.length) {\n    const Item = (components.rangeItem || 'span') as any;\n\n    presetNode = (\n      <>\n        {rangeList.map(({ label, onClick, onMouseenter, onMouseleave }) => (\n          <li key={label} class={`${prefixCls}-preset`}>\n            <Item onClick={onClick} onMouseenter={onMouseenter} onMouseleave={onMouseleave}>\n              {label}\n            </Item>\n          </li>\n        ))}\n      </>\n    );\n  }\n\n  if (needConfirmButton) {\n    const Button = (components.button || 'button') as any;\n\n    if (onNow && !presetNode && showNow !== false) {\n      presetNode = (\n        <li class={`${prefixCls}-now`}>\n          <a class={`${prefixCls}-now-btn`} onClick={onNow}>\n            {locale.now}\n          </a>\n        </li>\n      );\n    }\n\n    okNode = needConfirmButton && (\n      <li class={`${prefixCls}-ok`}>\n        <Button disabled={okDisabled} onClick={onOk}>\n          {locale.ok}\n        </Button>\n      </li>\n    );\n  }\n\n  if (!presetNode && !okNode) {\n    return null;\n  }\n\n  return (\n    <ul class={`${prefixCls}-ranges`}>\n      {presetNode}\n      {okNode}\n    </ul>\n  );\n}\n","import type { Ref, UnwrapRef } from 'vue';\nimport { toRaw, watchEffect, unref, watch, ref } from 'vue';\n\nexport default function useMergedState<T, R = Ref<T>>(\n  defaultStateValue: T | (() => T),\n  option?: {\n    defaultValue?: T | (() => T);\n    value?: Ref<T> | Ref<UnwrapRef<T>>;\n    onChange?: (val: T, prevValue: T) => void;\n    postState?: (val: T) => T;\n  },\n): [R, (val: T) => void] {\n  const { defaultValue, value = ref() } = option || {};\n  let initValue: T =\n    typeof defaultStateValue === 'function' ? (defaultStateValue as any)() : defaultStateValue;\n  if (value.value !== undefined) {\n    initValue = unref(value as any) as T;\n  }\n  if (defaultValue !== undefined) {\n    initValue = typeof defaultValue === 'function' ? (defaultValue as any)() : defaultValue;\n  }\n\n  const innerValue = ref(initValue) as Ref<T>;\n  const mergedValue = ref(initValue) as Ref<T>;\n  watchEffect(() => {\n    let val = value.value !== undefined ? value.value : innerValue.value;\n    if (option.postState) {\n      val = option.postState(val as T);\n    }\n    mergedValue.value = val as T;\n  });\n\n  function triggerChange(newValue: T) {\n    const preVal = mergedValue.value;\n    innerValue.value = newValue;\n    if (toRaw(mergedValue.value) !== newValue && option.onChange) {\n      option.onChange(newValue, preVal);\n    }\n  }\n\n  // Effect of reset value to `undefined`\n  watch(value, () => {\n    innerValue.value = value.value as T;\n  });\n\n  return [mergedValue as unknown as R, triggerChange];\n}\n","/**\n * Logic:\n *  When `mode` === `picker`,\n *  click will trigger `onSelect` (if value changed trigger `onChange` also).\n *  Panel change will not trigger `onSelect` but trigger `onPanelChange`\n */\nimport type { SharedTimeProps } from './panels/TimePanel';\nimport TimePanel from './panels/TimePanel';\nimport DatetimePanel from './panels/DatetimePanel';\nimport DatePanel from './panels/DatePanel';\nimport WeekPanel from './panels/WeekPanel';\nimport MonthPanel from './panels/MonthPanel';\nimport QuarterPanel from './panels/QuarterPanel';\nimport YearPanel from './panels/YearPanel';\nimport DecadePanel from './panels/DecadePanel';\nimport type { GenerateConfig } from './generate';\nimport type {\n  Locale,\n  PanelMode,\n  PanelRefProps,\n  PickerMode,\n  DisabledTime,\n  OnPanelChange,\n  Components,\n} from './interface';\nimport { isEqual } from './utils/dateUtil';\nimport { useInjectPanel, useProvidePanel } from './PanelContext';\nimport type { DateRender } from './panels/DatePanel/DateBody';\nimport { PickerModeMap } from './utils/uiUtil';\nimport type { MonthCellRender } from './panels/MonthPanel/MonthBody';\nimport { useInjectRange } from './RangeContext';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport { getLowerBoundTime, setDateTime, setTime } from './utils/timeUtil';\nimport type { VueNode } from '../../utils/type';\nimport { computed, createVNode, defineComponent, ref, toRef, watch, watchEffect } from 'vue';\nimport useMergedState from '../../hooks/useMergedState';\nimport { warning } from '../../utils/warning';\nimport KeyCode from '../../utils/KeyCode';\nimport classNames from '../../utils/classNames';\nimport { isArray, isFunction } from '../../utils';\n\nexport type PickerPanelSharedProps<DateType> = {\n  prefixCls?: string;\n  // className?: string;\n  // style?: React.CSSProperties;\n  /** @deprecated Will be removed in next big version. Please use `mode` instead */\n  mode?: PanelMode;\n  tabindex?: number;\n\n  // Locale\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n\n  // Value\n  value?: DateType | null;\n  defaultValue?: DateType;\n  /** [Legacy] Set default display picker view date */\n  pickerValue?: DateType;\n  /** [Legacy] Set default display picker view date */\n  defaultPickerValue?: DateType;\n\n  // Date\n  disabledDate?: (date: DateType) => boolean;\n\n  // Render\n  dateRender?: DateRender<DateType>;\n  monthCellRender?: MonthCellRender<DateType>;\n  renderExtraFooter?: (mode: PanelMode) => VueNode;\n\n  // Event\n  onSelect?: (value: DateType) => void;\n  onChange?: (value: DateType) => void;\n  onPanelChange?: OnPanelChange<DateType>;\n  onMousedown?: (e: MouseEvent) => void;\n  onOk?: (date: DateType) => void | Array<any>;\n\n  direction?: 'ltr' | 'rtl';\n\n  /** @private This is internal usage. Do not use in your production env */\n  hideHeader?: boolean;\n  /** @private This is internal usage. Do not use in your production env */\n  onPickerValueChange?: (date: DateType) => void;\n\n  /** @private Internal usage. Do not use in your production env */\n  components?: Components;\n};\n\nexport type PickerPanelBaseProps<DateType> = {\n  picker: Exclude<PickerMode, 'date' | 'time'>;\n} & PickerPanelSharedProps<DateType>;\n\nexport type PickerPanelDateProps<DateType> = {\n  picker?: 'date';\n  showToday?: boolean;\n  showNow?: boolean;\n\n  // Time\n  showTime?: boolean | SharedTimeProps<DateType>;\n  disabledTime?: DisabledTime<DateType>;\n} & PickerPanelSharedProps<DateType>;\n\nexport type PickerPanelTimeProps<DateType> = {\n  picker: 'time';\n} & PickerPanelSharedProps<DateType> &\n  SharedTimeProps<DateType>;\n\nexport type PickerPanelProps<DateType> =\n  | PickerPanelBaseProps<DateType>\n  | PickerPanelDateProps<DateType>\n  | PickerPanelTimeProps<DateType>;\n\n// TMP type to fit for ts 3.9.2\ntype OmitType<DateType> = Omit<PickerPanelBaseProps<DateType>, 'picker'> &\n  Omit<PickerPanelDateProps<DateType>, 'picker'> &\n  Omit<PickerPanelTimeProps<DateType>, 'picker'>;\ntype MergedPickerPanelProps<DateType> = {\n  picker?: PickerMode;\n} & OmitType<DateType>;\n\nfunction PickerPanel<DateType>() {\n  return defineComponent<MergedPickerPanelProps<DateType>>({\n    name: 'PickerPanel',\n    inheritAttrs: false,\n    props: {\n      prefixCls: {\n        type: String,\n        default () {\n          return 'scPicker'\n        }\n      },\n      pickerType: String,\n      locale: Object,\n      generateConfig: Object,\n      value: Object,\n      defaultValue: Object,\n      pickerValue: Object,\n      defaultPickerValue: Object,\n      disabledDate: Function,\n      mode: String,\n      picker: { type: String, default: 'date' },\n      tabindex: { type: [Number, String], default: 0 },\n      showNow: { type: Boolean, default: undefined },\n      showTime: [Boolean, Object],\n      showToday: Boolean,\n      renderExtraFooter: Function,\n      dateRender: Function,\n      hideHeader: { type: Boolean, default: undefined },\n      onSelect: {\n        type: [Function, Array]\n      },\n      onChange: {\n        type: [Function, Array]\n      },\n      onPanelChange: {\n        type: [Function, Array]\n      },\n      onMousedown: Function,\n      onPickerValueChange: Function,\n      onOk: {\n        type: [Function, Array]\n      },\n      components: Object,\n      direction: String,\n      hourStep: { type: Number, default: 1 },\n      minuteStep: { type: Number, default: 1 },\n      secondStep: { type: Number, default: 1 },\n    } as any,\n    setup(props, { attrs }) {\n      const needConfirmButton = computed(\n        () => (props.picker === 'date' && !!props.showTime) || props.picker === 'time',\n      );\n\n      const isHourStepValid = computed(() => 24 % props.hourStep === 0);\n      const isMinuteStepValid = computed(() => 60 % props.minuteStep === 0);\n      const isSecondStepValid = computed(() => 60 % props.secondStep === 0);\n      if (process.env.NODE_ENV !== 'production') {\n        watchEffect(() => {\n          const { generateConfig, value, hourStep = 1, minuteStep = 1, secondStep = 1 } = props;\n          warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `value`.');\n          warning(\n            !value || generateConfig.isValidate(value),\n            'Invalidate date pass to `defaultValue`.',\n          );\n          warning(\n            isHourStepValid.value,\n            `\\`hourStep\\` ${hourStep} is invalid. It should be a factor of 24.`,\n          );\n          warning(\n            isMinuteStepValid.value,\n            `\\`minuteStep\\` ${minuteStep} is invalid. It should be a factor of 60.`,\n          );\n          warning(\n            isSecondStepValid.value,\n            `\\`secondStep\\` ${secondStep} is invalid. It should be a factor of 60.`,\n          );\n        });\n      }\n\n      const panelContext = useInjectPanel();\n      const {\n        operationRef,\n        panelRef: panelDivRef,\n        onSelect: onContextSelect,\n        hideRanges,\n        defaultOpenValue,\n      } = panelContext;\n      const { inRange, panelPosition, rangedValue, hoverRangedValue } = useInjectRange();\n      const panelRef = ref<PanelRefProps>({});\n      // Value\n      const [mergedValue, setInnerValue] = useMergedState<DateType | null>(null, {\n        value: toRef(props, 'value'),\n        defaultValue: props.defaultValue,\n        postState: val => {\n          if (!val && defaultOpenValue?.value && props.picker === 'time') {\n            return defaultOpenValue.value;\n          }\n          return val;\n        },\n      });\n\n      // View date control\n      const [viewDate, setInnerViewDate] = useMergedState<DateType | null>(null, {\n        value: toRef(props, 'pickerValue'),\n        defaultValue: props.defaultPickerValue || mergedValue.value,\n        postState: date => {\n          const { generateConfig, showTime, defaultValue } = props;\n          const now = generateConfig.getNow();\n          if (!date) return now;\n          // When value is null and set showTime\n          if (!mergedValue.value && props.showTime) {\n            if (typeof showTime === 'object') {\n              return setDateTime(\n                generateConfig,\n                Array.isArray(date) ? date[0] : date,\n                showTime.defaultValue || now,\n              );\n            }\n            if (defaultValue) {\n              return setDateTime(\n                generateConfig,\n                Array.isArray(date) ? date[0] : date,\n                defaultValue,\n              );\n            }\n            return setDateTime(generateConfig, Array.isArray(date) ? date[0] : date, now);\n          }\n          return date;\n        },\n      });\n\n      const setViewDate = (date: DateType) => {\n        setInnerViewDate(date);\n        if (props.onPickerValueChange) {\n          props.onPickerValueChange(date);\n        }\n      };\n\n      // Panel control\n      const getInternalNextMode = (nextMode: PanelMode): PanelMode => {\n        const getNextMode = PickerModeMap[props.picker!];\n        if (getNextMode) {\n          return getNextMode(nextMode);\n        }\n\n        return nextMode;\n      };\n\n      // Save panel is changed from which panel\n      const [mergedMode, setInnerMode] = useMergedState(\n        () => {\n          if (props.picker === 'time') {\n            return 'time';\n          }\n          return getInternalNextMode('date');\n        },\n        {\n          value: toRef(props, 'mode'),\n        },\n      );\n      watch(\n        () => props.picker,\n        () => {\n          setInnerMode(props.picker);\n        },\n      );\n\n      const sourceMode = ref(mergedMode.value);\n      const setSourceMode = (val: PanelMode) => {\n        sourceMode.value = val;\n      };\n\n      const onInternalPanelChange = (newMode: PanelMode | null, viewValue: DateType) => {\n        const { onPanelChange, generateConfig } = props;\n        const nextMode = getInternalNextMode(newMode || mergedMode.value);\n        setSourceMode(mergedMode.value);\n        setInnerMode(nextMode);\n\n        if (\n          onPanelChange &&\n          (mergedMode.value !== nextMode || isEqual(generateConfig, viewDate.value, viewDate.value))\n        ) {\n          if (isArray(onPanelChange)) {\n            onPanelChange?.[1]?.(viewValue, nextMode);\n          }\n          if (isFunction(onPanelChange)) {\n            onPanelChange(viewValue, nextMode);\n          }\n        }\n      };\n\n      const triggerSelect = (\n        date: DateType,\n        type: 'key' | 'mouse' | 'submit',\n        forceTriggerSelect = false,\n      ) => {\n        const { picker, generateConfig, onSelect, onChange, disabledDate, pickerType } = props;\n        if (mergedMode.value === picker || forceTriggerSelect) {\n          setInnerValue(date);\n\n          if (onSelect) {\n            onSelect(date);\n          }\n\n          if (onContextSelect) {\n            onContextSelect(date, type);\n          }\n\n          if (\n            onChange &&\n            !isEqual(generateConfig, date, mergedValue.value) &&\n            !disabledDate?.(date)\n          ) {\n            if (isArray(onChange)) {\n              if (pickerType === 'rangePicker') {\n                return false\n              }\n              onChange?.[1]?.(date);\n            }\n            if (isFunction(onChange)) {\n              if (pickerType === 'rangePicker') {\n                return false\n              }\n              onChange(date);\n            }\n            // onChange(date);\n          }\n        }\n      };\n\n      // ========================= Interactive ==========================\n      const onInternalKeydown = (e: KeyboardEvent) => {\n        if (panelRef.value && panelRef.value.onKeydown) {\n          if (\n            [\n              KeyCode.LEFT,\n              KeyCode.RIGHT,\n              KeyCode.UP,\n              KeyCode.DOWN,\n              KeyCode.PAGE_UP,\n              KeyCode.PAGE_DOWN,\n              KeyCode.ENTER,\n            ].includes(e.which)\n          ) {\n            e.preventDefault();\n          }\n          return panelRef.value.onKeydown(e);\n        }\n\n        /* istanbul ignore next */\n        /* eslint-disable no-lone-blocks */\n        {\n          warning(\n            false,\n            'Panel not correct handle keyDown event. Please help to fire issue about this.',\n          );\n          return false;\n        }\n        /* eslint-enable no-lone-blocks */\n      };\n\n      const onInternalBlur = (e: FocusEvent) => {\n        if (panelRef.value && panelRef.value.onBlur) {\n          panelRef.value.onBlur(e);\n        }\n      };\n      const onNow = () => {\n        const { generateConfig, hourStep, minuteStep, secondStep } = props;\n        const now = generateConfig.getNow();\n        const lowerBoundTime = getLowerBoundTime(\n          generateConfig.getHour(now),\n          generateConfig.getMinute(now),\n          generateConfig.getSecond(now),\n          isHourStepValid.value ? hourStep : 1,\n          isMinuteStepValid.value ? minuteStep : 1,\n          isSecondStepValid.value ? secondStep : 1,\n        );\n        const adjustedNow = setTime(\n          generateConfig,\n          now,\n          lowerBoundTime[0], // hour\n          lowerBoundTime[1], // minute\n          lowerBoundTime[2], // second\n        );\n        triggerSelect(adjustedNow, 'submit');\n      };\n\n      const classString = computed(() => {\n        const { prefixCls, direction } = props;\n        return classNames(`${prefixCls}-panel`, {\n          [`${prefixCls}-panel-has-range`]:\n            rangedValue && rangedValue.value && rangedValue.value[0] && rangedValue.value[1],\n          [`${prefixCls}-panel-has-range-hover`]:\n            hoverRangedValue &&\n            hoverRangedValue.value &&\n            hoverRangedValue.value[0] &&\n            hoverRangedValue.value[1],\n          [`${prefixCls}-panel-rtl`]: direction === 'rtl',\n        });\n      });\n      useProvidePanel({\n        ...panelContext,\n        mode: mergedMode,\n        hideHeader: computed(() =>\n          props.hideHeader !== undefined ? props.hideHeader : panelContext.hideHeader?.value,\n        ),\n        hidePrevBtn: computed(() => inRange.value && panelPosition.value === 'right'),\n        hideNextBtn: computed(() => inRange.value && panelPosition.value === 'left'),\n      });\n\n      watch(\n        () => props.value,\n        () => {\n          if (props.value) {\n            setInnerViewDate(props.value);\n          }\n        },\n      );\n\n      return () => {\n        const {\n          prefixCls = 'scPicker',\n          locale,\n          generateConfig,\n          disabledDate,\n          picker = 'date',\n          tabindex = 0,\n          showNow,\n          showTime,\n          showToday,\n          renderExtraFooter,\n          onMousedown,\n          onOk,\n          components,\n        } = props;\n        if (operationRef && panelPosition.value !== 'right') {\n          operationRef.value = {\n            onKeydown: onInternalKeydown,\n            onClose: () => {\n              if (panelRef.value && panelRef.value.onClose) {\n                panelRef.value.onClose();\n              }\n            },\n          };\n        }\n\n        // ============================ Panels ============================\n        let panelNode: VueNode;\n        const pickerProps = {\n          ...attrs,\n          ...(props as MergedPickerPanelProps<DateType>),\n          operationRef: panelRef,\n          prefixCls,\n          viewDate: viewDate.value,\n          value: mergedValue.value,\n          onViewDateChange: setViewDate,\n          sourceMode: sourceMode.value,\n          onPanelChange: onInternalPanelChange,\n          disabledDate,\n        };\n        // if (props.pickerType === '')\n        delete pickerProps.onChange;\n        delete pickerProps.onSelect;\n        switch (mergedMode.value) {\n          case 'decade':\n            panelNode = (\n              <DecadePanel<DateType>\n                {...pickerProps}\n                onSelect={(date, type) => {\n                  setViewDate(date);\n                  triggerSelect(date, type);\n                }}\n              />\n            );\n            break;\n\n          case 'year':\n            panelNode = (\n              <YearPanel<DateType>\n                {...pickerProps}\n                onSelect={(date, type) => {\n                  setViewDate(date);\n                  triggerSelect(date, type);\n                }}\n              />\n            );\n            break;\n\n          case 'month':\n            panelNode = (\n              <MonthPanel<DateType>\n                {...pickerProps}\n                onSelect={(date, type) => {\n                  setViewDate(date);\n                  triggerSelect(date, type);\n                }}\n              />\n            );\n            break;\n\n          case 'quarter':\n            panelNode = (\n              <QuarterPanel<DateType>\n                {...pickerProps}\n                onSelect={(date, type) => {\n                  setViewDate(date);\n                  triggerSelect(date, type);\n                }}\n              />\n            );\n            break;\n\n          case 'week':\n            panelNode = (\n              <WeekPanel\n                {...pickerProps}\n                onSelect={(date, type) => {\n                  setViewDate(date);\n                  triggerSelect(date, type);\n                }}\n              />\n            );\n            break;\n\n          case 'time':\n            delete pickerProps.showTime;\n            panelNode = (\n              <TimePanel<DateType>\n                {...pickerProps}\n                {...(typeof showTime === 'object' ? showTime : null)}\n                onSelect={(date, type) => {\n                  setViewDate(date);\n                  triggerSelect(date, type);\n                }}\n              />\n            );\n            break;\n\n          default:\n            if (showTime) {\n              panelNode = (\n                <DatetimePanel\n                  {...pickerProps}\n                  onSelect={(date, type) => {\n                    setViewDate(date);\n                    triggerSelect(date, type);\n                  }}\n                />\n              );\n            } else {\n              panelNode = (\n                <DatePanel<DateType>\n                  {...pickerProps}\n                  onSelect={(date, type) => {\n                    setViewDate(date);\n                    triggerSelect(date, type);\n                  }}\n                />\n              );\n            }\n        }\n\n        // ============================ Footer ============================\n        let extraFooter: VueNode;\n        let rangesNode: VueNode;\n\n        if (!hideRanges?.value) {\n          extraFooter = getExtraFooter(prefixCls, mergedMode.value, renderExtraFooter);\n          rangesNode = getRanges({\n            prefixCls,\n            components,\n            needConfirmButton: needConfirmButton.value,\n            okDisabled: !mergedValue.value || (disabledDate && disabledDate(mergedValue.value)),\n            locale,\n            showNow,\n            onNow: needConfirmButton.value && onNow,\n            onOk: () => {\n              if (mergedValue.value) {\n                triggerSelect(mergedValue.value, 'submit', true);\n                if (onOk) {\n                  if (isArray(onOk)) {\n                    onOk?.[1]?.(mergedValue.value);\n                  }\n                  if (isFunction(onOk)) {\n                    onOk(mergedValue.value);\n                  }\n                }\n              }\n            },\n          });\n        }\n\n        let todayNode: VueNode;\n\n        if (showToday && mergedMode.value === 'date' && picker === 'date' && !showTime) {\n          const now = generateConfig.getNow();\n          const todayCls = `${prefixCls}-today-btn`;\n          const disabled = disabledDate && disabledDate(now);\n          todayNode = (\n            <a\n              class={classNames(todayCls, disabled && `${todayCls}-disabled`)}\n              aria-disabled={disabled}\n              onClick={() => {\n                if (!disabled) {\n                  triggerSelect(now, 'mouse', true);\n                }\n              }}\n            >\n              {locale.today}\n            </a>\n          );\n        }\n        return (\n          <div\n            tabindex={tabindex}\n            class={classNames(classString.value, attrs.class)}\n            style={attrs.style}\n            onKeydown={onInternalKeydown}\n            onBlur={onInternalBlur}\n            onMousedown={onMousedown}\n            ref={panelDivRef}\n          >\n            {panelNode}\n            {extraFooter || rangesNode || todayNode ? (\n              <div class={`${prefixCls}-footer`}>\n                {extraFooter}\n                {rangesNode}\n                {todayNode}\n              </div>\n            ) : null}\n          </div>\n        );\n      };\n    },\n  });\n}\nconst InterPickerPanel = PickerPanel<any>();\nexport default <DateType,>(props: MergedPickerPanelProps<DateType>): JSX.Element =>\n  createVNode(InterPickerPanel, props);\n","export default function contains(root: HTMLElement | null | undefined, n?: HTMLElement) {\n  if (!root) {\n    return false;\n  }\n\n  return root.contains(n);\n}\n","// @ts-nocheck\nconst availablePrefixs = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill() {\n  let lastTime = 0;\n  return function (callback) {\n    const currTime = new Date().getTime();\n    const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n    const id = window.setTimeout(function () {\n      callback(currTime + timeToCall);\n    }, timeToCall);\n    lastTime = currTime + timeToCall;\n    return id;\n  };\n}\n\nexport default function getRequestAnimationFrame() {\n  if (typeof window === 'undefined') {\n    return () => {};\n  }\n  if (window.requestAnimationFrame) {\n    // https://github.com/vuejs/vue/issues/4465\n    return window.requestAnimationFrame.bind(window);\n  }\n\n  const prefix = availablePrefixs.filter(key => `${key}RequestAnimationFrame` in window)[0];\n\n  return prefix ? window[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\n\nexport function cancelRequestAnimationFrame(id) {\n  if (typeof window === 'undefined') {\n    return null;\n  }\n  if (window.cancelAnimationFrame) {\n    return window.cancelAnimationFrame(id);\n  }\n  const prefix = availablePrefixs.filter(\n    key => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window,\n  )[0];\n\n  return prefix\n    ? (\n        window[`${prefix}CancelAnimationFrame`] || window[`${prefix}CancelRequestAnimationFrame`]\n      ).call(this, id)\n    : clearTimeout(id);\n}\n","// @ts-nocheck\nimport getRequestAnimationFrame, {\n  cancelRequestAnimationFrame as caf,\n} from './getRequestAnimationFrame';\nconst raf = getRequestAnimationFrame();\n\nexport const cancelAnimationTimeout = frame => caf(frame.id);\n\nexport const requestAnimationTimeout = (callback, delay = 0) => {\n  const start = Date.now();\n  function timeout() {\n    if (Date.now() - start >= delay) {\n      callback.call();\n    } else {\n      frame.id = raf(timeout);\n    }\n  }\n\n  const frame = {\n    id: raf(timeout),\n  };\n\n  return frame;\n};\n","import type { Point, AlignType, StretchType, MobileConfig } from '../interface';\nimport type { ExtractPropTypes, PropType } from 'vue';\n\nexport const innerProps = {\n  visible: Boolean,\n\n  prefixCls: String,\n  zIndex: Number,\n\n  destroyPopupOnHide: Boolean,\n  forceRender: Boolean,\n\n  // Legacy Motion\n  animation: [String, Object],\n  transitionName: String,\n\n  // Measure\n  stretch: { type: String as PropType<StretchType> },\n\n  // Align\n  align: { type: Object as PropType<AlignType> },\n  point: { type: Object as PropType<Point> },\n  getRootDomNode: { type: Function as PropType<() => HTMLElement> },\n  getClassNameFromAlign: { type: Function as PropType<(align: AlignType) => string> },\n  onMouseenter: { type: Function as PropType<(align: MouseEvent) => void> },\n  onMouseleave: { type: Function as PropType<(align: MouseEvent) => void> },\n  onMousedown: { type: Function as PropType<(align: MouseEvent) => void> },\n  onTouchstart: { type: Function as PropType<(align: MouseEvent) => void> },\n};\nexport type PopupInnerProps = Partial<ExtractPropTypes<typeof innerProps>> & {\n  align?: AlignType;\n};\n\nexport const mobileProps = {\n  ...innerProps,\n  mobile: { type: Object as PropType<MobileConfig> },\n};\n\nexport type MobilePopupProps = Partial<ExtractPropTypes<typeof mobileProps>> & {\n  align?: AlignType;\n  mobile: MobileConfig;\n};\n\nexport const popupProps = {\n  ...innerProps,\n  mask: Boolean,\n  mobile: { type: Object as PropType<MobileConfig> },\n  maskAnimation: String,\n  maskTransitionName: String,\n};\n\nexport type PopupProps = Partial<ExtractPropTypes<typeof popupProps>> & {\n  align?: AlignType;\n  mobile: MobileConfig;\n};\n","import type { AnimationType, TransitionNameType } from '../interface';\n\ninterface GetMotionProps {\n  animation: AnimationType;\n  transitionName: TransitionNameType;\n  prefixCls: string;\n}\n\nexport function getMotion({ prefixCls, animation, transitionName }: GetMotionProps) {\n  if (animation) {\n    return {\n      name: `${prefixCls}-${animation}`,\n    };\n  }\n\n  if (transitionName) {\n    return {\n      name: transitionName,\n    };\n  }\n  return {};\n}\n","import { Transition } from 'vue';\nimport type { TransitionNameType, AnimationType } from '../interface';\nimport { getMotion } from '../utils/motionUtil';\n\nexport interface MaskProps {\n  prefixCls: string;\n  visible?: boolean;\n  zIndex?: number;\n  mask?: boolean;\n  maskAnimation?: AnimationType;\n  maskTransitionName?: TransitionNameType;\n}\n\nexport default function Mask(props: MaskProps) {\n  const { prefixCls, visible, zIndex, mask, maskAnimation, maskTransitionName } = props;\n\n  if (!mask) {\n    return null;\n  }\n\n  let motion = {};\n\n  if (maskTransitionName || maskAnimation) {\n    motion = getMotion({\n      prefixCls,\n      transitionName: maskTransitionName,\n      animation: maskAnimation,\n    });\n  }\n\n  return (\n    <Transition appear {...motion}>\n      <div v-if={visible} style={{ zIndex }} class={`${prefixCls}-mask`} />\n    </Transition>\n  );\n}\nMask.displayName = 'Mask';\n","import type { CSSProperties } from 'vue';\nimport { defineComponent, ref, Transition } from 'vue';\nimport { flattenChildren } from '../../../utils/props-util';\nimport classNames from '../../../utils/classNames';\nimport type { MobilePopupProps } from './interface';\nimport { mobileProps } from './interface';\n\nexport default defineComponent({\n  name: 'MobilePopupInner',\n  inheritAttrs: false,\n  props: mobileProps,\n  emits: ['mouseenter', 'mouseleave', 'mousedown', 'touchstart', 'align'],\n  setup(props, { expose, slots }) {\n    const elementRef = ref<HTMLDivElement>();\n\n    expose({\n      forceAlign: () => {},\n      getElement: () => elementRef.value,\n    });\n\n    return () => {\n      const {\n        zIndex,\n        visible,\n        prefixCls,\n        mobile: { popupClassName, popupStyle, popupMotion = {}, popupRender } = {},\n      } = props as MobilePopupProps;\n      // ======================== Render ========================\n      const mergedStyle: CSSProperties = {\n        zIndex,\n        ...popupStyle,\n      };\n\n      let childNode: any = flattenChildren(slots.default?.());\n\n      // Wrapper when multiple children\n      if (childNode.length > 1) {\n        childNode = <div class={`${prefixCls}-content`}>{childNode}</div>;\n      }\n\n      // Mobile support additional render\n      if (popupRender) {\n        childNode = popupRender(childNode);\n      }\n\n      const mergedClassName = classNames(prefixCls, popupClassName);\n      return (\n        <Transition ref={elementRef} {...popupMotion}>\n          {visible ? (\n            <div class={mergedClassName} style={mergedStyle}>\n              {childNode}\n            </div>\n          ) : null}\n        </Transition>\n      );\n    };\n  },\n});\n","import type { Ref } from 'vue';\nimport { onBeforeUnmount, ref, watch, onMounted } from 'vue';\nimport raf from '../../../utils/raf';\n\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the value stretch size\n * align - let component align the position\n * aligned - re-align again in case additional className changed the size\n * afterAlign - choice next step is trigger motion or finished\n * beforeMotion - should reset motion to invisible so that CSSMotion can do normal motion\n * motion - play the motion\n * stable - everything is done\n */\ntype PopupStatus = null | 'measure' | 'align' | 'aligned' | 'motion' | 'stable';\n\ntype Func = () => void;\n\nconst StatusQueue: PopupStatus[] = ['measure', 'align', null, 'motion'];\n\nexport default (\n  visible: Ref<boolean>,\n  doMeasure: Func,\n): [Ref<PopupStatus>, (callback?: () => void) => void] => {\n  const status = ref<PopupStatus>(null);\n  const rafRef = ref<number>();\n  const destroyRef = ref(false);\n  function setStatus(nextStatus: PopupStatus) {\n    if (!destroyRef.value) {\n      status.value = nextStatus;\n    }\n  }\n\n  function cancelRaf() {\n    raf.cancel(rafRef.value);\n  }\n\n  function goNextStatus(callback?: () => void) {\n    cancelRaf();\n    rafRef.value = raf(() => {\n      // Only align should be manually trigger\n      let newStatus = status.value;\n      switch (status.value) {\n        case 'align':\n          newStatus = 'motion';\n          break;\n        case 'motion':\n          newStatus = 'stable';\n          break;\n        default:\n      }\n      setStatus(newStatus);\n\n      callback?.();\n    });\n  }\n\n  watch(\n    visible,\n    () => {\n      setStatus('measure');\n    },\n    { immediate: true, flush: 'post' },\n  );\n  onMounted(() => {\n    // Go next status\n    watch(\n      status,\n      () => {\n        switch (status.value) {\n          case 'measure':\n            doMeasure();\n            break;\n          default:\n        }\n\n        if (status.value) {\n          rafRef.value = raf(async () => {\n            const index = StatusQueue.indexOf(status.value);\n            const nextStatus = StatusQueue[index + 1];\n            if (nextStatus && index !== -1) {\n              setStatus(nextStatus);\n            }\n          });\n        }\n      },\n      { immediate: true, flush: 'post' },\n    );\n  });\n\n  onBeforeUnmount(() => {\n    destroyRef.value = true;\n    cancelRaf();\n  });\n\n  return [status, goNextStatus];\n};\n","import type { ComputedRef, CSSProperties, Ref } from 'vue';\nimport { computed, ref } from 'vue';\nimport type { StretchType } from '../interface';\n\nexport default (\n  stretch?: Ref<StretchType>,\n): [ComputedRef<CSSProperties>, (element: HTMLElement) => void] => {\n  const targetSize = ref({ width: 0, height: 0 });\n\n  function measureStretch(element: HTMLElement) {\n    targetSize.value = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n    };\n  }\n\n  // Merge stretch style\n  const style = computed(() => {\n    const sizeStyle: CSSProperties = {};\n\n    if (stretch.value) {\n      const { width, height } = targetSize.value;\n\n      // Stretch with target\n      if (stretch.value.indexOf('height') !== -1 && height) {\n        sizeStyle.height = `${height}px`;\n      } else if (stretch.value.indexOf('minHeight') !== -1 && height) {\n        sizeStyle.minHeight = `${height}px`;\n      }\n      if (stretch.value.indexOf('width') !== -1 && width) {\n        sizeStyle.width = `${width}px`;\n      } else if (stretch.value.indexOf('minWidth') !== -1 && width) {\n        sizeStyle.minWidth = `${width}px`;\n      }\n    }\n\n    return sizeStyle;\n  });\n\n  return [style, measureStretch];\n};\n","function ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n  Webkit: '-webkit-',\n  Moz: '-moz-',\n  // IE did it wrong again ...\n  ms: '-ms-',\n  O: '-o-'\n};\nfunction getVendorPrefix() {\n  if (vendorPrefix !== undefined) {\n    return vendorPrefix;\n  }\n  vendorPrefix = '';\n  var style = document.createElement('p').style;\n  var testProp = 'Transform';\n  for (var key in jsCssMap) {\n    if (key + testProp in style) {\n      vendorPrefix = key;\n    }\n  }\n  return vendorPrefix;\n}\nfunction getTransitionName() {\n  return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\nfunction getTransformName() {\n  return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n  var name = getTransitionName();\n  if (name) {\n    node.style[name] = value;\n    if (name !== 'transitionProperty') {\n      node.style.transitionProperty = value;\n    }\n  }\n}\nfunction setTransform(node, value) {\n  var name = getTransformName();\n  if (name) {\n    node.style[name] = value;\n    if (name !== 'transform') {\n      node.style.transform = value;\n    }\n  }\n}\nfunction getTransitionProperty(node) {\n  return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n  var style = window.getComputedStyle(node, null);\n  var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n  if (transform && transform !== 'none') {\n    var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n    return {\n      x: parseFloat(matrix[12] || matrix[4], 0),\n      y: parseFloat(matrix[13] || matrix[5], 0)\n    };\n  }\n  return {\n    x: 0,\n    y: 0\n  };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n  var style = window.getComputedStyle(node, null);\n  var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n  if (transform && transform !== 'none') {\n    var arr;\n    var match2d = transform.match(matrix2d);\n    if (match2d) {\n      match2d = match2d[1];\n      arr = match2d.split(',').map(function (item) {\n        return parseFloat(item, 10);\n      });\n      arr[4] = xy.x;\n      arr[5] = xy.y;\n      setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n    } else {\n      var match3d = transform.match(matrix3d)[1];\n      arr = match3d.split(',').map(function (item) {\n        return parseFloat(item, 10);\n      });\n      arr[12] = xy.x;\n      arr[13] = xy.y;\n      setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n    }\n  } else {\n    setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n  }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n  var originalStyle = elem.style.display;\n  elem.style.display = 'none';\n  elem.offsetHeight; // eslint-disable-line\n  elem.style.display = originalStyle;\n}\nfunction css(el, name, v) {\n  var value = v;\n  if (_typeof(name) === 'object') {\n    for (var i in name) {\n      if (name.hasOwnProperty(i)) {\n        css(el, i, name[i]);\n      }\n    }\n    return undefined;\n  }\n  if (typeof value !== 'undefined') {\n    if (typeof value === 'number') {\n      value = \"\".concat(value, \"px\");\n    }\n    el.style[name] = value;\n    return undefined;\n  }\n  return getComputedStyleX(el, name);\n}\nfunction getClientPosition(elem) {\n  var box;\n  var x;\n  var y;\n  var doc = elem.ownerDocument;\n  var body = doc.body;\n  var docElem = doc && doc.documentElement;\n  // 根据 GBS 最新数据，A-Grade Browsers 都已支持 getBoundingClientRect 方法，不用再考虑传统的实现方式\n  box = elem.getBoundingClientRect();\n\n  // 注：jQuery 还考虑减去 docElem.clientLeft/clientTop\n  // 但测试发现，这样反而会导致当 html 和 body 有边距/边框样式时，获取的值不正确\n  // 此外，ie6 会忽略 html 的 margin 值，幸运地是没有谁会去设置 html 的 margin\n\n  x = Math.floor(box.left);\n  y = Math.floor(box.top);\n\n  // In IE, most of the time, 2 extra pixels are added to the top and left\n  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and\n  // IE6 standards mode, this border can be overridden by setting the\n  // document element's border to zero -- thus, we cannot rely on the\n  // offset always being 2 pixels.\n\n  // In quirks mode, the offset can be determined by querying the body's\n  // clientLeft/clientTop, but in standards mode, it is found by querying\n  // the document element's clientLeft/clientTop.  Since we already called\n  // getClientBoundingRect we have already forced a reflow, so it is not\n  // too expensive just to query them all.\n\n  // ie 下应该减去窗口的边框吧，毕竟默认 absolute 都是相对窗口定位的\n  // 窗口边框标准是设 documentElement ,quirks 时设置 body\n  // 最好禁止在 body 和 html 上边框 ，但 ie < 9 html 默认有 2px ，减去\n  // 但是非 ie 不可能设置窗口边框，body html 也不是窗口 ,ie 可以通过 html,body 设置\n  // 标准 ie 下 docElem.clientTop 就是 border-top\n  // ie7 html 即窗口边框改变不了。永远为 2\n  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框，即使设了 border-top 也为 0\n\n  x -= docElem.clientLeft || body.clientLeft || 0;\n  y -= docElem.clientTop || body.clientTop || 0;\n  return {\n    left: x,\n    top: y\n  };\n}\nfunction getScroll(w, top) {\n  var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n  var method = \"scroll\".concat(top ? 'Top' : 'Left');\n  if (typeof ret !== 'number') {\n    var d = w.document;\n    // ie6,7,8 standard mode\n    ret = d.documentElement[method];\n    if (typeof ret !== 'number') {\n      // quirks mode\n      ret = d.body[method];\n    }\n  }\n  return ret;\n}\nfunction getScrollLeft(w) {\n  return getScroll(w);\n}\nfunction getScrollTop(w) {\n  return getScroll(w, true);\n}\nfunction getOffset(el) {\n  var pos = getClientPosition(el);\n  var doc = el.ownerDocument;\n  var w = doc.defaultView || doc.parentWindow;\n  pos.left += getScrollLeft(w);\n  pos.top += getScrollTop(w);\n  return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n  // must use == for ie8\n  /* eslint eqeqeq:0 */\n  return obj !== null && obj !== undefined && obj == obj.window;\n}\nfunction getDocument(node) {\n  if (isWindow(node)) {\n    return node.document;\n  }\n  if (node.nodeType === 9) {\n    return node;\n  }\n  return node.ownerDocument;\n}\nfunction _getComputedStyle(elem, name, cs) {\n  var computedStyle = cs;\n  var val = '';\n  var d = getDocument(elem);\n  computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n  // https://github.com/kissyteam/kissy/issues/61\n  if (computedStyle) {\n    val = computedStyle.getPropertyValue(name) || computedStyle[name];\n  }\n  return val;\n}\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\nfunction _getComputedStyleIE(elem, name) {\n  // currentStyle maybe null\n  // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n  // 当 width/height 设置为百分比时，通过 pixelLeft 方式转换的 width/height 值\n  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n  // 在 ie 下不对，需要直接用 offset 方式\n  // borderWidth 等值也有问题，但考虑到 borderWidth 设为百分比的概率很小，这里就不考虑了\n\n  // From the awesome hack by Dean Edwards\n  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n  // If we're not dealing with a regular pixel number\n  // but a number that has a weird ending, we need to convert it to pixels\n  // exclude left right for relativity\n  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n    // Remember the original values\n    var style = elem.style;\n    var left = style[LEFT];\n    var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n    // prevent flashing of content\n    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n    // Put in the new values to get a computed value out\n    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n    ret = style.pixelLeft + PX;\n\n    // Revert the changed values\n    style[LEFT] = left;\n    elem[RUNTIME_STYLE][LEFT] = rsLeft;\n  }\n  return ret === '' ? 'auto' : ret;\n}\nif (typeof window !== 'undefined') {\n  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\nfunction getOffsetDirection(dir, option) {\n  if (dir === 'left') {\n    return option.useCssRight ? 'right' : dir;\n  }\n  return option.useCssBottom ? 'bottom' : dir;\n}\nfunction oppositeOffsetDirection(dir) {\n  if (dir === 'left') {\n    return 'right';\n  } else if (dir === 'right') {\n    return 'left';\n  } else if (dir === 'top') {\n    return 'bottom';\n  } else if (dir === 'bottom') {\n    return 'top';\n  }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n  // set position first, in-case top/left are set even on static elem\n  if (css(elem, 'position') === 'static') {\n    elem.style.position = 'relative';\n  }\n  var presetH = -999;\n  var presetV = -999;\n  var horizontalProperty = getOffsetDirection('left', option);\n  var verticalProperty = getOffsetDirection('top', option);\n  var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n  var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n  if (horizontalProperty !== 'left') {\n    presetH = 999;\n  }\n  if (verticalProperty !== 'top') {\n    presetV = 999;\n  }\n  var originalTransition = '';\n  var originalOffset = getOffset(elem);\n  if ('left' in offset || 'top' in offset) {\n    originalTransition = getTransitionProperty(elem) || '';\n    setTransitionProperty(elem, 'none');\n  }\n  if ('left' in offset) {\n    elem.style[oppositeHorizontalProperty] = '';\n    elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n  }\n  if ('top' in offset) {\n    elem.style[oppositeVerticalProperty] = '';\n    elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n  }\n  // force relayout\n  forceRelayout(elem);\n  var old = getOffset(elem);\n  var originalStyle = {};\n  for (var key in offset) {\n    if (offset.hasOwnProperty(key)) {\n      var dir = getOffsetDirection(key, option);\n      var preset = key === 'left' ? presetH : presetV;\n      var off = originalOffset[key] - old[key];\n      if (dir === key) {\n        originalStyle[dir] = preset + off;\n      } else {\n        originalStyle[dir] = preset - off;\n      }\n    }\n  }\n  css(elem, originalStyle);\n  // force relayout\n  forceRelayout(elem);\n  if ('left' in offset || 'top' in offset) {\n    setTransitionProperty(elem, originalTransition);\n  }\n  var ret = {};\n  for (var _key in offset) {\n    if (offset.hasOwnProperty(_key)) {\n      var _dir = getOffsetDirection(_key, option);\n      var _off = offset[_key] - originalOffset[_key];\n      if (_key === _dir) {\n        ret[_dir] = originalStyle[_dir] + _off;\n      } else {\n        ret[_dir] = originalStyle[_dir] - _off;\n      }\n    }\n  }\n  css(elem, ret);\n}\nfunction setTransform$1(elem, offset) {\n  var originalOffset = getOffset(elem);\n  var originalXY = getTransformXY(elem);\n  var resultXY = {\n    x: originalXY.x,\n    y: originalXY.y\n  };\n  if ('left' in offset) {\n    resultXY.x = originalXY.x + offset.left - originalOffset.left;\n  }\n  if ('top' in offset) {\n    resultXY.y = originalXY.y + offset.top - originalOffset.top;\n  }\n  setTransformXY(elem, resultXY);\n}\nfunction setOffset(elem, offset, option) {\n  if (option.ignoreShake) {\n    var oriOffset = getOffset(elem);\n    var oLeft = oriOffset.left.toFixed(0);\n    var oTop = oriOffset.top.toFixed(0);\n    var tLeft = offset.left.toFixed(0);\n    var tTop = offset.top.toFixed(0);\n    if (oLeft === tLeft && oTop === tTop) {\n      return;\n    }\n  }\n  if (option.useCssRight || option.useCssBottom) {\n    setLeftTop(elem, offset, option);\n  } else if (option.useCssTransform && getTransformName() in document.body.style) {\n    setTransform$1(elem, offset);\n  } else {\n    setLeftTop(elem, offset, option);\n  }\n}\nfunction each(arr, fn) {\n  for (var i = 0; i < arr.length; i++) {\n    fn(arr[i]);\n  }\n}\nfunction isBorderBoxFn(elem) {\n  return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\nfunction swap(elem, options, callback) {\n  var old = {};\n  var style = elem.style;\n  var name;\n\n  // Remember the old values, and insert the new ones\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      old[name] = style[name];\n      style[name] = options[name];\n    }\n  }\n  callback.call(elem);\n\n  // Revert the old values\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      style[name] = old[name];\n    }\n  }\n}\nfunction getPBMWidth(elem, props, which) {\n  var value = 0;\n  var prop;\n  var j;\n  var i;\n  for (j = 0; j < props.length; j++) {\n    prop = props[j];\n    if (prop) {\n      for (i = 0; i < which.length; i++) {\n        var cssProp = void 0;\n        if (prop === 'border') {\n          cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n        } else {\n          cssProp = prop + which[i];\n        }\n        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n      }\n    }\n  }\n  return value;\n}\nvar domUtils = {\n  getParent: function getParent(element) {\n    var parent = element;\n    do {\n      if (parent.nodeType === 11 && parent.host) {\n        parent = parent.host;\n      } else {\n        parent = parent.parentNode;\n      }\n    } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n    return parent;\n  }\n};\neach(['Width', 'Height'], function (name) {\n  domUtils[\"doc\".concat(name)] = function (refWin) {\n    var d = refWin.document;\n    return Math.max(\n    // firefox chrome documentElement.scrollHeight< body.scrollHeight\n    // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n    d.documentElement[\"scroll\".concat(name)],\n    // quirks : documentElement.scrollHeight 最大等于可视窗口多一点？\n    d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n  };\n  domUtils[\"viewport\".concat(name)] = function (win) {\n    // pc browser includes scrollbar in window.innerWidth\n    var prop = \"client\".concat(name);\n    var doc = win.document;\n    var body = doc.body;\n    var documentElement = doc.documentElement;\n    var documentElementProp = documentElement[prop];\n    // 标准模式取 documentElement\n    // backcompat 取 body\n    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n  };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra]  'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n  var extra = ex;\n  if (isWindow(elem)) {\n    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n  } else if (elem.nodeType === 9) {\n    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n  }\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n  var borderBoxValue = name === 'width' ? Math.floor(elem.getBoundingClientRect().width) : Math.floor(elem.getBoundingClientRect().height);\n  var isBorderBox = isBorderBoxFn(elem);\n  var cssBoxValue = 0;\n  if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n    borderBoxValue = undefined;\n    // Fall back to computed then un computed css if necessary\n    cssBoxValue = getComputedStyleX(elem, name);\n    if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n      cssBoxValue = elem.style[name] || 0;\n    }\n    // Normalize '', auto, and prepare for extra\n    cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n  }\n  if (extra === undefined) {\n    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n  }\n  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n  var val = borderBoxValue || cssBoxValue;\n  if (extra === CONTENT_INDEX) {\n    if (borderBoxValueOrIsBorderBox) {\n      return val - getPBMWidth(elem, ['border', 'padding'], which);\n    }\n    return cssBoxValue;\n  } else if (borderBoxValueOrIsBorderBox) {\n    if (extra === BORDER_INDEX) {\n      return val;\n    }\n    return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n  }\n  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\nvar cssShow = {\n  position: 'absolute',\n  visibility: 'hidden',\n  display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay() {\n  for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n  var val;\n  var elem = args[0];\n  // in case elem is window\n  // elem.offsetWidth === undefined\n  if (elem.offsetWidth !== 0) {\n    val = getWH.apply(undefined, args);\n  } else {\n    swap(elem, cssShow, function () {\n      val = getWH.apply(undefined, args);\n    });\n  }\n  return val;\n}\neach(['width', 'height'], function (name) {\n  var first = name.charAt(0).toUpperCase() + name.slice(1);\n  domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n  };\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n  domUtils[name] = function (elem, v) {\n    var val = v;\n    if (val !== undefined) {\n      if (elem) {\n        var isBorderBox = isBorderBoxFn(elem);\n        if (isBorderBox) {\n          val += getPBMWidth(elem, ['padding', 'border'], which);\n        }\n        return css(elem, name, val);\n      }\n      return undefined;\n    }\n    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n  };\n});\nfunction mix(to, from) {\n  for (var i in from) {\n    if (from.hasOwnProperty(i)) {\n      to[i] = from[i];\n    }\n  }\n  return to;\n}\nvar utils = {\n  getWindow: function getWindow(node) {\n    if (node && node.document && node.setTimeout) {\n      return node;\n    }\n    var doc = node.ownerDocument || node;\n    return doc.defaultView || doc.parentWindow;\n  },\n  getDocument: getDocument,\n  offset: function offset(el, value, option) {\n    if (typeof value !== 'undefined') {\n      setOffset(el, value, option || {});\n    } else {\n      return getOffset(el);\n    }\n  },\n  isWindow: isWindow,\n  each: each,\n  css: css,\n  clone: function clone(obj) {\n    var i;\n    var ret = {};\n    for (i in obj) {\n      if (obj.hasOwnProperty(i)) {\n        ret[i] = obj[i];\n      }\n    }\n    var overflow = obj.overflow;\n    if (overflow) {\n      for (i in obj) {\n        if (obj.hasOwnProperty(i)) {\n          ret.overflow[i] = obj.overflow[i];\n        }\n      }\n    }\n    return ret;\n  },\n  mix: mix,\n  getWindowScrollLeft: function getWindowScrollLeft(w) {\n    return getScrollLeft(w);\n  },\n  getWindowScrollTop: function getWindowScrollTop(w) {\n    return getScrollTop(w);\n  },\n  merge: function merge() {\n    var ret = {};\n    for (var i = 0; i < arguments.length; i++) {\n      utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n    }\n    return ret;\n  },\n  viewportWidth: 0,\n  viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nvar getParent = utils.getParent;\nfunction getOffsetParent(element) {\n  if (utils.isWindow(element) || element.nodeType === 9) {\n    return null;\n  }\n  // ie 这个也不是完全可行\n  /*\n   <div style=\"width: 50px;height: 100px;overflow: hidden\">\n   <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n   元素 6 高 100px 宽 50px<br/>\n   </div>\n   </div>\n   */\n  // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n  //  In other browsers it only includes elements with position absolute, relative or\n  // fixed, not elements with overflow set to auto or scroll.\n  //        if (UA.ie && ieMode < 8) {\n  //            return element.offsetParent;\n  //        }\n  // 统一的 offsetParent 方法\n  var doc = utils.getDocument(element);\n  var body = doc.body;\n  var parent;\n  var positionStyle = utils.css(element, 'position');\n  var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n  if (!skipStatic) {\n    return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n  }\n  for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n    positionStyle = utils.css(parent, 'position');\n    if (positionStyle !== 'static') {\n      return parent;\n    }\n  }\n  return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n  if (utils.isWindow(element) || element.nodeType === 9) {\n    return false;\n  }\n  var doc = utils.getDocument(element);\n  var body = doc.body;\n  var parent = null;\n  for (parent = getParent$1(element);\n  // 修复元素位于 document.documentElement 下导致崩溃问题\n  parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n    var positionStyle = utils.css(parent, 'position');\n    if (positionStyle === 'fixed') {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n  var visibleRect = {\n    left: 0,\n    right: Infinity,\n    top: 0,\n    bottom: Infinity\n  };\n  var el = getOffsetParent(element);\n  var doc = utils.getDocument(element);\n  var win = doc.defaultView || doc.parentWindow;\n  var body = doc.body;\n  var documentElement = doc.documentElement;\n\n  // Determine the size of the visible rect by climbing the dom accounting for\n  // all scrollable containers.\n  while (el) {\n    // clientWidth is zero for inline block elements in ie.\n    if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n    // body may have overflow set on it, yet we still get the entire\n    // viewport. In some browsers, el.offsetParent may be\n    // document.documentElement, so check for that too.\n    el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n      var pos = utils.offset(el);\n      // add border\n      pos.left += el.clientLeft;\n      pos.top += el.clientTop;\n      visibleRect.top = Math.max(visibleRect.top, pos.top);\n      visibleRect.right = Math.min(visibleRect.right,\n      // consider area without scrollBar\n      pos.left + el.clientWidth);\n      visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n      visibleRect.left = Math.max(visibleRect.left, pos.left);\n    } else if (el === body || el === documentElement) {\n      break;\n    }\n    el = getOffsetParent(el);\n  }\n\n  // Set element position to fixed\n  // make sure absolute element itself don't affect it's visible area\n  // https://github.com/ant-design/ant-design/issues/7601\n  var originalPosition = null;\n  if (!utils.isWindow(element) && element.nodeType !== 9) {\n    originalPosition = element.style.position;\n    var position = utils.css(element, 'position');\n    if (position === 'absolute') {\n      element.style.position = 'fixed';\n    }\n  }\n  var scrollX = utils.getWindowScrollLeft(win);\n  var scrollY = utils.getWindowScrollTop(win);\n  var viewportWidth = utils.viewportWidth(win);\n  var viewportHeight = utils.viewportHeight(win);\n  var documentWidth = documentElement.scrollWidth;\n  var documentHeight = documentElement.scrollHeight;\n\n  // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n  // We should cut this ourself.\n  var bodyStyle = window.getComputedStyle(body);\n  if (bodyStyle.overflowX === 'hidden') {\n    documentWidth = win.innerWidth;\n  }\n  if (bodyStyle.overflowY === 'hidden') {\n    documentHeight = win.innerHeight;\n  }\n\n  // Reset element position after calculate the visible area\n  if (element.style) {\n    element.style.position = originalPosition;\n  }\n  if (alwaysByViewport || isAncestorFixed(element)) {\n    // Clip by viewport's size.\n    visibleRect.left = Math.max(visibleRect.left, scrollX);\n    visibleRect.top = Math.max(visibleRect.top, scrollY);\n    visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n    visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n  } else {\n    // Clip by document's size.\n    var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n    visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n    var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n    visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n  }\n  return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n  var pos = utils.clone(elFuturePos);\n  var size = {\n    width: elRegion.width,\n    height: elRegion.height\n  };\n  if (overflow.adjustX && pos.left < visibleRect.left) {\n    pos.left = visibleRect.left;\n  }\n\n  // Left edge inside and right edge outside viewport, try to resize it.\n  if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n    size.width -= pos.left + size.width - visibleRect.right;\n  }\n\n  // Right edge outside viewport, try to move it.\n  if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n    // 保证左边界和可视区域左边界对齐\n    pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n  }\n\n  // Top edge outside viewport, try to move it.\n  if (overflow.adjustY && pos.top < visibleRect.top) {\n    pos.top = visibleRect.top;\n  }\n\n  // Top edge inside and bottom edge outside viewport, try to resize it.\n  if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n    size.height -= pos.top + size.height - visibleRect.bottom;\n  }\n\n  // Bottom edge outside viewport, try to move it.\n  if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n    // 保证上边界和可视区域上边界对齐\n    pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n  }\n  return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n  var offset;\n  var w;\n  var h;\n  if (!utils.isWindow(node) && node.nodeType !== 9) {\n    offset = utils.offset(node);\n    w = utils.outerWidth(node);\n    h = utils.outerHeight(node);\n  } else {\n    var win = utils.getWindow(node);\n    offset = {\n      left: utils.getWindowScrollLeft(win),\n      top: utils.getWindowScrollTop(win)\n    };\n    w = utils.viewportWidth(win);\n    h = utils.viewportHeight(win);\n  }\n  offset.width = w;\n  offset.height = h;\n  return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n  var V = align.charAt(0);\n  var H = align.charAt(1);\n  var w = region.width;\n  var h = region.height;\n  var x = region.left;\n  var y = region.top;\n  if (V === 'c') {\n    y += h / 2;\n  } else if (V === 'b') {\n    y += h;\n  }\n  if (H === 'c') {\n    x += w / 2;\n  } else if (H === 'r') {\n    x += w;\n  }\n  return {\n    left: x,\n    top: y\n  };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n  var p1 = getAlignOffset(refNodeRegion, points[1]);\n  var p2 = getAlignOffset(elRegion, points[0]);\n  var diff = [p2.left - p1.left, p2.top - p1.top];\n  return {\n    left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n    top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n  };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\nfunction flip(points, reg, map) {\n  var ret = [];\n  utils.each(points, function (p) {\n    ret.push(p.replace(reg, function (m) {\n      return map[m];\n    }));\n  });\n  return ret;\n}\nfunction flipOffset(offset, index) {\n  offset[index] = -offset[index];\n  return offset;\n}\nfunction convertOffset(str, offsetLen) {\n  var n;\n  if (/%$/.test(str)) {\n    n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n  } else {\n    n = parseInt(str, 10);\n  }\n  return n || 0;\n}\nfunction normalizeOffset(offset, el) {\n  offset[0] = convertOffset(offset[0], el.width);\n  offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n  var points = align.points;\n  var offset = align.offset || [0, 0];\n  var targetOffset = align.targetOffset || [0, 0];\n  var overflow = align.overflow;\n  var source = align.source || el;\n  offset = [].concat(offset);\n  targetOffset = [].concat(targetOffset);\n  overflow = overflow || {};\n  var newOverflowCfg = {};\n  var fail = 0;\n  var alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n  // 当前节点可以被放置的显示区域\n  var visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n  // 当前节点所占的区域, left/top/width/height\n  var elRegion = getRegion(source);\n  // 将 offset 转换成数值，支持百分比\n  normalizeOffset(offset, elRegion);\n  normalizeOffset(targetOffset, tgtRegion);\n  // 当前节点将要被放置的位置\n  var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n  // 当前节点将要所处的区域\n  var newElRegion = utils.merge(elRegion, elFuturePos);\n\n  // 如果可视区域不能完全放置当前节点时允许调整\n  if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n    if (overflow.adjustX) {\n      // 如果横向不能放下\n      if (isFailX(elFuturePos, elRegion, visibleRect)) {\n        // 对齐位置反下\n        var newPoints = flip(points, /[lr]/gi, {\n          l: 'r',\n          r: 'l'\n        });\n        // 偏移量也反下\n        var newOffset = flipOffset(offset, 0);\n        var newTargetOffset = flipOffset(targetOffset, 0);\n        var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n        if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n          fail = 1;\n          points = newPoints;\n          offset = newOffset;\n          targetOffset = newTargetOffset;\n        }\n      }\n    }\n    if (overflow.adjustY) {\n      // 如果纵向不能放下\n      if (isFailY(elFuturePos, elRegion, visibleRect)) {\n        // 对齐位置反下\n        var _newPoints = flip(points, /[tb]/gi, {\n          t: 'b',\n          b: 't'\n        });\n        // 偏移量也反下\n        var _newOffset = flipOffset(offset, 1);\n        var _newTargetOffset = flipOffset(targetOffset, 1);\n        var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n        if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n          fail = 1;\n          points = _newPoints;\n          offset = _newOffset;\n          targetOffset = _newTargetOffset;\n        }\n      }\n    }\n\n    // 如果失败，重新计算当前节点将要被放置的位置\n    if (fail) {\n      elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n      utils.mix(newElRegion, elFuturePos);\n    }\n    var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n    var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n    // 检查反下后的位置是否可以放下了，如果仍然放不下：\n    // 1. 复原修改过的定位参数\n    if (isStillFailX || isStillFailY) {\n      var _newPoints2 = points;\n\n      // 重置对应部分的翻转逻辑\n      if (isStillFailX) {\n        _newPoints2 = flip(points, /[lr]/gi, {\n          l: 'r',\n          r: 'l'\n        });\n      }\n      if (isStillFailY) {\n        _newPoints2 = flip(points, /[tb]/gi, {\n          t: 'b',\n          b: 't'\n        });\n      }\n      points = _newPoints2;\n      offset = align.offset || [0, 0];\n      targetOffset = align.targetOffset || [0, 0];\n    }\n    // 2. 只有指定了可以调整当前方向才调整\n    newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n    newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n    // 确实要调整，甚至可能会调整高度宽度\n    if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n      newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n    }\n  }\n\n  // need judge to in case set fixed with in css on height auto element\n  if (newElRegion.width !== elRegion.width) {\n    utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n  }\n  if (newElRegion.height !== elRegion.height) {\n    utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n  }\n\n  // https://github.com/kissyteam/kissy/issues/190\n  // 相对于屏幕位置没变，而 left/top 变了\n  // 例如 <div 'relative'><el absolute></div>\n  utils.offset(source, {\n    left: newElRegion.left,\n    top: newElRegion.top\n  }, {\n    useCssRight: align.useCssRight,\n    useCssBottom: align.useCssBottom,\n    useCssTransform: align.useCssTransform,\n    ignoreShake: align.ignoreShake\n  });\n  return {\n    points: points,\n    offset: offset,\n    targetOffset: targetOffset,\n    overflow: newOverflowCfg\n  };\n}\n/**\n *  2012-04-26 yiminghe@gmail.com\n *   - 优化智能对齐算法\n *   - 慎用 resizeXX\n *\n *  2011-07-13 yiminghe@gmail.com note:\n *   - 增加智能对齐，以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n  var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n  var targetRegion = getRegion(target);\n  return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\nfunction alignElement(el, refNode, align) {\n  var target = align.target || refNode;\n  var refNodeRegion = getRegion(target);\n  var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n  return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n  var pageX;\n  var pageY;\n  var doc = utils.getDocument(el);\n  var win = doc.defaultView || doc.parentWindow;\n  var scrollX = utils.getWindowScrollLeft(win);\n  var scrollY = utils.getWindowScrollTop(win);\n  var viewportWidth = utils.viewportWidth(win);\n  var viewportHeight = utils.viewportHeight(win);\n  if ('pageX' in tgtPoint) {\n    pageX = tgtPoint.pageX;\n  } else {\n    pageX = scrollX + tgtPoint.clientX;\n  }\n  if ('pageY' in tgtPoint) {\n    pageY = tgtPoint.pageY;\n  } else {\n    pageY = scrollY + tgtPoint.clientY;\n  }\n  var tgtRegion = {\n    left: pageX,\n    top: pageY,\n    width: 0,\n    height: 0\n  };\n  var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight;\n\n  // Provide default target point\n  var points = [align.points[0], 'cc'];\n  return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n    points: points\n  }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","import contains from '../../utils/dom/contains';\nimport type { TargetPoint } from './interface';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nexport function isSamePoint(prev: TargetPoint, next: TargetPoint) {\n  if (prev === next) return true;\n  if (!prev || !next) return false;\n\n  if ('pageX' in next && 'pageY' in next) {\n    return prev.pageX === next.pageX && prev.pageY === next.pageY;\n  }\n\n  if ('clientX' in next && 'clientY' in next) {\n    return prev.clientX === next.clientX && prev.clientY === next.clientY;\n  }\n\n  return false;\n}\n\nexport function restoreFocus(activeElement, container) {\n  // Focus back if is in the container\n  if (\n    activeElement !== document.activeElement &&\n    contains(container, activeElement) &&\n    typeof activeElement.focus === 'function'\n  ) {\n    activeElement.focus();\n  }\n}\n\nexport function monitorResize(element: HTMLElement, callback: Function) {\n  let prevWidth: number = null;\n  let prevHeight: number = null;\n\n  function onResize([{ target }]: ResizeObserverEntry[]) {\n    if (!document.documentElement.contains(target)) return;\n    const { width, height } = target.getBoundingClientRect();\n    const fixedWidth = Math.floor(width);\n    const fixedHeight = Math.floor(height);\n\n    if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n      // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n      Promise.resolve().then(() => {\n        callback({ width: fixedWidth, height: fixedHeight });\n      });\n    }\n\n    prevWidth = fixedWidth;\n    prevHeight = fixedHeight;\n  }\n\n  const resizeObserver = new ResizeObserver(onResize);\n  if (element) {\n    resizeObserver.observe(element);\n  }\n\n  return () => {\n    resizeObserver.disconnect();\n  };\n}\n","import type { ComputedRef } from 'vue';\n\nexport default (callback: () => boolean, buffer: ComputedRef<number>) => {\n  let called = false;\n  let timeout = null;\n\n  function cancelTrigger() {\n    clearTimeout(timeout);\n  }\n\n  function trigger(force?: boolean) {\n    if (!called || force === true) {\n      if (callback() === false) {\n        // Not delay since callback cancelled self\n        return;\n      }\n\n      called = true;\n      cancelTrigger();\n      timeout = setTimeout(() => {\n        called = false;\n      }, buffer.value);\n    } else {\n      cancelTrigger();\n      timeout = setTimeout(() => {\n        called = false;\n        trigger();\n      }, buffer.value);\n    }\n  }\n\n  return [\n    trigger,\n    () => {\n      called = false;\n      cancelTrigger();\n    },\n  ];\n};\n","import type { PropType } from 'vue';\nimport {\n  nextTick,\n  defineComponent,\n  ref,\n  computed,\n  onMounted,\n  onUpdated,\n  watch,\n  onUnmounted,\n} from 'vue';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from '../../utils/dom/addEventListener';\nimport { cloneElement } from '../../utils/vnode';\nimport isVisible from '../../utils/dom/isVisible';\n\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport type { AlignType, AlignResult, TargetType, TargetPoint } from './interface';\nimport useBuffer from './hooks/useBuffer';\nimport lodash from 'lodash';\n\nconst { isEqual } = lodash\n\ntype OnAlign = (source: HTMLElement, result: AlignResult) => void;\n\nexport interface AlignProps {\n  align: AlignType;\n  target: TargetType;\n  onAlign?: OnAlign;\n  monitorBufferTime?: number;\n  monitorWindowResize?: boolean;\n  disabled?: boolean;\n}\n\nexport const alignProps = {\n  align: Object as PropType<AlignType>,\n  target: [Object, Function] as PropType<TargetType>,\n  onAlign: Function as PropType<OnAlign>,\n  monitorBufferTime: Number,\n  monitorWindowResize: Boolean,\n  disabled: Boolean,\n};\n\ninterface MonitorRef {\n  element?: HTMLElement;\n  cancel: () => void;\n}\n\nexport interface RefAlign {\n  forceAlign: () => void;\n}\n\nfunction getElement(func: TargetType) {\n  if (typeof func !== 'function') return null;\n  return func();\n}\n\nfunction getPoint(point: TargetType) {\n  if (typeof point !== 'object' || !point) return null;\n  return point;\n}\n\nexport default defineComponent({\n  name: 'Align',\n  props: alignProps,\n  emits: ['align'],\n  setup(props, { expose, slots }) {\n    const cacheRef = ref<{ element?: HTMLElement; point?: TargetPoint; align?: AlignType }>({});\n    const nodeRef = ref();\n    const [forceAlign, cancelForceAlign] = useBuffer(\n      () => {\n        const {\n          disabled: latestDisabled,\n          target: latestTarget,\n          align: latestAlign,\n          onAlign: latestOnAlign,\n        } = props;\n        if (!latestDisabled && latestTarget && nodeRef.value) {\n          const source = nodeRef.value;\n\n          let result: AlignResult;\n          const element = getElement(latestTarget);\n          const point = getPoint(latestTarget);\n\n          cacheRef.value.element = element;\n          cacheRef.value.point = point;\n          cacheRef.value.align = latestAlign;\n          // IE lose focus after element realign\n          // We should record activeElement and restore later\n          const { activeElement } = document;\n          // We only align when element is visible\n          if (element && isVisible(element)) {\n            result = alignElement(source, element, latestAlign);\n          } else if (point) {\n            result = alignPoint(source, point, latestAlign);\n          }\n          restoreFocus(activeElement, source);\n\n          if (latestOnAlign && result) {\n            latestOnAlign(source, result);\n          }\n\n          return true;\n        }\n\n        return false;\n      },\n      computed(() => props.monitorBufferTime),\n    );\n\n    // ===================== Effect =====================\n    // Listen for target updated\n    const resizeMonitor = ref<MonitorRef>({\n      cancel: () => {},\n    });\n    // Listen for source updated\n    const sourceResizeMonitor = ref<MonitorRef>({\n      cancel: () => {},\n    });\n\n    const goAlign = () => {\n      const target = props.target;\n      const element = getElement(target);\n      const point = getPoint(target);\n\n      if (nodeRef.value !== sourceResizeMonitor.value.element) {\n        sourceResizeMonitor.value.cancel();\n        sourceResizeMonitor.value.element = nodeRef.value;\n        sourceResizeMonitor.value.cancel = monitorResize(nodeRef.value, forceAlign);\n      }\n\n      if (\n        cacheRef.value.element !== element ||\n        !isSamePoint(cacheRef.value.point, point) ||\n        !isEqual(cacheRef.value.align, props.align)\n      ) {\n        forceAlign();\n\n        // Add resize observer\n        if (resizeMonitor.value.element !== element) {\n          resizeMonitor.value.cancel();\n          resizeMonitor.value.element = element;\n          resizeMonitor.value.cancel = monitorResize(element, forceAlign);\n        }\n      }\n    };\n\n    onMounted(() => {\n      nextTick(() => {\n        goAlign();\n      });\n    });\n\n    onUpdated(() => {\n      nextTick(() => {\n        goAlign();\n      });\n    });\n\n    // Listen for disabled change\n    watch(\n      () => props.disabled,\n      disabled => {\n        if (!disabled) {\n          forceAlign();\n        } else {\n          cancelForceAlign();\n        }\n      },\n      { immediate: true, flush: 'post' },\n    );\n\n    // Listen for window resize\n    const winResizeRef = ref<{ remove: Function }>(null);\n\n    watch(\n      () => props.monitorWindowResize,\n      monitorWindowResize => {\n        if (monitorWindowResize) {\n          if (!winResizeRef.value) {\n            winResizeRef.value = addEventListener(window, 'resize', forceAlign);\n          }\n        } else if (winResizeRef.value) {\n          winResizeRef.value.remove();\n          winResizeRef.value = null;\n        }\n      },\n      { flush: 'post' },\n    );\n    onUnmounted(() => {\n      resizeMonitor.value.cancel();\n      sourceResizeMonitor.value.cancel();\n      if (winResizeRef.value) winResizeRef.value.remove();\n      cancelForceAlign();\n    });\n\n    expose({\n      forceAlign: () => forceAlign(true),\n    });\n\n    return () => {\n      const child = slots?.default();\n      if (child) {\n        return cloneElement(child[0], { ref: nodeRef }, true, true);\n      }\n      return null;\n    };\n  },\n});\n","import type {\n  BaseTransitionProps,\n  CSSProperties,\n  Ref,\n  TransitionGroupProps,\n  TransitionProps,\n} from 'vue';\nimport {\n  onUpdated,\n  getCurrentInstance,\n  defineComponent,\n  nextTick,\n  Transition as T,\n  TransitionGroup as TG,\n} from 'vue';\n\nexport const getTransitionProps = (transitionName: string, opt: TransitionProps = {}) => {\n  if (process.env.NODE_ENV === 'test') {\n    return opt;\n  }\n  const transitionProps: TransitionProps = transitionName\n    ? {\n        appear: true,\n        // type: 'animation',\n        // appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,\n        // appearActiveClass: `antdv-base-transtion`,\n        // appearToClass: `${transitionName}-appear ${transitionName}-appear-active`,\n        enterFromClass: `${transitionName}-enter ${transitionName}-enter-prepare`,\n        enterActiveClass: `${transitionName}-enter ${transitionName}-enter-prepare`,\n        enterToClass: `${transitionName}-enter ${transitionName}-enter-active`,\n        leaveFromClass: ` ${transitionName}-leave`,\n        leaveActiveClass: `${transitionName}-leave`,\n        leaveToClass: `${transitionName}-leave ${transitionName}-leave-active`,\n        ...opt,\n      }\n    : { css: false, ...opt };\n  return transitionProps;\n};\n\nexport const getTransitionGroupProps = (transitionName: string, opt: TransitionProps = {}) => {\n  const transitionProps: TransitionGroupProps = transitionName\n    ? {\n        appear: true,\n        // appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,\n        appearActiveClass: `${transitionName}`,\n        appearToClass: `${transitionName}-appear ${transitionName}-appear-active`,\n        enterFromClass: `${transitionName}-appear ${transitionName}-enter ${transitionName}-appear-prepare ${transitionName}-enter-prepare`,\n        enterActiveClass: `${transitionName}`,\n        enterToClass: `${transitionName}-enter ${transitionName}-appear ${transitionName}-appear-active ${transitionName}-enter-active`,\n        leaveActiveClass: `${transitionName} ${transitionName}-leave`,\n        leaveToClass: `${transitionName}-leave-active`,\n        ...opt,\n      }\n    : { css: false, ...opt };\n  return transitionProps;\n};\n\nlet Transition = T;\nlet TransitionGroup = TG;\n\nif (process.env.NODE_ENV === 'test') {\n  let warn = true;\n  Transition = defineComponent({\n    name: 'TransitionForTest',\n    inheritAttrs: false,\n    setup(_props, { slots, attrs }) {\n      const instance = getCurrentInstance();\n      if (warn) {\n        console.warn('application runing at test env, you should build use production env');\n        warn = false;\n      }\n      onUpdated(() => {\n        const child = instance.subTree.children[0];\n        if (child && child.dirs && child.dirs[0]) {\n          const value = child.dirs[0].value;\n          const oldValue = child.dirs[0].oldValue;\n          if (!value && value !== oldValue) {\n            nextTick(() => {\n              if (attrs.onAfterLeave) {\n                (attrs as any).onAfterLeave(instance.vnode.el);\n              }\n            });\n          }\n        }\n      });\n      return () => {\n        return slots.default?.();\n      };\n    },\n  }) as any;\n  TransitionGroup = defineComponent({\n    name: 'TransitionGroupForTest',\n    inheritAttrs: false,\n    props: ['tag', 'class'],\n    setup(props, { slots }) {\n      return () => {\n        const { tag: Tag, ...rest } = props;\n        const children = slots.default?.() || [];\n        if (Tag) {\n          return <Tag {...rest}>{children}</Tag>;\n        } else {\n          return children;\n        }\n      };\n    },\n  });\n}\n\nexport declare type MotionEvent = (TransitionEvent | AnimationEvent) & {\n  deadline?: boolean;\n};\n\nexport declare type MotionEventHandler = (element: Element, done?: () => void) => CSSProperties;\n\nexport declare type MotionEndEventHandler = (element: Element, done?: () => void) => boolean | void;\n\n// ================== Collapse Motion ==================\nconst getCollapsedHeight: MotionEventHandler = () => ({ height: 0, opacity: 0 });\nconst getRealHeight: MotionEventHandler = node => ({\n  height: `${node.scrollHeight}px`,\n  opacity: 1,\n});\nconst getCurrentHeight: MotionEventHandler = (node: any) => ({ height: `${node.offsetHeight}px` });\n// const skipOpacityTransition: MotionEndEventHandler = (_, event) =>\n//   (event as TransitionEvent).propertyName === 'height';\n\nexport interface CSSMotionProps extends Partial<BaseTransitionProps<Element>> {\n  name?: string;\n  css?: boolean;\n}\n\nconst collapseMotion = (\n  name = 'ant-motion-collapse',\n  style: Ref<CSSProperties>,\n  className: Ref<string>,\n): CSSMotionProps => {\n  return {\n    name,\n    appear: true,\n    css: true,\n    onBeforeEnter: node => {\n      className.value = name;\n      style.value = getCollapsedHeight(node);\n    },\n    onEnter: node => {\n      nextTick(() => {\n        style.value = getRealHeight(node);\n      });\n    },\n    onAfterEnter: () => {\n      className.value = '';\n      style.value = {};\n    },\n    onBeforeLeave: node => {\n      className.value = name;\n      style.value = getCurrentHeight(node);\n    },\n    onLeave: node => {\n      setTimeout(() => {\n        style.value = getCollapsedHeight(node);\n      });\n    },\n    onAfterLeave: () => {\n      className.value = '';\n      style.value = {};\n    },\n  };\n};\n\nconst getTransitionName = (rootPrefixCls: string, motion: string, transitionName?: string) => {\n  if (transitionName !== undefined) {\n    return transitionName;\n  }\n  return `${rootPrefixCls}-${motion}`;\n};\n\nexport { Transition, TransitionGroup, collapseMotion, getTransitionName };\n\nexport default Transition;\n","import type { AlignType } from '../interface';\nimport useVisibleStatus from './useVisibleStatus';\nimport useStretchStyle from './useStretchStyle';\nimport type { CSSProperties } from 'vue';\nimport { computed, defineComponent, ref, toRef, Transition, watch, withModifiers } from 'vue';\nimport type { RefAlign } from '../../align/Align';\nimport Align from '../../align/Align';\nimport { getMotion } from '../utils/motionUtil';\nimport { flattenChildren } from '../../../utils/props-util';\nimport classNames from '../../../utils/classNames';\nimport type { PopupInnerProps } from './interface';\nimport { innerProps } from './interface';\nimport { getTransitionProps } from '../../../utils/transition';\nimport supportsPassive from '../../../utils/supportsPassive';\n\nexport default defineComponent({\n  name: 'PopupInner',\n  inheritAttrs: false,\n  props: innerProps,\n  emits: ['mouseenter', 'mouseleave', 'mousedown', 'touchstart', 'align'],\n  setup(props, { expose, attrs, slots }) {\n    const alignRef = ref<RefAlign>();\n    const elementRef = ref<HTMLDivElement>();\n    const alignedClassName = ref<string>();\n    // ======================= Measure ========================\n    const [stretchStyle, measureStretchStyle] = useStretchStyle(toRef(props, 'stretch'));\n\n    const doMeasure = () => {\n      if (props.stretch) {\n        measureStretchStyle(props.getRootDomNode());\n      }\n    };\n    const visible = ref(false);\n    let timeoutId: any;\n    watch(\n      () => props.visible,\n      val => {\n        clearTimeout(timeoutId);\n        if (val) {\n          timeoutId = setTimeout(() => {\n            visible.value = props.visible;\n          });\n        } else {\n          visible.value = false;\n        }\n      },\n      { immediate: true },\n    );\n\n    // ======================== Status ========================\n    const [status, goNextStatus] = useVisibleStatus(visible, doMeasure);\n\n    // ======================== Aligns ========================\n    const prepareResolveRef = ref<(value?: unknown) => void>();\n\n    // `target` on `rc-align` can accept as a function to get the bind element or a point.\n    // ref: https://www.npmjs.com/package/rc-align\n    const getAlignTarget = () => {\n      if (props.point) {\n        return props.point;\n      }\n      return props.getRootDomNode;\n    };\n\n    const forceAlign = () => {\n      alignRef.value?.forceAlign();\n    };\n\n    const onInternalAlign = (popupDomNode: HTMLElement, matchAlign: AlignType) => {\n      const nextAlignedClassName = props.getClassNameFromAlign(matchAlign);\n      const preAlignedClassName = alignedClassName.value;\n      if (alignedClassName.value !== nextAlignedClassName) {\n        alignedClassName.value = nextAlignedClassName;\n      }\n      if (status.value === 'align') {\n        // Repeat until not more align needed\n        if (preAlignedClassName !== nextAlignedClassName) {\n          Promise.resolve().then(() => {\n            forceAlign();\n          });\n        } else {\n          goNextStatus(() => {\n            prepareResolveRef.value?.();\n          });\n        }\n\n        props.onAlign?.(popupDomNode, matchAlign);\n      }\n    };\n\n    // ======================== Motion ========================\n    const motion = computed(() => {\n      const m = typeof props.animation === 'object' ? props.animation : getMotion(props as any);\n      ['onAfterEnter', 'onAfterLeave'].forEach(eventName => {\n        const originFn = m[eventName];\n        m[eventName] = node => {\n          goNextStatus();\n          originFn?.(node);\n        };\n      });\n      return m;\n    });\n\n    const onShowPrepare = () => {\n      return new Promise(resolve => {\n        prepareResolveRef.value = resolve;\n      });\n    };\n\n    watch(\n      [motion, status],\n      () => {\n        if (!motion.value && status.value === 'motion') {\n          goNextStatus();\n        }\n      },\n      { immediate: true },\n    );\n\n    expose({\n      forceAlign,\n      getElement: () => {\n        return (elementRef.value as any).$el || elementRef.value;\n      },\n    });\n    const alignDisabled = computed(() => {\n      if ((props.align as any)?.points && (status.value === 'align' || status.value === 'stable')) {\n        return false;\n      }\n      return true;\n    });\n    return () => {\n      const {\n        zIndex,\n        align,\n        prefixCls,\n        destroyPopupOnHide,\n        onMouseenter,\n        onMouseleave,\n        onTouchstart = () => {},\n        onMousedown,\n      } = props as PopupInnerProps;\n      const statusValue = status.value;\n      // ======================== Render ========================\n      const mergedStyle: CSSProperties = {\n        ...stretchStyle.value,\n        zIndex,\n        opacity: statusValue === 'motion' || statusValue === 'stable' || !visible.value ? null : 0,\n        pointerEvents: statusValue === 'stable' ? null : 'none',\n        ...(attrs.style as object),\n      };\n\n      let childNode: any = flattenChildren(slots.default?.({ visible: props.visible }));\n\n      // Wrapper when multiple children\n      if (childNode.length > 1) {\n        childNode = <div class={`${prefixCls}-content`}>{childNode}</div>;\n      }\n      const mergedClassName = classNames(prefixCls, attrs.class, alignedClassName.value);\n      const hasAnimate = visible.value || !props.visible;\n      const transitionProps = hasAnimate ? getTransitionProps(motion.value.name, motion.value) : {};\n\n      return (\n        <Transition\n          ref={elementRef}\n          {...transitionProps}\n          onBeforeEnter={onShowPrepare}\n          v-slots={{\n            default: () => {\n              return !destroyPopupOnHide || props.visible ? (\n                <Align\n                  v-show={visible.value}\n                  target={getAlignTarget()}\n                  key=\"popup\"\n                  ref={alignRef}\n                  monitorWindowResize\n                  disabled={alignDisabled.value}\n                  align={align}\n                  onAlign={onInternalAlign}\n                  v-slots={{\n                    default: () => (\n                      <div\n                        class={mergedClassName}\n                        onMouseenter={onMouseenter}\n                        onMouseleave={onMouseleave}\n                        onMousedown={withModifiers(onMousedown, ['capture'])}\n                        {...{\n                          [supportsPassive ? 'onTouchstartPassive' : 'onTouchstart']: withModifiers(\n                            onTouchstart,\n                            ['capture'],\n                          ),\n                        }}\n                        style={mergedStyle}\n                      >\n                        {childNode}\n                      </div>\n                    ),\n                  }}\n                ></Align>\n              ) : null;\n            },\n          }}\n        ></Transition>\n      );\n    };\n  },\n});\n","import { defineComponent, ref, watch } from 'vue';\nimport { popupProps } from './interface';\nimport Mask from './Mask';\nimport MobilePopupInner from './MobilePopupInner';\nimport PopupInner from './PopupInner';\n\nexport default defineComponent({\n  name: 'Popup',\n  inheritAttrs: false,\n  props: popupProps,\n  setup(props, { attrs, slots, expose }) {\n    const innerVisible = ref(false);\n    const inMobile = ref(false);\n    const popupRef = ref();\n    watch(\n      [() => props.visible, () => props.mobile],\n      () => {\n        innerVisible.value = props.visible;\n        if (props.visible && props.mobile) {\n          inMobile.value = true;\n        }\n      },\n      { immediate: true, flush: 'post' },\n    );\n    expose({\n      forceAlign: () => {\n        popupRef.value?.forceAlign();\n      },\n      getElement: () => {\n        return popupRef.value?.getElement();\n      },\n    });\n    return () => {\n      const cloneProps = { ...props, ...attrs, visible: innerVisible.value };\n      const popupNode = inMobile.value ? (\n        <MobilePopupInner\n          {...cloneProps}\n          mobile={props.mobile}\n          ref={popupRef}\n          v-slots={{ default: slots.default }}\n        ></MobilePopupInner>\n      ) : (\n        <PopupInner {...cloneProps} ref={popupRef} v-slots={{ default: slots.default }} />\n      );\n\n      return (\n        <div>\n          <Mask {...cloneProps} />\n          {popupNode}\n        </div>\n      );\n    };\n  },\n});\n","import type { AlignType, BuildInPlacements, AlignPoint } from '../interface';\n\nfunction isPointsEq(a1: AlignPoint[], a2: AlignPoint[], isAlignPoint: boolean): boolean {\n  if (isAlignPoint) {\n    return a1[0] === a2[0];\n  }\n  return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(\n  builtinPlacements: BuildInPlacements,\n  placementStr: string,\n  align: AlignType,\n): AlignType {\n  const baseAlign = builtinPlacements[placementStr] || {};\n  return {\n    ...baseAlign,\n    ...align,\n  };\n}\n\nexport function getAlignPopupClassName(\n  builtinPlacements: BuildInPlacements,\n  prefixCls: string,\n  align: AlignType,\n  isAlignPoint: boolean,\n): string {\n  const { points } = align;\n\n  const placements = Object.keys(builtinPlacements);\n\n  for (let i = 0; i < placements.length; i += 1) {\n    const placement = placements[i];\n    if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n      return `${prefixCls}-placement-${placement}`;\n    }\n  }\n\n  return '';\n}\n","// @ts-nocheck\nimport { nextTick } from 'vue';\nimport { getOptionProps } from './props-util';\n\nexport default {\n  methods: {\n    setState(state = {}, callback) {\n      let newState = typeof state === 'function' ? state(this.$data, this.$props) : state;\n      if (this.getDerivedStateFromProps) {\n        const s = this.getDerivedStateFromProps(getOptionProps(this), {\n          ...this.$data,\n          ...newState,\n        });\n        if (s === null) {\n          return;\n        } else {\n          newState = { ...newState, ...(s || {}) };\n        }\n      }\n      Object.assign(this.$data, newState);\n      if (this._.isMounted) {\n        this.$forceUpdate();\n      }\n      nextTick(() => {\n        callback && callback();\n      });\n    },\n    __emit() {\n      // 直接调用事件，底层组件不需要vueTool记录events\n      const args = [].slice.call(arguments, 0);\n      let eventName = args[0];\n      eventName = `on${eventName[0].toUpperCase()}${eventName.substring(1)}`;\n      const event = this.$props[eventName] || this.$attrs[eventName];\n      if (args.length && event) {\n        if (Array.isArray(event)) {\n          for (let i = 0, l = event.length; i < l; i++) {\n            event[i](...args.slice(1));\n          }\n        } else {\n          event(...args.slice(1));\n        }\n      }\n    },\n  },\n};\n","import type { InjectionKey, Ref } from 'vue';\nimport { computed, inject, provide } from 'vue';\nexport interface TriggerContextProps {\n  setPortal: (val?: any) => void;\n  popPortal: boolean; // 将 portal 上传至父级元素渲染，不用考虑响应式\n}\nconst TriggerContextKey: InjectionKey<TriggerContextProps> = Symbol('TriggerContextKey');\nexport const useProviderTrigger = () => {\n  let portal = null;\n  provide(TriggerContextKey, {\n    setPortal(val) {\n      portal = val;\n    },\n    popPortal: true,\n  });\n  return () => {\n    return portal;\n  };\n};\n\nexport const useInjectTrigger = () => {\n  return inject(TriggerContextKey, { setPortal: () => {}, popPortal: false });\n};\n\nexport interface PortalContextProps {\n  shouldRender: Ref<boolean>;\n  inTriggerContext: boolean; // 仅处理 trigger 上下文的 portal\n}\nconst PortalContextKey: InjectionKey<PortalContextProps> = Symbol('PortalContextKey');\nexport const useProvidePortal = (instance: any, config = { inTriggerContext: true }) => {\n  provide(PortalContextKey, {\n    inTriggerContext: config.inTriggerContext,\n    shouldRender: computed(() => {\n      const { sPopupVisible, popupRef, forceRender, autoDestroy } = instance || {};\n      // if (popPortal) return true;\n      let shouldRender = false;\n      if (sPopupVisible || popupRef || forceRender) {\n        shouldRender = true;\n      }\n      if (!sPopupVisible && autoDestroy) {\n        shouldRender = false;\n      }\n      return shouldRender;\n    }),\n  });\n};\n\nexport const useInjectPortal = () => {\n  useProvidePortal({}, { inTriggerContext: false });\n  const portalContext = inject(PortalContextKey, {\n    shouldRender: computed(() => false),\n    inTriggerContext: false,\n  });\n  return {\n    shouldRender: computed(\n      () => portalContext.shouldRender.value || portalContext.inTriggerContext === false,\n    ),\n  };\n};\n","import { PropTypes } from './';\nimport {\n  defineComponent,\n  nextTick,\n  onBeforeMount,\n  onBeforeUnmount,\n  onUpdated,\n  Teleport,\n  watch,\n} from 'vue';\nimport { useInjectPortal } from '../package/trigger/context';\n\nexport default defineComponent({\n  name: 'Portal',\n  inheritAttrs: false,\n  props: {\n    getContainer: PropTypes.func.isRequired,\n    didUpdate: Function,\n  },\n  setup(props, { slots }) {\n    let isSSR = true;\n    // getContainer 不会改变，不用响应式\n    let container: HTMLElement;\n    const { shouldRender } = useInjectPortal();\n    onBeforeMount(() => {\n      isSSR = false;\n      if (shouldRender.value) {\n        container = props.getContainer();\n      }\n    });\n    const stopWatch = watch(shouldRender, () => {\n      if (shouldRender.value && !container) {\n        container = props.getContainer();\n      }\n      if (container) {\n        stopWatch();\n      }\n    });\n    onUpdated(() => {\n      nextTick(() => {\n        if (shouldRender.value) {\n          props.didUpdate?.(props);\n        }\n      });\n    });\n    onBeforeUnmount(() => {\n      if (container && container.parentNode) {\n        container.parentNode.removeChild(container);\n      }\n    });\n    return () => {\n      if (!shouldRender.value) return null;\n      if (isSSR) {\n        return slots.default?.();\n      }\n      return container ? <Teleport to={container} v-slots={slots}></Teleport> : null;\n    };\n  },\n});\n","// @ts-nocheck\nimport type { CSSProperties, HTMLAttributes, PropType } from 'vue';\nimport { computed, defineComponent, inject, provide, ref } from 'vue';\nimport { PropTypes } from '../../utils';\nimport contains from '../../utils/dom/contains';\nimport raf from '../../utils/raf';\nimport {\n  hasProp,\n  getComponent,\n  getEvents,\n  filterEmpty,\n  getSlot,\n  findDOMNode,\n} from '../../utils/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../../utils/requestAnimationTimeout';\nimport addEventListener from '../../utils/dom/addEventListener';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport BaseMixin from '../../utils/BaseMixin';\nimport Portal from '../../utils/Portal';\nimport classNames from '../../utils/classNames';\nimport { cloneElement } from '../../utils/vnode';\nimport supportsPassive from '../../utils/supportsPassive';\nimport { useInjectTrigger, useProvidePortal } from './context';\n\nfunction noop() {}\nfunction returnEmptyString() {\n  return '';\n}\n\nfunction returnDocument(element) {\n  if (element) {\n    return element.ownerDocument;\n  }\n  return window.document;\n}\nconst ALL_HANDLERS = [\n  'onClick',\n  'onMousedown',\n  'onTouchstart',\n  'onMouseenter',\n  'onMouseleave',\n  'onFocus',\n  'onBlur',\n  'onContextmenu',\n];\n\nexport default defineComponent({\n  name: 'Trigger',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: {\n    action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).def([]),\n    showAction: PropTypes.any.def([]),\n    hideAction: PropTypes.any.def([]),\n    getPopupClassNameFromAlign: PropTypes.any.def(returnEmptyString),\n    onPopupVisibleChange: Function as PropType<(open: boolean) => void>,\n    afterPopupVisibleChange: PropTypes.func.def(noop),\n    popup: PropTypes.any,\n    popupStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n    prefixCls: PropTypes.string.def('rc-trigger-popup'),\n    popupClassName: PropTypes.string.def(''),\n    popupPlacement: String,\n    builtinPlacements: PropTypes.object,\n    popupTransitionName: String,\n    popupAnimation: PropTypes.any,\n    mouseEnterDelay: PropTypes.number.def(0),\n    mouseLeaveDelay: PropTypes.number.def(0.1),\n    zIndex: Number,\n    focusDelay: PropTypes.number.def(0),\n    blurDelay: PropTypes.number.def(0.15),\n    getPopupContainer: Function,\n    getDocument: PropTypes.func.def(returnDocument),\n    forceRender: { type: Boolean, default: undefined },\n    destroyPopupOnHide: { type: Boolean, default: false },\n    mask: { type: Boolean, default: false },\n    maskClosable: { type: Boolean, default: true },\n    // onPopupAlign: PropTypes.func.def(noop),\n    popupAlign: PropTypes.object.def(() => ({})),\n    popupVisible: { type: Boolean, default: undefined },\n    defaultPopupVisible: { type: Boolean, default: false },\n    maskTransitionName: String,\n    maskAnimation: String,\n    stretch: String,\n    alignPoint: { type: Boolean, default: undefined }, // Maybe we can support user pass position in the future\n    autoDestroy: { type: Boolean, default: false },\n    mobile: Object,\n    getTriggerDOMNode: Function as PropType<(d?: HTMLElement) => HTMLElement>,\n  },\n  setup(props) {\n    const align = computed(() => {\n      const { popupPlacement, popupAlign, builtinPlacements } = props;\n      if (popupPlacement && builtinPlacements) {\n        return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n      }\n      return popupAlign;\n    });\n    const { setPortal, popPortal } = useInjectTrigger();\n    const popupRef = ref(null);\n    const setPopupRef = val => {\n      popupRef.value = val;\n    };\n    return {\n      popPortal,\n      setPortal,\n      vcTriggerContext: inject(\n        'vcTriggerContext',\n        {} as { onPopupMouseDown?: (...args: any[]) => void },\n      ),\n      popupRef,\n      setPopupRef,\n      triggerRef: ref(null),\n      align,\n      focusTime: null,\n      clickOutsideHandler: null,\n      contextmenuOutsideHandler1: null,\n      contextmenuOutsideHandler2: null,\n      touchOutsideHandler: null,\n      attachId: null,\n      delayTimer: null,\n      hasPopupMouseDown: false,\n      preClickTime: null,\n      preTouchTime: null,\n      mouseDownTimeout: null,\n      childOriginEvents: {},\n    };\n  },\n  data() {\n    const props = this.$props;\n    let popupVisible;\n    if (this.popupVisible !== undefined) {\n      popupVisible = !!props.popupVisible;\n    } else {\n      popupVisible = !!props.defaultPopupVisible;\n    }\n    ALL_HANDLERS.forEach(h => {\n      (this as any)[`fire${h}`] = e => {\n        (this as any).fireEvents(h, e);\n      };\n    });\n    (this as any).setPortal?.(\n      <Portal\n        key=\"portal\"\n        v-slots={{ default: this.getComponent }}\n        getContainer={this.getContainer}\n        didUpdate={this.handlePortalUpdate}\n      ></Portal>,\n    );\n    return {\n      prevPopupVisible: popupVisible,\n      sPopupVisible: popupVisible,\n      point: null,\n    };\n  },\n  watch: {\n    popupVisible(val) {\n      if (val !== undefined) {\n        this.prevPopupVisible = this.sPopupVisible;\n        this.sPopupVisible = val;\n      }\n    },\n  },\n  created() {\n    provide('vcTriggerContext', {\n      onPopupMouseDown: this.onPopupMouseDown,\n    });\n    useProvidePortal(this);\n  },\n  deactivated() {\n    this.setPopupVisible(false);\n  },\n  mounted() {\n    this.$nextTick(() => {\n      this.updatedCal();\n    });\n  },\n\n  updated() {\n    this.$nextTick(() => {\n      this.updatedCal();\n    });\n  },\n\n  beforeUnmount() {\n    this.clearDelayTimer();\n    this.clearOutsideHandler();\n    clearTimeout(this.mouseDownTimeout);\n    raf.cancel(this.attachId);\n  },\n  methods: {\n    updatedCal() {\n      const props = this.$props;\n      const state = this.$data;\n\n      // We must listen to `mousedown` or `touchstart`, edge case:\n      // https://github.com/ant-design/ant-design/issues/5804\n      // https://github.com/react-component/calendar/issues/250\n      // https://github.com/react-component/trigger/issues/50\n      if (state.sPopupVisible) {\n        let currentDocument;\n        if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextmenuToShow())) {\n          currentDocument = props.getDocument(this.getRootDomNode());\n          this.clickOutsideHandler = addEventListener(\n            currentDocument,\n            'mousedown',\n            this.onDocumentClick,\n          );\n        }\n        // always hide on mobile\n        if (!this.touchOutsideHandler) {\n          currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n          this.touchOutsideHandler = addEventListener(\n            currentDocument,\n            'touchstart',\n            this.onDocumentClick,\n            supportsPassive ? { passive: false } : false,\n          );\n        }\n        // close popup when trigger type contains 'onContextmenu' and document is scrolling.\n        if (!this.contextmenuOutsideHandler1 && this.isContextmenuToShow()) {\n          currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n          this.contextmenuOutsideHandler1 = addEventListener(\n            currentDocument,\n            'scroll',\n            this.onContextmenuClose,\n          );\n        }\n        // close popup when trigger type contains 'onContextmenu' and window is blur.\n        if (!this.contextmenuOutsideHandler2 && this.isContextmenuToShow()) {\n          this.contextmenuOutsideHandler2 = addEventListener(\n            window,\n            'blur',\n            this.onContextmenuClose,\n          );\n        }\n      } else {\n        this.clearOutsideHandler();\n      }\n    },\n    onMouseenter(e) {\n      const { mouseEnterDelay } = this.$props;\n      this.fireEvents('onMouseenter', e);\n      this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n    },\n\n    onMouseMove(e) {\n      this.fireEvents('onMousemove', e);\n      this.setPoint(e);\n    },\n\n    onMouseleave(e) {\n      this.fireEvents('onMouseleave', e);\n      this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n    },\n\n    onPopupMouseenter() {\n      this.clearDelayTimer();\n    },\n\n    onPopupMouseleave(e) {\n      if (\n        e &&\n        e.relatedTarget &&\n        !e.relatedTarget.setTimeout &&\n        contains(this.popupRef?.getElement(), e.relatedTarget)\n      ) {\n        return;\n      }\n      this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n    },\n\n    onFocus(e) {\n      this.fireEvents('onFocus', e);\n      // incase focusin and focusout\n      this.clearDelayTimer();\n      if (this.isFocusToShow()) {\n        this.focusTime = Date.now();\n        this.delaySetPopupVisible(true, this.$props.focusDelay);\n      }\n    },\n\n    onMousedown(e) {\n      this.fireEvents('onMousedown', e);\n      this.preClickTime = Date.now();\n    },\n\n    onTouchstart(e) {\n      this.fireEvents('onTouchstart', e);\n      this.preTouchTime = Date.now();\n    },\n\n    onBlur(e) {\n      if (!contains(e.target, e.relatedTarget || document.activeElement)) {\n        this.fireEvents('onBlur', e);\n        this.clearDelayTimer();\n        if (this.isBlurToHide()) {\n          this.delaySetPopupVisible(false, this.$props.blurDelay);\n        }\n      }\n    },\n\n    onContextmenu(e) {\n      e.preventDefault();\n      this.fireEvents('onContextmenu', e);\n      this.setPopupVisible(true, e);\n    },\n\n    onContextmenuClose() {\n      if (this.isContextmenuToShow()) {\n        this.close();\n      }\n    },\n\n    onClick(event) {\n      this.fireEvents('onClick', event);\n      // focus will trigger click\n      if (this.focusTime) {\n        let preTime;\n        if (this.preClickTime && this.preTouchTime) {\n          preTime = Math.min(this.preClickTime, this.preTouchTime);\n        } else if (this.preClickTime) {\n          preTime = this.preClickTime;\n        } else if (this.preTouchTime) {\n          preTime = this.preTouchTime;\n        }\n        if (Math.abs(preTime - this.focusTime) < 20) {\n          return;\n        }\n        this.focusTime = 0;\n      }\n      this.preClickTime = 0;\n      this.preTouchTime = 0;\n      // Only prevent default when all the action is click.\n      // https://github.com/ant-design/ant-design/issues/17043\n      // https://github.com/ant-design/ant-design/issues/17291\n      if (\n        this.isClickToShow() &&\n        (this.isClickToHide() || this.isBlurToHide()) &&\n        event &&\n        event.preventDefault\n      ) {\n        event.preventDefault();\n      }\n      if (event && event.domEvent) {\n        event.domEvent.preventDefault();\n      }\n      const nextVisible = !this.$data.sPopupVisible;\n      if ((this.isClickToHide() && !nextVisible) || (nextVisible && this.isClickToShow())) {\n        this.setPopupVisible(!this.$data.sPopupVisible, event);\n      }\n    },\n    onPopupMouseDown(...args: any[]) {\n      const { vcTriggerContext = {} } = this;\n      this.hasPopupMouseDown = true;\n\n      clearTimeout(this.mouseDownTimeout);\n      this.mouseDownTimeout = setTimeout(() => {\n        this.hasPopupMouseDown = false;\n      }, 0);\n\n      if (vcTriggerContext.onPopupMouseDown) {\n        vcTriggerContext.onPopupMouseDown(...args);\n      }\n    },\n\n    onDocumentClick(event) {\n      if (this.$props.mask && !this.$props.maskClosable) {\n        return;\n      }\n      const target = event.target;\n      const root = this.getRootDomNode();\n      const popupNode = this.getPopupDomNode();\n      if (\n        // mousedown on the target should also close popup when action is contextMenu.\n        // https://github.com/ant-design/ant-design/issues/29853\n        (!contains(root, target) || this.isContextMenuOnly()) &&\n        !contains(popupNode, target) &&\n        !this.hasPopupMouseDown\n      ) {\n        // https://github.com/vuejs/core/issues/4462\n        // vue 动画bug导致 https://github.com/vueComponent/ant-design-vue/issues/5259，\n        // 改成延时解决\n        this.delaySetPopupVisible(false, 0.1);\n      }\n    },\n    getPopupDomNode() {\n      // for test\n      return this.popupRef?.getElement() || null;\n    },\n\n    getRootDomNode() {\n      const { getTriggerDOMNode } = this.$props;\n      if (getTriggerDOMNode) {\n        return getTriggerDOMNode(this.triggerRef);\n      }\n\n      try {\n        const domNode = findDOMNode(this.triggerRef);\n        if (domNode) {\n          return domNode;\n        }\n      } catch (err) {\n        // Do nothing\n      }\n      return findDOMNode(this);\n    },\n\n    handleGetPopupClassFromAlign(align) {\n      const className = [];\n      const props = this.$props;\n      const {\n        popupPlacement,\n        builtinPlacements,\n        prefixCls,\n        alignPoint,\n        getPopupClassNameFromAlign,\n      } = props;\n      if (popupPlacement && builtinPlacements) {\n        className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n      }\n      if (getPopupClassNameFromAlign) {\n        className.push(getPopupClassNameFromAlign(align));\n      }\n      return className.join(' ');\n    },\n\n    getPopupAlign() {\n      const props = this.$props;\n      const { popupPlacement, popupAlign, builtinPlacements } = props;\n      if (popupPlacement && builtinPlacements) {\n        return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n      }\n      return popupAlign;\n    },\n    getComponent() {\n      const mouseProps: HTMLAttributes = {};\n      if (this.isMouseEnterToShow()) {\n        mouseProps.onMouseenter = this.onPopupMouseenter;\n      }\n      if (this.isMouseLeaveToHide()) {\n        mouseProps.onMouseleave = this.onPopupMouseleave;\n      }\n      mouseProps.onMousedown = this.onPopupMouseDown;\n      mouseProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.onPopupMouseDown;\n      const { handleGetPopupClassFromAlign, getRootDomNode, getContainer, $attrs } = this;\n      const {\n        prefixCls,\n        destroyPopupOnHide,\n        popupClassName,\n        popupAnimation,\n        popupTransitionName,\n        popupStyle,\n        mask,\n        maskAnimation,\n        maskTransitionName,\n        zIndex,\n        stretch,\n        alignPoint,\n        mobile,\n        forceRender,\n      } = this.$props;\n      const { sPopupVisible, point } = this.$data;\n      const popupProps = {\n        prefixCls,\n        destroyPopupOnHide,\n        visible: sPopupVisible,\n        point: alignPoint ? point : null,\n        align: this.align,\n        animation: popupAnimation,\n        getClassNameFromAlign: handleGetPopupClassFromAlign,\n        stretch,\n        getRootDomNode,\n        mask,\n        zIndex,\n        transitionName: popupTransitionName,\n        maskAnimation,\n        maskTransitionName,\n        getContainer,\n        class: popupClassName,\n        style: popupStyle,\n        onAlign: $attrs.onPopupAlign || noop,\n        ...mouseProps,\n        ref: this.setPopupRef,\n        mobile,\n        forceRender,\n      } as any;\n      return (\n        <Popup\n          {...popupProps}\n          v-slots={{ default: this.$slots.popup || (() => getComponent(this, 'popup')) }}\n        ></Popup>\n      );\n    },\n\n    attachParent(popupContainer) {\n      raf.cancel(this.attachId);\n\n      const { getPopupContainer, getDocument } = this.$props;\n      const domNode = this.getRootDomNode();\n\n      let mountNode;\n      if (!getPopupContainer) {\n        mountNode = getDocument(this.getRootDomNode()).body;\n      } else if (domNode || getPopupContainer.length === 0) {\n        // Compatible for legacy getPopupContainer with domNode argument.\n        // If no need `domNode` argument, will call directly.\n        // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n        mountNode = getPopupContainer(domNode);\n      }\n\n      if (mountNode) {\n        mountNode.appendChild(popupContainer);\n      } else {\n        // Retry after frame render in case parent not ready\n        this.attachId = raf(() => {\n          this.attachParent(popupContainer);\n        });\n      }\n    },\n\n    getContainer() {\n      const { $props: props } = this;\n      const { getDocument } = props;\n      const popupContainer = getDocument(this.getRootDomNode()).createElement('div');\n      // Make sure default popup container will never cause scrollbar appearing\n      // https://github.com/react-component/trigger/issues/41\n      popupContainer.style.position = 'absolute';\n      popupContainer.style.top = '0';\n      popupContainer.style.left = '0';\n      popupContainer.style.width = '100%';\n      this.attachParent(popupContainer);\n      return popupContainer;\n    },\n\n    setPopupVisible(sPopupVisible: boolean, event?: any) {\n      const { alignPoint, sPopupVisible: prevPopupVisible, onPopupVisibleChange } = this;\n      this.clearDelayTimer();\n      if (prevPopupVisible !== sPopupVisible) {\n        if (!hasProp(this, 'popupVisible')) {\n          this.setState({\n            sPopupVisible,\n            prevPopupVisible,\n          });\n        }\n        onPopupVisibleChange && onPopupVisibleChange(sPopupVisible);\n      }\n      // Always record the point position since mouseEnterDelay will delay the show\n      if (alignPoint && event && sPopupVisible) {\n        this.setPoint(event);\n      }\n    },\n\n    setPoint(point) {\n      const { alignPoint } = this.$props;\n      if (!alignPoint || !point) return;\n\n      this.setState({\n        point: {\n          pageX: point.pageX,\n          pageY: point.pageY,\n        },\n      });\n    },\n    handlePortalUpdate() {\n      if (this.prevPopupVisible !== this.sPopupVisible) {\n        this.afterPopupVisibleChange(this.sPopupVisible);\n      }\n    },\n    delaySetPopupVisible(visible: boolean, delayS: number, event?: any) {\n      const delay = delayS * 1000;\n      this.clearDelayTimer();\n      if (delay) {\n        const point = event ? { pageX: event.pageX, pageY: event.pageY } : null;\n        this.delayTimer = requestAnimationTimeout(() => {\n          this.setPopupVisible(visible, point);\n          this.clearDelayTimer();\n        }, delay);\n      } else {\n        this.setPopupVisible(visible, event);\n      }\n    },\n\n    clearDelayTimer() {\n      if (this.delayTimer) {\n        cancelAnimationTimeout(this.delayTimer);\n        this.delayTimer = null;\n      }\n    },\n\n    clearOutsideHandler() {\n      if (this.clickOutsideHandler) {\n        this.clickOutsideHandler.remove();\n        this.clickOutsideHandler = null;\n      }\n\n      if (this.contextmenuOutsideHandler1) {\n        this.contextmenuOutsideHandler1.remove();\n        this.contextmenuOutsideHandler1 = null;\n      }\n\n      if (this.contextmenuOutsideHandler2) {\n        this.contextmenuOutsideHandler2.remove();\n        this.contextmenuOutsideHandler2 = null;\n      }\n\n      if (this.touchOutsideHandler) {\n        this.touchOutsideHandler.remove();\n        this.touchOutsideHandler = null;\n      }\n    },\n\n    createTwoChains(event: string) {\n      let fn = () => {};\n      const events = getEvents(this);\n      if (this.childOriginEvents[event] && events[event]) {\n        return this[`fire${event}`];\n      }\n      fn = this.childOriginEvents[event] || events[event] || fn;\n      return fn as any;\n    },\n\n    isClickToShow() {\n      const { action, showAction } = this.$props;\n      return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n    },\n\n    isContextMenuOnly() {\n      const { action } = this.$props;\n      return action === 'contextmenu' || (action.length === 1 && action[0] === 'contextmenu');\n    },\n\n    isContextmenuToShow() {\n      const { action, showAction } = this.$props;\n      return action.indexOf('contextmenu') !== -1 || showAction.indexOf('contextmenu') !== -1;\n    },\n\n    isClickToHide() {\n      const { action, hideAction } = this.$props;\n      return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n    },\n\n    isMouseEnterToShow() {\n      const { action, showAction } = this.$props;\n      return action.indexOf('hover') !== -1 || showAction.indexOf('mouseenter') !== -1;\n    },\n\n    isMouseLeaveToHide() {\n      const { action, hideAction } = this.$props;\n      return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseleave') !== -1;\n    },\n\n    isFocusToShow() {\n      const { action, showAction } = this.$props;\n      return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n    },\n\n    isBlurToHide() {\n      const { action, hideAction } = this.$props;\n      return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n    },\n    forcePopupAlign() {\n      if (this.$data.sPopupVisible) {\n        this.popupRef?.forceAlign();\n      }\n    },\n    fireEvents(type: string, e: Event) {\n      if (this.childOriginEvents[type]) {\n        this.childOriginEvents[type](e);\n      }\n      const event = this.$props[type] || this.$attrs[type];\n      if (event) {\n        event(e);\n      }\n    },\n\n    close() {\n      this.setPopupVisible(false);\n    },\n  },\n  render() {\n    const { $attrs } = this;\n    const children = filterEmpty(getSlot(this));\n    const { alignPoint } = this.$props;\n\n    const child = children[0];\n    this.childOriginEvents = getEvents(child);\n    const newChildProps: any = {\n      key: 'trigger',\n    };\n\n    if (this.isContextmenuToShow()) {\n      newChildProps.onContextmenu = this.onContextmenu;\n    } else {\n      newChildProps.onContextmenu = this.createTwoChains('onContextmenu');\n    }\n\n    if (this.isClickToHide() || this.isClickToShow()) {\n      newChildProps.onClick = this.onClick;\n      newChildProps.onMousedown = this.onMousedown;\n      newChildProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.onTouchstart;\n    } else {\n      newChildProps.onClick = this.createTwoChains('onClick');\n      newChildProps.onMousedown = this.createTwoChains('onMousedown');\n      newChildProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] =\n        this.createTwoChains('onTouchstart');\n    }\n    if (this.isMouseEnterToShow()) {\n      newChildProps.onMouseenter = this.onMouseenter;\n      if (alignPoint) {\n        newChildProps.onMousemove = this.onMouseMove;\n      }\n    } else {\n      newChildProps.onMouseenter = this.createTwoChains('onMouseenter');\n    }\n    if (this.isMouseLeaveToHide()) {\n      newChildProps.onMouseleave = this.onMouseleave;\n    } else {\n      newChildProps.onMouseleave = this.createTwoChains('onMouseleave');\n    }\n\n    if (this.isFocusToShow() || this.isBlurToHide()) {\n      newChildProps.onFocus = this.onFocus;\n      newChildProps.onBlur = this.onBlur;\n    } else {\n      newChildProps.onFocus = this.createTwoChains('onFocus');\n      newChildProps.onBlur = e => {\n        if (\n          e &&\n          (!e.relatedTarget || !contains(e.target as HTMLElement, e.relatedTarget as HTMLElement))\n        ) {\n          this.createTwoChains('onBlur')(e);\n        }\n      };\n    }\n    const childrenClassName = classNames(child && child.props && child.props.class, $attrs.class);\n    if (childrenClassName) {\n      newChildProps.class = childrenClassName;\n    }\n    const trigger = cloneElement(child, { ...newChildProps, ref: 'triggerRef' }, true, true);\n    if (this.popPortal) {\n      return trigger;\n    } else {\n      const portal = (\n        <Portal\n          key=\"portal\"\n          v-slots={{ default: this.getComponent }}\n          getContainer={this.getContainer}\n          didUpdate={this.handlePortalUpdate}\n        ></Portal>\n      );\n      return (\n        <>\n          {portal}\n          {trigger}\n        </>\n      );\n    }\n  },\n});\n","import type { CSSProperties } from 'vue';\nimport type { AlignType } from '../align/interface';\nimport Trigger from '../trigger';\nimport classNames from '../../utils/classNames';\nimport useMergeProps from './hooks/useMergeProps';\n\nconst BUILT_IN_PLACEMENTS = {\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 1,\n      adjustY: 1,\n    },\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 1,\n      adjustY: 1,\n    },\n  },\n  topLeft: {\n    points: ['bl', 'tl'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1,\n    },\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1,\n    },\n  },\n};\n\ntype Placement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n\nexport type PickerTriggerProps = {\n  prefixCls: string;\n  visible: boolean;\n  popupStyle?: CSSProperties;\n  dropdownClassName?: string;\n  transitionName?: string;\n  getPopupContainer?: (node: HTMLElement) => HTMLElement;\n  dropdownAlign?: AlignType;\n  range?: boolean;\n  popupPlacement?: Placement;\n  direction?: 'ltr' | 'rtl';\n};\n\nfunction PickerTrigger(props: PickerTriggerProps, { slots }) {\n  const {\n    prefixCls,\n    popupStyle,\n    visible,\n    dropdownClassName,\n    dropdownAlign,\n    transitionName,\n    getPopupContainer,\n    range,\n    popupPlacement,\n    direction,\n  } = useMergeProps(props);\n  const dropdownPrefixCls = `${prefixCls}-dropdown`;\n\n  const getPopupPlacement = () => {\n    if (popupPlacement !== undefined) {\n      return popupPlacement;\n    }\n    return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n  };\n\n  return (\n    <Trigger\n      showAction={[]}\n      hideAction={[]}\n      popupPlacement={getPopupPlacement()}\n      builtinPlacements={BUILT_IN_PLACEMENTS}\n      prefixCls={dropdownPrefixCls}\n      popupTransitionName={transitionName}\n      popupAlign={dropdownAlign}\n      popupVisible={visible}\n      popupClassName={classNames(dropdownClassName, {\n        [`${dropdownPrefixCls}-range`]: range,\n        [`${dropdownPrefixCls}-rtl`]: direction === 'rtl',\n      })}\n      popupStyle={popupStyle}\n      getPopupContainer={getPopupContainer}\n      v-slots={{\n        default: slots.default,\n        popup: slots.popupElement,\n      }}\n    ></Trigger>\n  );\n}\n\nexport default PickerTrigger;\n","import type { ComputedRef, HTMLAttributes, Ref } from 'vue';\nimport { onBeforeUnmount, watchEffect, watch, ref, computed } from 'vue';\nimport type { FocusEventHandler } from '../../../utils/EventInterface';\nimport KeyCode from '../../../utils/KeyCode';\nimport { addGlobalMousedownEvent, getTargetFromEvent } from '../utils/uiUtil';\nimport raf from '../../../utils/raf';\n\nexport default function usePickerInput({\n  open,\n  value,\n  isClickOutside,\n  triggerOpen,\n  forwardKeydown,\n  onKeydown,\n  blurToCancel,\n  onSubmit,\n  onCancel,\n  onFocus,\n  onBlur,\n}: {\n  open: Ref<boolean>;\n  value: Ref<string>;\n  isClickOutside: (clickElement: EventTarget | null) => boolean;\n  triggerOpen: (open: boolean) => void;\n  forwardKeydown: (e: KeyboardEvent) => boolean;\n  onKeydown: (e: KeyboardEvent, preventDefault: () => void) => void;\n  blurToCancel?: ComputedRef<boolean>;\n  onSubmit: () => void | boolean;\n  onCancel: () => void;\n  onFocus?: FocusEventHandler;\n  onBlur?: FocusEventHandler;\n}): [ComputedRef<HTMLAttributes>, { focused: Ref<boolean>; typing: Ref<boolean> }] {\n  const typing = ref(false);\n  const focused = ref(false);\n\n  /**\n   * We will prevent blur to handle open event when user click outside,\n   * since this will repeat trigger `onOpenChange` event.\n   */\n  const preventBlurRef = ref<boolean>(false);\n\n  const valueChangedRef = ref<boolean>(false);\n\n  const preventDefaultRef = ref<boolean>(false);\n\n  const inputProps = computed<HTMLAttributes>(() => ({\n    onMousedown: () => {\n      typing.value = true;\n      triggerOpen(true);\n    },\n    onKeydown: e => {\n      const preventDefault = (): void => {\n        preventDefaultRef.value = true;\n      };\n\n      onKeydown(e, preventDefault);\n\n      if (preventDefaultRef.value) return;\n\n      switch (e.which) {\n        case KeyCode.ENTER: {\n          if (!open.value) {\n            triggerOpen(true);\n          } else if (onSubmit() !== false) {\n            typing.value = true;\n          }\n\n          e.preventDefault();\n          return;\n        }\n\n        case KeyCode.TAB: {\n          if (typing.value && open.value && !e.shiftKey) {\n            typing.value = false;\n            e.preventDefault();\n          } else if (!typing.value && open.value) {\n            if (!forwardKeydown(e) && e.shiftKey) {\n              typing.value = true;\n              e.preventDefault();\n            }\n          }\n          return;\n        }\n\n        case KeyCode.ESC: {\n          typing.value = true;\n          onCancel();\n          return;\n        }\n      }\n\n      if (!open.value && ![KeyCode.SHIFT].includes(e.which)) {\n        triggerOpen(true);\n      } else if (!typing.value) {\n        // Let popup panel handle keyboard\n        forwardKeydown(e);\n      }\n    },\n\n    onFocus: e => {\n      typing.value = true;\n      focused.value = true;\n\n      if (onFocus) {\n        onFocus(e);\n      }\n    },\n\n    onBlur: e => {\n      if (preventBlurRef.value || !isClickOutside(document.activeElement)) {\n        preventBlurRef.value = false;\n        return;\n      }\n\n      if (blurToCancel.value) {\n        setTimeout(() => {\n          let { activeElement } = document;\n          while (activeElement && activeElement.shadowRoot) {\n            activeElement = activeElement.shadowRoot.activeElement;\n          }\n\n          if (isClickOutside(activeElement)) {\n            onCancel();\n          }\n        }, 0);\n      } else if (open.value) {\n        triggerOpen(false);\n\n        if (valueChangedRef.value) {\n          onSubmit();\n        }\n      }\n      focused.value = false;\n\n      if (onBlur) {\n        onBlur(e);\n      }\n    },\n  }));\n\n  // check if value changed\n  watch(open, () => {\n    valueChangedRef.value = false;\n  });\n\n  watch(value, () => {\n    valueChangedRef.value = true;\n  });\n  const globalMousedownEvent = ref();\n  // Global click handler\n  watchEffect(\n    () =>\n      globalMousedownEvent.value &&\n      globalMousedownEvent.value()(\n        (globalMousedownEvent.value = addGlobalMousedownEvent((e: MouseEvent) => {\n          const target = getTargetFromEvent(e);\n\n          if (open) {\n            const clickedOutside = isClickOutside(target);\n\n            if (!clickedOutside) {\n              preventBlurRef.value = true;\n\n              // Always set back in case `onBlur` prevented by user\n              raf(() => {\n                preventBlurRef.value = false;\n              });\n            } else if (!focused.value || clickedOutside) {\n              triggerOpen(false);\n            }\n          }\n        })),\n      ),\n  );\n  onBeforeUnmount(() => {\n    globalMousedownEvent.value && globalMousedownEvent.value();\n  });\n\n  return [inputProps, { focused, typing }];\n}\n","import type { ComputedRef, Ref } from 'vue';\nimport { ref, watch } from 'vue';\n\nexport default function useTextValueMapping({\n  valueTexts,\n  onTextChange,\n}: {\n  /** Must useMemo, to assume that `valueTexts` only match on the first change */\n  valueTexts: ComputedRef<string[]>;\n  onTextChange: (text: string) => void;\n}): [Ref<string>, (text: string) => void, () => void] {\n  const text = ref('');\n\n  function triggerTextChange(value: string) {\n    text.value = value;\n    onTextChange(value);\n  }\n\n  function resetText() {\n    text.value = valueTexts.value[0];\n  }\n\n  watch(\n    () => [...valueTexts.value],\n    (cur, pre = []) => {\n      if (\n        cur.join('||') !== pre.join('||') &&\n        valueTexts.value.every(valText => valText !== text.value)\n      ) {\n        resetText();\n      }\n    },\n    { immediate: true },\n  );\n\n  return [text, triggerTextChange, resetText];\n}\n","import type { Ref, WatchSource } from 'vue';\nimport { ref, watch } from 'vue';\n\nexport default function useMemo<T>(\n  getValue: () => T,\n  condition: (WatchSource<unknown> | object)[],\n  shouldUpdate?: (prev: any[], next: any[]) => boolean,\n) {\n  const cacheRef: Ref<T> = ref(getValue() as any);\n  watch(condition, (next, pre) => {\n    if (shouldUpdate) {\n      if (shouldUpdate(next, pre)) {\n        cacheRef.value = getValue();\n      }\n    } else {\n      cacheRef.value = getValue();\n    }\n  });\n\n  return cacheRef;\n}\n","// @ts-nocheck\nimport { toRaw } from 'vue';\nfunction shallowEqual(objA, objB, compare, compareContext) {\n  let ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n  if (ret !== void 0) {\n    return !!ret;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n    return false;\n  }\n\n  const keysA = Object.keys(objA);\n  const keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n  // Test for A's keys different from B.\n  for (let idx = 0; idx < keysA.length; idx++) {\n    const key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    const valueA = objA[key];\n    const valueB = objB[key];\n\n    ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n    if (ret === false || (ret === void 0 && valueA !== valueB)) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nexport default function (value, other, customizer, thisArg) {\n  return shallowEqual(toRaw(value), toRaw(other), customizer, thisArg);\n}\n","import type { ComputedRef, Ref } from 'vue';\nimport { computed } from 'vue';\nimport useMemo from '../../../hooks/useMemo';\nimport shallowequal from '../../../utils/shallowequal';\nimport type { GenerateConfig } from '../generate';\nimport type { CustomFormat, Locale } from '../interface';\nimport { formatValue } from '../utils/dateUtil';\n\nexport type ValueTextConfig<DateType> = {\n  formatList: ComputedRef<(string | CustomFormat<DateType>)[]>;\n  generateConfig: Ref<GenerateConfig<DateType>>;\n  locale: Ref<Locale>;\n};\n\nexport default function useValueTexts<DateType>(\n  value: Ref<DateType | null>,\n  { formatList, generateConfig, locale }: ValueTextConfig<DateType>,\n): [ComputedRef<string[]>, ComputedRef<string>] {\n  const texts = useMemo<[string[], string]>(\n    () => {\n      if (!value.value) {\n        return [[''], ''];\n      }\n\n      // We will convert data format back to first format\n      let firstValueText = '';\n      const fullValueTexts: string[] = [];\n\n      for (let i = 0; i < formatList.value.length; i += 1) {\n        const format = formatList.value[i];\n        const formatStr = formatValue(value.value, {\n          generateConfig: generateConfig.value,\n          locale: locale.value,\n          format,\n        });\n        fullValueTexts.push(formatStr);\n\n        if (i === 0) {\n          firstValueText = formatStr;\n        }\n      }\n\n      return [fullValueTexts, firstValueText];\n    },\n    [value, formatList],\n    (next, prev) => prev[0] !== next[0] || !shallowequal(prev[1], next[1]),\n  );\n  const fullValueTexts = computed(() => texts.value[0]);\n  const firstValueText = computed(() => texts.value[1]);\n  return [fullValueTexts, firstValueText];\n}\n","import raf from '../../../utils/raf';\nimport type { ComputedRef, Ref, UnwrapRef } from 'vue';\nimport { ref, onBeforeUnmount, watch } from 'vue';\nimport type { ValueTextConfig } from './useValueTexts';\nimport useValueTexts from './useValueTexts';\n\nexport default function useHoverValue<DateType>(\n  valueText: Ref<string>,\n  { formatList, generateConfig, locale }: ValueTextConfig<DateType>,\n): [ComputedRef<string>, (date: DateType) => void, (immediately?: boolean) => void] {\n  const innerValue = ref<DateType>(null);\n  let rafId: number;\n\n  function setValue(val: DateType, immediately = false) {\n    raf.cancel(rafId);\n    if (immediately) {\n      innerValue.value = val as UnwrapRef<DateType>;\n      return;\n    }\n    rafId = raf(() => {\n      innerValue.value = val as UnwrapRef<DateType>;\n    });\n  }\n\n  const [, firstText] = useValueTexts(innerValue as Ref<DateType>, {\n    formatList,\n    generateConfig,\n    locale,\n  });\n  function onEnter(date: DateType) {\n    setValue(date);\n  }\n\n  function onLeave(immediately = false) {\n    setValue(null, immediately);\n  }\n\n  watch(valueText, () => {\n    onLeave(true);\n  });\n  onBeforeUnmount(() => {\n    raf.cancel(rafId);\n  });\n\n  return [firstText, onEnter, onLeave];\n}\n","import { warning } from '../../../utils/warning';\nimport type { DisabledTimes, PickerMode } from '../interface';\n\nexport interface WarningProps extends DisabledTimes {\n  picker?: PickerMode;\n}\n\nexport function legacyPropsWarning(props: WarningProps) {\n  const { picker, disabledHours, disabledMinutes, disabledSeconds } = props;\n\n  if (picker === 'time' && (disabledHours || disabledMinutes || disabledSeconds)) {\n    warning(\n      false,\n      `'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.`,\n    );\n  }\n}\n","/**\n * Removed:\n *  - getCalendarContainer: use `getPopupContainer` instead\n *  - onOk\n *\n * New Feature:\n *  - picker\n *  - allowEmpty\n *  - selectable\n *\n * Tips: Should add faq about `datetime` mode with `defaultValue`\n */\n\nimport type {\n  PickerPanelBaseProps,\n  PickerPanelDateProps,\n  PickerPanelTimeProps,\n} from './PickerPanel';\nimport PickerPanel from './PickerPanel';\nimport PickerTrigger from './PickerTrigger';\nimport { formatValue, isEqual, parseValue } from './utils/dateUtil';\nimport getDataOrAriaProps, { toArray } from './utils/miscUtil';\nimport type { ContextOperationRefProps } from './PanelContext';\nimport { useProvidePanel } from './PanelContext';\nimport type { CustomFormat, PickerMode } from './interface';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport usePickerInput from './hooks/usePickerInput';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport useValueTexts from './hooks/useValueTexts';\nimport useHoverValue from './hooks/useHoverValue';\nimport type { CSSProperties, HTMLAttributes, Ref } from 'vue';\nimport { computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { isArray, isFunction } from '../../utils';\nimport type { ChangeEvent, FocusEventHandler, MouseEventHandler } from '../../utils/EventInterface';\nimport type { VueNode } from '../../utils/type';\nimport type { AlignType } from '../align/interface';\nimport useMergedState from '../../hooks/useMergedState';\nimport { warning } from '../../utils/warning';\nimport classNames from '../../utils/classNames';\nimport type { SharedTimeProps } from './panels/TimePanel';\nimport { useProviderTrigger } from '../trigger/context';\nimport { legacyPropsWarning } from './utils/warnUtil';\n\nexport type PickerRefConfig = {\n  focus: () => void;\n  blur: () => void;\n};\n\nexport type PickerSharedProps<DateType> = {\n  dropdownClassName?: string;\n  dropdownAlign?: AlignType;\n  popupStyle?: CSSProperties;\n  transitionName?: string;\n  placeholder?: string;\n  allowClear?: boolean;\n  autofocus?: boolean;\n  disabled?: boolean;\n  tabindex?: number;\n  open?: boolean;\n  defaultOpen?: boolean;\n  /** Make input readOnly to avoid popup keyboard in mobile */\n  inputReadOnly?: boolean;\n  id?: string;\n\n  // Value\n  format?: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];\n\n  // Render\n  suffixIcon?: VueNode;\n  prefixText?: string;\n  clearIcon?: VueNode;\n  prevIcon?: VueNode;\n  nextIcon?: VueNode;\n  superPrevIcon?: VueNode;\n  superNextIcon?: VueNode;\n  getPopupContainer?: (node: HTMLElement) => HTMLElement;\n  panelRender?: (originPanel: VueNode) => VueNode;\n  inputRender?: (props: HTMLAttributes) => VueNode;\n\n  // Events\n  onChange?: (value: DateType | null, dateString: string) => void;\n  onOpenChange?: (open: boolean) => void;\n  onFocus?: FocusEventHandler;\n  onBlur?: FocusEventHandler;\n  onMousedown?: MouseEventHandler;\n  onMouseup?: MouseEventHandler;\n  onMouseenter?: MouseEventHandler;\n  onMouseleave?: MouseEventHandler;\n  onClick?: MouseEventHandler;\n  onContextmenu?: MouseEventHandler;\n  onKeydown?: (event: KeyboardEvent, preventDefault: () => void) => void;\n\n  // WAI-ARIA\n  role?: string;\n  name?: string;\n\n  autocomplete?: string;\n  direction?: 'ltr' | 'rtl';\n  showToday?: boolean;\n  showTime?: boolean | SharedTimeProps<DateType>;\n  immediateCalendarChangeDateRangePicker?: boolean;\n};\n\ntype OmitPanelProps<Props> = Omit<\n  Props,\n  'onChange' | 'hideHeader' | 'pickerValue' | 'onPickerValueChange'\n>;\n\nexport type PickerBaseProps<DateType> = {} & PickerSharedProps<DateType> &\n  OmitPanelProps<PickerPanelBaseProps<DateType>>;\n\nexport type PickerDateProps<DateType> = {} & PickerSharedProps<DateType> &\n  OmitPanelProps<PickerPanelDateProps<DateType>>;\n\nexport type PickerTimeProps<DateType> = {\n  picker: 'time';\n  /**\n   * @deprecated Please use `defaultValue` directly instead\n   * since `defaultOpenValue` will confuse user of current value status\n   */\n  defaultOpenValue?: DateType;\n} & PickerSharedProps<DateType> &\n  Omit<OmitPanelProps<PickerPanelTimeProps<DateType>>, 'format'>;\n\nexport type PickerProps<DateType> =\n  | PickerBaseProps<DateType>\n  | PickerDateProps<DateType>\n  | PickerTimeProps<DateType>;\n\n// TMP type to fit for ts 3.9.2\ntype OmitType<DateType> = Omit<PickerBaseProps<DateType>, 'picker'> &\n  Omit<PickerDateProps<DateType>, 'picker'> &\n  Omit<PickerTimeProps<DateType>, 'picker'>;\ntype MergedPickerProps<DateType> = {\n  picker?: PickerMode;\n} & OmitType<DateType>;\n\nfunction Picker<DateType>() {\n  return defineComponent<MergedPickerProps<DateType>>({\n    name: 'Picker',\n    inheritAttrs: false,\n    props: [\n      'prefixCls',\n      'id',\n      'tabindex',\n      'dropdownClassName',\n      'dropdownAlign',\n      'popupStyle',\n      'transitionName',\n      'generateConfig',\n      'locale',\n      'inputReadOnly',\n      'allowClear',\n      'autofocus',\n      'showTime',\n      'showNow',\n      'showHour',\n      'showMinute',\n      'showSecond',\n      'picker',\n      'format',\n      'use12Hours',\n      'value',\n      'defaultValue',\n      'open',\n      'defaultOpen',\n      'defaultOpenValue',\n      'suffixIcon',\n      'clearIcon',\n      'disabled',\n      'disabledDate',\n      'placeholder',\n      'getPopupContainer',\n      'panelRender',\n      'inputRender',\n      'onChange',\n      'onOpenChange',\n      'onFocus',\n      'onBlur',\n      'onMousedown',\n      'onMouseup',\n      'onMouseenter',\n      'onMouseleave',\n      'onContextmenu',\n      'onClick',\n      'onKeydown',\n      'onSelect',\n      'direction',\n      'autocomplete',\n      'showToday',\n      'renderExtraFooter',\n      'immediateCalendarChangeDateRangePicker',\n      'dateRender',\n    ] as any,\n    // slots: [\n    //   'suffixIcon',\n    //   'clearIcon',\n    //   'prevIcon',\n    //   'nextIcon',\n    //   'superPrevIcon',\n    //   'superNextIcon',\n    //   'panelRender',\n    // ],\n    setup(props, { attrs, expose }) {\n      const inputRef = ref(null);\n      const picker = computed(() => props.picker ?? 'date');\n      const needConfirmButton = computed(\n        () => (picker.value === 'date' && !!props.showTime) || picker.value === 'time',\n      );\n      // ============================ Warning ============================\n      if (process.env.NODE_ENV !== 'production') {\n        legacyPropsWarning(props);\n      }\n      // ============================= State =============================\n      const formatList = computed(() =>\n        toArray(getDefaultFormat(props.format, picker.value, props.showTime, props.use12Hours)),\n      );\n\n      // Panel ref\n      const panelDivRef = ref<HTMLDivElement>(null);\n      const inputDivRef = ref<HTMLDivElement>(null);\n      const containerRef = ref<HTMLDivElement>(null);\n\n      // Real value\n      const [mergedValue, setInnerValue] = useMergedState<DateType>(null, {\n        value: toRef(props, 'value'),\n        defaultValue: props.defaultValue,\n      });\n      const selectedValue = ref(mergedValue.value) as Ref<DateType>;\n      const setSelectedValue = (val: DateType) => {\n        selectedValue.value = val;\n      };\n\n      // Operation ref\n      const operationRef = ref<ContextOperationRefProps>(null);\n\n      // Open\n      const [mergedOpen, triggerInnerOpen] = useMergedState(false, {\n        value: toRef(props, 'open'),\n        defaultValue: props.defaultOpen,\n        postState: postOpen => (props.disabled ? false : postOpen),\n        onChange: newOpen => {\n          if (props.onOpenChange) {\n            if (isArray(props.onOpenChange)) {\n              props?.onOpenChange?.[1]?.(newOpen);\n            }\n            if (isFunction(props.onOpenChange)) {\n              props.onOpenChange(newOpen);\n            }\n          }\n\n          if (!newOpen && operationRef.value && operationRef.value.onClose) {\n            operationRef.value.onClose();\n          }\n        },\n      });\n\n      // ============================= Text ==============================\n      const [valueTexts, firstValueText] = useValueTexts(selectedValue, {\n        formatList,\n        generateConfig: toRef(props, 'generateConfig'),\n        locale: toRef(props, 'locale'),\n      });\n      const [text, triggerTextChange, resetText] = useTextValueMapping({\n        valueTexts,\n        onTextChange: newText => {\n          const inputDate = parseValue(newText, {\n            locale: props.locale,\n            formatList: formatList.value,\n            generateConfig: props.generateConfig,\n          });\n          if (inputDate && (!props.disabledDate || !props.disabledDate(inputDate))) {\n            setSelectedValue(inputDate);\n          }\n        },\n      });\n\n      // ============================ Trigger ============================\n      const triggerChange = (newValue: DateType | null) => {\n        const { onChange, generateConfig, locale } = props;\n        setSelectedValue(newValue);\n        setInnerValue(newValue);\n\n        if (onChange && !isEqual(generateConfig, mergedValue.value, newValue)) {\n          if (isArray(onChange)) {\n            onChange?.[onChange.length - 1]?.(\n              newValue,\n              newValue\n                ? formatValue(newValue, { generateConfig, locale, format: formatList.value[0] })\n                : '',\n            );\n          }\n          if (isFunction(onChange)) {\n            onChange(\n              newValue,\n              newValue\n                ? formatValue(newValue, { generateConfig, locale, format: formatList.value[0] })\n                : '',\n            );\n          }\n        }\n      };\n\n      const triggerOpen = (newOpen: boolean) => {\n        if (props.disabled && newOpen) {\n          return;\n        }\n        triggerInnerOpen(newOpen);\n      };\n\n      const forwardKeydown = (e: KeyboardEvent) => {\n        if (mergedOpen.value && operationRef.value && operationRef.value.onKeydown) {\n          // Let popup panel handle keyboard\n          return operationRef.value.onKeydown(e);\n        }\n\n        /* istanbul ignore next */\n        /* eslint-disable no-lone-blocks */\n        {\n          warning(\n            false,\n            'Picker not correct forward Keydown operation. Please help to fire issue about this.',\n          );\n          return false;\n        }\n      };\n\n      const onInternalMouseup: MouseEventHandler = (...args) => {\n        if (props.onMouseup) {\n          props.onMouseup(...args);\n        }\n\n        if (inputRef.value) {\n          inputRef.value.focus();\n          triggerOpen(true);\n        }\n      };\n\n      // ============================= Input =============================\n      const [inputProps, { focused, typing }] = usePickerInput({\n        blurToCancel: needConfirmButton,\n        open: mergedOpen,\n        value: text,\n        triggerOpen,\n        forwardKeydown,\n        isClickOutside: target =>\n          !elementsContains(\n            [panelDivRef.value, inputDivRef.value, containerRef.value],\n            target as HTMLElement,\n          ),\n        onSubmit: () => {\n          if (\n            // When user typing disabledDate with keyboard and enter, this value will be empty\n            !selectedValue.value ||\n            // Normal disabled check\n            (props.disabledDate && props.disabledDate(selectedValue.value))\n          ) {\n            return false;\n          }\n\n          triggerChange(selectedValue.value);\n          triggerOpen(false);\n          resetText();\n          return true;\n        },\n        onCancel: () => {\n          triggerOpen(false);\n          setSelectedValue(mergedValue.value);\n          resetText();\n        },\n        onKeydown: (e, preventDefault) => {\n          props.onKeydown?.(e, preventDefault);\n        },\n        onFocus: (e: FocusEvent) => {\n          if (isArray(props.onFocus)) {\n            props.onFocus?.[1]?.(e);\n          }\n          if (isFunction(props.onFocus)) {\n            props.onFocus?.(e);\n          }\n        },\n        onBlur: (e: FocusEvent) => {\n          if (isArray(props.onBlur)) {\n            props.onBlur?.[1]?.(e);\n          }\n          if (isFunction(props.onBlur)) {\n            props.onBlur?.(e);\n          }\n          // props.onBlur?.(e);\n        },\n      });\n\n      // ============================= Sync ==============================\n      // Close should sync back with text value\n      watch([mergedOpen, valueTexts], () => {\n        if (!mergedOpen.value) {\n          setSelectedValue(mergedValue.value);\n\n          if (!valueTexts.value.length || valueTexts.value[0] === '') {\n            triggerTextChange('');\n          } else if (firstValueText.value !== text.value) {\n            resetText();\n          }\n        }\n      });\n\n      // Change picker should sync back with text value\n      watch(picker, () => {\n        if (!mergedOpen.value) {\n          resetText();\n        }\n      });\n\n      // Sync innerValue with control mode\n      watch(mergedValue, () => {\n        // Sync select value\n        setSelectedValue(mergedValue.value);\n      });\n\n      const [hoverValue, onEnter, onLeave] = useHoverValue(text, {\n        formatList,\n        generateConfig: toRef(props, 'generateConfig'),\n        locale: toRef(props, 'locale'),\n      });\n\n      const onContextSelect = (date: DateType, type: 'key' | 'mouse' | 'submit') => {\n        if (type === 'submit' || (type !== 'key' && !needConfirmButton.value)) {\n          // triggerChange will also update selected values\n          triggerChange(date);\n          triggerOpen(false);\n        }\n      };\n\n      useProvidePanel({\n        operationRef,\n        hideHeader: computed(() => picker.value === 'time'),\n        panelRef: panelDivRef,\n        onSelect: onContextSelect,\n        open: mergedOpen,\n        defaultOpenValue: toRef(props, 'defaultOpenValue'),\n        onDateMouseenter: onEnter,\n        onDateMouseleave: onLeave,\n      });\n\n      expose({\n        focus: () => {\n          if (inputRef.value) {\n            inputRef.value.focus();\n          }\n        },\n        blur: () => {\n          if (inputRef.value) {\n            inputRef.value.blur();\n          }\n        },\n      });\n\n      const getPortal = useProviderTrigger();\n\n      return () => {\n        const {\n          prefixCls = 'scPicker',\n          id,\n          tabindex,\n          dropdownClassName,\n          dropdownAlign,\n          popupStyle,\n          transitionName,\n          generateConfig,\n          locale,\n          inputReadOnly,\n          allowClear,\n          autofocus,\n          picker = 'date',\n          defaultOpenValue,\n          suffixIcon,\n          prefixText,\n          clearIcon,\n          disabled,\n          placeholder,\n          getPopupContainer,\n          panelRender,\n          onMousedown,\n          onMouseenter,\n          onMouseleave,\n          onContextmenu,\n          onClick,\n          onSelect,\n          direction,\n          autocomplete = 'off',\n        } = props;\n\n        // ============================= Panel =============================\n        const panelProps = {\n          // Remove `picker` & `format` here since TimePicker is little different with other panel\n          ...(props as Omit<MergedPickerProps<DateType>, 'picker' | 'format'>),\n          ...attrs,\n          class: classNames({\n            [`${prefixCls}-panel-focused`]: !typing.value,\n          }),\n          style: undefined,\n          pickerValue: undefined,\n          onPickerValueChange: undefined,\n          onChange: null,\n        };\n\n        delete panelProps?.onPanelChange\n        // delete panelProps?.onOk\n        // delete panelProps?.onChange\n\n        let panelNode: VueNode = (\n          <PickerPanel\n            {...panelProps}\n            generateConfig={generateConfig}\n            value={selectedValue.value}\n            locale={locale}\n            tabindex={-1}\n            onSelect={date => {\n              onSelect?.(date);\n              setSelectedValue(date);\n            }}\n            direction={direction}\n            onPanelChange={(viewDate, mode) => {\n              const { onPanelChange } = props;\n              onLeave(true);\n              onPanelChange?.(viewDate, mode);\n            }}\n          />\n        );\n\n        if (panelRender) {\n          panelNode = panelRender(panelNode);\n        }\n\n        const panel = (\n          <div\n            class={`${prefixCls}-panel-container`}\n            onMousedown={e => {\n              e.preventDefault();\n            }}\n          >\n            {panelNode}\n          </div>\n        );\n\n        let suffixNode: VueNode;\n        if (suffixIcon) {\n          suffixNode = <span class={`${prefixCls}-suffix`}>{suffixIcon}</span>;\n        }\n\n        let prefixNode: VueNode;\n        if (prefixText || attrs.prefixText) {\n          prefixNode = <span class={`${prefixCls}-prefix`}>{prefixText || attrs.prefixText}</span>;\n        }\n\n        let clearNode: VueNode;\n        if (allowClear && mergedValue.value && !disabled) {\n          clearNode = (\n            <span\n              onMousedown={e => {\n                e.preventDefault();\n                e.stopPropagation();\n              }}\n              onMouseup={e => {\n                e.preventDefault();\n                e.stopPropagation();\n                triggerChange(null);\n                triggerOpen(false);\n              }}\n              class={`${prefixCls}-clear`}\n              role=\"button\"\n            >\n              {clearIcon || <span class={`${prefixCls}-clear-btn`} />}\n            </span>\n          );\n        }\n\n        const mergedInputProps: HTMLAttributes = {\n          id,\n          tabindex,\n          disabled,\n          readonly: inputReadOnly || typeof formatList.value[0] === 'function' || !typing.value,\n          value: hoverValue.value || text.value,\n          onInput: (e: ChangeEvent) => {\n            triggerTextChange(e.target.value);\n          },\n          autofocus,\n          placeholder,\n          ref: inputRef,\n          title: text.value,\n          ...inputProps.value,\n          size: getInputSize(picker, formatList.value[0], generateConfig),\n          ...getDataOrAriaProps(props),\n          autocomplete,\n        };\n\n        const inputNode = props.inputRender ? (\n          props.inputRender(mergedInputProps)\n        ) : (\n          <input {...mergedInputProps} />\n        );\n\n        // ============================ Warning ============================\n        if (process.env.NODE_ENV !== 'production') {\n          warning(\n            !defaultOpenValue,\n            '`defaultOpenValue` may confuse user for the current value status. Please use `defaultValue` instead.',\n          );\n        }\n\n        // ============================ Return =============================\n\n        const popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n        return (\n          <PickerTrigger\n            visible={mergedOpen.value}\n            popupStyle={popupStyle}\n            prefixCls={prefixCls}\n            dropdownClassName={dropdownClassName}\n            dropdownAlign={dropdownAlign}\n            getPopupContainer={getPopupContainer}\n            transitionName={transitionName}\n            popupPlacement={popupPlacement}\n            direction={direction}\n            v-slots={{\n              popupElement: () => panel,\n            }}\n          >\n            <div\n              ref={containerRef}\n              class={classNames(prefixCls, attrs.class, {\n                [`${prefixCls}-disabled`]: disabled,\n                [`${prefixCls}-focused`]: focused.value,\n                [`${prefixCls}-rtl`]: direction === 'rtl',\n              })}\n              style={attrs.style}\n              onMousedown={onMousedown}\n              onMouseup={onInternalMouseup}\n              onMouseenter={onMouseenter}\n              onMouseleave={onMouseleave}\n              onContextmenu={onContextmenu}\n              onClick={onClick}\n            >\n              <div\n                class={classNames(`${prefixCls}-input`, {\n                  [`${prefixCls}-input-placeholder`]: !!hoverValue.value,\n                })}\n                ref={inputDivRef}\n              >\n                {prefixNode}\n                {inputNode}\n                {suffixNode}\n                {clearNode}\n              </div>\n              {getPortal()}\n            </div>\n          </PickerTrigger>\n        );\n      };\n    },\n  });\n}\nexport default Picker<any>();\n","import type { RangeValue, PickerMode, Locale } from '../interface';\nimport { getValue } from '../utils/miscUtil';\nimport type { GenerateConfig } from '../generate';\nimport { isSameDate, getQuarter } from '../utils/dateUtil';\nimport type { ComputedRef, Ref } from 'vue';\nimport { computed } from 'vue';\n\nexport default function useRangeDisabled<DateType>(\n  {\n    picker,\n    locale,\n    selectedValue,\n    disabledDate,\n    disabled,\n    generateConfig,\n  }: {\n    picker: Ref<PickerMode>;\n    selectedValue: Ref<RangeValue<DateType>>;\n    disabledDate?: Ref<(date: DateType) => boolean>;\n    disabled: ComputedRef<[boolean, boolean]>;\n    locale: Ref<Locale>;\n    generateConfig: Ref<GenerateConfig<DateType>>;\n  },\n  openRecordsRef: Ref<{\n    [x: number]: boolean;\n  }>,\n) {\n  const startDate = computed(() => getValue(selectedValue.value, 0));\n  const endDate = computed(() => getValue(selectedValue.value, 1));\n\n  function weekFirstDate(date: DateType) {\n    return generateConfig.value.locale.getWeekFirstDate(locale.value.locale, date);\n  }\n\n  function monthNumber(date: DateType) {\n    const year = generateConfig.value.getYear(date);\n    const month = generateConfig.value.getMonth(date);\n    return year * 100 + month;\n  }\n\n  function quarterNumber(date: DateType) {\n    const year = generateConfig.value.getYear(date);\n    const quarter = getQuarter(generateConfig.value, date);\n    return year * 10 + quarter;\n  }\n\n  const disabledStartDate = (date: DateType) => {\n    if (disabledDate && disabledDate?.value?.(date)) {\n      return true;\n    }\n\n    // Disabled range\n    if (disabled[1] && endDate) {\n      return (\n        !isSameDate(generateConfig.value, date, endDate.value) &&\n        generateConfig.value.isAfter(date, endDate.value)\n      );\n    }\n\n    // Disabled part\n    if (openRecordsRef.value[1] && endDate.value) {\n      switch (picker.value) {\n        case 'quarter':\n          return quarterNumber(date) > quarterNumber(endDate.value);\n        case 'month':\n          return monthNumber(date) > monthNumber(endDate.value);\n        case 'week':\n          return weekFirstDate(date) > weekFirstDate(endDate.value);\n        default:\n          return (\n            !isSameDate(generateConfig.value, date, endDate.value) &&\n            generateConfig.value.isAfter(date, endDate.value)\n          );\n      }\n    }\n\n    return false;\n  };\n\n  const disabledEndDate = (date: DateType) => {\n    if (disabledDate.value?.(date)) {\n      return true;\n    }\n\n    // Disabled range\n    if (disabled[0] && startDate) {\n      return (\n        !isSameDate(generateConfig.value, date, endDate.value) &&\n        generateConfig.value.isAfter(startDate.value, date)\n      );\n    }\n\n    // Disabled part\n    if (openRecordsRef.value[0] && startDate.value) {\n      switch (picker.value) {\n        case 'quarter':\n          return quarterNumber(date) < quarterNumber(startDate.value);\n        case 'month':\n          return monthNumber(date) < monthNumber(startDate.value);\n        case 'week':\n          return weekFirstDate(date) < weekFirstDate(startDate.value);\n        default:\n          return (\n            !isSameDate(generateConfig.value, date, startDate.value) &&\n            generateConfig.value.isAfter(startDate.value, date)\n          );\n      }\n    }\n\n    return false;\n  };\n\n  return [disabledStartDate, disabledEndDate];\n}\n","import type { RangeValue, PickerMode } from '../interface';\nimport type { GenerateConfig } from '../generate';\nimport { getValue, updateValues } from '../utils/miscUtil';\nimport { getClosingViewDate, isSameYear, isSameMonth, isSameDecade } from '../utils/dateUtil';\nimport type { Ref } from 'vue';\nimport { watch, computed, ref } from 'vue';\n\nfunction getStartEndDistance<DateType>(\n  startDate: DateType,\n  endDate: DateType,\n  picker: PickerMode,\n  generateConfig: GenerateConfig<DateType>,\n): 'same' | 'closing' | 'far' {\n  const startNext = getClosingViewDate(startDate, picker, generateConfig, 1);\n\n  function getDistance(compareFunc: (start: DateType | null, end: DateType | null) => boolean) {\n    if (compareFunc(startDate, endDate)) {\n      return 'same';\n    }\n    if (compareFunc(startNext, endDate)) {\n      return 'closing';\n    }\n    return 'far';\n  }\n\n  switch (picker) {\n    case 'year':\n      return getDistance((start, end) => isSameDecade(generateConfig, start, end));\n    case 'quarter':\n    case 'month':\n      return getDistance((start, end) => isSameYear(generateConfig, start, end));\n    default:\n      return getDistance((start, end) => isSameMonth(generateConfig, start, end));\n  }\n}\n\nfunction getRangeViewDate<DateType>(\n  values: RangeValue<DateType>,\n  index: 0 | 1,\n  picker: PickerMode,\n  generateConfig: GenerateConfig<DateType>,\n): DateType | null {\n  const startDate = getValue(values, 0);\n  const endDate = getValue(values, 1);\n\n  if (index === 0) {\n    return startDate;\n  }\n\n  if (startDate && endDate) {\n    const distance = getStartEndDistance(startDate, endDate, picker, generateConfig);\n    switch (distance) {\n      case 'same':\n        return startDate;\n      case 'closing':\n        return startDate;\n      default:\n        return getClosingViewDate(endDate, picker, generateConfig, -1);\n    }\n  }\n\n  return startDate;\n}\n\nexport default function useRangeViewDates<DateType>({\n  values,\n  picker,\n  defaultDates,\n  generateConfig,\n}: {\n  values: Ref<RangeValue<DateType>>;\n  picker: Ref<PickerMode>;\n  defaultDates: RangeValue<DateType> | undefined;\n  generateConfig: Ref<GenerateConfig<DateType>>;\n}): [Ref<DateType>, Ref<DateType>, (viewDate: DateType | null, index: 0 | 1) => void] {\n  const defaultViewDates = ref<[DateType | null, DateType | null]>([\n    getValue(defaultDates, 0),\n    getValue(defaultDates, 1),\n  ]);\n  const viewDates = ref<RangeValue<DateType>>(null);\n  const startDate = computed(() => getValue(values.value, 0));\n  const endDate = computed(() => getValue(values.value, 1));\n\n  const getViewDate = (index: 0 | 1): DateType => {\n    // If set default view date, use it\n    if (defaultViewDates.value[index]) {\n      return defaultViewDates.value[index]! as DateType;\n    }\n\n    return (\n      (getValue(viewDates.value, index) as any) ||\n      getRangeViewDate(values.value, index, picker.value, generateConfig.value) ||\n      startDate.value ||\n      endDate.value ||\n      generateConfig.value.getNow()\n    );\n  };\n\n  const startViewDate = ref(null);\n\n  const endViewDate = ref(null);\n  watch(\n    viewDates,\n    () => {\n      startViewDate.value = getViewDate(0);\n      endViewDate.value = getViewDate(1);\n    },\n    { immediate: true },\n  );\n\n  function setViewDate(viewDate: DateType | null, index: 0 | 1) {\n    if (viewDate) {\n      let newViewDates = updateValues(viewDates.value, viewDate as any, index);\n      // Set view date will clean up default one\n      // Should always be an array\n      defaultViewDates.value = updateValues(defaultViewDates.value, null, index) || [null, null];\n\n      // Reset another one when not have value\n      const anotherIndex = (index + 1) % 2;\n      if (!getValue(values.value, anotherIndex)) {\n        newViewDates = updateValues(newViewDates, viewDate, anotherIndex);\n      }\n\n      viewDates.value = newViewDates;\n    } else if (startDate.value || endDate.value) {\n      // Reset all when has values when `viewDate` is `null` which means from open trigger\n      viewDates.value = null;\n    }\n  }\n\n  return [startViewDate, endViewDate, setViewDate];\n}\n","import type { Ref } from 'vue';\nimport { ref } from 'vue';\n\nexport default function useState<T, R = Ref<T>>(\n  defaultStateValue?: T | (() => T),\n): [R, (val: T) => void] {\n  const initValue: T =\n    typeof defaultStateValue === 'function' ? (defaultStateValue as any)() : defaultStateValue;\n\n  const innerValue = ref(initValue) as Ref<T>;\n\n  function triggerChange(newValue: T) {\n    innerValue.value = newValue;\n  }\n\n  return [innerValue as unknown as R, triggerChange];\n}\n","import type { DisabledTimes, PanelMode, PickerMode, RangeValue, EventValue } from './interface';\nimport type { PickerBaseProps, PickerDateProps, PickerTimeProps } from './Picker';\nimport type { SharedTimeProps } from './panels/TimePanel';\nimport PickerTrigger from './PickerTrigger';\nimport PickerPanel from './PickerPanel';\nimport usePickerInput from './hooks/usePickerInput';\nimport getDataOrAriaProps, { toArray, getValue, updateValues } from './utils/miscUtil';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport type { ContextOperationRefProps } from './PanelContext';\nimport { useProvidePanel } from './PanelContext';\nimport {\n  isEqual,\n  getClosingViewDate,\n  isSameDate,\n  isSameWeek,\n  isSameQuarter,\n  formatValue,\n  parseValue,\n} from './utils/dateUtil';\nimport useValueTexts from './hooks/useValueTexts';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport type { GenerateConfig } from './generate';\nimport type { PickerPanelProps } from '.';\nimport { RangeContextProvider } from './RangeContext';\nimport useRangeDisabled from './hooks/useRangeDisabled';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport useRangeViewDates from './hooks/useRangeViewDates';\nimport type { DateRender } from './panels/DatePanel/DateBody';\nimport useHoverValue from './hooks/useHoverValue';\nimport type { VueNode } from '../../utils/type';\nimport type { ChangeEvent, FocusEventHandler, MouseEventHandler } from '../../utils/EventInterface';\nimport { computed, defineComponent, ref, toRef, watch, watchEffect } from 'vue';\nimport useMergedState from '../../hooks/useMergedState';\nimport { warning } from '../../utils/warning';\nimport useState from '../../hooks/useState';\nimport classNames from '../../utils/classNames';\nimport { useProviderTrigger } from '../trigger/context';\nimport { legacyPropsWarning } from './utils/warnUtil';\nimport { isArray, isFunction } from '../../utils';\n\nfunction reorderValues<DateType>(\n  values: RangeValue<DateType>,\n  generateConfig: GenerateConfig<DateType>,\n): RangeValue<DateType> {\n  if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n    return [values[1], values[0]];\n  }\n\n  return values;\n}\n\nfunction canValueTrigger<DateType>(\n  value: EventValue<DateType>,\n  index: number,\n  disabled: [boolean, boolean],\n  allowEmpty?: [boolean, boolean] | null,\n): boolean {\n  if (value) {\n    return true;\n  }\n\n  if (allowEmpty && allowEmpty[index]) {\n    return true;\n  }\n\n  if (disabled[(index + 1) % 2]) {\n    return true;\n  }\n\n  return false;\n}\n\nexport type RangeType = 'start' | 'end';\n\nexport type RangeInfo = {\n  range: RangeType;\n};\n\nexport type RangeDateRender<DateType> = (props: {\n  current: DateType;\n  today: DateType;\n  info: RangeInfo;\n}) => VueNode;\n\nexport type RangePickerSharedProps<DateType> = {\n  id?: string;\n  prefixText?: string;\n  value?: RangeValue<DateType>;\n  defaultValue?: RangeValue<DateType>;\n  defaultPickerValue?: [DateType, DateType];\n  placeholder?: [string, string];\n  disabled?: boolean | [boolean, boolean];\n  disabledTime?: (date: EventValue<DateType>, type: RangeType) => DisabledTimes;\n  ranges?: Record<\n    string,\n    Exclude<RangeValue<DateType>, null> | (() => Exclude<RangeValue<DateType>, null>)\n  >;\n  separator?: VueNode;\n  allowEmpty?: [boolean, boolean];\n  mode?: [PanelMode, PanelMode];\n  onChange?: (values: RangeValue<DateType>, formatString: [string, string]) => void;\n  onCalendarChange?: (\n    values: RangeValue<DateType>,\n    formatString: [string, string],\n    info: RangeInfo,\n  ) => void;\n  onPanelChange?: (values: RangeValue<DateType>, modes: [PanelMode, PanelMode]) => void;\n  onFocus?: FocusEventHandler;\n  onBlur?: FocusEventHandler;\n  onMousedown?: MouseEventHandler;\n  onMouseup?: MouseEventHandler;\n  onMouseenter?: MouseEventHandler;\n  onMouseleave?: MouseEventHandler;\n  onClick?: MouseEventHandler;\n  onOk?: (dates: RangeValue<DateType>) => void;\n  direction?: 'ltr' | 'rtl';\n  autocomplete?: string;\n  /** @private Internal control of active picker. Do not use since it's private usage */\n  activePickerIndex?: 0 | 1;\n  dateRender?: RangeDateRender<DateType>;\n  panelRender?: (originPanel: VueNode) => VueNode;\n  immediateCalendarChangeDateRangePicker?: boolean\n};\n\ntype OmitPickerProps<Props> = Omit<\n  Props,\n  | 'value'\n  | 'defaultValue'\n  | 'defaultPickerValue'\n  | 'placeholder'\n  | 'disabled'\n  | 'disabledTime'\n  | 'showToday'\n  | 'showTime'\n  | 'mode'\n  | 'onChange'\n  | 'onSelect'\n  | 'onPanelChange'\n  | 'pickerValue'\n  | 'onPickerValueChange'\n  | 'onOk'\n  | 'dateRender'\n>;\n\ntype RangeShowTimeObject<DateType> = Omit<SharedTimeProps<DateType>, 'defaultValue'> & {\n  defaultValue?: DateType[];\n};\n\nexport type RangePickerBaseProps<DateType> = {} & RangePickerSharedProps<DateType> &\n  OmitPickerProps<PickerBaseProps<DateType>>;\n\nexport type RangePickerDateProps<DateType> = {\n  showTime?: boolean | RangeShowTimeObject<DateType>;\n} & RangePickerSharedProps<DateType> &\n  OmitPickerProps<PickerDateProps<DateType>>;\n\nexport type RangePickerTimeProps<DateType> = {\n  order?: boolean;\n} & RangePickerSharedProps<DateType> &\n  OmitPickerProps<PickerTimeProps<DateType>>;\n\nexport type RangePickerProps<DateType> =\n  | RangePickerBaseProps<DateType>\n  | RangePickerDateProps<DateType>\n  | RangePickerTimeProps<DateType>;\n\n// TMP type to fit for ts 3.9.2\ntype OmitType<DateType> = Omit<RangePickerBaseProps<DateType>, 'picker'> &\n  Omit<RangePickerDateProps<DateType>, 'picker'> &\n  Omit<RangePickerTimeProps<DateType>, 'picker'>;\n\ntype MergedRangePickerProps<DateType> = {\n  picker?: PickerMode;\n} & OmitType<DateType>;\nfunction RangerPicker<DateType>() {\n  return defineComponent<MergedRangePickerProps<DateType>>({\n    name: 'RangerPicker',\n    inheritAttrs: false,\n    props: [\n      'prefixCls',\n      'id',\n      'prefixText',\n      'popupStyle',\n      'dropdownClassName',\n      'transitionName',\n      'dropdownAlign',\n      'getPopupContainer',\n      'generateConfig',\n      'locale',\n      'placeholder',\n      'autofocus',\n      'disabled',\n      'format',\n      'picker',\n      'showTime',\n      'showNow',\n      'showHour',\n      'showMinute',\n      'showSecond',\n      'use12Hours',\n      'separator',\n      'value',\n      'defaultValue',\n      'defaultPickerValue',\n      'open',\n      'defaultOpen',\n      'disabledDate',\n      'disabledTime',\n      'dateRender',\n      'panelRender',\n      'ranges',\n      'allowEmpty',\n      'allowClear',\n      'suffixIcon',\n      'clearIcon',\n      'pickerRef',\n      'inputReadOnly',\n      'mode',\n      'renderExtraFooter',\n      'onChange',\n      'onOpenChange',\n      'onPanelChange',\n      'onCalendarChange',\n      'onFocus',\n      'onBlur',\n      'onMousedown',\n      'onMouseup',\n      'onMouseenter',\n      'onMouseleave',\n      'onClick',\n      'onOk',\n      'onKeydown',\n      'components',\n      'order',\n      'direction',\n      'activePickerIndex',\n      'autocomplete',\n      'immediateCalendarChangeDateRangePicker'\n    ] as any,\n    setup(props, { attrs, expose }) {\n      const needConfirmButton = computed(\n        () => (props.picker === 'date' && !!props.showTime) || props.picker === 'time',\n      );\n      const getPortal = useProviderTrigger();\n      // We record opened status here in case repeat open with picker\n      const openRecordsRef = ref<Record<number, boolean>>({});\n\n      const containerRef = ref<HTMLDivElement>(null);\n      const panelDivRef = ref<HTMLDivElement>(null);\n      const startInputDivRef = ref<HTMLDivElement>(null);\n      const endInputDivRef = ref<HTMLDivElement>(null);\n      const separatorRef = ref<HTMLDivElement>(null);\n      const startInputRef = ref<HTMLInputElement>(null);\n      const endInputRef = ref<HTMLInputElement>(null);\n      const arrowRef = ref<HTMLDivElement>(null);\n\n      // ============================ Warning ============================\n      if (process.env.NODE_ENV !== 'production') {\n        legacyPropsWarning(props);\n      }\n\n      // ============================= Misc ==============================\n      const formatList = computed(() =>\n        toArray(\n          getDefaultFormat<DateType>(props.format, props.picker, props.showTime, props.use12Hours),\n        ),\n      );\n\n      // Active picker\n      const [mergedActivePickerIndex, setMergedActivePickerIndex] = useMergedState<0 | 1>(0, {\n        value: toRef(props, 'activePickerIndex'),\n      });\n\n      // Operation ref\n      const operationRef = ref<ContextOperationRefProps>(null);\n\n      const mergedDisabled = computed<[boolean, boolean]>(() => {\n        const { disabled } = props;\n        if (Array.isArray(disabled)) {\n          return disabled;\n        }\n\n        return [disabled || false, disabled || false];\n      });\n\n      // ============================= Value =============================\n      const [mergedValue, setInnerValue] = useMergedState<RangeValue<DateType>>(null, {\n        value: toRef(props, 'value'),\n        defaultValue: props.defaultValue,\n        postState: values =>\n          props.picker === 'time' && !props.order\n            ? values\n            : reorderValues(values, props.generateConfig),\n      });\n\n      // =========================== View Date ===========================\n      // Config view panel\n      const [startViewDate, endViewDate, setViewDate] = useRangeViewDates({\n        values: mergedValue,\n        picker: toRef(props, 'picker'),\n        defaultDates: props.defaultPickerValue,\n        generateConfig: toRef(props, 'generateConfig'),\n      });\n\n      // ========================= Select Values =========================\n      const [selectedValue, setSelectedValue] = useMergedState(mergedValue.value, {\n        postState: values => {\n          let postValues = values;\n\n          if (mergedDisabled.value[0] && mergedDisabled.value[1]) {\n            return postValues;\n          }\n\n          // Fill disabled unit\n          for (let i = 0; i < 2; i += 1) {\n            if (mergedDisabled[i] && !getValue(postValues, i) && !getValue(props.allowEmpty, i)) {\n              postValues = updateValues(postValues, props.generateConfig.getNow(), i);\n            }\n          }\n          return postValues;\n        },\n      });\n\n      // ============================= Modes =============================\n      const [mergedModes, setInnerModes] = useMergedState<[PanelMode, PanelMode]>(\n        [props.picker, props.picker],\n        {\n          value: toRef(props, 'mode'),\n        },\n      );\n\n      watch(\n        () => props.picker,\n        () => {\n          setInnerModes([props.picker, props.picker]);\n        },\n      );\n\n      const triggerModesChange = (modes: [PanelMode, PanelMode], values: RangeValue<DateType>) => {\n        setInnerModes(modes);\n        props.onPanelChange?.(values, modes);\n      };\n\n      // ========================= Disable Date ==========================\n      const [disabledStartDate, disabledEndDate] = useRangeDisabled(\n        {\n          picker: toRef(props, 'picker'),\n          selectedValue,\n          locale: toRef(props, 'locale'),\n          disabled: mergedDisabled,\n          disabledDate: toRef(props, 'disabledDate'),\n          generateConfig: toRef(props, 'generateConfig'),\n        },\n        openRecordsRef,\n      );\n\n      // ============================= Open ==============================\n      const [mergedOpen, triggerInnerOpen] = useMergedState(false, {\n        value: toRef(props, 'open'),\n        defaultValue: props.defaultOpen,\n        postState: postOpen =>\n          mergedDisabled.value[mergedActivePickerIndex.value] ? false : postOpen,\n        onChange: newOpen => {\n          if (props.onOpenChange) {\n            if (isFunction(props.onOpenChange)) {\n              props.onOpenChange?.(newOpen);\n            }\n            if (isArray(props.onOpenChange)) {\n              props?.onOpenChange?.[1]?.(newOpen);\n            }\n          }\n\n          if (!newOpen && operationRef.value && operationRef.value.onClose) {\n            operationRef.value.onClose();\n          }\n        },\n      });\n\n      const startOpen = computed(() => mergedOpen.value && mergedActivePickerIndex.value === 0);\n      const endOpen = computed(() => mergedOpen.value && mergedActivePickerIndex.value === 1);\n\n      // ============================= Popup =============================\n      // Popup min width\n      const popupMinWidth = ref(0);\n      watch(mergedOpen, () => {\n        if (!mergedOpen.value && containerRef.value) {\n          popupMinWidth.value = containerRef.value.offsetWidth;\n        }\n      });\n\n      // ============================ Trigger ============================\n      const triggerRef = ref<any>();\n\n      function triggerOpen(newOpen: boolean, index: 0 | 1) {\n        if (newOpen) {\n          clearTimeout(triggerRef.value);\n          openRecordsRef.value[index] = true;\n\n          setMergedActivePickerIndex(index);\n          triggerInnerOpen(newOpen);\n\n          // Open to reset view date\n          if (!mergedOpen.value) {\n            setViewDate(null, index);\n          }\n        } else if (mergedActivePickerIndex.value === index) {\n          triggerInnerOpen(newOpen);\n\n          // Clean up async\n          // This makes ref not quick refresh in case user open another input with blur trigger\n          const openRecords = openRecordsRef.value;\n          triggerRef.value = setTimeout(() => {\n            if (openRecords === openRecordsRef.value) {\n              openRecordsRef.value = {};\n            }\n          });\n        }\n      }\n\n      function triggerOpenAndFocus(index: 0 | 1) {\n        triggerOpen(true, index);\n        // Use setTimeout to make sure panel DOM exists\n        setTimeout(() => {\n          const inputRef = [startInputRef, endInputRef][index];\n          if (inputRef.value) {\n            inputRef.value.focus();\n          }\n        }, 0);\n      }\n\n      function triggerChange(newValue: RangeValue<DateType>, sourceIndex: 0 | 1) {\n        let values = newValue;\n        let startValue = getValue(values, 0);\n        let endValue = getValue(values, 1);\n        const {\n          generateConfig,\n          locale,\n          picker,\n          order,\n          onCalendarChange,\n          allowEmpty,\n          onChange,\n          showTime,\n        } = props;\n\n        // >>>>> Format start & end values\n        if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n          if (\n            // WeekPicker only compare week\n            (picker === 'week' &&\n              !isSameWeek(generateConfig, locale.locale, startValue, endValue)) ||\n            // QuotaPicker only compare week\n            (picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue)) ||\n            // Other non-TimePicker compare date\n            (picker !== 'week' &&\n              picker !== 'quarter' &&\n              picker !== 'time' &&\n              !(showTime\n                ? isEqual(generateConfig, startValue, endValue)\n                : isSameDate(generateConfig, startValue, endValue)))\n          ) {\n            // Clean up end date when start date is after end date\n            if (sourceIndex === 0) {\n              values = [startValue, null];\n              endValue = null;\n            } else {\n              startValue = null;\n              values = [null, endValue];\n            }\n\n            // Clean up cache since invalidate\n            openRecordsRef.value = {\n              [sourceIndex]: true,\n            };\n          } else if (picker !== 'time' || order !== false) {\n            // Reorder when in same date\n            values = reorderValues(values, generateConfig);\n          }\n        }\n\n        setSelectedValue(values);\n\n        const startStr =\n          values && values[0]\n            ? formatValue(values[0], { generateConfig, locale, format: formatList.value[0] })\n            : '';\n        const endStr =\n          values && values[1]\n            ? formatValue(values[1], { generateConfig, locale, format: formatList.value[0] })\n            : '';\n        if (onCalendarChange) {\n          const info: RangeInfo = { range: sourceIndex === 0 ? 'start' : 'end' };\n\n          // onCalendarChange(values, [startStr, endStr], info);\n          if (isFunction(onCalendarChange)) {\n            onCalendarChange(values, [startStr, endStr], info);\n          }\n          if (isArray(onCalendarChange)) {\n            onCalendarChange?.[1]?.(values, [startStr, endStr], info);\n          }\n        }\n\n        // >>>>> Trigger `onChange` event\n        const canStartValueTrigger = canValueTrigger(\n          startValue,\n          0,\n          mergedDisabled.value,\n          allowEmpty,\n        );\n        const canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled.value, allowEmpty);\n\n        const canTrigger = values === null || (canStartValueTrigger && canEndValueTrigger);\n\n        if (canTrigger) {\n          // Trigger onChange only when value is validate\n          setInnerValue(values);\n\n          if (\n            onChange &&\n            (!isEqual(generateConfig, getValue(mergedValue.value, 0), startValue) ||\n              !isEqual(generateConfig, getValue(mergedValue.value, 1), endValue))\n          ) {\n            // console.log('onChange: ', onChange);\n            if (isFunction(onChange)) {\n              onChange(values, [startStr, endStr]);\n            }\n            if (isArray(onChange)) {\n              onChange?.[onChange.length - 1]?.(values, [startStr, endStr]);\n            }\n            // onChange(values, [startStr, endStr]);\n          }\n        }\n\n        // >>>>> Open picker when\n\n        // Always open another picker if possible\n        let nextOpenIndex: 0 | 1 = null;\n        if (sourceIndex === 0 && !mergedDisabled.value[1]) {\n          nextOpenIndex = 1;\n        } else if (sourceIndex === 1 && !mergedDisabled.value[0]) {\n          nextOpenIndex = 0;\n        }\n\n        if (\n          nextOpenIndex !== null &&\n          nextOpenIndex !== mergedActivePickerIndex.value &&\n          (!openRecordsRef.value[nextOpenIndex] || !getValue(values, nextOpenIndex)) &&\n          getValue(values, sourceIndex)\n        ) {\n          // Delay to focus to avoid input blur trigger expired selectedValues\n          triggerOpenAndFocus(nextOpenIndex);\n        } else {\n          triggerOpen(false, sourceIndex);\n        }\n      }\n\n      const forwardKeydown = (e: KeyboardEvent) => {\n        if (mergedOpen && operationRef.value && operationRef.value.onKeydown) {\n          // Let popup panel handle keyboard\n          return operationRef.value.onKeydown(e);\n        }\n\n        /* istanbul ignore next */\n        /* eslint-disable no-lone-blocks */\n        {\n          warning(\n            false,\n            'Picker not correct forward Keydown operation. Please help to fire issue about this.',\n          );\n          return false;\n        }\n      };\n\n      // ============================= Text ==============================\n      const sharedTextHooksProps = {\n        formatList,\n        generateConfig: toRef(props, 'generateConfig'),\n        locale: toRef(props, 'locale'),\n      };\n\n      const [startValueTexts, firstStartValueText] = useValueTexts<DateType>(\n        computed(() => getValue(selectedValue.value, 0)),\n        sharedTextHooksProps,\n      );\n\n      const [endValueTexts, firstEndValueText] = useValueTexts<DateType>(\n        computed(() => getValue(selectedValue.value, 1)),\n        sharedTextHooksProps,\n      );\n\n      const onTextChange = (newText: string, index: 0 | 1) => {\n        const inputDate = parseValue(newText, {\n          locale: props.locale,\n          formatList: formatList.value,\n          generateConfig: props.generateConfig,\n        });\n\n        const disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n\n        if (inputDate && !disabledFunc(inputDate)) {\n          setSelectedValue(updateValues(selectedValue.value, inputDate, index));\n          setViewDate(inputDate, index);\n        }\n      };\n\n      const [startText, triggerStartTextChange, resetStartText] = useTextValueMapping({\n        valueTexts: startValueTexts,\n        onTextChange: newText => onTextChange(newText, 0),\n      });\n\n      const [endText, triggerEndTextChange, resetEndText] = useTextValueMapping({\n        valueTexts: endValueTexts,\n        onTextChange: newText => onTextChange(newText, 1),\n      });\n\n      const [rangeHoverValue, setRangeHoverValue] = useState<RangeValue<DateType>>(null);\n\n      // ========================== Hover Range ==========================\n      const [hoverRangedValue, setHoverRangedValue] = useState<RangeValue<DateType>>(null);\n\n      const [startHoverValue, onStartEnter, onStartLeave] = useHoverValue(\n        startText,\n        sharedTextHooksProps,\n      );\n\n      const [endHoverValue, onEndEnter, onEndLeave] = useHoverValue(endText, sharedTextHooksProps);\n\n      const onDateMouseenter = (date: DateType) => {\n        setHoverRangedValue(updateValues(selectedValue.value, date, mergedActivePickerIndex.value));\n        if (mergedActivePickerIndex.value === 0) {\n          onStartEnter(date);\n        } else {\n          onEndEnter(date);\n        }\n      };\n\n      const onDateMouseleave = () => {\n        setHoverRangedValue(updateValues(selectedValue.value, null, mergedActivePickerIndex.value));\n        if (mergedActivePickerIndex.value === 0) {\n          onStartLeave();\n        } else {\n          onEndLeave();\n        }\n      };\n\n      // ============================= Input =============================\n      const getSharedInputHookProps = (index: 0 | 1, resetText: () => void) => ({\n        forwardKeydown,\n        onBlur: (e: FocusEvent) => {\n          if (props.onBlur) {\n            if (isFunction(props.onBlur)) {\n              props.onBlur?.(e);\n            }\n            if (isArray(props.onBlur)) {\n              props?.onBlur?.[1]?.(e);\n            }\n          }\n          // props.onBlur?.(e);\n        },\n        isClickOutside: (target: EventTarget | null) =>\n          !elementsContains(\n            [panelDivRef.value, startInputDivRef.value, endInputDivRef.value, containerRef.value],\n            target as HTMLElement,\n          ),\n        onFocus: (e: FocusEvent) => {\n          setMergedActivePickerIndex(index);\n          if (props.onFocus) {\n            if (isFunction(props.onFocus)) {\n              props.onFocus?.(e);\n            }\n            if (isArray(props.onFocus)) {\n              props?.onFocus?.[1]?.(e);\n            }\n          }\n          // props.onFocus?.(e);\n        },\n        triggerOpen: (newOpen: boolean) => {\n          triggerOpen(newOpen, index);\n        },\n        onSubmit: () => {\n          if (\n            // When user typing disabledDate with keyboard and enter, this value will be empty\n            !selectedValue.value ||\n            // Normal disabled check\n            (props.disabledDate && props.disabledDate(selectedValue.value[index]))\n          ) {\n            return false;\n          }\n          triggerChange(selectedValue.value, index);\n          resetText();\n        },\n        onCancel: () => {\n          triggerOpen(false, index);\n          setSelectedValue(mergedValue.value);\n          resetText();\n        },\n      });\n\n      const [startInputProps, { focused: startFocused, typing: startTyping }] = usePickerInput({\n        ...getSharedInputHookProps(0, resetStartText),\n        blurToCancel: needConfirmButton,\n        open: startOpen,\n        value: startText,\n        onKeydown: (e, preventDefault) => {\n          props.onKeydown?.(e, preventDefault);\n        },\n      });\n\n      const [endInputProps, { focused: endFocused, typing: endTyping }] = usePickerInput({\n        ...getSharedInputHookProps(1, resetEndText),\n        blurToCancel: needConfirmButton,\n        open: endOpen,\n        value: endText,\n        onKeydown: (e, preventDefault) => {\n          props.onKeydown?.(e, preventDefault);\n        },\n      });\n\n      // ========================== Click Picker ==========================\n      const onPickerClick = (e: MouseEvent) => {\n        // When click inside the picker & outside the picker's input elements\n        // the panel should still be opened\n        props.onClick?.(e);\n        if (\n          !mergedOpen.value &&\n          !startInputRef.value.contains(e.target as Node) &&\n          !endInputRef.value.contains(e.target as Node)\n        ) {\n          if (!mergedDisabled.value[0]) {\n            triggerOpenAndFocus(0);\n          } else if (!mergedDisabled.value[1]) {\n            triggerOpenAndFocus(1);\n          }\n        }\n      };\n\n      const onPickerMousedown = (e: MouseEvent) => {\n        // shouldn't affect input elements if picker is active\n        props.onMousedown?.(e);\n        if (\n          mergedOpen.value &&\n          (startFocused.value || endFocused.value) &&\n          !startInputRef.value.contains(e.target as Node) &&\n          !endInputRef.value.contains(e.target as Node)\n        ) {\n          e.preventDefault();\n        }\n      };\n\n      // ============================= Sync ==============================\n      // Close should sync back with text value\n      const startStr = computed(() =>\n        mergedValue.value?.[0]\n          ? formatValue(mergedValue.value[0], {\n              locale: props.locale,\n              format: 'YYYYMMDDHHmmss',\n              generateConfig: props.generateConfig,\n            })\n          : '',\n      );\n      const endStr = computed(() =>\n        mergedValue.value?.[1]\n          ? formatValue(mergedValue.value[1], {\n              locale: props.locale,\n              format: 'YYYYMMDDHHmmss',\n              generateConfig: props.generateConfig,\n            })\n          : '',\n      );\n\n      watch([mergedOpen, startValueTexts, endValueTexts], () => {\n        if (!mergedOpen.value) {\n          setSelectedValue(mergedValue.value);\n\n          if (!startValueTexts.value.length || startValueTexts.value[0] === '') {\n            triggerStartTextChange('');\n          } else if (firstStartValueText.value !== startText.value) {\n            resetStartText();\n          }\n          if (!endValueTexts.value.length || endValueTexts.value[0] === '') {\n            triggerEndTextChange('');\n          } else if (firstEndValueText.value !== endText.value) {\n            resetEndText();\n          }\n        }\n      });\n\n      // Sync innerValue with control mode\n      watch([startStr, endStr], () => {\n        setSelectedValue(mergedValue.value);\n      });\n\n      // ============================ Warning ============================\n      if (process.env.NODE_ENV !== 'production') {\n        watchEffect(() => {\n          const { value, disabled } = props;\n          if (\n            value &&\n            Array.isArray(disabled) &&\n            ((getValue(disabled, 0) && !getValue(value, 0)) ||\n              (getValue(disabled, 1) && !getValue(value, 1)))\n          ) {\n            warning(\n              false,\n              '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.',\n            );\n          }\n        });\n      }\n\n      expose({\n        focus: () => {\n          if (startInputRef.value) {\n            startInputRef.value.focus();\n          }\n        },\n        blur: () => {\n          if (startInputRef.value) {\n            startInputRef.value.blur();\n          }\n          if (endInputRef.value) {\n            endInputRef.value.blur();\n          }\n        },\n      });\n\n      // ============================ Ranges =============================\n\n      const rangeList = computed(() =>\n        Object.keys(props.ranges || {}).map(label => {\n          const range = props.ranges![label];\n          const newValues = typeof range === 'function' ? range() : range;\n\n          return {\n            label,\n            onClick: () => {\n              triggerChange(newValues, null);\n              triggerOpen(false, mergedActivePickerIndex.value);\n            },\n            onMouseenter: () => {\n              setRangeHoverValue(newValues);\n            },\n            onMouseleave: () => {\n              setRangeHoverValue(null);\n            },\n          };\n        }),\n      );\n      // ============================= Panel =============================\n      const panelHoverRangedValue = computed(() => {\n        if (\n          mergedOpen.value &&\n          hoverRangedValue.value &&\n          hoverRangedValue.value[0] &&\n          hoverRangedValue.value[1] &&\n          props.generateConfig.isAfter(hoverRangedValue.value[1], hoverRangedValue.value[0])\n        ) {\n          return hoverRangedValue.value;\n        } else {\n          return null;\n        }\n      });\n      function renderPanel(\n        panelPosition: 'left' | 'right' | false = false,\n        panelProps: Partial<PickerPanelProps<DateType>> = {},\n      ) {\n        const { generateConfig, showTime, dateRender, direction, disabledTime, prefixCls, locale } =\n          props;\n\n        let panelShowTime: boolean | SharedTimeProps<DateType> | undefined =\n          showTime as SharedTimeProps<DateType>;\n        if (showTime && typeof showTime === 'object' && showTime.defaultValue) {\n          const timeDefaultValues: DateType[] = showTime.defaultValue!;\n          panelShowTime = {\n            ...showTime,\n            defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex.value) || undefined,\n          };\n        }\n\n        let panelDateRender: DateRender<DateType> | null = null;\n        if (dateRender) {\n          panelDateRender = ({ current: date, today }) =>\n            dateRender({\n              current: date,\n              today,\n              info: {\n                range: mergedActivePickerIndex.value ? 'end' : 'start',\n              },\n            });\n        }\n\n        // console.log('props: ', props);\n        // console.log('panelProps: ', panelProps);\n        return (\n          <RangeContextProvider\n            value={{\n              inRange: true,\n              panelPosition,\n              rangedValue: rangeHoverValue.value || selectedValue.value,\n              hoverRangedValue: panelHoverRangedValue.value,\n            }}\n          >\n            <PickerPanel<DateType>\n              {...(props as any)}\n              {...panelProps}\n              pickerType='rangePicker'\n              dateRender={panelDateRender}\n              showTime={panelShowTime}\n              mode={mergedModes.value[mergedActivePickerIndex.value]}\n              generateConfig={generateConfig}\n              style={undefined}\n              direction={direction}\n              disabledDate={\n                mergedActivePickerIndex.value === 0 ? disabledStartDate : disabledEndDate\n              }\n              disabledTime={date => {\n                if (disabledTime) {\n                  return disabledTime(date, mergedActivePickerIndex.value === 0 ? 'start' : 'end');\n                }\n                return false;\n              }}\n              class={classNames({\n                [`${prefixCls}-panel-focused`]:\n                  mergedActivePickerIndex.value === 0 ? !startTyping.value : !endTyping.value,\n              })}\n              value={getValue(selectedValue.value, mergedActivePickerIndex.value)}\n              locale={locale}\n              tabIndex={-1}\n              onPanelChange={(date, newMode) => {\n                // clear hover value when panel change\n                if (mergedActivePickerIndex.value === 0) {\n                  onStartLeave(true);\n                }\n                if (mergedActivePickerIndex.value === 1) {\n                  onEndLeave(true);\n                }\n                triggerModesChange(\n                  updateValues(mergedModes.value, newMode, mergedActivePickerIndex.value),\n                  updateValues(selectedValue.value, date, mergedActivePickerIndex.value),\n                );\n\n                let viewDate = date;\n                if (\n                  panelPosition === 'right' &&\n                  mergedModes.value[mergedActivePickerIndex.value] === newMode\n                ) {\n                  viewDate = getClosingViewDate(viewDate, newMode as any, generateConfig, -1);\n                }\n                setViewDate(viewDate, mergedActivePickerIndex.value);\n              }}\n              onOk={null}\n              onSelect={undefined}\n              onChange={undefined}\n              defaultValue={\n                mergedActivePickerIndex.value === 0\n                  ? getValue(selectedValue.value, 1)\n                  : getValue(selectedValue.value, 0)\n              }\n            />\n          </RangeContextProvider>\n        );\n      }\n\n      const onContextSelect = (date: DateType, type: 'key' | 'mouse' | 'submit') => {\n        const {\n          immediateCalendarChangeDateRangePicker,\n          showTime,\n          onCalendarChange,\n          generateConfig,\n          locale, \n        } = props\n        const values = updateValues(selectedValue.value, date, mergedActivePickerIndex.value);\n        // console.log('values: ', values);\n        if (immediateCalendarChangeDateRangePicker && showTime) {\n          const startStr =\n          values && values[0]\n              ? formatValue(values[0], { generateConfig, locale, format: formatList.value[0] })\n              : '';\n          const endStr =\n            values && values[1]\n              ? formatValue(values[1], { generateConfig, locale, format: formatList.value[0] })\n              : '';\n          if (onCalendarChange) {\n            // const info: RangeInfo = { range: date[0] ? 'start' : 'end' };\n            if (isFunction(onCalendarChange)) {\n              onCalendarChange(values, [startStr, endStr], info);\n            }\n            if (isArray(onCalendarChange)) {\n              onCalendarChange?.[1]?.(values, [startStr, endStr]);\n            }\n          }\n        }\n        // console.log('type === ', type === 'submit' || (type !== 'key' && !needConfirmButton.value));\n        if (type === 'submit' || (type !== 'key' && !needConfirmButton.value)) {\n          // triggerChange will also update selected values\n          // console.log('values, mergedActivePickerIndex.value: ', values, mergedActivePickerIndex.value);\n          triggerChange(values, mergedActivePickerIndex.value);\n          // clear hover value style\n          if (mergedActivePickerIndex.value === 0) {\n            onStartLeave();\n          } else {\n            onEndLeave();\n          }\n        } else {\n          setSelectedValue(values);\n        }\n      };\n\n      useProvidePanel({\n        operationRef,\n        hideHeader: computed(() => props.picker === 'time'),\n        onDateMouseenter,\n        onDateMouseleave,\n        hideRanges: computed(() => true),\n        onSelect: onContextSelect,\n        open: mergedOpen,\n      });\n\n      return () => {\n        const {\n          prefixCls = 'scPicker',\n          id,\n          popupStyle,\n          dropdownClassName,\n          transitionName,\n          dropdownAlign,\n          getPopupContainer,\n          generateConfig,\n          locale,\n          placeholder,\n          autofocus,\n          picker = 'date',\n          showTime,\n          separator = '~',\n          disabledDate,\n          panelRender,\n          allowClear,\n          suffixIcon,\n          prefixText,\n          clearIcon,\n          inputReadOnly,\n          renderExtraFooter,\n          onMouseenter,\n          onMouseleave,\n          onMouseup,\n          onOk,\n          components,\n          direction,\n          autocomplete = 'off',\n        } = props;\n        let arrowLeft = 0;\n        let panelLeft = 0;\n        if (\n          mergedActivePickerIndex.value &&\n          startInputDivRef.value &&\n          separatorRef.value &&\n          panelDivRef.value\n        ) {\n          // Arrow offset\n          arrowLeft = startInputDivRef.value.offsetWidth + separatorRef.value.offsetWidth;\n\n          if (\n            panelDivRef.value.offsetWidth &&\n            arrowRef.value.offsetWidth &&\n            arrowLeft >\n              panelDivRef.value.offsetWidth -\n                arrowRef.value.offsetWidth -\n                (direction === 'rtl' ? 0 : arrowRef.value.offsetLeft)\n          ) {\n            panelLeft = arrowLeft;\n          }\n        }\n\n        const arrowPositionStyle = direction === 'rtl' ? { right: arrowLeft } : { left: arrowLeft };\n\n        function renderPanels() {\n          let panels: VueNode;\n          const extraNode = getExtraFooter(\n            prefixCls,\n            mergedModes.value[mergedActivePickerIndex.value],\n            renderExtraFooter,\n          );\n\n          const rangesNode = getRanges({\n            prefixCls,\n            components,\n            needConfirmButton: needConfirmButton.value,\n            okDisabled:\n              !getValue(selectedValue.value, mergedActivePickerIndex.value) ||\n              (disabledDate && disabledDate(selectedValue.value[mergedActivePickerIndex.value])),\n            locale,\n            rangeList: rangeList.value,\n            onOk: () => {\n              if (getValue(selectedValue.value, mergedActivePickerIndex.value)) {\n                // triggerChangeOld(selectedValue.value);\n                triggerChange(selectedValue.value, mergedActivePickerIndex.value);\n                if (onOk) {\n                  if (isFunction(onOk)) {\n                    onOk(selectedValue.value);\n                  }\n                  if (isArray(onOk)) {\n                    onOk?.[1]?.(selectedValue.value);\n                  }\n                  // onOk(selectedValue.value);\n                }\n              }\n            },\n          });\n\n          if (picker !== 'time' && !showTime) {\n            const viewDate =\n              mergedActivePickerIndex.value === 0 ? startViewDate.value : endViewDate.value;\n            const nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n            const currentMode = mergedModes.value[mergedActivePickerIndex.value];\n\n            const showDoublePanel = currentMode === picker;\n            const leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n              pickerValue: viewDate,\n              onPickerValueChange: newViewDate => {\n                setViewDate(newViewDate, mergedActivePickerIndex.value);\n              },\n            });\n            const rightPanel = renderPanel('right', {\n              pickerValue: nextViewDate,\n              onPickerValueChange: newViewDate => {\n                setViewDate(\n                  getClosingViewDate(newViewDate, picker, generateConfig, -1),\n                  mergedActivePickerIndex.value,\n                );\n              },\n            });\n\n            if (direction === 'rtl') {\n              panels = (\n                <>\n                  {rightPanel}\n                  {showDoublePanel && leftPanel}\n                </>\n              );\n            } else {\n              panels = (\n                <>\n                  {leftPanel}\n                  {showDoublePanel && rightPanel}\n                </>\n              );\n            }\n          } else {\n            panels = renderPanel();\n          }\n\n          let mergedNodes: VueNode = (\n            <>\n              <div class={`${prefixCls}-panels`}>{panels}</div>\n              {(extraNode || rangesNode) && (\n                <div class={`${prefixCls}-footer`}>\n                  {extraNode}\n                  {rangesNode}\n                </div>\n              )}\n            </>\n          );\n\n          if (panelRender) {\n            mergedNodes = panelRender(mergedNodes);\n          }\n\n          return (\n            <div\n              class={`${prefixCls}-panel-container`}\n              style={{ marginLeft: panelLeft }}\n              ref={panelDivRef}\n              onMousedown={e => {\n                e.preventDefault();\n              }}\n            >\n              {mergedNodes}\n            </div>\n          );\n        }\n\n        const rangePanel = (\n          <div\n            class={classNames(`${prefixCls}-range-wrapper`, `${prefixCls}-${picker}-range-wrapper`)}\n            style={{ minWidth: `${popupMinWidth.value}px` }}\n          >\n            <div ref={arrowRef} class={`${prefixCls}-range-arrow`} style={arrowPositionStyle} />\n            {renderPanels()}\n          </div>\n        );\n\n        // ============================= Icons =============================\n        let suffixNode: VueNode;\n        if (suffixIcon) {\n          suffixNode = <span class={`${prefixCls}-suffix`}>{suffixIcon}</span>;\n        }\n\n        let prefixNode: VueNode;\n        if (prefixText || attrs.prefixText) {\n          prefixNode = <span class={`${prefixCls}-prefix`}>{prefixText || attrs.prefixText}</span>;\n        }\n\n        let clearNode: VueNode;\n        if (\n          allowClear &&\n          ((getValue(mergedValue.value, 0) && !mergedDisabled.value[0]) ||\n            (getValue(mergedValue.value, 1) && !mergedDisabled.value[1]))\n        ) {\n          clearNode = (\n            <span\n              onMousedown={e => {\n                e.preventDefault();\n                e.stopPropagation();\n              }}\n              onMouseup={e => {\n                e.preventDefault();\n                e.stopPropagation();\n                let values = mergedValue.value;\n\n                if (!mergedDisabled.value[0]) {\n                  values = updateValues(values, null, 0);\n                }\n                if (!mergedDisabled.value[1]) {\n                  values = updateValues(values, null, 1);\n                }\n\n                triggerChange(values, null);\n                triggerOpen(false, mergedActivePickerIndex.value);\n              }}\n              class={`${prefixCls}-clear`}\n            >\n              {clearIcon || <span class={`${prefixCls}-clear-btn`} />}\n            </span>\n          );\n        }\n\n        const inputSharedProps = {\n          size: getInputSize(picker, formatList.value[0], generateConfig),\n        };\n\n        let activeBarLeft = 0;\n        let activeBarWidth = 0;\n        if (startInputDivRef.value && endInputDivRef.value && separatorRef.value) {\n          if (mergedActivePickerIndex.value === 0) {\n            activeBarWidth = startInputDivRef.value.offsetWidth;\n          } else {\n            activeBarLeft = arrowLeft;\n            activeBarWidth = endInputDivRef.value.offsetWidth;\n          }\n        }\n        const activeBarPositionStyle =\n          direction === 'rtl' ? { right: `${activeBarLeft}px` } : { left: `${activeBarLeft}px` };\n        // ============================ Return =============================\n\n        return (\n          <PickerTrigger\n            visible={mergedOpen.value}\n            popupStyle={popupStyle}\n            prefixCls={prefixCls}\n            dropdownClassName={dropdownClassName}\n            dropdownAlign={dropdownAlign}\n            getPopupContainer={getPopupContainer}\n            transitionName={transitionName}\n            range\n            direction={direction}\n            v-slots={{\n              popupElement: () => rangePanel,\n            }}\n          >\n            <div\n              ref={containerRef}\n              class={classNames(prefixCls, `${prefixCls}-range`, attrs.class, {\n                [`${prefixCls}-disabled`]: mergedDisabled.value[0] && mergedDisabled.value[1],\n                [`${prefixCls}-focused`]:\n                  mergedActivePickerIndex.value === 0 ? startFocused.value : endFocused.value,\n                [`${prefixCls}-rtl`]: direction === 'rtl',\n              })}\n              style={attrs.style}\n              onClick={onPickerClick}\n              onMouseenter={onMouseenter}\n              onMouseleave={onMouseleave}\n              onMousedown={onPickerMousedown}\n              onMouseup={onMouseup}\n              {...getDataOrAriaProps(props)}\n            >\n              {prefixNode}\n              <div\n                class={classNames(`${prefixCls}-input`, {\n                  [`${prefixCls}-input-active`]: mergedActivePickerIndex.value === 0,\n                  [`${prefixCls}-input-placeholder`]: !!startHoverValue.value,\n                })}\n                ref={startInputDivRef}\n              >\n                <input\n                  id={id}\n                  disabled={mergedDisabled.value[0]}\n                  readonly={\n                    inputReadOnly || typeof formatList.value[0] === 'function' || !startTyping.value\n                  }\n                  value={startHoverValue.value || startText.value}\n                  onInput={(e: ChangeEvent) => {\n                    triggerStartTextChange(e.target.value);\n                  }}\n                  autofocus={autofocus}\n                  placeholder={getValue(placeholder, 0) || ''}\n                  ref={startInputRef}\n                  {...startInputProps.value}\n                  {...inputSharedProps}\n                  autocomplete={autocomplete}\n                />\n              </div>\n              <div class={`${prefixCls}-range-separator`} ref={separatorRef}>\n                {separator}\n              </div>\n              <div\n                class={classNames(`${prefixCls}-input`, {\n                  [`${prefixCls}-input-active`]: mergedActivePickerIndex.value === 1,\n                  [`${prefixCls}-input-placeholder`]: !!endHoverValue.value,\n                })}\n                ref={endInputDivRef}\n              >\n                <input\n                  disabled={mergedDisabled.value[1]}\n                  readonly={\n                    inputReadOnly || typeof formatList.value[0] === 'function' || !endTyping.value\n                  }\n                  value={endHoverValue.value || endText.value}\n                  onInput={(e: ChangeEvent) => {\n                    triggerEndTextChange(e.target.value);\n                  }}\n                  placeholder={getValue(placeholder, 1) || ''}\n                  ref={endInputRef}\n                  {...endInputProps.value}\n                  {...inputSharedProps}\n                  autocomplete={autocomplete}\n                />\n              </div>\n              <div\n                class={`${prefixCls}-active-bar`}\n                style={{\n                  ...activeBarPositionStyle,\n                  width: `${activeBarWidth}px`,\n                  position: 'absolute',\n                }}\n              />\n              {suffixNode}\n              {clearNode}\n              {getPortal()}\n            </div>\n          </PickerTrigger>\n        );\n      };\n    },\n  });\n}\n\nconst InterRangerPicker = RangerPicker<any>();\nexport default InterRangerPicker;\n","import type { PickerMode } from '../vc-picker/interface';\nimport type { PickerLocale } from './generatePicker';\n\nexport function getPlaceholder(\n  picker: PickerMode | undefined,\n  locale: PickerLocale,\n  customizePlaceholder?: string,\n): string {\n  if (customizePlaceholder !== undefined) {\n    return customizePlaceholder;\n  }\n\n  if (picker === 'year' && locale.lang.yearPlaceholder) {\n    return locale.lang.yearPlaceholder;\n  }\n  if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n    return locale.lang.quarterPlaceholder;\n  }\n  if (picker === 'month' && locale.lang.monthPlaceholder) {\n    return locale.lang.monthPlaceholder;\n  }\n  if (picker === 'week' && locale.lang.weekPlaceholder) {\n    return locale.lang.weekPlaceholder;\n  }\n  if (picker === 'time' && locale.timePickerLocale.placeholder) {\n    return locale!.timePickerLocale.placeholder;\n  }\n  return locale.lang.placeholder;\n}\n\nexport function getRangePlaceholder(\n  picker: PickerMode | undefined,\n  locale: PickerLocale,\n  customizePlaceholder?: [string, string],\n) {\n  if (customizePlaceholder !== undefined) {\n    return customizePlaceholder;\n  }\n\n  if (picker === 'year' && locale.lang.yearPlaceholder) {\n    return locale.lang.rangeYearPlaceholder;\n  }\n  if (picker === 'month' && locale.lang.monthPlaceholder) {\n    return locale.lang.rangeMonthPlaceholder;\n  }\n  if (picker === 'week' && locale.lang.weekPlaceholder) {\n    return locale.lang.rangeWeekPlaceholder;\n  }\n  if (picker === 'time' && locale.timePickerLocale.placeholder) {\n    return locale!.timePickerLocale.rangePlaceholder;\n  }\n  return locale.lang.rangePlaceholder;\n}\n","import type { VNodeTypes, PropType, ComputedRef, Ref } from 'vue';\nimport { unref, inject, defineComponent, computed } from 'vue';\nimport defaultLocaleData from '../locale/default';\nimport type { Locale } from '.';\nexport type LocaleComponentName = Exclude<keyof Locale, 'locale'>;\n\nexport interface LocaleReceiverProps {\n  componentName?: string;\n  defaultLocale?: Locale | Function;\n  children: (locale: Locale, localeCode?: string, fullLocale?: Locale) => VNodeTypes;\n}\n\ninterface LocaleInterface {\n  [key: string]: any;\n}\n\nexport interface LocaleReceiverContext {\n  antLocale?: LocaleInterface;\n}\n\nexport default defineComponent({\n  name: 'LocaleReceiver',\n  props: {\n    componentName: String as PropType<LocaleComponentName>,\n    defaultLocale: {\n      type: [Object, Function],\n    },\n    children: {\n      type: Function as PropType<\n        (locale: any, localeCode?: string, fullLocale?: object) => VNodeTypes\n      >,\n    },\n  },\n  setup(props, { slots }) {\n    const localeData = inject<LocaleReceiverContext>('localeData', {});\n    const locale = computed(() => {\n      const { componentName = 'global', defaultLocale } = props;\n      const locale =\n        defaultLocale || (defaultLocaleData as LocaleInterface)[componentName || 'global'];\n      const { antLocale } = localeData;\n\n      const localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n      return {\n        ...(typeof locale === 'function' ? locale() : locale),\n        ...(localeFromContext || {}),\n      };\n    });\n    const localeCode = computed(() => {\n      const { antLocale } = localeData;\n      const localeCode = antLocale && antLocale.locale;\n      // Had use LocaleProvide but didn't set locale\n      if (antLocale && antLocale.exist && !localeCode) {\n        return defaultLocaleData.locale;\n      }\n      return localeCode;\n    });\n    return () => {\n      const children = props.children || slots.default;\n      const { antLocale } = localeData;\n      return children?.(locale.value, localeCode.value, antLocale);\n    };\n  },\n});\n\nexport function useLocaleReceiver<T extends LocaleComponentName>(\n  componentName: T,\n  defaultLocale?: Locale[T] | Function | ComputedRef<Locale[T] | Function>,\n  propsLocale?: Ref<Locale[T]>,\n): [ComputedRef<Locale[T]>] {\n  const localeData = inject<LocaleReceiverContext>('localeData', {} as LocaleReceiverContext);\n  const componentLocale = computed<Locale[T]>(() => {\n    const { antLocale } = JSON.parse(JSON.stringify(localeData));\n    let localeLang:string | Nullable<undefined> = antLocale?.locale\n    if (localeLang && localeLang.indexOf('-') !== -1){\n      const localLangArr = (localeLang || '').split('-')\n      localeLang = localLangArr[0] + '_' + localLangArr[1].toUpperCase()\n    }\n    const locale =\n      unref(defaultLocale) || (defaultLocaleData as LocaleInterface)[componentName || 'global'];\n    const localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n    if (localeFromContext.lang) {\n      localeFromContext.lang = { ...localeFromContext.lang, locale: localeLang }\n    }\n    return {\n      ...(typeof locale === 'function' ? (locale as Function)() : locale),\n      ...(localeFromContext || {}),\n      ...(unref(propsLocale) || {}),\n    };\n  });\n  return [componentLocale];\n}\n","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n  module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function t(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function i(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(i[n]=e[n]);return i}function o(e){return 1==(null!=(t=e)&&\"object\"==typeof t&&!1===Array.isArray(t))&&\"[object Object]\"===Object.prototype.toString.call(e);var t}var u=Object.prototype,a=u.toString,f=u.hasOwnProperty,c=/^\\s*function (\\w+)/;function l(e){var t,n=null!==(t=null==e?void 0:e.type)&&void 0!==t?t:e;if(n){var r=n.toString().match(c);return r?r[1]:\"\"}return\"\"}var s=function(e){var t,n;return!1!==o(e)&&\"function\"==typeof(t=e.constructor)&&!1!==o(n=t.prototype)&&!1!==n.hasOwnProperty(\"isPrototypeOf\")},v=function(e){return e},y=v;if(\"production\"!==process.env.NODE_ENV){var p=\"undefined\"!=typeof console;y=p?function(e){console.warn(\"[VueTypes warn]: \"+e)}:v}var d=function(e,t){return f.call(e,t)},h=Number.isInteger||function(e){return\"number\"==typeof e&&isFinite(e)&&Math.floor(e)===e},b=Array.isArray||function(e){return\"[object Array]\"===a.call(e)},O=function(e){return\"[object Function]\"===a.call(e)},g=function(e){return s(e)&&d(e,\"_vueTypes_name\")},m=function(e){return s(e)&&(d(e,\"type\")||[\"_vueTypes_name\",\"validator\",\"default\",\"required\"].some(function(t){return d(e,t)}))};function j(e,t){return Object.defineProperty(e.bind(t),\"__original\",{value:e})}function _(e,t,n){var r;void 0===n&&(n=!1);var i=!0,o=\"\";r=s(e)?e:{type:e};var u=g(r)?r._vueTypes_name+\" - \":\"\";if(m(r)&&null!==r.type){if(void 0===r.type||!0===r.type)return i;if(!r.required&&void 0===t)return i;b(r.type)?(i=r.type.some(function(e){return!0===_(e,t,!0)}),o=r.type.map(function(e){return l(e)}).join(\" or \")):i=\"Array\"===(o=l(r))?b(t):\"Object\"===o?s(t):\"String\"===o||\"Number\"===o||\"Boolean\"===o||\"Function\"===o?function(e){if(null==e)return\"\";var t=e.constructor.toString().match(c);return t?t[1]:\"\"}(t)===o:t instanceof r.type}if(!i){var a=u+'value \"'+t+'\" should be of type \"'+o+'\"';return!1===n?(y(a),!1):a}if(d(r,\"validator\")&&O(r.validator)){var f=y,v=[];if(y=function(e){v.push(e)},i=r.validator(t),y=f,!i){var p=(v.length>1?\"* \":\"\")+v.join(\"\\n* \");return v.length=0,!1===n?(y(p),i):p}}return i}function T(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(e){return void 0!==e||this.default?O(e)||!0===_(this,e,!0)?(this.default=b(e)?function(){return[].concat(e)}:s(e)?function(){return Object.assign({},e)}:e,this):(y(this._vueTypes_name+' - invalid default value: \"'+e+'\"'),this):this}}}),r=n.validator;return O(r)&&(n.validator=j(r,n)),n}function w(e,t){var n=T(e,t);return Object.defineProperty(n,\"validate\",{value:function(e){return O(this.validator)&&y(this._vueTypes_name+\" - calling .validate() will overwrite the current custom validator function. Validator info:\\n\"+JSON.stringify(this)),this.validator=j(e,this),this}})}function k(e,t,n){var r,o,u=(r=t,o={},Object.getOwnPropertyNames(r).forEach(function(e){o[e]=Object.getOwnPropertyDescriptor(r,e)}),Object.defineProperties({},o));if(u._vueTypes_name=e,!s(n))return u;var a,f,c=n.validator,l=i(n,[\"validator\"]);if(O(c)){var v=u.validator;v&&(v=null!==(f=(a=v).__original)&&void 0!==f?f:a),u.validator=j(v?function(e){return v.call(this,e)&&c.call(this,e)}:c,u)}return Object.assign(u,l)}function P(e){return e.replace(/^(?!\\s*$)/gm,\"  \")}var x=function(){return w(\"any\",{})},A=function(){return w(\"function\",{type:Function})},E=function(){return w(\"boolean\",{type:Boolean})},N=function(){return w(\"string\",{type:String})},q=function(){return w(\"number\",{type:Number})},S=function(){return w(\"array\",{type:Array})},V=function(){return w(\"object\",{type:Object})},F=function(){return T(\"integer\",{type:Number,validator:function(e){return h(e)}})},D=function(){return T(\"symbol\",{validator:function(e){return\"symbol\"==typeof e}})};function L(e,t){if(void 0===t&&(t=\"custom validation failed\"),\"function\"!=typeof e)throw new TypeError(\"[VueTypes error]: You must provide a function as argument\");return T(e.name||\"<<anonymous function>>\",{validator:function(n){var r=e(n);return r||y(this._vueTypes_name+\" - \"+t),r}})}function Y(e){if(!b(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument.\");var t='oneOf - value should be one of \"'+e.join('\", \"')+'\".',n=e.reduce(function(e,t){if(null!=t){var n=t.constructor;-1===e.indexOf(n)&&e.push(n)}return e},[]);return T(\"oneOf\",{type:n.length>0?n:void 0,validator:function(n){var r=-1!==e.indexOf(n);return r||y(t),r}})}function B(e){if(!b(e))throw new TypeError(\"[VueTypes error]: You must provide an array as argument\");for(var t=!1,n=[],r=0;r<e.length;r+=1){var i=e[r];if(m(i)){if(g(i)&&\"oneOf\"===i._vueTypes_name){n=n.concat(i.type);continue}if(O(i.validator)&&(t=!0),!0!==i.type&&i.type){n=n.concat(i.type);continue}}n.push(i)}return n=n.filter(function(e,t){return n.indexOf(e)===t}),T(\"oneOfType\",t?{type:n,validator:function(t){var n=[],r=e.some(function(e){var r=_(g(e)&&\"oneOf\"===e._vueTypes_name?e.type||null:e,t,!0);return\"string\"==typeof r&&n.push(r),!0===r});return r||y(\"oneOfType - provided value does not match any of the \"+n.length+\" passed-in validators:\\n\"+P(n.join(\"\\n\"))),r}}:{type:n})}function I(e){return T(\"arrayOf\",{type:Array,validator:function(t){var n,r=t.every(function(t){return!0===(n=_(e,t,!0))});return r||y(\"arrayOf - value validation error:\\n\"+P(n)),r}})}function J(e){return T(\"instanceOf\",{type:e})}function M(e){return T(\"objectOf\",{type:Object,validator:function(t){var n,r=Object.keys(t).every(function(r){return!0===(n=_(e,t[r],!0))});return r||y(\"objectOf - value validation error:\\n\"+P(n)),r}})}function R(e){var t=Object.keys(e),n=t.filter(function(t){var n;return!!(null===(n=e[t])||void 0===n?void 0:n.required)}),r=T(\"shape\",{type:Object,validator:function(r){var i=this;if(!s(r))return!1;var o=Object.keys(r);if(n.length>0&&n.some(function(e){return-1===o.indexOf(e)})){var u=n.filter(function(e){return-1===o.indexOf(e)});return y(1===u.length?'shape - required property \"'+u[0]+'\" is not defined.':'shape - required properties \"'+u.join('\", \"')+'\" are not defined.'),!1}return o.every(function(n){if(-1===t.indexOf(n))return!0===i._vueTypes_isLoose||(y('shape - shape definition does not include a \"'+n+'\" property. Allowed keys: \"'+t.join('\", \"')+'\".'),!1);var o=_(e[n],r[n],!0);return\"string\"==typeof o&&y('shape - \"'+n+'\" property validation error:\\n '+P(o)),!0===o})}});return Object.defineProperty(r,\"_vueTypes_isLoose\",{writable:!0,value:!1}),Object.defineProperty(r,\"loose\",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var $=function(){function e(){}return e.extend=function(e){var t=this;if(b(e))return e.forEach(function(e){return t.extend(e)}),this;var n=e.name,r=e.validate,o=void 0!==r&&r,u=e.getter,a=void 0!==u&&u,f=i(e,[\"name\",\"validate\",\"getter\"]);if(d(this,n))throw new TypeError('[VueTypes error]: Type \"'+n+'\" already defined');var c,l=f.type;return g(l)?(delete f.type,Object.defineProperty(this,n,a?{get:function(){return k(n,l,f)}}:{value:function(){var e,t=k(n,l,f);return t.validator&&(t.validator=(e=t.validator).bind.apply(e,[t].concat([].slice.call(arguments)))),t}})):(c=a?{get:function(){var e=Object.assign({},f);return o?w(n,e):T(n,e)},enumerable:!0}:{value:function(){var e,t,r=Object.assign({},f);return e=o?w(n,r):T(n,r),r.validator&&(e.validator=(t=r.validator).bind.apply(t,[e].concat([].slice.call(arguments)))),e},enumerable:!0},Object.defineProperty(this,n,c))},t(e,null,[{key:\"any\",get:function(){return x()}},{key:\"func\",get:function(){return A().def(this.defaults.func)}},{key:\"bool\",get:function(){return E().def(this.defaults.bool)}},{key:\"string\",get:function(){return N().def(this.defaults.string)}},{key:\"number\",get:function(){return q().def(this.defaults.number)}},{key:\"array\",get:function(){return S().def(this.defaults.array)}},{key:\"object\",get:function(){return V().def(this.defaults.object)}},{key:\"integer\",get:function(){return F().def(this.defaults.integer)}},{key:\"symbol\",get:function(){return D()}}]),e}();function z(e){var i;return void 0===e&&(e={func:function(){},bool:!0,string:\"\",number:0,array:function(){return[]},object:function(){return{}},integer:0}),(i=function(i){function o(){return i.apply(this,arguments)||this}return r(o,i),t(o,null,[{key:\"sensibleDefaults\",get:function(){return n({},this.defaults)},set:function(t){this.defaults=!1!==t?n({},!0!==t?t:e):{}}}]),o}($)).defaults=n({},e),i}$.defaults={},$.custom=L,$.oneOf=Y,$.instanceOf=J,$.oneOfType=B,$.arrayOf=I,$.objectOf=M,$.shape=R,$.utils={validate:function(e,t){return!0===_(t,e,!0)},toType:function(e,t,n){return void 0===n&&(n=!1),n?w(e,t):T(e,t)}};var C=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t}(z());export default C;export{x as any,S as array,I as arrayOf,E as bool,z as createTypes,L as custom,k as fromType,A as func,J as instanceOf,F as integer,q as number,V as object,M as objectOf,Y as oneOf,B as oneOfType,R as shape,N as string,D as symbol,T as toType,w as toValidableType,_ as validateType};\n//# sourceMappingURL=vue-types.m.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.withUndefined = withUndefined;\nexports.default = void 0;\n\nvar _vueTypes = require(\"vue-types\");\n\nvar PropTypes = (0, _vueTypes.createTypes)({\n  func: undefined,\n  bool: undefined,\n  string: undefined,\n  number: undefined,\n  array: undefined,\n  object: undefined,\n  integer: undefined\n});\nPropTypes.extend([{\n  name: 'looseBool',\n  getter: true,\n  type: Boolean,\n  default: undefined\n}, {\n  name: 'style',\n  getter: true,\n  type: [String, Object],\n  default: undefined\n}, {\n  name: 'VNodeChild',\n  getter: true,\n  type: null\n}]);\n\nfunction withUndefined(type) {\n  type.default = undefined;\n  return type;\n}\n\nvar _default = PropTypes;\nexports.default = _default;","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getDataAndAriaProps = getDataAndAriaProps;\nexports.resolvePropValue = resolvePropValue;\nexports.capitalize = exports.hyphenate = exports.camelize = exports.cacheStringFunction = exports.isOn = exports.isObject = exports.isSymbol = exports.isString = exports.isArray = exports.isFunction = void 0;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar isFunction = function isFunction(val) {\n  return typeof val === 'function';\n};\n\nexports.isFunction = isFunction;\nvar isArray = Array.isArray;\nexports.isArray = isArray;\n\nvar isString = function isString(val) {\n  return typeof val === 'string';\n};\n\nexports.isString = isString;\n\nvar isSymbol = function isSymbol(val) {\n  return (0, _typeof2.default)(val) === 'symbol';\n};\n\nexports.isSymbol = isSymbol;\n\nvar isObject = function isObject(val) {\n  return val !== null && (0, _typeof2.default)(val) === 'object';\n};\n\nexports.isObject = isObject;\nvar onRE = /^on[^a-z]/;\n\nvar isOn = function isOn(key) {\n  return onRE.test(key);\n};\n\nexports.isOn = isOn;\n\nvar cacheStringFunction = function cacheStringFunction(fn) {\n  var cache = Object.create(null);\n  return function (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\n\nexports.cacheStringFunction = cacheStringFunction;\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction(function (str) {\n  return str.replace(camelizeRE, function (_, c) {\n    return c ? c.toUpperCase() : '';\n  });\n});\nexports.camelize = camelize;\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\nexports.hyphenate = hyphenate;\nvar capitalize = cacheStringFunction(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\nexports.capitalize = capitalize;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar hasOwn = function hasOwn(val, key) {\n  return hasOwnProperty.call(val, key);\n}; // change from vue sourcecode\n\n\nfunction resolvePropValue(options, props, key, value) {\n  var opt = options[key];\n\n  if (opt != null) {\n    var hasDefault = hasOwn(opt, 'default'); // default values\n\n    if (hasDefault && value === undefined) {\n      var defaultValue = opt.default;\n      value = opt.type !== Function && isFunction(defaultValue) ? defaultValue() : defaultValue;\n    } // boolean casting\n\n\n    if (opt.type === Boolean) {\n      if (!hasOwn(props, key) && !hasDefault) {\n        value = false;\n      } else if (value === '') {\n        value = true;\n      }\n    }\n  }\n\n  return value;\n}\n\nfunction getDataAndAriaProps(props) {\n  return Object.keys(props).reduce(function (memo, key) {\n    if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n      memo[key] = props[key];\n    }\n\n    return memo;\n  }, {});\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _util = require(\"./util\");\n\nfunction classNames() {\n  var classes = [];\n\n  for (var i = 0; i < arguments.length; i++) {\n    var value = i < 0 || arguments.length <= i ? undefined : arguments[i];\n    if (!value) continue;\n\n    if ((0, _util.isString)(value)) {\n      classes.push(value);\n    } else if ((0, _util.isArray)(value)) {\n      for (var _i = 0; _i < value.length; _i++) {\n        var inner = classNames(value[_i]);\n\n        if (inner) {\n          classes.push(inner);\n        }\n      }\n    } else if ((0, _util.isObject)(value)) {\n      for (var name in value) {\n        if (value[name]) {\n          classes.push(name);\n        }\n      }\n    }\n  }\n\n  return classes.join(' ');\n}\n\nvar _default = classNames;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  // Options.jsx\n  items_per_page: '/ page',\n  jump_to: 'Go to',\n  jump_to_confirm: 'confirm',\n  page: '',\n  // Pagination.jsx\n  prev_page: 'Previous Page',\n  next_page: 'Next Page',\n  prev_5: 'Previous 5 Pages',\n  next_5: 'Next 5 Pages',\n  prev_3: 'Previous 3 Pages',\n  next_3: 'Next 3 Pages'\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  today: 'Today',\n  now: 'Now',\n  backToToday: 'Back to today',\n  ok: 'Ok',\n  clear: 'Clear',\n  month: 'Month',\n  year: 'Year',\n  timeSelect: 'select time',\n  dateSelect: 'select date',\n  weekSelect: 'Choose a week',\n  monthSelect: 'Choose a month',\n  yearSelect: 'Choose a year',\n  decadeSelect: 'Choose a decade',\n  yearFormat: 'YYYY',\n  dateFormat: 'M/D/YYYY',\n  dayFormat: 'D',\n  dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n  monthBeforeYear: true,\n  previousMonth: 'Previous month (PageUp)',\n  nextMonth: 'Next month (PageDown)',\n  previousYear: 'Last year (Control + left)',\n  nextYear: 'Next year (Control + right)',\n  previousDecade: 'Last decade',\n  nextDecade: 'Next decade',\n  previousCentury: 'Last century',\n  nextCentury: 'Next century'\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar locale = {\n  placeholder: 'Select time'\n};\nvar _default = locale;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _en_US = _interopRequireDefault(require(\"../../vc-calendar/src/locale/en_US\"));\n\nvar _en_US2 = _interopRequireDefault(require(\"../../time-picker/locale/en_US\"));\n\n// Merge into a locale object\nvar locale = {\n  lang: (0, _extends2.default)({\n    placeholder: 'Select date',\n    rangePlaceholder: ['Start date', 'End date']\n  }, _en_US.default),\n  timePickerLocale: (0, _extends2.default)({}, _en_US2.default)\n}; // All settings at:\n// https://github.com/vueComponent/ant-design-vue/blob/master/components/date-picker/locale/example.json\n\nvar _default = locale;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"../../date-picker/locale/en_US\"));\n\nvar _default = _en_US.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _en_US = _interopRequireDefault(require(\"../vc-pagination/locale/en_US\"));\n\nvar _en_US2 = _interopRequireDefault(require(\"../date-picker/locale/en_US\"));\n\nvar _en_US3 = _interopRequireDefault(require(\"../time-picker/locale/en_US\"));\n\nvar _en_US4 = _interopRequireDefault(require(\"../calendar/locale/en_US\"));\n\n// import ColorPicker from '../color-picker/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar _default = {\n  locale: 'en',\n  Pagination: _en_US.default,\n  DatePicker: _en_US2.default,\n  TimePicker: _en_US3.default,\n  Calendar: _en_US4.default,\n  global: {\n    placeholder: 'Please select'\n  },\n  Table: {\n    filterTitle: 'Filter menu',\n    filterConfirm: 'OK',\n    filterReset: 'Reset',\n    filterEmptyText: 'No filters',\n    emptyText: 'No data',\n    selectAll: 'Select current page',\n    selectInvert: 'Invert current page',\n    selectNone: 'Clear all data',\n    selectionAll: 'Select all data',\n    sortTitle: 'Sort',\n    expand: 'Expand row',\n    collapse: 'Collapse row',\n    triggerDesc: 'Click to sort descending',\n    triggerAsc: 'Click to sort ascending',\n    cancelSort: 'Click to cancel sorting'\n  },\n  Modal: {\n    okText: 'OK',\n    cancelText: 'Cancel',\n    justOkText: 'OK'\n  },\n  Popconfirm: {\n    okText: 'OK',\n    cancelText: 'Cancel'\n  },\n  Transfer: {\n    titles: ['', ''],\n    searchPlaceholder: 'Search here',\n    itemUnit: 'item',\n    itemsUnit: 'items',\n    remove: 'Remove',\n    selectCurrent: 'Select current page',\n    removeCurrent: 'Remove current page',\n    selectAll: 'Select all data',\n    removeAll: 'Remove all data',\n    selectInvert: 'Invert current page'\n  },\n  Upload: {\n    uploading: 'Uploading...',\n    removeFile: 'Remove file',\n    uploadError: 'Upload error',\n    previewFile: 'Preview file',\n    downloadFile: 'Download file'\n  },\n  Empty: {\n    description: 'No Data'\n  },\n  Icon: {\n    icon: 'icon'\n  },\n  Text: {\n    edit: 'Edit',\n    copy: 'Copy',\n    copied: 'Copied',\n    expand: 'Expand'\n  },\n  PageHeader: {\n    back: 'Back'\n  },\n  Form: {\n    optional: '(optional)',\n    defaultValidateMessages: {\n      default: 'Field validation error for ${label}',\n      required: 'Please enter ${label}',\n      enum: '${label} must be one of [${enum}]',\n      whitespace: '${label} cannot be a blank character',\n      date: {\n        format: '${label} date format is invalid',\n        parse: '${label} cannot be converted to a date',\n        invalid: '${label} is an invalid date'\n      },\n      types: {\n        string: typeTemplate,\n        method: typeTemplate,\n        array: typeTemplate,\n        object: typeTemplate,\n        number: typeTemplate,\n        date: typeTemplate,\n        boolean: typeTemplate,\n        integer: typeTemplate,\n        float: typeTemplate,\n        regexp: typeTemplate,\n        email: typeTemplate,\n        url: typeTemplate,\n        hex: typeTemplate\n      },\n      string: {\n        len: '${label} must be ${len} characters',\n        min: '${label} must be at least ${min} characters',\n        max: '${label} must be up to ${max} characters',\n        range: '${label} must be between ${min}-${max} characters'\n      },\n      number: {\n        len: '${label} must be equal to ${len}',\n        min: '${label} must be minimum ${min}',\n        max: '${label} must be maximum ${max}',\n        range: '${label} must be between ${min}-${max}'\n      },\n      array: {\n        len: 'Must be ${len} ${label}',\n        min: 'At least ${min} ${label}',\n        max: 'At most ${max} ${label}',\n        range: 'The amount of ${label} must be between ${min}-${max}'\n      },\n      pattern: {\n        mismatch: '${label} does not match the pattern ${pattern}'\n      }\n    }\n  },\n  Image: {\n    preview: 'Preview'\n  }\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _default2 = _interopRequireDefault(require(\"../locale/default\"));\n\nvar _default = _default2.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.useLocaleReceiver = useLocaleReceiver;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _vue = require(\"vue\");\n\nvar _vueTypes = _interopRequireDefault(require(\"../_util/vue-types\"));\n\nvar _default2 = _interopRequireDefault(require(\"./default\"));\n\nvar _default = (0, _vue.defineComponent)({\n  name: 'LocaleReceiver',\n  props: {\n    componentName: _vueTypes.default.string,\n    defaultLocale: {\n      type: [Object, Function]\n    },\n    children: {\n      type: Function\n    }\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n    var localeData = (0, _vue.inject)('localeData', {});\n    var locale = (0, _vue.computed)(function () {\n      var _props$componentName = props.componentName,\n          componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n          defaultLocale = props.defaultLocale;\n      var locale = defaultLocale || _default2.default[componentName || 'global'];\n      var antLocale = localeData.antLocale;\n      var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n      return (0, _extends2.default)((0, _extends2.default)({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n    });\n    var localeCode = (0, _vue.computed)(function () {\n      var antLocale = localeData.antLocale;\n      var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n      if (antLocale && antLocale.exist && !localeCode) {\n        return _default2.default.locale;\n      }\n\n      return localeCode;\n    });\n    return function () {\n      var children = props.children || slots.default;\n      var antLocale = localeData.antLocale;\n      return children === null || children === void 0 ? void 0 : children(locale.value, localeCode.value, antLocale);\n    };\n  }\n});\n\nexports.default = _default;\n\nfunction useLocaleReceiver(componentName, defaultLocale) {\n  var localeData = (0, _vue.inject)('localeData', {});\n  var componentLocale = (0, _vue.computed)(function () {\n    var antLocale = localeData.antLocale;\n    var locale = defaultLocale || _default2.default[componentName || 'global'];\n    var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n    return (0, _extends2.default)((0, _extends2.default)({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n  });\n  return [componentLocale];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _vue = require(\"vue\");\n\nvar _configProvider = require(\"../config-provider\");\n\nvar Empty = function Empty() {\n  var _inject = (0, _vue.inject)('configProvider', _configProvider.defaultConfigProvider),\n      getPrefixCls = _inject.getPrefixCls;\n\n  var prefixCls = getPrefixCls('empty-img-default');\n  return (0, _vue.createVNode)(\"svg\", {\n    \"class\": prefixCls,\n    \"width\": \"184\",\n    \"height\": \"152\",\n    \"viewBox\": \"0 0 184 152\"\n  }, [(0, _vue.createVNode)(\"g\", {\n    \"fill\": \"none\",\n    \"fill-rule\": \"evenodd\"\n  }, [(0, _vue.createVNode)(\"g\", {\n    \"transform\": \"translate(24 31.67)\"\n  }, [(0, _vue.createVNode)(\"ellipse\", {\n    \"class\": \"\".concat(prefixCls, \"-ellipse\"),\n    \"cx\": \"67.797\",\n    \"cy\": \"106.89\",\n    \"rx\": \"67.797\",\n    \"ry\": \"12.668\"\n  }, null), (0, _vue.createVNode)(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-1\"),\n    \"d\": \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n  }, null), (0, _vue.createVNode)(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-2\"),\n    \"d\": \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n    \"transform\": \"translate(13.56)\"\n  }, null), (0, _vue.createVNode)(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-3\"),\n    \"d\": \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n  }, null), (0, _vue.createVNode)(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-4\"),\n    \"d\": \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n  }, null)]), (0, _vue.createVNode)(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-5\"),\n    \"d\": \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n  }, null), (0, _vue.createVNode)(\"g\", {\n    \"class\": \"\".concat(prefixCls, \"-g\"),\n    \"transform\": \"translate(149.65 15.383)\"\n  }, [(0, _vue.createVNode)(\"ellipse\", {\n    \"cx\": \"20.654\",\n    \"cy\": \"3.167\",\n    \"rx\": \"2.849\",\n    \"ry\": \"2.815\"\n  }, null), (0, _vue.createVNode)(\"path\", {\n    \"d\": \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n  }, null)])])]);\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = true;\nvar _default = Empty;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _vue = require(\"vue\");\n\nvar _configProvider = require(\"../config-provider\");\n\nvar Simple = function Simple() {\n  var _inject = (0, _vue.inject)('configProvider', _configProvider.defaultConfigProvider),\n      getPrefixCls = _inject.getPrefixCls;\n\n  var prefixCls = getPrefixCls('empty-img-simple');\n  return (0, _vue.createVNode)(\"svg\", {\n    \"class\": prefixCls,\n    \"width\": \"64\",\n    \"height\": \"41\",\n    \"viewBox\": \"0 0 64 41\"\n  }, [(0, _vue.createVNode)(\"g\", {\n    \"transform\": \"translate(0 1)\",\n    \"fill\": \"none\",\n    \"fill-rule\": \"evenodd\"\n  }, [(0, _vue.createVNode)(\"ellipse\", {\n    \"class\": \"\".concat(prefixCls, \"-ellipse\"),\n    \"fill\": \"#F5F5F5\",\n    \"cx\": \"32\",\n    \"cy\": \"33\",\n    \"rx\": \"32\",\n    \"ry\": \"7\"\n  }, null), (0, _vue.createVNode)(\"g\", {\n    \"class\": \"\".concat(prefixCls, \"-g\"),\n    \"fill-rule\": \"nonzero\",\n    \"stroke\": \"#D9D9D9\"\n  }, [(0, _vue.createVNode)(\"path\", {\n    \"d\": \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n  }, null), (0, _vue.createVNode)(\"path\", {\n    \"d\": \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n    \"fill\": \"#FAFAFA\",\n    \"class\": \"\".concat(prefixCls, \"-path\")\n  }, null)])])]);\n};\n\nSimple.PRESENTED_IMAGE_SIMPLE = true;\nvar _default = Simple;\nexports.default = _default;","function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _s, _e;\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n  return _arr;\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n  return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar isValid = function isValid(value) {\n  return value !== undefined && value !== null && value !== '';\n};\n\nvar _default = isValid;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getEvents = getEvents;\nexports.getEvent = getEvent;\nexports.getDataEvents = getDataEvents;\nexports.getListeners = getListeners;\nexports.getClass = getClass;\nexports.getStyle = getStyle;\nexports.getComponentName = getComponentName;\nexports.isFragment = isFragment;\nexports.isEmptyContent = isEmptyContent;\nexports.isEmptyElement = isEmptyElement;\nexports.isEmptySlot = isEmptySlot;\nexports.isStringElement = isStringElement;\nexports.filterEmpty = filterEmpty;\nexports.mergeProps = mergeProps;\nexports.isValidElement = isValidElement;\nexports.getPropsSlot = getPropsSlot;\nObject.defineProperty(exports, \"camelize\", {\n  enumerable: true,\n  get: function get() {\n    return _util.camelize;\n  }\n});\nexports.default = exports.flattenChildren = exports.findDOMNode = exports.getAllChildren = exports.getAllProps = exports.getSlot = exports.getSlots = exports.initDefaultProps = exports.parseStyleText = exports.getValueByProp = exports.getAttrs = exports.getKey = exports.getPropsData = exports.slotHasProp = exports.getSlotOptions = exports.getComponentFromProp = exports.getComponent = exports.getOptionProps = exports.hasProp = exports.splitAttrs = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _isPlainObject = _interopRequireDefault(require(\"lodash/isPlainObject\"));\n\nvar _classNames = _interopRequireDefault(require(\"../classNames\"));\n\nvar _vue = require(\"vue\");\n\nvar _util = require(\"../util\");\n\nvar _isValid = _interopRequireDefault(require(\"../isValid\"));\n\nvar _this = void 0;\n\n// function getType(fn) {\n//   const match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n//   return match ? match[1] : '';\n// }\nvar splitAttrs = function splitAttrs(attrs) {\n  var allAttrs = Object.keys(attrs);\n  var eventAttrs = {};\n  var onEvents = {};\n  var extraAttrs = {};\n\n  for (var i = 0, l = allAttrs.length; i < l; i++) {\n    var key = allAttrs[i];\n\n    if ((0, _util.isOn)(key)) {\n      eventAttrs[key[2].toLowerCase() + key.slice(3)] = attrs[key];\n      onEvents[key] = attrs[key];\n    } else {\n      extraAttrs[key] = attrs[key];\n    }\n  }\n\n  return {\n    onEvents: onEvents,\n    events: eventAttrs,\n    extraAttrs: extraAttrs\n  };\n};\n\nexports.splitAttrs = splitAttrs;\n\nvar parseStyleText = function parseStyleText() {\n  var cssText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var camel = arguments.length > 1 ? arguments[1] : undefined;\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n\n      if (tmp.length > 1) {\n        var k = camel ? (0, _util.camelize)(tmp[0].trim()) : tmp[0].trim();\n        res[k] = tmp[1].trim();\n      }\n    }\n  });\n  return res;\n};\n\nexports.parseStyleText = parseStyleText;\n\nvar hasProp = function hasProp(instance, prop) {\n  return prop in getOptionProps(instance);\n}; // 重构后直接使用 hasProp 替换\n\n\nexports.hasProp = hasProp;\n\nvar slotHasProp = function slotHasProp(slot, prop) {\n  return hasProp(slot, prop);\n};\n\nexports.slotHasProp = slotHasProp;\n\nvar getScopedSlots = function getScopedSlots(ele) {\n  return ele.data && ele.data.scopedSlots || {};\n};\n\nvar getSlots = function getSlots(ele) {\n  var componentOptions = ele.componentOptions || {};\n\n  if (ele.$vnode) {\n    componentOptions = ele.$vnode.componentOptions || {};\n  }\n\n  var children = ele.children || componentOptions.children || [];\n  var slots = {};\n  children.forEach(function (child) {\n    if (!isEmptyElement(child)) {\n      var name = child.data && child.data.slot || 'default';\n      slots[name] = slots[name] || [];\n      slots[name].push(child);\n    }\n  });\n  return (0, _extends2.default)((0, _extends2.default)({}, slots), getScopedSlots(ele));\n};\n\nexports.getSlots = getSlots;\n\nvar flattenChildren = function flattenChildren() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var filterEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var temp = Array.isArray(children) ? children : [children];\n  var res = [];\n  temp.forEach(function (child) {\n    if (Array.isArray(child)) {\n      res.push.apply(res, (0, _toConsumableArray2.default)(flattenChildren(child, filterEmpty)));\n    } else if (child && child.type === _vue.Fragment) {\n      res.push.apply(res, (0, _toConsumableArray2.default)(flattenChildren(child.children, filterEmpty)));\n    } else if (child && (0, _vue.isVNode)(child)) {\n      if (filterEmpty && !isEmptyElement(child)) {\n        res.push(child);\n      } else if (!filterEmpty) {\n        res.push(child);\n      }\n    } else if ((0, _isValid.default)(child)) {\n      res.push(child);\n    }\n  });\n  return res;\n};\n\nexports.flattenChildren = flattenChildren;\n\nvar getSlot = function getSlot(self) {\n  var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if ((0, _vue.isVNode)(self)) {\n    if (self.type === _vue.Fragment) {\n      return name === 'default' ? flattenChildren(self.children) : [];\n    } else if (self.children && self.children[name]) {\n      return flattenChildren(self.children[name](options));\n    } else {\n      return [];\n    }\n  } else {\n    var res = self.$slots[name] && self.$slots[name](options);\n    return flattenChildren(res);\n  }\n};\n\nexports.getSlot = getSlot;\n\nvar getAllChildren = function getAllChildren(ele) {\n  var componentOptions = ele.componentOptions || {};\n\n  if (ele.$vnode) {\n    componentOptions = ele.$vnode.componentOptions || {};\n  }\n\n  return ele.children || componentOptions.children || [];\n};\n\nexports.getAllChildren = getAllChildren;\n\nvar getSlotOptions = function getSlotOptions() {\n  throw Error('使用 .type 直接取值');\n};\n\nexports.getSlotOptions = getSlotOptions;\n\nvar findDOMNode = function findDOMNode(instance) {\n  var _a;\n\n  var node = ((_a = instance === null || instance === void 0 ? void 0 : instance.vnode) === null || _a === void 0 ? void 0 : _a.el) || instance && (instance.$el || instance);\n\n  while (node && !node.tagName) {\n    node = node.nextSibling;\n  }\n\n  return node;\n};\n\nexports.findDOMNode = findDOMNode;\n\nvar getOptionProps = function getOptionProps(instance) {\n  var res = {};\n\n  if (instance.$ && instance.$.vnode) {\n    var props = instance.$.vnode.props || {};\n    Object.keys(instance.$props).forEach(function (k) {\n      var v = instance.$props[k];\n      var hyphenateKey = (0, _util.hyphenate)(k);\n\n      if (v !== undefined || hyphenateKey in props) {\n        res[k] = v; // 直接取 $props[k]\n      }\n    });\n  } else if ((0, _vue.isVNode)(instance) && (0, _typeof2.default)(instance.type) === 'object') {\n    var originProps = instance.props || {};\n    var _props = {};\n    Object.keys(originProps).forEach(function (key) {\n      _props[(0, _util.camelize)(key)] = originProps[key];\n    });\n    var options = instance.type.props || {};\n    Object.keys(options).forEach(function (k) {\n      var v = (0, _util.resolvePropValue)(options, _props, k, _props[k]);\n\n      if (v !== undefined || k in _props) {\n        res[k] = v;\n      }\n    });\n  }\n\n  return res;\n};\n\nexports.getOptionProps = getOptionProps;\n\nvar getComponent = function getComponent(instance) {\n  var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n  var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  var com = undefined;\n\n  if (instance.$) {\n    var temp = instance[prop];\n\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(options) : temp;\n    } else {\n      com = instance.$slots[prop];\n      com = execute && com ? com(options) : com;\n    }\n  } else if ((0, _vue.isVNode)(instance)) {\n    var _temp = instance.props && instance.props[prop];\n\n    if (_temp !== undefined && instance.props !== null) {\n      return typeof _temp === 'function' && execute ? _temp(options) : _temp;\n    } else if (instance.type === _vue.Fragment) {\n      com = instance.children;\n    } else if (instance.children && instance.children[prop]) {\n      com = instance.children[prop];\n      com = execute && com ? com(options) : com;\n    }\n  }\n\n  if (Array.isArray(com)) {\n    com = flattenChildren(com);\n    com = com.length === 1 ? com[0] : com;\n    com = com.length === 0 ? undefined : com;\n  }\n\n  return com;\n};\n\nexports.getComponent = getComponent;\n\nvar getComponentFromProp = function getComponentFromProp(instance, prop) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n  var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n  if (instance.$createElement) {\n    // const h = instance.$createElement;\n    var temp = instance[prop];\n\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(_vue.h, options) : temp;\n    }\n\n    return instance.$scopedSlots[prop] && execute && instance.$scopedSlots[prop](options) || instance.$scopedSlots[prop] || instance.$slots[prop] || undefined;\n  } else {\n    // const h = instance.context.$createElement;\n    var _temp2 = getPropsData(instance)[prop];\n\n    if (_temp2 !== undefined) {\n      return typeof _temp2 === 'function' && execute ? _temp2(_vue.h, options) : _temp2;\n    }\n\n    var slotScope = getScopedSlots(instance)[prop];\n\n    if (slotScope !== undefined) {\n      return typeof slotScope === 'function' && execute ? slotScope(_vue.h, options) : slotScope;\n    }\n\n    var slotsProp = [];\n    var componentOptions = instance.componentOptions || {};\n    (componentOptions.children || []).forEach(function (child) {\n      if (child.data && child.data.slot === prop) {\n        if (child.data.attrs) {\n          delete child.data.attrs.slot;\n        }\n\n        if (child.tag === 'template') {\n          slotsProp.push(child.children);\n        } else {\n          slotsProp.push(child);\n        }\n      }\n    });\n    return slotsProp.length ? slotsProp : undefined;\n  }\n};\n\nexports.getComponentFromProp = getComponentFromProp;\n\nvar getAllProps = function getAllProps(ele) {\n  var props = getOptionProps(ele);\n\n  if (ele.$) {\n    props = (0, _extends2.default)((0, _extends2.default)({}, props), _this.$attrs);\n  } else {\n    props = (0, _extends2.default)((0, _extends2.default)({}, ele.props), props);\n  }\n\n  return props;\n};\n\nexports.getAllProps = getAllProps;\n\nvar getPropsData = function getPropsData(ins) {\n  var vnode = ins.$ ? ins.$ : ins;\n  var res = {};\n  var originProps = vnode.props || {};\n  var props = {};\n  Object.keys(originProps).forEach(function (key) {\n    props[(0, _util.camelize)(key)] = originProps[key];\n  });\n  var options = (0, _isPlainObject.default)(vnode.type) ? vnode.type.props : {};\n  options && Object.keys(options).forEach(function (k) {\n    var v = (0, _util.resolvePropValue)(options, props, k, props[k]);\n\n    if (k in props) {\n      // 仅包含 props，不包含默认值\n      res[k] = v;\n    }\n  });\n  return (0, _extends2.default)((0, _extends2.default)({}, props), res); // 合并事件、未声明属性等\n};\n\nexports.getPropsData = getPropsData;\n\nvar getValueByProp = function getValueByProp(ele, prop) {\n  return getPropsData(ele)[prop];\n};\n\nexports.getValueByProp = getValueByProp;\n\nvar getAttrs = function getAttrs(ele) {\n  var data = ele.data;\n\n  if (ele.$vnode) {\n    data = ele.$vnode.data;\n  }\n\n  return data ? data.attrs || {} : {};\n};\n\nexports.getAttrs = getAttrs;\n\nvar getKey = function getKey(ele) {\n  var key = ele.key;\n  return key;\n};\n\nexports.getKey = getKey;\n\nfunction getEvents() {\n  var ele = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var on = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var props = {};\n\n  if (ele.$) {\n    props = (0, _extends2.default)((0, _extends2.default)({}, props), ele.$attrs);\n  } else {\n    props = (0, _extends2.default)((0, _extends2.default)({}, props), ele.props);\n  }\n\n  return splitAttrs(props)[on ? 'onEvents' : 'events'];\n}\n\nfunction getEvent(child, event) {\n  return child.props && child.props[event];\n} // 获取 xxx.native 或者 原生标签 事件\n\n\nfunction getDataEvents(child) {\n  var events = {};\n\n  if (child.data && child.data.on) {\n    events = child.data.on;\n  }\n\n  return (0, _extends2.default)({}, events);\n} // use getListeners instead this.$listeners\n// https://github.com/vueComponent/ant-design-vue/issues/1705\n\n\nfunction getListeners(context) {\n  return (context.$vnode ? context.$vnode.componentOptions.listeners : context.$listeners) || {};\n}\n\nfunction getClass(ele) {\n  var props = ((0, _vue.isVNode)(ele) ? ele.props : ele.$attrs) || {};\n  var tempCls = props.class || {};\n  var cls = {};\n\n  if (typeof tempCls === 'string') {\n    tempCls.split(' ').forEach(function (c) {\n      cls[c.trim()] = true;\n    });\n  } else if (Array.isArray(tempCls)) {\n    (0, _classNames.default)(tempCls).split(' ').forEach(function (c) {\n      cls[c.trim()] = true;\n    });\n  } else {\n    cls = (0, _extends2.default)((0, _extends2.default)({}, cls), tempCls);\n  }\n\n  return cls;\n}\n\nfunction getStyle(ele, camel) {\n  var props = ((0, _vue.isVNode)(ele) ? ele.props : ele.$attrs) || {};\n  var style = props.style || {};\n\n  if (typeof style === 'string') {\n    style = parseStyleText(style, camel);\n  } else if (camel && style) {\n    // 驼峰化\n    var res = {};\n    Object.keys(style).forEach(function (k) {\n      return res[(0, _util.camelize)(k)] = style[k];\n    });\n    return res;\n  }\n\n  return style;\n}\n\nfunction getComponentName(opts) {\n  return opts && (opts.Ctor.options.name || opts.tag);\n}\n\nfunction isFragment(c) {\n  return c.length === 1 && c[0].type === _vue.Fragment;\n}\n\nfunction isEmptyContent(c) {\n  return c === undefined || c === null || c === '' || Array.isArray(c) && c.length === 0;\n}\n\nfunction isEmptyElement(c) {\n  return c && (c.type === _vue.Comment || c.type === _vue.Fragment && c.children.length === 0 || c.type === _vue.Text && c.children.trim() === '');\n}\n\nfunction isEmptySlot(c) {\n  return !c || c().every(isEmptyElement);\n}\n\nfunction isStringElement(c) {\n  return c && c.type === _vue.Text;\n}\n\nfunction filterEmpty() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var res = [];\n  children.forEach(function (child) {\n    if (Array.isArray(child)) {\n      res.push.apply(res, (0, _toConsumableArray2.default)(child));\n    } else if (child.type === _vue.Fragment) {\n      res.push.apply(res, (0, _toConsumableArray2.default)(child.children));\n    } else {\n      res.push(child);\n    }\n  });\n  return res.filter(function (c) {\n    return !isEmptyElement(c);\n  });\n}\n\nvar initDefaultProps = function initDefaultProps(propTypes, defaultProps) {\n  Object.keys(defaultProps).forEach(function (k) {\n    if (propTypes[k]) {\n      propTypes[k].def && (propTypes[k] = propTypes[k].def(defaultProps[k]));\n    } else {\n      throw new Error(\"not have \".concat(k, \" prop\"));\n    }\n  });\n  return propTypes;\n};\n\nexports.initDefaultProps = initDefaultProps;\n\nfunction mergeProps() {\n  var args = [].slice.call(arguments, 0);\n  var props = {};\n  args.forEach(function () {\n    var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    for (var _i = 0, _Object$entries = Object.entries(p); _i < _Object$entries.length; _i++) {\n      var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),\n          k = _Object$entries$_i[0],\n          v = _Object$entries$_i[1];\n\n      props[k] = props[k] || {};\n\n      if ((0, _isPlainObject.default)(v)) {\n        (0, _extends2.default)(props[k], v);\n      } else {\n        props[k] = v;\n      }\n    }\n  });\n  return props;\n}\n\nfunction isValidElement(element) {\n  return element && element.__v_isVNode && (0, _typeof2.default)(element.type) !== 'symbol'; // remove text node\n}\n\nfunction getPropsSlot(slots, props) {\n  var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';\n\n  var _a, _b;\n\n  return (_a = props[prop]) !== null && _a !== void 0 ? _a : (_b = slots[prop]) === null || _b === void 0 ? void 0 : _b.call(slots);\n}\n\nvar _default = hasProp;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.withInstall = exports.tupleNum = exports.tuple = void 0;\n\n// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nvar tuple = function tuple() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return args;\n};\n\nexports.tuple = tuple;\n\nvar tupleNum = function tupleNum() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  return args;\n};\n\nexports.tupleNum = tupleNum;\n\nvar withInstall = function withInstall(comp) {\n  var c = comp;\n\n  c.install = function (app) {\n    app.component(c.displayName || c.name, comp);\n  };\n\n  return comp;\n};\n\nexports.withInstall = withInstall;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _vue = require(\"vue\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classNames2 = _interopRequireDefault(require(\"../_util/classNames\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _empty = _interopRequireDefault(require(\"./empty\"));\n\nvar _simple = _interopRequireDefault(require(\"./simple\"));\n\nvar _propsUtil = require(\"../_util/props-util\");\n\nvar _vueTypes = _interopRequireDefault(require(\"../_util/vue-types\"));\n\nvar _type = require(\"../_util/type\");\n\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nvar defaultEmptyImg = (0, _vue.createVNode)(_empty.default, null, null);\nvar simpleEmptyImg = (0, _vue.createVNode)(_simple.default, null, null);\n\nvar Empty = function Empty(props, _ref) {\n  var _ref$slots = _ref.slots,\n      slots = _ref$slots === void 0 ? {} : _ref$slots,\n      attrs = _ref.attrs;\n\n  var _a;\n\n  var configProvider = (0, _vue.inject)('configProvider', _configProvider.defaultConfigProvider);\n  var getPrefixCls = configProvider.getPrefixCls,\n      direction = configProvider.direction;\n\n  var _b = (0, _extends2.default)((0, _extends2.default)({}, props), attrs),\n      customizePrefixCls = _b.prefixCls,\n      _b$image = _b.image,\n      image = _b$image === void 0 ? defaultEmptyImg : _b$image,\n      _b$description = _b.description,\n      description = _b$description === void 0 ? ((_a = slots.description) === null || _a === void 0 ? void 0 : _a.call(slots)) || undefined : _b$description,\n      imageStyle = _b.imageStyle,\n      _b$class = _b.class,\n      className = _b$class === void 0 ? '' : _b$class,\n      restProps = __rest(_b, [\"prefixCls\", \"image\", \"description\", \"imageStyle\", \"class\"]);\n\n  return (0, _vue.createVNode)(_LocaleReceiver.default, {\n    \"componentName\": \"Empty\",\n    \"children\": function children(locale) {\n      var _classNames;\n\n      var prefixCls = getPrefixCls('empty', customizePrefixCls);\n      var des = typeof description !== 'undefined' ? description : locale.description;\n      var alt = typeof des === 'string' ? des : 'empty';\n      var imageNode = null;\n\n      if (typeof image === 'string') {\n        imageNode = (0, _vue.createVNode)(\"img\", {\n          \"alt\": alt,\n          \"src\": image\n        }, null);\n      } else {\n        imageNode = image;\n      }\n\n      return (0, _vue.createVNode)(\"div\", (0, _objectSpread2.default)({\n        \"class\": (0, _classNames2.default)(prefixCls, className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames))\n      }, restProps), [(0, _vue.createVNode)(\"div\", {\n        \"class\": \"\".concat(prefixCls, \"-image\"),\n        \"style\": imageStyle\n      }, [imageNode]), des && (0, _vue.createVNode)(\"p\", {\n        \"class\": \"\".concat(prefixCls, \"-description\")\n      }, [des]), slots.default && (0, _vue.createVNode)(\"div\", {\n        \"class\": \"\".concat(prefixCls, \"-footer\")\n      }, [(0, _propsUtil.filterEmpty)(slots.default())])]);\n    }\n  }, null);\n};\n\nEmpty.displayName = 'AEmpty';\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nEmpty.inheritAttrs = false;\nEmpty.props = {\n  prefixCls: _vueTypes.default.string,\n  image: _vueTypes.default.any,\n  description: _vueTypes.default.any,\n  imageStyle: _vueTypes.default.object\n};\n\nvar _default = (0, _type.withInstall)(Empty);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _vue = require(\"vue\");\n\nvar _empty = _interopRequireDefault(require(\"../empty\"));\n\nvar _ = require(\".\");\n\nvar RenderEmpty = function RenderEmpty(props) {\n  var configProvider = (0, _vue.inject)('configProvider', _.defaultConfigProvider);\n\n  var renderHtml = function renderHtml(componentName) {\n    var getPrefixCls = configProvider.getPrefixCls;\n    var prefix = getPrefixCls('empty');\n\n    switch (componentName) {\n      case 'Table':\n      case 'List':\n        return (0, _vue.createVNode)(_empty.default, {\n          \"image\": _empty.default.PRESENTED_IMAGE_SIMPLE\n        }, null);\n\n      case 'Select':\n      case 'TreeSelect':\n      case 'Cascader':\n      case 'Transfer':\n      case 'Mentions':\n        return (0, _vue.createVNode)(_empty.default, {\n          \"image\": _empty.default.PRESENTED_IMAGE_SIMPLE,\n          \"class\": \"\".concat(prefix, \"-small\")\n        }, null);\n\n      default:\n        return (0, _vue.createVNode)(_empty.default, null, null);\n    }\n  };\n\n  return renderHtml(props.componentName);\n};\n\nfunction renderEmpty(componentName) {\n  return (0, _vue.createVNode)(RenderEmpty, {\n    \"componentName\": componentName\n  }, null);\n}\n\nvar _default = renderEmpty;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = interopDefault;\n\n// https://github.com/moment/moment/issues/3650\nfunction interopDefault(m) {\n  return m.default || m;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.changeConfirmLocale = changeConfirmLocale;\nexports.getConfirmLocale = getConfirmLocale;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _default = _interopRequireDefault(require(\"../locale/default\"));\n\nvar runtimeLocale = (0, _extends2.default)({}, _default.default.Modal);\n\nfunction changeConfirmLocale(newLocale) {\n  if (newLocale) {\n    runtimeLocale = (0, _extends2.default)((0, _extends2.default)({}, runtimeLocale), newLocale);\n  } else {\n    runtimeLocale = (0, _extends2.default)({}, _default.default.Modal);\n  }\n}\n\nfunction getConfirmLocale() {\n  return runtimeLocale;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.warning = warning;\nexports.note = note;\nexports.resetWarned = resetWarned;\nexports.call = call;\nexports.warningOnce = warningOnce;\nexports.noteOnce = noteOnce;\nexports.default = void 0;\n\n/* eslint-disable no-console */\nvar warned = {};\n\nfunction warning(valid, message) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.error(\"Warning: \".concat(message));\n  }\n}\n\nfunction note(valid, message) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.warn(\"Note: \".concat(message));\n  }\n}\n\nfunction resetWarned() {\n  warned = {};\n}\n\nfunction call(method, valid, message) {\n  if (!valid && !warned[message]) {\n    method(false, message);\n    warned[message] = true;\n  }\n}\n\nfunction warningOnce(valid, message) {\n  call(warning, valid, message);\n}\n\nfunction noteOnce(valid, message) {\n  call(note, valid, message);\n}\n\nvar _default = warningOnce;\n/* eslint-enable */\n\nexports.default = _default;","\"use strict\";\n\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"resetWarned\", {\n  enumerable: true,\n  get: function get() {\n    return _warning.resetWarned;\n  }\n});\nexports.default = void 0;\n\nvar _warning = _interopRequireWildcard(require(\"../vc-util/warning\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = function _default(valid, component) {\n  var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n  (0, _warning.default)(valid, \"[antdv: \".concat(component, \"] \").concat(message));\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.ANT_MARK = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _vue = require(\"vue\");\n\nvar _vueTypes = _interopRequireDefault(require(\"../_util/vue-types\"));\n\nvar _moment = _interopRequireDefault(require(\"moment\"));\n\nvar _interopDefault = _interopRequireDefault(require(\"../_util/interopDefault\"));\n\nvar _locale = require(\"../modal/locale\");\n\nvar _warning = _interopRequireDefault(require(\"../_util/warning\"));\n\nvar _type = require(\"../_util/type\");\n\nvar ANT_MARK = 'internalMark';\nexports.ANT_MARK = ANT_MARK;\n\nfunction setMomentLocale(locale) {\n  if (locale && locale.locale) {\n    (0, _interopDefault.default)(_moment.default).locale(locale.locale);\n  } else {\n    (0, _interopDefault.default)(_moment.default).locale('en');\n  }\n}\n\nvar LocaleProvider = (0, _vue.defineComponent)({\n  name: 'ALocaleProvider',\n  props: {\n    locale: {\n      type: Object\n    },\n    ANT_MARK__: _vueTypes.default.string\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n    (0, _warning.default)(props.ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');\n    var state = (0, _vue.reactive)({\n      antLocale: (0, _extends2.default)((0, _extends2.default)({}, props.locale), {\n        exist: true\n      }),\n      ANT_MARK__: ANT_MARK\n    });\n    (0, _vue.provide)('localeData', state);\n    (0, _vue.watch)(function () {\n      return props.locale;\n    }, function (val) {\n      state.antLocale = (0, _extends2.default)((0, _extends2.default)({}, val), {\n        exist: true\n      });\n      setMomentLocale(val);\n      (0, _locale.changeConfirmLocale)(val && val.Modal);\n    }, {\n      immediate: true\n    });\n    (0, _vue.onUnmounted)(function () {\n      (0, _locale.changeConfirmLocale)();\n    });\n    return function () {\n      var _a;\n\n      return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n    };\n  }\n});\n/* istanbul ignore next */\n\nLocaleProvider.install = function (app) {\n  app.component(LocaleProvider.name, LocaleProvider);\n  return app;\n};\n\nvar _default = (0, _type.withInstall)(LocaleProvider);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.defaultConfigProvider = exports.configProviderProps = exports.configConsumerProps = void 0;\n\nvar _vue = require(\"vue\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _vueTypes = _interopRequireDefault(require(\"../_util/vue-types\"));\n\nvar _renderEmpty = _interopRequireDefault(require(\"./renderEmpty\"));\n\nvar _localeProvider = _interopRequireWildcard(require(\"../locale-provider\"));\n\nvar _LocaleReceiver = _interopRequireDefault(require(\"../locale-provider/LocaleReceiver\"));\n\nvar _type = require(\"../_util/type\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nexports.configConsumerProps = configConsumerProps;\nvar configProviderProps = {\n  getTargetContainer: {\n    type: Function\n  },\n  getPopupContainer: {\n    type: Function\n  },\n  prefixCls: String,\n  getPrefixCls: {\n    type: Function\n  },\n  renderEmpty: {\n    type: Function\n  },\n  transformCellText: {\n    type: Function\n  },\n  csp: {\n    type: Object\n  },\n  autoInsertSpaceInButton: _vueTypes.default.looseBool,\n  locale: {\n    type: Object\n  },\n  pageHeader: {\n    type: Object\n  },\n  componentSize: {\n    type: String\n  },\n  direction: {\n    type: String\n  },\n  space: {\n    type: Object\n  },\n  virtual: _vueTypes.default.looseBool,\n  dropdownMatchSelectWidth: _vueTypes.default.looseBool,\n  form: {\n    type: Object\n  }\n};\nexports.configProviderProps = configProviderProps;\nvar ConfigProvider = (0, _vue.defineComponent)({\n  name: 'AConfigProvider',\n  props: configProviderProps,\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n\n    var getPrefixCls = function getPrefixCls(suffixCls, customizePrefixCls) {\n      var _props$prefixCls = props.prefixCls,\n          prefixCls = _props$prefixCls === void 0 ? 'ant' : _props$prefixCls;\n      if (customizePrefixCls) return customizePrefixCls;\n      return suffixCls ? \"\".concat(prefixCls, \"-\").concat(suffixCls) : prefixCls;\n    };\n\n    var renderEmptyComponent = function renderEmptyComponent(name) {\n      var renderEmpty = props.renderEmpty || slots.renderEmpty || _renderEmpty.default;\n      return renderEmpty(name);\n    };\n\n    var getPrefixClsWrapper = function getPrefixClsWrapper(suffixCls, customizePrefixCls) {\n      var prefixCls = props.prefixCls;\n      if (customizePrefixCls) return customizePrefixCls;\n      var mergedPrefixCls = prefixCls || getPrefixCls('');\n      return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n    };\n\n    var configProvider = (0, _vue.reactive)((0, _extends2.default)((0, _extends2.default)({}, props), {\n      getPrefixCls: getPrefixClsWrapper,\n      renderEmpty: renderEmptyComponent\n    }));\n    Object.keys(props).forEach(function (key) {\n      (0, _vue.watch)(function () {\n        return props[key];\n      }, function () {\n        configProvider[key] = props[key];\n      });\n    });\n    (0, _vue.provide)('configProvider', configProvider);\n\n    var renderProvider = function renderProvider(legacyLocale) {\n      var _a;\n\n      return (0, _vue.createVNode)(_localeProvider.default, {\n        \"locale\": props.locale || legacyLocale,\n        \"ANT_MARK__\": _localeProvider.ANT_MARK\n      }, {\n        default: function _default() {\n          return [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)];\n        }\n      });\n    };\n\n    return function () {\n      return (0, _vue.createVNode)(_LocaleReceiver.default, {\n        \"children\": function children(_, __, legacyLocale) {\n          return renderProvider(legacyLocale);\n        }\n      }, null);\n    };\n  }\n});\nvar defaultConfigProvider = (0, _vue.reactive)({\n  getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n    if (customizePrefixCls) return customizePrefixCls;\n    return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n  },\n  renderEmpty: _renderEmpty.default,\n  direction: 'ltr'\n});\nexports.defaultConfigProvider = defaultConfigProvider;\n\nvar _default2 = (0, _type.withInstall)(ConfigProvider);\n\nexports.default = _default2;","import type { RequiredMark } from 'ant-design-vue/lib/form/Form';\nimport type { ComputedRef, UnwrapRef } from 'vue';\nimport { computed, inject } from 'vue';\nimport type { ConfigProviderProps, CSPConfig, Direction, SizeType } from 'ant-design-vue/lib/config-provider';\nimport { defaultConfigProvider } from 'ant-design-vue/lib/config-provider';\nimport type { VueNode } from '../type';\n\nexport default (\n  name: string,\n  props: Record<any, any>,\n): {\n  configProvider: UnwrapRef<ConfigProviderProps>;\n  prefixCls: ComputedRef<string>;\n  rootPrefixCls: ComputedRef<string>;\n  direction: ComputedRef<Direction>;\n  size: ComputedRef<SizeType>;\n  getTargetContainer: ComputedRef<() => HTMLElement>;\n  space: ComputedRef<{ size: SizeType | number }>;\n  pageHeader: ComputedRef<{ ghost: boolean }>;\n  form?: ComputedRef<{\n    requiredMark?: RequiredMark;\n    colon?: boolean;\n  }>;\n  autoInsertSpaceInButton: ComputedRef<boolean>;\n  renderEmpty?: ComputedRef<(componentName?: string) => VueNode>;\n  virtual: ComputedRef<boolean>;\n  dropdownMatchSelectWidth: ComputedRef<boolean | number>;\n  getPopupContainer: ComputedRef<ConfigProviderProps['getPopupContainer']>;\n  getPrefixCls: ConfigProviderProps['getPrefixCls'];\n  autocomplete: ComputedRef<string>;\n  csp: ComputedRef<CSPConfig>;\n} => {\n  const configProvider = inject<UnwrapRef<ConfigProviderProps>>(\n    'configProvider',\n    defaultConfigProvider,\n  );\n  const prefixCls = computed(() => configProvider.getPrefixCls(name, props.prefixCls));\n  const direction = computed(() => props.direction ?? configProvider.direction);\n  const rootPrefixCls = computed(() => configProvider.getPrefixCls());\n  const autoInsertSpaceInButton = computed(() => configProvider.autoInsertSpaceInButton);\n  const renderEmpty = computed(() => configProvider.renderEmpty);\n  const space = computed(() => configProvider.space);\n  const pageHeader = computed(() => configProvider.pageHeader);\n  const form = computed(() => configProvider.form);\n  const getTargetContainer = computed(\n    () => props.getTargetContainer || configProvider.getTargetContainer,\n  );\n  const getPopupContainer = computed(\n    () => props.getPopupContainer || configProvider.getPopupContainer,\n  );\n\n  const dropdownMatchSelectWidth = computed<boolean | number>(\n    () => props.dropdownMatchSelectWidth ?? configProvider.dropdownMatchSelectWidth,\n  );\n  const virtual = computed(\n    () =>\n      (props.virtual === undefined ? configProvider.virtual !== false : props.virtual !== false) &&\n      dropdownMatchSelectWidth.value !== false,\n  );\n  const size = computed(() => props.size || configProvider.componentSize);\n  const autocomplete = computed(() => props.autocomplete || configProvider.input?.autocomplete);\n  const csp = computed(() => configProvider.csp);\n  return {\n    configProvider,\n    prefixCls,\n    direction,\n    size,\n    getTargetContainer,\n    getPopupContainer,\n    space,\n    pageHeader,\n    form,\n    autoInsertSpaceInButton,\n    renderEmpty,\n    virtual,\n    dropdownMatchSelectWidth,\n    rootPrefixCls,\n    getPrefixCls: configProvider.getPrefixCls,\n    autocomplete,\n    csp,\n  };\n};\n","import type { FocusEventHandler, MouseEventHandler } from '../../_util/EventInterface';\nimport type { CSSProperties, PropType } from 'vue';\nimport type { PickerLocale } from '.';\nimport type { SizeType } from '../../config-provider';\nimport type { AlignType } from '../../vc-align/interface';\nimport type {\n  CustomFormat,\n  DisabledTime,\n  DisabledTimes,\n  EventValue,\n  PanelMode,\n  PickerMode,\n  RangeValue,\n} from '../../vc-picker/interface';\nimport type { DateRender } from '../../vc-picker/panels/DatePanel/DateBody';\nimport type { MonthCellRender } from '../../vc-picker/panels/MonthPanel/MonthBody';\nimport type { SharedTimeProps } from '../../vc-picker/panels/TimePanel';\nimport type { RangeDateRender, RangeInfo, RangeType } from '../../vc-picker/RangePicker';\nimport type { VueNode } from '../../_util/type';\n\nfunction commonProps<DateType = any>() {\n  return {\n    id: String,\n    dropdownClassName: String,\n    dropdownAlign: { type: Object as PropType<AlignType> },\n    popupStyle: { type: Object as PropType<CSSProperties> },\n    transitionName: String,\n    placeholder: String,\n    allowClear: { type: Boolean, default: undefined },\n    autofocus: { type: Boolean, default: undefined },\n    disabled: { type: Boolean, default: undefined },\n    tabindex: Number,\n    open: { type: Boolean, default: undefined },\n    defaultOpen: { type: Boolean, default: undefined },\n    /** Make input readOnly to avoid popup keyboard in mobile */\n    inputReadOnly: { type: Boolean, default: undefined },\n    // Value\n    // format:  string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];\n    // Render\n    // suffixIcon?: VueNode;\n    // clearIcon?: VueNode;\n    // prevIcon?: VueNode;\n    // nextIcon?: VueNode;\n    // superPrevIcon?: VueNode;\n    // superNextIcon?: VueNode;\n    getPopupContainer: { type: Function as PropType<(node: HTMLElement) => HTMLElement> },\n    panelRender: { type: Function as PropType<(originPanel: VueNode) => VueNode> },\n    // // Events\n    onChange: {\n      type: Function as PropType<(value: DateType | string | null, dateString: string) => void>,\n    },\n    'onUpdate:value': { type: Function as PropType<(value: DateType | string | null) => void> },\n    onOk: { type: Function as PropType<(value: DateType | string | null) => void> },\n    onOpenChange: { type: Function as PropType<(open: boolean) => void> },\n    'onUpdate:open': { type: Function as PropType<(open: boolean) => void> },\n    onFocus: { type: Function as PropType<FocusEventHandler> },\n    onBlur: { type: Function as PropType<FocusEventHandler> },\n    onMousedown: { type: Function as PropType<MouseEventHandler> },\n    onMouseup: { type: Function as PropType<MouseEventHandler> },\n    onMouseenter: { type: Function as PropType<MouseEventHandler> },\n    onMouseleave: { type: Function as PropType<MouseEventHandler> },\n    onClick: { type: Function as PropType<MouseEventHandler> },\n    onContextmenu: { type: Function as PropType<MouseEventHandler> },\n    onKeydown: {\n      type: Function as PropType<(event: KeyboardEvent, preventDefault: () => void) => void>,\n    },\n    // WAI-ARIA\n    role: String,\n    name: String,\n    autocomplete: String,\n    direction: { type: String as PropType<'ltr' | 'rtl'> },\n    showToday: { type: Boolean, default: undefined },\n    showTime: {\n      type: [Boolean, Object] as PropType<boolean | SharedTimeProps<DateType>>,\n      default: undefined,\n    },\n    locale: { type: Object as PropType<PickerLocale> },\n    size: { type: String as PropType<SizeType> },\n    bordered: { type: Boolean, default: undefined },\n    dateRender: { type: Function as PropType<DateRender<DateType>> },\n    disabledDate: { type: Function as PropType<(date: DateType) => boolean> },\n    mode: { type: String as PropType<PanelMode> },\n    picker: { type: String as PropType<PickerMode> },\n    valueFormat: String,\n  };\n}\n\nexport interface CommonProps<DateType> {\n  id?: string;\n  prefixCls?: string;\n  dropdownClassName?: string;\n  dropdownAlign?: AlignType;\n  popupStyle?: CSSProperties;\n  transitionName?: string;\n  placeholder?: string;\n  allowClear?: boolean;\n  autofocus?: boolean;\n  disabled?: boolean;\n  tabindex?: number;\n  open?: boolean;\n  defaultOpen?: boolean;\n  inputReadOnly?: boolean;\n  suffixIcon?: VueNode;\n  prefixText?: string;\n  clearIcon?: VueNode;\n  prevIcon?: VueNode;\n  nextIcon?: VueNode;\n  superPrevIcon?: VueNode;\n  superNextIcon?: VueNode;\n  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\n  panelRender?: (originPanel: VueNode) => VueNode;\n  onChange?: (value: DateType | string | null, dateString: string) => void;\n  'onUpdate:value'?: (value: DateType | string | null) => void;\n  onOk?: (value: DateType | string | null) => void;\n  onOpenChange?: (open: boolean) => void;\n  'onUpdate:open'?: (open: boolean) => void;\n  onFocus?: FocusEventHandler;\n  onBlur?: FocusEventHandler;\n  onMousedown?: MouseEventHandler;\n  onMouseup?: MouseEventHandler;\n  onMouseenter?: MouseEventHandler;\n  onMouseleave?: MouseEventHandler;\n  onClick?: MouseEventHandler;\n  onContextmenu?: MouseEventHandler;\n  onKeydown?: (event: KeyboardEvent, preventDefault: () => void) => void;\n  role?: string;\n  name?: string;\n  autocomplete?: string;\n  direction?: 'ltr' | 'rtl';\n  showToday?: boolean;\n  showTime?: boolean | SharedTimeProps<DateType>;\n  locale?: PickerLocale;\n  size?: SizeType;\n  bordered?: boolean;\n  dateRender?: DateRender<DateType>;\n  disabledDate?: (date: DateType) => boolean;\n  mode?: PanelMode;\n  picker?: PickerMode;\n  valueFormat?: string;\n}\n\nfunction datePickerProps<DateType = any>() {\n  return {\n    defaultPickerValue: { type: [String, Object] as PropType<DateType | string> },\n    defaultValue: { type: [String, Object] as PropType<DateType | string> },\n    value: { type: [String, Object] as PropType<DateType | string> },\n    disabledTime: { type: Function as PropType<DisabledTime<DateType>> },\n    format: {\n      type: [String, Function, Array] as PropType<\n        string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[]\n      >,\n    },\n    renderExtraFooter: { type: Function as PropType<(mode: PanelMode) => VueNode> },\n    showNow: { type: Boolean, default: undefined },\n    monthCellRender: { type: Function as PropType<MonthCellRender<DateType>> },\n    // deprecated  Please use `monthCellRender\"` instead.',\n    monthCellContentRender: { type: Function as PropType<MonthCellRender<DateType>> },\n  };\n}\n\nexport interface DatePickerProps<DateType> {\n  defaultPickerValue?: DateType | string;\n  defaultValue?: DateType | string;\n  value?: DateType | string;\n  disabledTime?: DisabledTime<DateType>;\n  format?: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];\n  renderExtraFooter?: (mode: PanelMode) => VueNode;\n  showNow?: boolean;\n  monthCellRender?: MonthCellRender<DateType>;\n  // deprecated  Please use `monthCellRender\"` instead.',\n  monthCellContentRender?: MonthCellRender<DateType>;\n}\n\nfunction rangePickerProps<DateType>() {\n  return {\n    allowEmpty: { type: Array as unknown as PropType<[boolean, boolean]> },\n    dateRender: { type: Function as PropType<RangeDateRender<DateType>> },\n    defaultPickerValue: {\n      type: Array as unknown as PropType<RangeValue<DateType> | RangeValue<string>>,\n    },\n    defaultValue: { type: Array as unknown as PropType<RangeValue<DateType> | RangeValue<string>> },\n    value: { type: Array as unknown as PropType<RangeValue<DateType> | RangeValue<string>> },\n    disabledTime: {\n      type: Function as PropType<(date: EventValue<DateType>, type: RangeType) => DisabledTimes>,\n    },\n    disabled: { type: [Boolean, Array] as unknown as PropType<boolean | [boolean, boolean]> },\n    format: String,\n    renderExtraFooter: { type: Function as PropType<() => VueNode> },\n    separator: { type: String },\n    ranges: {\n      type: Object as PropType<\n        Record<\n          string,\n          Exclude<RangeValue<DateType>, null> | (() => Exclude<RangeValue<DateType>, null>)\n        >\n      >,\n    },\n    placeholder: Array,\n    mode: { type: Array as unknown as PropType<[PanelMode, PanelMode]> },\n    onChange: {\n      type: Function as PropType<\n        (\n          value: RangeValue<DateType> | RangeValue<string> | null,\n          dateString: [string, string],\n        ) => void\n      >,\n    },\n    'onUpdate:value': {\n      type: Function as PropType<(value: RangeValue<DateType> | RangeValue<string> | null) => void>,\n    },\n    onCalendarChange: {\n      type: Function as PropType<\n        (\n          values: RangeValue<DateType> | RangeValue<string>,\n          formatString: [string, string],\n          info: RangeInfo,\n        ) => void\n      >,\n    },\n    onPanelChange: {\n      type: Function as PropType<\n        (values: RangeValue<DateType> | RangeValue<string>, modes: [PanelMode, PanelMode]) => void\n      >,\n    },\n    onOk: {\n      type: Function as PropType<(dates: RangeValue<DateType> | RangeValue<string>) => void>,\n    },\n    immediateCalendarChangeDateRangePicker: Boolean\n  };\n}\n\nexport interface RangePickerProps<DateType> {\n  allowEmpty?: [boolean, boolean];\n  dateRender?: RangeDateRender<DateType>;\n  defaultPickerValue?: RangeValue<DateType> | RangeValue<string>;\n  defaultValue?: RangeValue<DateType> | RangeValue<string>;\n  value?: RangeValue<DateType> | RangeValue<string>;\n  disabledTime?: (date: EventValue<DateType>, type: RangeType) => DisabledTimes;\n  disabled?: [boolean, boolean];\n  format?: string;\n  renderExtraFooter?: () => VueNode;\n  separator?: string;\n  ranges?: Record<\n    string,\n    Exclude<RangeValue<DateType>, null> | (() => Exclude<RangeValue<DateType>, null>)\n  >;\n  placeholder?: [string, string];\n  mode?: [PanelMode, PanelMode];\n  onChange?: (\n    value: RangeValue<DateType> | RangeValue<string> | null,\n    dateString: [string, string],\n  ) => void;\n  'onUpdate:value'?: (value: RangeValue<DateType> | RangeValue<string> | null) => void;\n  onCalendarChange?: (\n    values: RangeValue<DateType> | RangeValue<string>,\n    formatString: [string, string],\n    info: RangeInfo,\n  ) => void;\n  onPanelChange?: (\n    values: RangeValue<DateType> | RangeValue<string>,\n    modes: [PanelMode, PanelMode],\n  ) => void;\n  onOk?: (dates: RangeValue<DateType> | RangeValue<string>) => void;\n  immediateCalendarChangeDateRangePicker?: boolean\n}\n\nexport type ExtraDatePickerProps<DateType> = {\n  valueFormat?: string;\n  defaultPickerValue?: DateType | string;\n  defaultValue?: DateType | string;\n  value?: DateType | string;\n};\n\nexport type ExtraRangePickerProps<DateType> = {\n  valueFormat?: string;\n  defaultPickerValue?: RangeValue<DateType> | RangeValue<string>;\n  defaultValue?: RangeValue<DateType> | RangeValue<string>;\n  value?: RangeValue<DateType> | RangeValue<string>;\n};\n\nexport { commonProps, datePickerProps, rangePickerProps };\n","import { CalendarOutlined } from '@ant-design/icons-vue';\nimport { ClockCircleOutlined } from '@ant-design/icons-vue';\nimport { CloseCircleFilled } from '@ant-design/icons-vue';\nimport RCPicker from '../../picker';\nimport type { PanelMode, PickerMode } from '../../picker/interface';\nimport type { GenerateConfig } from '../../picker/generate/index';\nimport enUS from '../locale/en_US';\nimport { getPlaceholder } from '../util';\nimport { useLocaleReceiver } from '../../../locale-provider/LocaleReceiver';\nimport { getTimeProps, Components } from '.';\nimport { computed, defineComponent, nextTick, onMounted, ref } from 'vue';\nimport useConfigInject from '../../../hooks/useConfigInject';\nimport classNames from '../../../utils/classNames';\nimport type { CommonProps, DatePickerProps } from './props';\nimport { commonProps, datePickerProps } from './props';\n\nimport devWarning from '../../../utils/devWarning';\nimport { useInjectFormItemContext } from '../../form/FormItemContext';\n\nexport default function generateSinglePicker<DateType, ExtraProps = {}>(\n  generateConfig: GenerateConfig<DateType>,\n  extraProps: ExtraProps,\n) {\n  function getPicker(picker?: PickerMode, displayName?: string) {\n    const comProps = {\n      ...commonProps<DateType>(),\n      ...datePickerProps<DateType>(),\n      ...extraProps,\n    };\n    return defineComponent({\n      name: displayName,\n      inheritAttrs: false,\n      props: comProps,\n      slots: [\n        'suffixIcon',\n        // 'clearIcon',\n        'prevIcon',\n        'nextIcon',\n        'superPrevIcon',\n        'superNextIcon',\n        // 'panelRender',\n        'dateRender',\n        'renderExtraFooter',\n        'monthCellRender',\n      ],\n      setup(_props, { slots, expose, attrs, emit }) {\n        // 兼容 vue 3.2.7\n        const props = _props as unknown as CommonProps<DateType> &\n          DatePickerProps<DateType> &\n          ExtraProps;\n        const formItemContext = useInjectFormItemContext();\n        devWarning(\n          !(props.monthCellContentRender || slots.monthCellContentRender),\n          'DatePicker',\n          '`monthCellContentRender` is deprecated. Please use `monthCellRender\"` instead.',\n        );\n\n        devWarning(\n          !attrs.getCalendarContainer,\n          'DatePicker',\n          '`getCalendarContainer` is deprecated. Please use `getPopupContainer\"` instead.',\n        );\n        const { direction, getPopupContainer, size, rootPrefixCls } = useConfigInject(\n          'picker',\n          props,\n          );\n        const prefixCls = 'scPicker'\n        const pickerRef = ref();\n        onMounted(() => {\n          nextTick(() => {\n            if (process.env.NODE_ENV === 'test') {\n              if (props.autofocus) {\n                pickerRef.value?.focus();\n              }\n            }\n          });\n        });\n        expose({\n          focus: () => {\n            pickerRef.value?.focus();\n          },\n          blur: () => {\n            pickerRef.value?.blur();\n          },\n        });\n        const maybeToString = (date: DateType) => {\n          return props.valueFormat ? generateConfig.toString(date, props.valueFormat) : date;\n        };\n        const onChange = (date: DateType, dateString: string) => {\n          const value = maybeToString(date);\n          emit('update:value', value);\n          emit('change', value, dateString);\n          formItemContext.onFieldChange();\n        };\n        const onOpenChange = (open: boolean) => {\n          emit('update:open', open);\n          emit('openChange', open);\n        };\n        const onFocus = () => {\n          emit('focus');\n        };\n        const onBlur = () => {\n          emit('blur');\n          formItemContext.onFieldBlur();\n        };\n        const onPanelChange = (date: DateType, mode: PanelMode | null) => {\n          const value = maybeToString(date);\n          emit('panelChange', value, mode);\n        };\n        const onOk = (date: DateType) => {\n          const value = maybeToString(date);\n          emit('ok', value);\n        };\n\n        const [contextLocale] = useLocaleReceiver('DatePicker', enUS);\n\n        const value = computed(() => {\n          if (props.value) {\n            return props.valueFormat\n              ? generateConfig.toDate(props.value as string | DateType, props.valueFormat)\n              : props.value;\n          }\n          return (props.value === '' ? undefined : props.value) as DateType;\n        });\n        const defaultValue = computed(() => {\n          if (props.defaultValue) {\n            return props.valueFormat\n              ? generateConfig.toDate(props.defaultValue as string | DateType, props.valueFormat)\n              : props.defaultValue;\n          }\n          return (props.defaultValue === '' ? undefined : props.defaultValue) as DateType;\n        });\n        const defaultPickerValue = computed(() => {\n          if (props.defaultPickerValue) {\n            return props.valueFormat\n              ? generateConfig.toDate(\n                  props.defaultPickerValue as string | DateType,\n                  props.valueFormat,\n                )\n              : props.defaultPickerValue;\n          }\n          return (\n            props.defaultPickerValue === '' ? undefined : props.defaultPickerValue\n          ) as DateType;\n        });\n\n        return () => {\n          const locale = { ...contextLocale.value, ...props.locale };\n          const p = { ...props, ...attrs };\n          const {\n            bordered = true,\n            placeholder,\n            suffixIcon = slots.suffixIcon?.(),\n            prefixText,\n            showToday = true,\n            transitionName,\n            allowClear = true,\n            dateRender = slots.dateRender,\n            renderExtraFooter = slots.renderExtraFooter,\n            monthCellRender = slots.monthCellRender ||\n            (props as any).monthCellContentRender ||\n            slots.monthCellContentRender,\n            clearIcon = slots.clearIcon?.(),\n            id = formItemContext.id.value,\n            ...restProps\n          } = p;\n          const showTime = p.showTime === '' ? true : p.showTime;\n          const { format } = p as any;\n\n          let additionalOverrideProps: any = {};\n          if (picker) {\n            additionalOverrideProps.picker = picker;\n          }\n          const mergedPicker = picker || p.picker || 'date';\n\n          additionalOverrideProps = {\n            ...additionalOverrideProps,\n            ...(showTime\n              ? getTimeProps({\n                  format,\n                  picker: mergedPicker,\n                  ...(typeof showTime === 'object' ? showTime : {}),\n                })\n              : {}),\n            ...(mergedPicker === 'time'\n              ? getTimeProps({ format, ...restProps, picker: mergedPicker })\n              : {}),\n          };\n          const pre = prefixCls.value;\n          return (\n            <RCPicker\n              monthCellRender={monthCellRender}\n              dateRender={dateRender}\n              renderExtraFooter={renderExtraFooter}\n              ref={pickerRef}\n              placeholder={getPlaceholder(mergedPicker, locale, placeholder)}\n              suffixIcon={\n                suffixIcon ||\n                (mergedPicker === 'time' ? <ClockCircleOutlined /> : <CalendarOutlined />)\n              }\n              clearIcon={clearIcon || <CloseCircleFilled />}\n              allowClear={allowClear}\n              transitionName={transitionName || `${rootPrefixCls.value}-slide-up`}\n              {...restProps}\n              {...additionalOverrideProps}\n              id={id}\n              picker={mergedPicker}\n              value={value.value}\n              defaultValue={defaultValue.value}\n              defaultPickerValue={defaultPickerValue.value}\n              showToday={showToday}\n              locale={locale!.lang}\n              class={classNames(\n                {\n                  [`scPicker-${size.value}`]: size.value,\n                  [`scPicker-borderless`]: !bordered,\n                },\n                attrs.class,\n              )}\n              prefixCls={pre}\n              prefixText={prefixText}\n              getPopupContainer={attrs.getCalendarContainer || getPopupContainer.value}\n              generateConfig={generateConfig}\n              prevIcon={slots.prevIcon?.() || <span class={`scPicker-prev-icon`} />}\n              nextIcon={slots.nextIcon?.() || <span class={`scPicker-next-icon`} />}\n              superPrevIcon={slots.superPrevIcon?.() || <span class={`scPicker-super-prev-icon`} />}\n              superNextIcon={slots.superNextIcon?.() || <span class={`scPicker-super-next-icon`} />}\n              components={Components}\n              direction={direction.value}\n              onChange={onChange}\n              onOpenChange={onOpenChange}\n              onFocus={onFocus}\n              onBlur={onBlur}\n              onPanelChange={onPanelChange}\n              onOk={onOk}\n            />\n          );\n        };\n      },\n    });\n  }\n\n  const DatePicker = getPicker(undefined, 'ScDatePicker');\n  const WeekPicker = getPicker('week', 'ScWeekPicker');\n  const MonthPicker = getPicker('month', 'ScMonthPicker');\n  const YearPicker = getPicker('year', 'ScYearPicker');\n  const TimePicker = getPicker('time', 'ScTimePicker'); // 给独立组件 TimePicker 使用，此处名称不用更改\n  const QuarterPicker = getPicker('quarter', 'ScQuarterPicker');\n\n  return {\n    DatePicker,\n    WeekPicker,\n    MonthPicker,\n    YearPicker,\n    TimePicker,\n    QuarterPicker,\n  };\n}\n","function omit<T extends object, K extends keyof T>(obj: T, fields: K[]): Omit<T, K> {\n  // eslint-disable-next-line prefer-object-spread\n  const shallowCopy = Object.assign({}, obj);\n  for (let i = 0; i < fields.length; i += 1) {\n    const key = fields[i];\n    delete shallowCopy[key];\n  }\n  return shallowCopy;\n}\nexport default omit;\n","import { CalendarOutlined } from '@ant-design/icons-vue';\nimport { ClockCircleOutlined } from '@ant-design/icons-vue';\nimport { CloseCircleFilled } from '@ant-design/icons-vue';\n// import { SwapRightOutlined } from '@ant-design/icons-vue';\nimport { RangePicker as VCRangePicker } from '../../picker';\nimport type { GenerateConfig } from '../../picker/generate/index';\nimport enUS from '../locale/en_US';\nimport { useLocaleReceiver } from '../../../locale-provider/LocaleReceiver';\nimport { getRangePlaceholder } from '../util';\nimport { getTimeProps, Components } from '.';\nimport { computed, defineComponent, nextTick, onMounted, ref } from 'vue';\nimport useConfigInject from '../../../hooks/useConfigInject';\nimport classNames from '../../../utils/classNames';\nimport type { CommonProps, RangePickerProps } from './props';\nimport { commonProps, rangePickerProps } from './props';\nimport type { PanelMode, RangeValue } from '../../picker/interface';\nimport type { RangePickerSharedProps } from '../../picker/RangePicker';\nimport devWarning from '../../../utils/devWarning';\nimport { useInjectFormItemContext } from '../../form/FormItemContext';\nimport omit from '../../../utils/omit';\n\nexport default function generateRangePicker<DateType, ExtraProps = {}>(\n  generateConfig: GenerateConfig<DateType>,\n  extraProps: ExtraProps,\n) {\n  const RangePicker = defineComponent({\n    name: 'ScRangePicker',\n    inheritAttrs: false,\n    props: {\n      ...commonProps<DateType>(),\n      ...rangePickerProps<DateType>(),\n      ...extraProps,\n      onChange: [Function, Array],\n      onBlur: [Function, Array],\n    },\n    slots: [\n      'suffixIcon',\n      // 'clearIcon',\n      'prevIcon',\n      'nextIcon',\n      'superPrevIcon',\n      'superNextIcon',\n      // 'panelRender',\n      'dateRender',\n      'renderExtraFooter',\n      // 'separator',\n    ],\n    setup(_props, { expose, slots, attrs, emit }) {\n      const props = _props as unknown as CommonProps<DateType> & RangePickerProps<DateType>;\n      const formItemContext = useInjectFormItemContext();\n      devWarning(\n        !attrs.getCalendarContainer,\n        'DatePicker',\n        '`getCalendarContainer` is deprecated. Please use `getPopupContainer\"` instead.',\n      );\n      const { direction, getPopupContainer, size, rootPrefixCls } = useConfigInject(\n      // const { prefixCls, direction, getPopupContainer, size, rootPrefixCls } = useConfigInject(\n        'picker',\n        props,\n      );\n      const prefixCls = ref('scPicker');\n      const pickerRef = ref();\n      onMounted(() => {\n        nextTick(() => {\n          if (process.env.NODE_ENV === 'test') {\n            if (props.autofocus) {\n              pickerRef.value?.focus();\n            }\n          }\n        });\n      });\n      expose({\n        focus: () => {\n          pickerRef.value?.focus();\n        },\n        blur: () => {\n          pickerRef.value?.blur();\n        },\n      });\n      const maybeToStrings = (dates: DateType[]) => {\n        return props.valueFormat ? generateConfig.toString(dates, props.valueFormat) : dates;\n      };\n      const onChange = (dates: [DateType, DateType], dateStrings: [string, string]) => {\n        const values = maybeToStrings(dates);\n        emit('update:value', values);\n        emit('change', values, dateStrings);\n        formItemContext.onFieldChange();\n      };\n      const onOpenChange = (open: boolean) => {\n        emit('update:open', open);\n        emit('openChange', open);\n      };\n      const onFocus = () => {\n        emit('focus');\n      };\n      const onBlur = () => {\n        emit('blur');\n        formItemContext.onFieldBlur();\n      };\n      const onPanelChange = (dates: RangeValue<DateType>, modes: [PanelMode, PanelMode]) => {\n        const values = maybeToStrings(dates);\n        emit('panelChange', values, modes);\n      };\n      const onOk = (dates: DateType[]) => {\n        const value = maybeToStrings(dates);\n        emit('ok', value);\n      };\n      const onCalendarChange: RangePickerSharedProps<DateType>['onCalendarChange'] = (\n        dates: [DateType, DateType],\n        dateStrings: [string, string],\n        info,\n      ) => {\n        const values = maybeToStrings(dates);\n        emit('calendarChange', values, dateStrings, info);\n      };\n      const [contextLocale] = useLocaleReceiver('DatePicker', enUS);\n\n      const value = computed(() => {\n        if (props.value) {\n          return props.valueFormat\n            ? generateConfig.toDate(props.value, props.valueFormat)\n            : props.value;\n        }\n        return props.value;\n      });\n      const defaultValue = computed(() => {\n        if (props.defaultValue) {\n          return props.valueFormat\n            ? generateConfig.toDate(props.defaultValue, props.valueFormat)\n            : props.defaultValue;\n        }\n        return props.defaultValue;\n      });\n      const defaultPickerValue = computed(() => {\n        if (props.defaultPickerValue) {\n          return props.valueFormat\n            ? generateConfig.toDate(props.defaultPickerValue, props.valueFormat)\n            : props.defaultPickerValue;\n        }\n        return props.defaultPickerValue;\n      });\n      return () => {\n        const locale = { ...contextLocale.value, ...props.locale };\n        const p = { ...props, ...attrs };\n        const {\n          prefixCls: customizePrefixCls,\n          bordered = true,\n          placeholder,\n          suffixIcon = slots.suffixIcon?.(),\n          prefixText,\n          picker = 'date',\n          transitionName,\n          allowClear = true,\n          dateRender = slots.dateRender,\n          renderExtraFooter = slots.renderExtraFooter,\n          separator = slots.separator?.(),\n          clearIcon = slots.clearIcon?.(),\n          id = formItemContext.id.value,\n          ...restProps\n        } = p;\n        delete restProps['onUpdate:value'];\n        delete restProps['onUpdate:open'];\n        const { format, showTime } = p as any;\n\n        let additionalOverrideProps: any = {};\n        additionalOverrideProps = {\n          ...additionalOverrideProps,\n          ...(showTime ? getTimeProps({ format, picker, ...showTime }) : {}),\n          ...(picker === 'time'\n            ? getTimeProps({ format, ...omit(restProps, ['disabledTime']), picker })\n            : {}),\n        };\n        const pre = prefixCls.value;\n        return (\n          <VCRangePicker\n            dateRender={dateRender}\n            renderExtraFooter={renderExtraFooter}\n            separator={\n              separator || (\n                <span aria-label=\"to\" class={`${pre}-separator`}>\n                  {/* <SwapRightOutlined /> */}\n                  {/* 一 */}\n                  <i class=\"sc-ui sc-remove\"></i>\n                </span>\n              )\n            }\n            ref={pickerRef}\n            placeholder={getRangePlaceholder(picker, locale, placeholder as [string, string])}\n            suffixIcon={\n              suffixIcon || (picker === 'time' ? <ClockCircleOutlined /> : <CalendarOutlined />)\n            }\n            prefixText={prefixText}\n            clearIcon={clearIcon || <CloseCircleFilled />}\n            allowClear={allowClear}\n            transitionName={transitionName || `${rootPrefixCls.value}-slide-up`}\n            {...restProps}\n            {...additionalOverrideProps}\n            id={id}\n            value={value.value}\n            defaultValue={defaultValue.value}\n            defaultPickerValue={defaultPickerValue.value}\n            picker={picker}\n            class={classNames(\n              {\n                [`scPicker-${size.value}`]: size.value,\n                [`scPicker-borderless`]: !bordered,\n              },\n              attrs.class,\n            )}\n            locale={locale!.lang}\n            prefixCls={pre}\n            getPopupContainer={attrs.getCalendarContainer || getPopupContainer.value}\n            generateConfig={generateConfig}\n            prevIcon={slots.prevIcon?.() || <span class={`scPicker-prev-icon`} />}\n            nextIcon={slots.nextIcon?.() || <span class={`scPicker-next-icon`} />}\n            superPrevIcon={slots.superPrevIcon?.() || <span class={`scPicker-super-prev-icon`} />}\n            superNextIcon={slots.superNextIcon?.() || <span class={`scPicker-super-next-icon`} />}\n            components={Components}\n            direction={direction.value}\n            onChange={onChange}\n            onOpenChange={onOpenChange}\n            onFocus={onFocus}\n            onBlur={onBlur}\n            onPanelChange={onPanelChange}\n            onOk={onOk}\n            onCalendarChange={onCalendarChange}\n            immediateCalendarChangeDateRangePicker={props.immediateCalendarChangeDateRangePicker}\n          />\n        );\n      };\n    },\n  });\n\n  return RangePicker;\n}\n","import type { GenerateConfig } from '../../picker/generate';\nimport type { SharedTimeProps } from '../../picker/panels/TimePanel';\nimport type { PickerMode } from '../../picker/interface';\nimport PickerButton from '../PickerButton';\nimport PickerTag from '../PickerTag';\nimport generateSinglePicker from './generateSinglePicker';\nimport generateRangePicker from './generateRangePicker';\n\nexport * from './interface';\n\nexport const Components = { button: PickerButton, rangeItem: PickerTag };\n\nfunction toArray<T>(list: T | T[]): T[] {\n  if (!list) {\n    return [];\n  }\n  return Array.isArray(list) ? list : [list];\n}\n\nexport function getTimeProps<DateType>(\n  props: { format?: string; picker?: PickerMode } & SharedTimeProps<DateType>,\n) {\n  const { format, picker, showHour, showMinute, showSecond, use12Hours } = props;\n\n  const firstFormat = toArray(format)[0];\n  const showTimeObj: SharedTimeProps<DateType> = { ...props };\n\n  if (firstFormat && typeof firstFormat === 'string') {\n    if (!firstFormat.includes('s') && showSecond === undefined) {\n      showTimeObj.showSecond = false;\n    }\n    if (!firstFormat.includes('m') && showMinute === undefined) {\n      showTimeObj.showMinute = false;\n    }\n    if (!firstFormat.includes('H') && !firstFormat.includes('h') && showHour === undefined) {\n      showTimeObj.showHour = false;\n    }\n\n    if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {\n      showTimeObj.use12Hours = true;\n    }\n  }\n\n  if (picker === 'time') {\n    return showTimeObj;\n  }\n\n  if (typeof firstFormat === 'function') {\n    // format of showTime should use default when format is custom format function\n    delete showTimeObj.format;\n  }\n\n  return {\n    showTime: showTimeObj,\n  };\n}\n\nfunction generatePicker<DateType, ExtraProps extends {} = {}>(\n  generateConfig: GenerateConfig<DateType>,\n  extraProps?: ExtraProps,\n) {\n  // =========================== Picker ===========================\n  const { DatePicker, WeekPicker, MonthPicker, YearPicker, TimePicker, QuarterPicker } =\n    generateSinglePicker<DateType, ExtraProps>(generateConfig, extraProps);\n\n  // ======================== Range Picker ========================\n  const RangePicker = generateRangePicker<DateType, ExtraProps>(generateConfig, extraProps);\n\n  return {\n    ScDatePicker: DatePicker,\n    ScWeekPicker: WeekPicker,\n    ScMonthPicker: MonthPicker,\n    ScYearPicker: YearPicker,\n    ScTimePicker: TimePicker,\n    ScQuarterPicker: QuarterPicker,\n    ScRangePicker: RangePicker,\n  };\n}\n\nexport default generatePicker;\n","import type { Dayjs } from 'dayjs';\nimport type { App } from 'vue';\nimport dayjsGenerateConfig from '../picker/generate/dayjs';\nimport type {\n  PickerProps,\n  PickerDateProps,\n  RangePickerProps as BaseRangePickerProps,\n} from './generatePicker';\nimport generatePicker from './generatePicker';\nimport type { ExtraDatePickerProps, ExtraRangePickerProps } from './generatePicker/props';\n\nexport type DatePickerProps = PickerProps<Dayjs> & ExtraDatePickerProps<Dayjs>;\nexport type MonthPickerProps = Omit<PickerDateProps<Dayjs>, 'picker'> & ExtraDatePickerProps<Dayjs>;\nexport type WeekPickerProps = Omit<PickerDateProps<Dayjs>, 'picker'> & ExtraDatePickerProps<Dayjs>;\nexport type RangePickerProps = BaseRangePickerProps<Dayjs> & ExtraRangePickerProps<Dayjs>;\n\nconst { ScDatePicker, ScWeekPicker, ScMonthPicker, ScYearPicker, ScTimePicker, ScQuarterPicker, ScRangePicker } =\n  generatePicker<Dayjs>(dayjsGenerateConfig);\n\n/* istanbul ignore next */\nexport { ScRangePicker, ScWeekPicker, ScMonthPicker, ScQuarterPicker, ScYearPicker };\n\nexport default Object.assign(ScDatePicker, {\n  ScWeekPicker: ScWeekPicker,\n  ScMonthPicker: ScMonthPicker,\n  ScYearPicker: ScYearPicker,\n  ScRangePicker: ScRangePicker,\n  ScTimePicker: ScTimePicker,\n  ScQuarterPicker: ScQuarterPicker,\n  install: (app: App) => {\n    app.component(ScDatePicker.name, ScDatePicker);\n    app.component(ScRangePicker.name, ScRangePicker);\n    app.component(ScMonthPicker.name, ScMonthPicker);\n    app.component(ScWeekPicker.name, ScWeekPicker);\n    app.component(ScQuarterPicker.name, ScQuarterPicker);\n    return app;\n  },\n});\n","import { defineComponent, ref } from 'vue';\nimport type { RangePickerTimeProps } from '../datePicker/generatePicker';\nimport generatePicker from '../datePicker/generatePicker';\nimport {\n  commonProps,\n  datePickerProps,\n  rangePickerProps,\n} from '../datePicker/generatePicker/props';\nimport type { CommonProps, DatePickerProps } from '../datePicker/generatePicker/props';\nimport type { GenerateConfig } from '../picker/generate';\nimport type { PanelMode, RangeValue } from '../picker/interface';\nimport type { RangePickerSharedProps } from '../picker/RangePicker';\nimport devWarning from '../../utils/devWarning';\nimport { useInjectFormItemContext } from '../form/FormItemContext';\nimport omit from '../../utils/omit';\n\nexport interface TimePickerLocale {\n  placeholder?: string;\n  rangePlaceholder?: [string, string];\n}\n\nexport const timePickerProps = () => ({\n  format: String,\n  showNow: { type: Boolean, default: undefined },\n  showHour: { type: Boolean, default: undefined },\n  showMinute: { type: Boolean, default: undefined },\n  showSecond: { type: Boolean, default: undefined },\n  use12Hours: { type: Boolean, default: undefined },\n  hourStep: Number,\n  minuteStep: Number,\n  secondStep: Number,\n  hideDisabledOptions: { type: Boolean, default: undefined },\n  popupClassName: String,\n});\n\nexport interface CommonTimePickerProps {\n  format?: string;\n  showNow?: boolean;\n  showHour?: boolean;\n  showMinute?: boolean;\n  showSecond?: boolean;\n  use12Hours?: boolean;\n  hourStep?: number;\n  minuteStep?: number;\n  secondStep?: number;\n  hideDisabledOptions?: boolean;\n  popupClassName?: string;\n}\n\nexport type TimeRangePickerProps<T> = Omit<RangePickerTimeProps<T>, 'picker'> & {\n  popupClassName?: string;\n  valueFormat?: string;\n};\n\nexport type TimePickerProps<DateType> = CommonProps<DateType> &\n  DatePickerProps<DateType> &\n  CommonTimePickerProps & {\n    addon?: () => void;\n  };\n\nfunction createTimePicker<\n  DateType,\n  DTimePickerProps extends TimePickerProps<DateType> = TimePickerProps<DateType>,\n  DTimeRangePickerProps extends TimeRangePickerProps<DateType> = TimeRangePickerProps<DateType>,\n>(generateConfig: GenerateConfig<DateType>) {\n  const DatePicker = generatePicker<DateType>(generateConfig, {\n    ...timePickerProps(),\n    order: { type: Boolean, default: true },\n  });\n\n  const { ScTimePicker: InternalTimePicker, ScRangePicker: InternalRangePicker } = DatePicker as any;\n  const TimePicker = defineComponent<DTimePickerProps>({\n    name: 'ScTimePicker',\n    inheritAttrs: false,\n    props: {\n      ...commonProps<DateType>(),\n      ...datePickerProps<DateType>(),\n      ...timePickerProps(),\n      addon: { type: Function },\n    } as any,\n    slot: ['addon', 'renderExtraFooter', 'suffixIcon', 'clearIcon'],\n    setup(props, { slots, expose, emit, attrs }) {\n      const formItemContext = useInjectFormItemContext();\n      devWarning(\n        !(slots.addon || props.addon),\n        'TimePicker',\n        '`addon` is deprecated. Please use `v-slot:renderExtraFooter` instead.',\n      );\n      const pickerRef = ref();\n      expose({\n        focus: () => {\n          pickerRef.value?.focus();\n        },\n        blur: () => {\n          pickerRef.value?.blur();\n        },\n      });\n      const onChange = (value: DateType | string, dateString: string) => {\n        emit('update:value', value);\n        emit('change', value, dateString);\n        formItemContext.onFieldChange();\n      };\n      const onOpenChange = (open: boolean) => {\n        emit('update:open', open);\n        emit('openChange', open);\n      };\n      const onFocus = () => {\n        emit('focus');\n      };\n      const onBlur = () => {\n        emit('blur');\n        formItemContext.onFieldBlur();\n      };\n      const onOk = (value: DateType) => {\n        emit('ok', value);\n      };\n      return () => {\n        const { id = formItemContext.id.value, ...restProps } = props;\n        return (\n          <InternalTimePicker\n            {...attrs}\n            {...omit(restProps, ['onUpdate:value', 'onUpdate:open'])}\n            id={id}\n            dropdownClassName={props.popupClassName}\n            mode={undefined}\n            ref={pickerRef}\n            renderExtraFooter={\n              props.addon || slots.addon || props.renderExtraFooter || slots.renderExtraFooter\n            }\n            onChange={onChange}\n            onOpenChange={onOpenChange}\n            onFocus={onFocus}\n            onBlur={onBlur}\n            onOk={onOk}\n            v-slots={slots}\n          />\n        );\n      };\n    },\n  });\n\n  const TimeRangePicker = defineComponent<DTimeRangePickerProps>({\n    name: 'ScTimeRangePicker',\n    inheritAttrs: false,\n    props: {\n      ...commonProps<DateType>(),\n      ...rangePickerProps<DateType>(),\n      ...timePickerProps(),\n      order: { type: Boolean, default: true },\n    } as any,\n    slot: ['renderExtraFooter', 'suffixIcon', 'clearIcon'],\n    setup(props, { slots, expose, emit, attrs }) {\n      const pickerRef = ref();\n\n      const formItemContext = useInjectFormItemContext();\n\n      expose({\n        focus: () => {\n          pickerRef.value?.focus();\n        },\n        blur: () => {\n          pickerRef.value?.blur();\n        },\n      });\n      const onChange = (\n        values: RangeValue<string> | RangeValue<DateType>,\n        dateStrings: [string, string],\n      ) => {\n        emit('update:value', values);\n        emit('change', values, dateStrings);\n        formItemContext.onFieldChange();\n      };\n      const onOpenChange = (open: boolean) => {\n        emit('update:open', open);\n        emit('openChange', open);\n      };\n      const onFocus = () => {\n        emit('focus');\n      };\n      const onBlur = () => {\n        emit('blur');\n        formItemContext.onFieldBlur();\n      };\n      const onPanelChange = (\n        values: RangeValue<string> | RangeValue<DateType>,\n        modes: [PanelMode, PanelMode],\n      ) => {\n        emit('panelChange', values, modes);\n      };\n      const onOk = (values: RangeValue<string | DateType>) => {\n        emit('ok', values);\n      };\n      const onCalendarChange: RangePickerSharedProps<DateType>['onCalendarChange'] = (\n        values: RangeValue<string> | RangeValue<DateType>,\n        dateStrings: [string, string],\n        info,\n      ) => {\n        emit('calendarChange', values, dateStrings, info);\n      };\n      return () => {\n        const { id = formItemContext.id.value, ...restProps } = props;\n        return (\n          <InternalRangePicker\n            {...attrs}\n            {...omit(restProps, ['onUpdate:open', 'onUpdate:value'])}\n            id={id}\n            dropdownClassName={props.popupClassName}\n            picker=\"time\"\n            mode={undefined}\n            ref={pickerRef}\n            onChange={onChange}\n            onOpenChange={onOpenChange}\n            onFocus={onFocus}\n            onBlur={onBlur}\n            onPanelChange={onPanelChange}\n            onOk={onOk}\n            onCalendarChange={onCalendarChange}\n            v-slots={slots}\n          />\n        );\n      };\n    },\n  });\n\n  return {\n    ScTimePicker: TimePicker,\n    ScTimeRangePicker: TimeRangePicker,\n  };\n}\n\nexport default createTimePicker;\n","import type { Dayjs } from 'dayjs';\nimport createTimePicker from './time-picker';\nimport dayjsGenerateConfig from '../picker/generate/dayjs';\nimport type { App } from 'vue';\nimport type { PickerTimeProps, RangePickerTimeProps } from '../datePicker/generatePicker';\n\nconst { ScTimePicker, ScTimeRangePicker } = createTimePicker<Dayjs>(dayjsGenerateConfig);\n\nexport interface TimeRangePickerProps extends Omit<RangePickerTimeProps<Dayjs>, 'picker'> {\n  popupClassName?: string;\n  valueFormat?: string;\n}\nexport interface TimePickerProps extends Omit<PickerTimeProps<Dayjs>, 'picker'> {\n  popupClassName?: string;\n  valueFormat?: string;\n}\n\n/* istanbul ignore next */\nexport { ScTimePicker, ScTimeRangePicker };\nexport default Object.assign(ScTimePicker, {\n  ScTimePicker,\n  ScTimeRangePicker,\n  install: (app: App) => {\n    app.component(ScTimePicker.name, ScTimePicker);\n    app.component(ScTimeRangePicker.name, ScTimeRangePicker);\n    return app;\n  },\n});\n","<template>\n  <transition mode=\"out-in\" v-on=\"on\">\n    <slot></slot>\n  </transition>\n</template>\n<script lang=\"ts\">\n  import { defineComponent } from 'vue';\n  import { addClass, removeClass } from '../../../utils';\n\n  export default defineComponent({\n    name: 'CollapseTransition',\n    setup() {\n      return {\n        on: {\n          beforeEnter(el: any) {\n            addClass(el, 'collapse-transition');\n            if (!el.dataset) el.dataset = {};\n\n            el.dataset.oldPaddingTop = el.style.paddingTop;\n            el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n            el.style.height = '0';\n            el.style.paddingTop = 0;\n            el.style.paddingBottom = 0;\n          },\n\n          enter(el: { dataset: { oldOverflow: any; oldPaddingTop: any; oldPaddingBottom: any; }; style: { overflow: string; height: string; paddingTop: any; paddingBottom: any; }; scrollHeight: string | number; }) {\n            el.dataset.oldOverflow = el.style.overflow;\n            if (el.scrollHeight !== 0) {\n              el.style.height = el.scrollHeight + 'px';\n              el.style.paddingTop = el.dataset.oldPaddingTop;\n              el.style.paddingBottom = el.dataset.oldPaddingBottom;\n            } else {\n              el.style.height = '';\n              el.style.paddingTop = el.dataset.oldPaddingTop;\n              el.style.paddingBottom = el.dataset.oldPaddingBottom;\n            }\n\n            el.style.overflow = 'hidden';\n          },\n\n          afterEnter(el: any) {\n            removeClass(el, 'collapse-transition');\n            el.style.height = '';\n            el.style.overflow = el.dataset.oldOverflow;\n          },\n\n          beforeLeave(el: { dataset: { oldPaddingTop?: any; oldPaddingBottom?: any; oldOverflow?: any; }; style: { paddingTop: any; paddingBottom: any; overflow: string; height: string; }; scrollHeight: string; }) {\n            if (!el.dataset) el.dataset = {};\n            el.dataset.oldPaddingTop = el.style.paddingTop;\n            el.dataset.oldPaddingBottom = el.style.paddingBottom;\n            el.dataset.oldOverflow = el.style.overflow;\n\n            el.style.height = el.scrollHeight + 'px';\n            el.style.overflow = 'hidden';\n          },\n\n          leave(el: any) {\n            if (el.scrollHeight !== 0) {\n              addClass(el, 'collapse-transition');\n              el.style.height = 0;\n              el.style.paddingTop = 0;\n              el.style.paddingBottom = 0;\n            }\n          },\n\n          afterLeave(el: any) {\n            removeClass(el, 'collapse-transition');\n            el.style.height = '';\n            el.style.overflow = el.dataset.oldOverflow;\n            el.style.paddingTop = el.dataset.oldPaddingTop;\n            el.style.paddingBottom = el.dataset.oldPaddingBottom;\n          },\n        },\n      };\n    },\n  });\n</script>\n","<template>\n  <div :class=\"prefixCls\">\n    <div :class=\"[prefixCls + '-header']\">\n      <div :class=\"[prefixCls+'-title']\">\n        <slot name=\"title\" v-if=\"isTitle\"></slot>\n        <span v-else :class=\"[prefixCls+'-title__text']\"> \n          <template v-if=\"isVNode(newProps.title)\">\n            <component :is=\"newProps.title\"></component>\n          </template>\n          {{ isVNode(newProps.title) ? '' : newProps.title }}\n        </span>\n        <Tooltip\n          v-if=\"newProps.describe\"\n          :title=\"newProps.describe\"\n        >\n          <i class=\"sc-ui sc-question-circle\"></i>\n        </Tooltip>\n      </div>\n      <div :class=\"`${prefixCls}-action`\">\n        <slot name=\"action\"></slot>\n        <i\n          v-if=\"newProps.canExpan\"\n          :class=\"['sc-ui', 'sc-xiangxia', show ? '' : 'arrow-up']\"\n          @click=\"() => { handleExpand(!show) }\"\n        ></i>\n      </div>\n    </div>\n\n    <CollapseTransition :enable=\"newProps.canExpan\">\n      <Skeleton v-if=\"loading\" :active=\"loading\" />\n      <div :class=\"`${prefixCls}__body`\" v-else v-show=\"show\">\n        <slot></slot>\n      </div>\n    </CollapseTransition>\n    <div :class=\"`${prefixCls}__footer`\" v-if=\"$slots.footer\">\n      <slot name=\"footer\"></slot>\n    </div>\n  </div>\n</template>\n<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { ref, defineComponent, computed, isVNode, unref } from 'vue'\n  import lodash from 'lodash'\n  // import isNil from 'lodash/isNil'\n  // component\n  import { Skeleton, Tooltip } from 'ant-design-vue'\n  import CollapseTransition from './CollapseTransition.vue'\n  import { triggerWindowResize } from '../../../utils'\n  import { basePrefixCls } from '../../../constant'\n  // hook\n  import { useTimeoutFn } from '../../../hooks'\n\n  const { isNil } = lodash\n\n  export default defineComponent({\n    name: 'ScCollapseContainer',\n    props: {\n      title: { type: [String, Object], default: '' },\n      loading: { type: Boolean },\n      /**\n       *  Can it be expanded\n       */\n      canExpan: { type: Boolean, default: true },\n      /**\n       * Warm reminder on the right side of the title\n       */\n      describe: {\n        type: [String] as PropType<string>,\n        default: '',\n      },\n      /**\n       * Whether to trigger window.resize when expanding and contracting,\n       * Can adapt to tables and forms, when the form shrinks, the form triggers resize to adapt to the height\n       */\n      triggerWindowResize: { type: Boolean },\n      /**\n       * Delayed loading time\n       */\n      lazyTime: { type: Number, default: 0 },\n    },\n    components: {\n      Skeleton,\n      CollapseTransition,\n      Tooltip\n    },\n    setup(props, { slots, expose }) {\n      const show = ref(true)\n      const prefixCls = basePrefixCls + 'Collapse-container'\n\n      /**\n       * @description: Handling development events\n       */\n      function handleExpand(val: boolean) {\n        show.value = isNil(val) ? !show.value : val\n        if (props.triggerWindowResize) {\n          useTimeoutFn(triggerWindowResize, 200)\n        }\n      }\n      const newProps = computed(() => {\n        return props\n      })\n      \n      const isTitle = computed(() => {\n        return Object.keys(slots).includes('title')\n      })\n\n      expose({\n        handleExpand,\n      });\n\n      return {\n        isTitle,\n        isVNode,\n        newProps,\n        prefixCls,\n        show,\n        handleExpand\n      }\n    }\n  })\n</script>\n","<script lang=\"tsx\">\n  import type { DescriptionProps, DescInstance, DescItem } from './type'\n  import type { DescriptionsProps } from 'ant-design-vue/es/descriptions/index'\n  import type { CSSProperties, PropType, ExtractPropTypes } from 'vue'\n  import { Descriptions } from 'ant-design-vue'\n  import { isFunction, getSlot } from '../../../utils'\n  import { useAttrs } from '../../../hooks'\n  import { basePrefixCls } from '../../../constant'\n  import { defineComponent, computed, ref, unref, toRefs, isReactive, isReadonly } from 'vue'\n  import lodash from 'lodash'\n  // import get from 'lodash/get'\n  import CollapseContainer from './CollapseContainer.vue'\n\n  declare type CollapseContainerProps = Partial<ExtractPropTypes<typeof CollapseContainer>> \n  \n  const { get } = lodash\n  const props = {\n    useCollapse: { type: Boolean, default: true },\n    title: { type: [String, Object]},\n    size: {\n      type: String,\n      validator: (v:string) => ['small', 'default', 'middle', undefined].includes(v),\n      default: 'small',\n    },\n    bordered: { type: Boolean, default: false },\n    column: {\n      type: [Number, Object] as PropType<number | Recordable>,\n      default: () => {\n        return { xxl: 4, xl: 3, lg: 3, md: 3, sm: 2, xs: 1 };\n      },\n    },\n    collapseOptions: {\n      type: Object as PropType<CollapseContainerProps>,\n      default: null,\n    },\n    schema: {\n      type: Array as PropType<DescItem[]>,\n      default: () => [],\n    },\n    data: { type: Object },\n  };\n\n  export default defineComponent({\n    name: 'ScDescription',\n    props,\n    emits: ['register'],\n    setup(props, { slots, emit }) {\n      const propsRef = ref<Partial<DescriptionProps> | null>(null);\n\n      const prefixCls = basePrefixCls + 'Description'\n      const attrs = useAttrs();\n\n      // Custom title component: get title\n      const getMergeProps = computed(() => {\n        return {\n          ...props,\n          ...(unref(propsRef) as Recordable),\n        } as DescriptionProps;\n      });\n\n      const useWrapper = computed(() => !!unref(getMergeProps).useCollapse);\n\n      const getProps = computed(() => {\n        const opt = {\n          ...unref(getMergeProps),\n          title: unref(useWrapper) ? undefined : unref(getMergeProps).title\n        };\n        return opt as DescriptionProps;\n      });\n\n      const getCollapseOptions = computed((): CollapseContainerProps => {\n        return {\n          // Cannot be expanded by default\n          canExpand: unref(useWrapper) ?? true,\n          ...unref(getProps).collapseOptions,\n        };\n      });\n\n      const getDescriptionsProps = computed(() => {\n        return { ...unref(attrs), ...unref(getProps) } as DescriptionsProps;\n      });\n\n      /**\n       * @description:设置desc\n       */\n      function setDescProps(descProps: Partial<DescriptionProps>): void {\n        // Keep the last setDrawerProps\n        propsRef.value = { ...(unref(propsRef) as Recordable), ...descProps } as Recordable;\n      }\n\n      // Prevent line breaks\n      function renderLabel({ label, labelMinWidth, labelStyle }: DescItem) {\n        if (!labelStyle && !labelMinWidth) {\n          return label;\n        }\n\n        const labelStyles: CSSProperties = {\n          ...labelStyle,\n          minWidth: `${labelMinWidth}px `,\n        };\n        return <div style={labelStyles}>{label}</div>;\n      }\n\n      function renderItem() {\n        const { schema, data } = unref(getProps);\n        return unref(schema)\n          .map((item) => {\n            const { render, field, span, show, contentMinWidth } = item;\n\n            if (show && isFunction(show) && !show(data)) {\n              return null;\n            }\n            const getContent = () => {\n              const _data = unref(getProps)?.data;\n              // console.log('_data: ', _data);\n              if (!_data) {\n                return null;\n              }\n              const getField = get(_data, field);\n              const isProxy = isReactive(_data) || isReadonly(_data);\n              if (getField && (!(isProxy ? toRefs(_data) : _data).hasOwnProperty(field))) {\n                return isFunction(render) ? render('', _data) : '';\n              }\n              return isFunction(render) ? render(getField, _data) : getField ?? '';\n            };\n\n            const width = contentMinWidth;\n            return (\n              <Descriptions.Item label={renderLabel(item)} key={field} span={span}>\n                {() => {\n                  if (!contentMinWidth) {\n                    return getContent();\n                  }\n                  const style: CSSProperties = {\n                    minWidth: `${width}px`,\n                  };\n                  return <div style={style}>{getContent()}</div>;\n                }}\n              </Descriptions.Item>\n            );\n          })\n          .filter((item) => !!item);\n      }\n\n      const renderDesc = () => {\n        const isTitle = Object.keys(slots).includes('title')\n        const isDefault = Object.keys(slots).includes('default')\n        const layoutClass = attrs.value?.layout ? `${prefixCls}-${attrs.value?.layout}`  : ''\n        return (\n          <Descriptions \n            class={`${prefixCls} ${layoutClass}`} {...(unref(getDescriptionsProps) as any)}\n            v-slots={{\n              [isTitle && !unref(useWrapper) ? 'title' : '']: () => (isTitle && !unref(useWrapper) ? getSlot(slots, 'title') : null),\n              [isDefault ? 'default' : '']: () => (isDefault ? getSlot(slots, 'default') : null)\n            }}\n          >\n            { renderItem()}\n          </Descriptions>\n        );\n      };\n\n      const renderContainer = () => {\n\n        const { canExpand, describe } = unref(getCollapseOptions);\n        const { title } = unref(getMergeProps);\n\n        const isTitle = Object.keys(slots).includes('title')\n\n        return (\n          <CollapseContainer title={title} canExpan={canExpand} describe={describe}>\n            {{\n              default: () => renderDesc(),\n              action: () => getSlot(slots, 'action'),\n              [isTitle ? 'title' : '']: () => (isTitle ? getSlot(slots, 'title') : null)\n            }}\n          </CollapseContainer>\n        );\n      };\n      // title: () => (isTitle ? getSlot(slots, 'title') : undefined)\n      // title: () => getSlot(slots, 'title')\n\n      const methods: DescInstance = {\n        setDescProps,\n      };\n\n      emit('register', methods);\n      return () => (unref(useWrapper) ? renderContainer() : renderDesc());\n    },\n  });\n</script>","import type { DescriptionProps, DescInstance, UseDescReturnType } from '../component/type';\nimport { ref, getCurrentInstance, unref } from 'vue';\n\nexport function useDescription(props?: Partial<DescriptionProps>): UseDescReturnType {\n  if (!getCurrentInstance()) {\n    throw new Error('useDescription() can only be used inside setup() or functional components!');\n  }\n  const desc = ref<Nullable<DescInstance>>(null);\n  const loaded = ref(false);\n\n  function register(instance: DescInstance) {\n    if (unref(loaded)) {\n      return;\n    }\n    desc.value = instance;\n    props && instance.setDescProps(props);\n    loaded.value = true;\n  }\n\n  const methods: DescInstance = {\n    setDescProps: (descProps: Partial<DescriptionProps>): void => {\n      unref(desc)?.setDescProps(descProps);\n    },\n  };\n\n  return [register, methods];\n}\n","import { withInstall } from \"../../utils\"\n\nimport scDescription from './component/ScDescription.vue'\n\nexport const ScDescription = withInstall(scDescription);\n\nexport * from './hooks/useDescription'","import type { UnwrapRef, Ref, WritableComputedRef, DeepReadonly } from 'vue';\nimport {\n  reactive,\n  readonly,\n  computed,\n  getCurrentInstance,\n  watchEffect,\n  unref,\n  nextTick,\n  toRaw,\n} from 'vue';\n\nimport lodash from 'lodash'\n// import isEqual from 'lodash/isEqual'\nconst { isEqual } = lodash\nexport function useRuleFormItem<T extends Recordable, K extends keyof T, V = UnwrapRef<T[K]>>(\n  props: T,\n  key?: K,\n  changeEvent?: any,\n  emitData?: Ref<any[]>,\n): [WritableComputedRef<V>, (val: V) => void, DeepReadonly<V>];\n\nexport function useRuleFormItem<T extends Recordable>(\n  props: T,\n  key: keyof T = 'value',\n  changeEvent = 'change',\n  emitData?: Ref<any[]>,\n) {\n  const instance = getCurrentInstance();\n  const emit = instance?.emit;\n\n  const innerState = reactive({\n    value: props[key],\n  });\n\n  const defaultState = readonly(innerState);\n\n  const setState = (val: UnwrapRef<T[keyof T]>): void => {\n    innerState.value = val as T[keyof T];\n  };\n\n  watchEffect(() => {\n    innerState.value = props[key];\n  });\n\n  const state: any = computed({\n    get() {\n      return innerState.value;\n    },\n    set(value) {\n      if (isEqual(value, defaultState.value)) return;\n\n      innerState.value = value as T[keyof T];\n      nextTick(() => {\n        emit?.(changeEvent, value, ...(toRaw(unref(emitData)) || []));\n      });\n    },\n  });\n\n  return [state, setState, defaultState];\n}\n","<!--\n * 在表单中实现单选按钮组比较麻烦。所以作为一个单独的组件被单独提取出来的\n-->\n<template>\n  <RadioGroup v-bind=\"attrs\" v-model:value=\"state\" @change=\"handleChange\">\n    <template v-for=\"item in getOptions\" :key=\"`${item.value}`\">\n      <RadioButton v-if=\"props.isBtn\" :value=\"item.value\" :disabled=\"item.disabled\">\n        {{ item.label }}\n      </RadioButton>\n      <Radio v-else :value=\"item.value\" :disabled=\"item.disabled\">\n        {{ item.label }}\n      </Radio>\n    </template>\n  </RadioGroup>\n</template>\n<script lang=\"ts\">\n  import { defineComponent, PropType, ref, watchEffect, computed, unref, watch } from 'vue';\n  import { Radio } from 'ant-design-vue';\n  import { isFunction, PropTypes } from '../../../utils';\n  import { useRuleFormItem } from '../hooks/useFormItem';\n  import { useAttrs } from '../../../hooks';\n  import lodash from 'lodash'\n  // import get from 'lodash/get'\n  // import omit from 'lodash/omit'\n  type OptionsItem = { label: string; value: string | number | boolean; disabled?: boolean };\n  const { get, omit } = lodash\n  export default defineComponent({\n    name: 'ApiRadioGroup',\n    components: {\n      RadioGroup: Radio.Group,\n      RadioButton: Radio.Button,\n      Radio,\n    },\n    props: {\n      api: {\n        type: Function as PropType<(arg?: Recordable | string) => Promise<OptionsItem[]>>,\n        default: null,\n      },\n      params: {\n        type: [Object, String] as PropType<Recordable | string>,\n        default: () => ({}),\n      },\n      value: {\n        type: [String, Number, Boolean] as PropType<string | number | boolean>,\n      },\n      isBtn: {\n        type: [Boolean] as PropType<boolean>,\n        default: false,\n      },\n      numberToString: PropTypes.bool,\n      resultField: PropTypes.string.def(''),\n      labelField: PropTypes.string.def('label'),\n      valueField: PropTypes.string.def('value'),\n      immediate: PropTypes.bool.def(true),\n    },\n    emits: ['options-change', 'change'],\n    setup(props, { emit }) {\n      const options = ref<OptionsItem[]>([]);\n      const loading = ref(false);\n      const isFirstLoad = ref(true);\n      const emitData = ref<any[]>([]);\n      const attrs = useAttrs();\n\n      const [state] = useRuleFormItem(props);\n\n      // 处理选项值\n      const getOptions = computed(() => {\n        const { labelField, valueField, numberToString } = props;\n\n        return unref(options).reduce((prev, next: Recordable) => {\n          if (next) {\n            const value = next[valueField];\n            prev.push({\n              label: next[labelField],\n              value: numberToString ? `${value}` : value,\n              ...omit(next, [labelField, valueField]),\n            });\n          }\n          return prev;\n        }, [] as OptionsItem[]);\n      });\n\n      watchEffect(() => {\n        props.immediate && fetch();\n      });\n\n      watch(\n        () => props.params,\n        () => {\n          !unref(isFirstLoad) && fetch();\n        },\n        { deep: true },\n      );\n\n      async function fetch() {\n        const api = props.api;\n        if (!api || !isFunction(api)) return;\n        options.value = [];\n        try {\n          loading.value = true;\n          const res = await api(props.params);\n          if (Array.isArray(res)) {\n            options.value = res;\n            emitChange();\n            return;\n          }\n          if (props.resultField) {\n            options.value = get(res, props.resultField) || [];\n          }\n          emitChange();\n        } catch (error) {\n          console.warn(error);\n        } finally {\n          loading.value = false;\n        }\n      }\n\n      function emitChange() {\n        emit('options-change', unref(getOptions));\n      }\n\n      function handleChange(_, ...args) {\n        emitData.value = args;\n      }\n\n      return { state, getOptions, attrs, loading, handleChange, props };\n    },\n  });\n</script>\n","<template>\n  <RadioGroup v-bind=\"attrs\" v-model:value=\"state\">\n    <template v-for=\"item in getOptions\" :key=\"`${item.value}`\">\n      <RadioButton :value=\"item.value\" :disabled=\"item.disabled\">\n        {{ item.label }}\n      </RadioButton>\n    </template>\n  </RadioGroup>\n</template>\n<script lang=\"ts\">\n  import { defineComponent, PropType, computed } from 'vue';\n  import { Radio } from 'ant-design-vue';\n  import { isString } from '../../../utils';\n  import { useRuleFormItem } from '../hooks/useFormItem';\n  import { useAttrs } from '../../../hooks';\n\n  type OptionsItem = { label: string; value: string | number | boolean; disabled?: boolean };\n  type RadioItem = string | OptionsItem;\n\n  export default defineComponent({\n    name: 'RadioButtonGroup',\n    components: {\n      RadioGroup: Radio.Group,\n      RadioButton: Radio.Button,\n    },\n    props: {\n      value: {\n        type: [String, Number, Boolean] as PropType<string | number | boolean>\n      },\n      options: {\n        type: Array as PropType<RadioItem[]>,\n        default: () => [],\n      },\n    },\n    setup(props) {\n      const attrs = useAttrs();\n      // Embedded in the form, just use the hook binding to perform form verification\n      const [state] = useRuleFormItem(props);\n\n      // Processing options value\n      const getOptions = computed((): OptionsItem[] => {\n        const { options } = props;\n        if (!options || options?.length === 0) return [];\n\n        const isStringArr = options.some((item) => isString(item));\n        if (!isStringArr) return options as OptionsItem[];\n\n        return options.map((item) => ({ label: item, value: item })) as OptionsItem[];\n      });\n\n      return { state, getOptions, attrs };\n    },\n  });\n</script>\n","<template>\n  <ScSelect\n    @dropdown-visible-change=\"handleFetch\"\n    v-bind=\"$attrs\"\n    @change=\"handleChange\"\n    :options=\"getOptions\"\n    v-model:value=\"state\"\n  >\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n    <template #suffixIcon v-if=\"loading\">\n      <LoadingOutlined spin />\n    </template>\n    <template #notFoundContent v-if=\"loading\">\n      <span>\n        <LoadingOutlined spin class=\"mr-1\" />\n        请等待数据加载完成...\n      </span>\n    </template>\n  </ScSelect>\n</template>\n<script lang=\"ts\">\n  import { defineComponent, PropType, ref, watchEffect, computed, unref, watch } from 'vue';\n  import { ScSelect } from '../../select';\n  import { isFunction, PropTypes } from '../../../utils';\n  import { useRuleFormItem } from '../hooks/useFormItem';\n  import { useAttrs } from '../../../hooks';\n  import lodash from 'lodash'\n  // import get from 'lodash/get'\n  // import omit from 'lodash/omit'\n  import { LoadingOutlined } from '@ant-design/icons-vue';\n\n  type OptionsItem = { label: string; value: string; disabled?: boolean };\n  const { get, omit } = lodash\n  export default defineComponent({\n    name: 'ApiSelect',\n    components: {\n      ScSelect,\n      LoadingOutlined,\n    },\n    inheritAttrs: false,\n    props: {\n      value: [Array, Object, String, Number],\n      numberToString: PropTypes.bool,\n      api: {\n        type: Function as PropType<(arg?: Recordable) => Promise<OptionsItem[]>>,\n        default: null,\n      },\n      // api params\n      params: {\n        type: Object as PropType<Recordable>,\n        default: () => ({}),\n      },\n      // support xxx.xxx.xx\n      resultField: PropTypes.string.def(''),\n      labelField: PropTypes.string.def('label'),\n      valueField: PropTypes.string.def('value'),\n      immediate: PropTypes.bool.def(true),\n      alwaysLoad: PropTypes.bool.def(false),\n    },\n    emits: ['options-change', 'change', 'update:value'],\n    setup(props, { emit }) {\n      const options = ref<OptionsItem[]>([]);\n      const loading = ref(false);\n      const isFirstLoad = ref(true);\n      const emitData = ref<any[]>([]);\n      const attrs = useAttrs();\n\n      // 嵌入在表单中，只需使用钩子绑定来执行表单验证\n      const [state] = useRuleFormItem(props, 'value', 'change', emitData);\n\n      const getOptions = computed(() => {\n        const { labelField, valueField, numberToString } = props;\n\n        return unref(options).reduce((prev, next: Recordable) => {\n          if (next) {\n            const value = next[valueField];\n            prev.push({\n              ...omit(next, [labelField, valueField]),\n              label: next[labelField],\n              value: numberToString ? `${value}` : value,\n            });\n          }\n          return prev;\n        }, [] as OptionsItem[]);\n      });\n\n      watchEffect(() => {\n        props.immediate && !props.alwaysLoad && fetch();\n      });\n      watch(\n        () => state.value,\n        (v) => {\n          emit('update:value', v);\n        },\n      );\n      watch(\n        () => props.params,\n        () => {\n          !unref(isFirstLoad) && fetch();\n        },\n        { deep: true },\n      );\n\n      async function fetch() {\n        const api = props.api;\n        if (!api || !isFunction(api)) return;\n        options.value = [];\n        try {\n          loading.value = true;\n          const res = await api(props.params);\n          if (Array.isArray(res)) {\n            options.value = res;\n            emitChange();\n            return;\n          }\n          if (props.resultField) {\n            options.value = get(res, props.resultField) || [];\n          }\n          emitChange();\n        } catch (error) {\n          console.warn(error);\n        } finally {\n          loading.value = false;\n        }\n      }\n\n      async function handleFetch(visible: boolean) {\n        if (visible) {\n          if (props.alwaysLoad) {\n            await fetch();\n          } else if (!props.immediate && unref(isFirstLoad)) {\n            await fetch();\n            isFirstLoad.value = false;\n          }\n        }\n      }\n\n      function emitChange() {\n        emit('options-change', unref(getOptions));\n      }\n\n      function handleChange(_, ...args) {\n        emitData.value = args;\n      }\n\n      return { state, attrs, getOptions, loading, handleFetch, handleChange };\n    },\n  });\n</script>\n","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}","export default 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      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","import { createTypes } from 'vue-types';\nvar PropTypes = createTypes({\n  func: undefined,\n  bool: undefined,\n  string: undefined,\n  number: undefined,\n  array: undefined,\n  object: undefined,\n  integer: undefined\n});\nPropTypes.extend([{\n  name: 'looseBool',\n  getter: true,\n  type: Boolean,\n  default: undefined\n}, {\n  name: 'style',\n  getter: true,\n  type: [String, Object],\n  default: undefined\n}, {\n  name: 'VNodeChild',\n  getter: true,\n  type: null\n}]);\nexport function withUndefined(type) {\n  type.default = undefined;\n  return type;\n}\nexport default PropTypes;","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var isFunction = function isFunction(val) {\n  return typeof val === 'function';\n};\nexport var isArray = Array.isArray;\nexport var isString = function isString(val) {\n  return typeof val === 'string';\n};\nexport var isSymbol = function isSymbol(val) {\n  return _typeof(val) === 'symbol';\n};\nexport var isObject = function isObject(val) {\n  return val !== null && _typeof(val) === 'object';\n};\nvar onRE = /^on[^a-z]/;\n\nvar isOn = function isOn(key) {\n  return onRE.test(key);\n};\n\nvar cacheStringFunction = function cacheStringFunction(fn) {\n  var cache = Object.create(null);\n  return function (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\n\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction(function (str) {\n  return str.replace(camelizeRE, function (_, c) {\n    return c ? c.toUpperCase() : '';\n  });\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\nvar capitalize = cacheStringFunction(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar hasOwn = function hasOwn(val, key) {\n  return hasOwnProperty.call(val, key);\n}; // change from vue sourcecode\n\n\nfunction resolvePropValue(options, props, key, value) {\n  var opt = options[key];\n\n  if (opt != null) {\n    var hasDefault = hasOwn(opt, 'default'); // default values\n\n    if (hasDefault && value === undefined) {\n      var defaultValue = opt.default;\n      value = opt.type !== Function && isFunction(defaultValue) ? defaultValue() : defaultValue;\n    } // boolean casting\n\n\n    if (opt.type === Boolean) {\n      if (!hasOwn(props, key) && !hasDefault) {\n        value = false;\n      } else if (value === '') {\n        value = true;\n      }\n    }\n  }\n\n  return value;\n}\n\nexport function getDataAndAriaProps(props) {\n  return Object.keys(props).reduce(function (memo, key) {\n    if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n      memo[key] = props[key];\n    }\n\n    return memo;\n  }, {});\n}\nexport { isOn, cacheStringFunction, camelize, hyphenate, capitalize, resolvePropValue };","import { isArray, isString, isObject } from './util';\n\nfunction classNames() {\n  var classes = [];\n\n  for (var i = 0; i < arguments.length; i++) {\n    var value = i < 0 || arguments.length <= i ? undefined : arguments[i];\n    if (!value) continue;\n\n    if (isString(value)) {\n      classes.push(value);\n    } else if (isArray(value)) {\n      for (var _i = 0; _i < value.length; _i++) {\n        var inner = classNames(value[_i]);\n\n        if (inner) {\n          classes.push(inner);\n        }\n      }\n    } else if (isObject(value)) {\n      for (var name in value) {\n        if (value[name]) {\n          classes.push(name);\n        }\n      }\n    }\n  }\n\n  return classes.join(' ');\n}\n\nexport default classNames;","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _s, _e;\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n  return _arr;\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n  return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","var isValid = function isValid(value) {\n  return value !== undefined && value !== null && value !== '';\n};\n\nexport default isValid;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _this = this;\n\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport classNames from '../classNames';\nimport { isVNode, Fragment, Comment, Text, h } from 'vue';\nimport { camelize, hyphenate, isOn, resolvePropValue } from '../util';\nimport isValid from '../isValid'; // function getType(fn) {\n//   const match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n//   return match ? match[1] : '';\n// }\n\nvar splitAttrs = function splitAttrs(attrs) {\n  var allAttrs = Object.keys(attrs);\n  var eventAttrs = {};\n  var onEvents = {};\n  var extraAttrs = {};\n\n  for (var i = 0, l = allAttrs.length; i < l; i++) {\n    var key = allAttrs[i];\n\n    if (isOn(key)) {\n      eventAttrs[key[2].toLowerCase() + key.slice(3)] = attrs[key];\n      onEvents[key] = attrs[key];\n    } else {\n      extraAttrs[key] = attrs[key];\n    }\n  }\n\n  return {\n    onEvents: onEvents,\n    events: eventAttrs,\n    extraAttrs: extraAttrs\n  };\n};\n\nvar parseStyleText = function parseStyleText() {\n  var cssText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var camel = arguments.length > 1 ? arguments[1] : undefined;\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n\n      if (tmp.length > 1) {\n        var k = camel ? camelize(tmp[0].trim()) : tmp[0].trim();\n        res[k] = tmp[1].trim();\n      }\n    }\n  });\n  return res;\n};\n\nvar hasProp = function hasProp(instance, prop) {\n  return prop in getOptionProps(instance);\n}; // 重构后直接使用 hasProp 替换\n\n\nvar slotHasProp = function slotHasProp(slot, prop) {\n  return hasProp(slot, prop);\n};\n\nvar getScopedSlots = function getScopedSlots(ele) {\n  return ele.data && ele.data.scopedSlots || {};\n};\n\nvar getSlots = function getSlots(ele) {\n  var componentOptions = ele.componentOptions || {};\n\n  if (ele.$vnode) {\n    componentOptions = ele.$vnode.componentOptions || {};\n  }\n\n  var children = ele.children || componentOptions.children || [];\n  var slots = {};\n  children.forEach(function (child) {\n    if (!isEmptyElement(child)) {\n      var name = child.data && child.data.slot || 'default';\n      slots[name] = slots[name] || [];\n      slots[name].push(child);\n    }\n  });\n  return _extends(_extends({}, slots), getScopedSlots(ele));\n};\n\nvar flattenChildren = function flattenChildren() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var filterEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var temp = Array.isArray(children) ? children : [children];\n  var res = [];\n  temp.forEach(function (child) {\n    if (Array.isArray(child)) {\n      res.push.apply(res, _toConsumableArray(flattenChildren(child, filterEmpty)));\n    } else if (child && child.type === Fragment) {\n      res.push.apply(res, _toConsumableArray(flattenChildren(child.children, filterEmpty)));\n    } else if (child && isVNode(child)) {\n      if (filterEmpty && !isEmptyElement(child)) {\n        res.push(child);\n      } else if (!filterEmpty) {\n        res.push(child);\n      }\n    } else if (isValid(child)) {\n      res.push(child);\n    }\n  });\n  return res;\n};\n\nvar getSlot = function getSlot(self) {\n  var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (isVNode(self)) {\n    if (self.type === Fragment) {\n      return name === 'default' ? flattenChildren(self.children) : [];\n    } else if (self.children && self.children[name]) {\n      return flattenChildren(self.children[name](options));\n    } else {\n      return [];\n    }\n  } else {\n    var res = self.$slots[name] && self.$slots[name](options);\n    return flattenChildren(res);\n  }\n};\n\nvar getAllChildren = function getAllChildren(ele) {\n  var componentOptions = ele.componentOptions || {};\n\n  if (ele.$vnode) {\n    componentOptions = ele.$vnode.componentOptions || {};\n  }\n\n  return ele.children || componentOptions.children || [];\n};\n\nvar getSlotOptions = function getSlotOptions() {\n  throw Error('使用 .type 直接取值');\n};\n\nvar findDOMNode = function findDOMNode(instance) {\n  var _a;\n\n  var node = ((_a = instance === null || instance === void 0 ? void 0 : instance.vnode) === null || _a === void 0 ? void 0 : _a.el) || instance && (instance.$el || instance);\n\n  while (node && !node.tagName) {\n    node = node.nextSibling;\n  }\n\n  return node;\n};\n\nvar getOptionProps = function getOptionProps(instance) {\n  var res = {};\n\n  if (instance.$ && instance.$.vnode) {\n    var props = instance.$.vnode.props || {};\n    Object.keys(instance.$props).forEach(function (k) {\n      var v = instance.$props[k];\n      var hyphenateKey = hyphenate(k);\n\n      if (v !== undefined || hyphenateKey in props) {\n        res[k] = v; // 直接取 $props[k]\n      }\n    });\n  } else if (isVNode(instance) && _typeof(instance.type) === 'object') {\n    var originProps = instance.props || {};\n    var _props = {};\n    Object.keys(originProps).forEach(function (key) {\n      _props[camelize(key)] = originProps[key];\n    });\n    var options = instance.type.props || {};\n    Object.keys(options).forEach(function (k) {\n      var v = resolvePropValue(options, _props, k, _props[k]);\n\n      if (v !== undefined || k in _props) {\n        res[k] = v;\n      }\n    });\n  }\n\n  return res;\n};\n\nvar getComponent = function getComponent(instance) {\n  var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n  var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  var com = undefined;\n\n  if (instance.$) {\n    var temp = instance[prop];\n\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(options) : temp;\n    } else {\n      com = instance.$slots[prop];\n      com = execute && com ? com(options) : com;\n    }\n  } else if (isVNode(instance)) {\n    var _temp = instance.props && instance.props[prop];\n\n    if (_temp !== undefined && instance.props !== null) {\n      return typeof _temp === 'function' && execute ? _temp(options) : _temp;\n    } else if (instance.type === Fragment) {\n      com = instance.children;\n    } else if (instance.children && instance.children[prop]) {\n      com = instance.children[prop];\n      com = execute && com ? com(options) : com;\n    }\n  }\n\n  if (Array.isArray(com)) {\n    com = flattenChildren(com);\n    com = com.length === 1 ? com[0] : com;\n    com = com.length === 0 ? undefined : com;\n  }\n\n  return com;\n};\n\nvar getComponentFromProp = function getComponentFromProp(instance, prop) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n  var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n  if (instance.$createElement) {\n    // const h = instance.$createElement;\n    var temp = instance[prop];\n\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(h, options) : temp;\n    }\n\n    return instance.$scopedSlots[prop] && execute && instance.$scopedSlots[prop](options) || instance.$scopedSlots[prop] || instance.$slots[prop] || undefined;\n  } else {\n    // const h = instance.context.$createElement;\n    var _temp2 = getPropsData(instance)[prop];\n\n    if (_temp2 !== undefined) {\n      return typeof _temp2 === 'function' && execute ? _temp2(h, options) : _temp2;\n    }\n\n    var slotScope = getScopedSlots(instance)[prop];\n\n    if (slotScope !== undefined) {\n      return typeof slotScope === 'function' && execute ? slotScope(h, options) : slotScope;\n    }\n\n    var slotsProp = [];\n    var componentOptions = instance.componentOptions || {};\n    (componentOptions.children || []).forEach(function (child) {\n      if (child.data && child.data.slot === prop) {\n        if (child.data.attrs) {\n          delete child.data.attrs.slot;\n        }\n\n        if (child.tag === 'template') {\n          slotsProp.push(child.children);\n        } else {\n          slotsProp.push(child);\n        }\n      }\n    });\n    return slotsProp.length ? slotsProp : undefined;\n  }\n};\n\nvar getAllProps = function getAllProps(ele) {\n  var props = getOptionProps(ele);\n\n  if (ele.$) {\n    props = _extends(_extends({}, props), _this.$attrs);\n  } else {\n    props = _extends(_extends({}, ele.props), props);\n  }\n\n  return props;\n};\n\nvar getPropsData = function getPropsData(ins) {\n  var vnode = ins.$ ? ins.$ : ins;\n  var res = {};\n  var originProps = vnode.props || {};\n  var props = {};\n  Object.keys(originProps).forEach(function (key) {\n    props[camelize(key)] = originProps[key];\n  });\n  var options = isPlainObject(vnode.type) ? vnode.type.props : {};\n  options && Object.keys(options).forEach(function (k) {\n    var v = resolvePropValue(options, props, k, props[k]);\n\n    if (k in props) {\n      // 仅包含 props，不包含默认值\n      res[k] = v;\n    }\n  });\n  return _extends(_extends({}, props), res); // 合并事件、未声明属性等\n};\n\nvar getValueByProp = function getValueByProp(ele, prop) {\n  return getPropsData(ele)[prop];\n};\n\nvar getAttrs = function getAttrs(ele) {\n  var data = ele.data;\n\n  if (ele.$vnode) {\n    data = ele.$vnode.data;\n  }\n\n  return data ? data.attrs || {} : {};\n};\n\nvar getKey = function getKey(ele) {\n  var key = ele.key;\n  return key;\n};\n\nexport function getEvents() {\n  var ele = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var on = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var props = {};\n\n  if (ele.$) {\n    props = _extends(_extends({}, props), ele.$attrs);\n  } else {\n    props = _extends(_extends({}, props), ele.props);\n  }\n\n  return splitAttrs(props)[on ? 'onEvents' : 'events'];\n}\nexport function getEvent(child, event) {\n  return child.props && child.props[event];\n} // 获取 xxx.native 或者 原生标签 事件\n\nexport function getDataEvents(child) {\n  var events = {};\n\n  if (child.data && child.data.on) {\n    events = child.data.on;\n  }\n\n  return _extends({}, events);\n} // use getListeners instead this.$listeners\n// https://github.com/vueComponent/ant-design-vue/issues/1705\n\nexport function getListeners(context) {\n  return (context.$vnode ? context.$vnode.componentOptions.listeners : context.$listeners) || {};\n}\nexport function getClass(ele) {\n  var props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n  var tempCls = props.class || {};\n  var cls = {};\n\n  if (typeof tempCls === 'string') {\n    tempCls.split(' ').forEach(function (c) {\n      cls[c.trim()] = true;\n    });\n  } else if (Array.isArray(tempCls)) {\n    classNames(tempCls).split(' ').forEach(function (c) {\n      cls[c.trim()] = true;\n    });\n  } else {\n    cls = _extends(_extends({}, cls), tempCls);\n  }\n\n  return cls;\n}\nexport function getStyle(ele, camel) {\n  var props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n  var style = props.style || {};\n\n  if (typeof style === 'string') {\n    style = parseStyleText(style, camel);\n  } else if (camel && style) {\n    // 驼峰化\n    var res = {};\n    Object.keys(style).forEach(function (k) {\n      return res[camelize(k)] = style[k];\n    });\n    return res;\n  }\n\n  return style;\n}\nexport function getComponentName(opts) {\n  return opts && (opts.Ctor.options.name || opts.tag);\n}\nexport function isFragment(c) {\n  return c.length === 1 && c[0].type === Fragment;\n}\nexport function isEmptyContent(c) {\n  return c === undefined || c === null || c === '' || Array.isArray(c) && c.length === 0;\n}\nexport function isEmptyElement(c) {\n  return c && (c.type === Comment || c.type === Fragment && c.children.length === 0 || c.type === Text && c.children.trim() === '');\n}\nexport function isEmptySlot(c) {\n  return !c || c().every(isEmptyElement);\n}\nexport function isStringElement(c) {\n  return c && c.type === Text;\n}\nexport function filterEmpty() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var res = [];\n  children.forEach(function (child) {\n    if (Array.isArray(child)) {\n      res.push.apply(res, _toConsumableArray(child));\n    } else if (child.type === Fragment) {\n      res.push.apply(res, _toConsumableArray(child.children));\n    } else {\n      res.push(child);\n    }\n  });\n  return res.filter(function (c) {\n    return !isEmptyElement(c);\n  });\n}\n\nvar initDefaultProps = function initDefaultProps(propTypes, defaultProps) {\n  Object.keys(defaultProps).forEach(function (k) {\n    if (propTypes[k]) {\n      propTypes[k].def && (propTypes[k] = propTypes[k].def(defaultProps[k]));\n    } else {\n      throw new Error(\"not have \".concat(k, \" prop\"));\n    }\n  });\n  return propTypes;\n};\n\nexport function mergeProps() {\n  var args = [].slice.call(arguments, 0);\n  var props = {};\n  args.forEach(function () {\n    var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    for (var _i = 0, _Object$entries = Object.entries(p); _i < _Object$entries.length; _i++) {\n      var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n          k = _Object$entries$_i[0],\n          v = _Object$entries$_i[1];\n\n      props[k] = props[k] || {};\n\n      if (isPlainObject(v)) {\n        _extends(props[k], v);\n      } else {\n        props[k] = v;\n      }\n    }\n  });\n  return props;\n}\n\nfunction isValidElement(element) {\n  return element && element.__v_isVNode && _typeof(element.type) !== 'symbol'; // remove text node\n}\n\nfunction getPropsSlot(slots, props) {\n  var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';\n\n  var _a, _b;\n\n  return (_a = props[prop]) !== null && _a !== void 0 ? _a : (_b = slots[prop]) === null || _b === void 0 ? void 0 : _b.call(slots);\n}\n\nexport { splitAttrs, hasProp, getOptionProps, getComponent, getComponentFromProp, getSlotOptions, slotHasProp, getPropsData, getKey, getAttrs, getValueByProp, parseStyleText, initDefaultProps, isValidElement, camelize, getSlots, getSlot, getAllProps, getAllChildren, findDOMNode, flattenChildren, getPropsSlot };\nexport default hasProp;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { defineComponent, getCurrentInstance, onMounted, onUnmounted, onUpdated, reactive, watch } from 'vue';\nimport { findDOMNode } from '../_util/props-util';\nexport default defineComponent({\n  name: 'ResizeObserver',\n  props: {\n    disabled: Boolean,\n    onResize: Function\n  },\n  emits: ['resize'],\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n    var state = reactive({\n      width: 0,\n      height: 0,\n      offsetHeight: 0,\n      offsetWidth: 0\n    });\n    var currentElement = null;\n    var resizeObserver = null;\n\n    var destroyObserver = function destroyObserver() {\n      if (resizeObserver) {\n        resizeObserver.disconnect();\n        resizeObserver = null;\n      }\n    };\n\n    var onResize = function onResize(entries) {\n      var onResize = props.onResize;\n      var target = entries[0].target;\n\n      var _target$getBoundingCl = target.getBoundingClientRect(),\n          width = _target$getBoundingCl.width,\n          height = _target$getBoundingCl.height;\n\n      var offsetWidth = target.offsetWidth,\n          offsetHeight = target.offsetHeight;\n      /**\n       * Resize observer trigger when content size changed.\n       * In most case we just care about element size,\n       * let's use `boundary` instead of `contentRect` here to avoid shaking.\n       */\n\n      var fixedWidth = Math.floor(width);\n      var fixedHeight = Math.floor(height);\n\n      if (state.width !== fixedWidth || state.height !== fixedHeight || state.offsetWidth !== offsetWidth || state.offsetHeight !== offsetHeight) {\n        var size = {\n          width: fixedWidth,\n          height: fixedHeight,\n          offsetWidth: offsetWidth,\n          offsetHeight: offsetHeight\n        };\n\n        _extends(state, size);\n\n        if (onResize) {\n          // defer the callback but not defer to next frame\n          Promise.resolve().then(function () {\n            onResize(_extends(_extends({}, size), {\n              offsetWidth: offsetWidth,\n              offsetHeight: offsetHeight\n            }), target);\n          });\n        }\n      }\n    };\n\n    var instance = getCurrentInstance();\n\n    var registerObserver = function registerObserver() {\n      var disabled = props.disabled; // Unregister if disabled\n\n      if (disabled) {\n        destroyObserver();\n        return;\n      } // Unregister if element changed\n\n\n      var element = findDOMNode(instance);\n      var elementChanged = element !== currentElement;\n\n      if (elementChanged) {\n        destroyObserver();\n        currentElement = element;\n      }\n\n      if (!resizeObserver && element) {\n        resizeObserver = new ResizeObserver(onResize);\n        resizeObserver.observe(element);\n      }\n    };\n\n    onMounted(function () {\n      registerObserver();\n    });\n    onUpdated(function () {\n      registerObserver();\n    });\n    onUnmounted(function () {\n      destroyObserver();\n    });\n    watch(function () {\n      return props.disabled;\n    }, function () {\n      registerObserver();\n    }, {\n      flush: 'post'\n    });\n    return function () {\n      var _a;\n\n      return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)[0];\n    };\n  }\n});","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return args;\n};\nexport var tupleNum = function tupleNum() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  return args;\n};\nexport var withInstall = function withInstall(comp) {\n  var c = comp;\n\n  c.install = function (app) {\n    app.component(c.displayName || c.name, comp);\n  };\n\n  return comp;\n};","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\n\ntry {\n  var opts = Object.defineProperty({}, 'passive', {\n    get: function get() {\n      supportsPassive = true;\n    }\n  });\n  window.addEventListener('testPassive', null, opts);\n  window.removeEventListener('testPassive', null, opts);\n} catch (e) {}\n\nexport default supportsPassive;","import supportsPassive from '../../_util/supportsPassive';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n  if (target.addEventListener) {\n    var opt = option;\n\n    if (opt === undefined && supportsPassive && (eventType === 'touchstart' || eventType === 'touchmove' || eventType === 'wheel')) {\n      opt = {\n        passive: false\n      };\n    }\n\n    target.addEventListener(eventType, cb, opt);\n  }\n\n  return {\n    remove: function remove() {\n      if (target.removeEventListener) {\n        target.removeEventListener(eventType, cb);\n      }\n    }\n  };\n}","export default {\n  // Options.jsx\n  items_per_page: '/ page',\n  jump_to: 'Go to',\n  jump_to_confirm: 'confirm',\n  page: '',\n  // Pagination.jsx\n  prev_page: 'Previous Page',\n  next_page: 'Next Page',\n  prev_5: 'Previous 5 Pages',\n  next_5: 'Next 5 Pages',\n  prev_3: 'Previous 3 Pages',\n  next_3: 'Next 3 Pages'\n};","export default {\n  today: 'Today',\n  now: 'Now',\n  backToToday: 'Back to today',\n  ok: 'Ok',\n  clear: 'Clear',\n  month: 'Month',\n  year: 'Year',\n  timeSelect: 'select time',\n  dateSelect: 'select date',\n  weekSelect: 'Choose a week',\n  monthSelect: 'Choose a month',\n  yearSelect: 'Choose a year',\n  decadeSelect: 'Choose a decade',\n  yearFormat: 'YYYY',\n  dateFormat: 'M/D/YYYY',\n  dayFormat: 'D',\n  dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n  monthBeforeYear: true,\n  previousMonth: 'Previous month (PageUp)',\n  nextMonth: 'Next month (PageDown)',\n  previousYear: 'Last year (Control + left)',\n  nextYear: 'Next year (Control + right)',\n  previousDecade: 'Last decade',\n  nextDecade: 'Next decade',\n  previousCentury: 'Last century',\n  nextCentury: 'Next century'\n};","var locale = {\n  placeholder: 'Select time'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from '../../vc-calendar/src/locale/en_US';\nimport TimePickerLocale from '../../time-picker/locale/en_US'; // Merge into a locale object\n\nvar locale = {\n  lang: _extends({\n    placeholder: 'Select date',\n    rangePlaceholder: ['Start date', 'End date']\n  }, CalendarLocale),\n  timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/vueComponent/ant-design-vue/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","import Pagination from '../vc-pagination/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US'; // import ColorPicker from '../color-picker/locale/en_US';\n\nvar typeTemplate = '${label} is not a valid ${type}';\nexport default {\n  locale: 'en',\n  Pagination: Pagination,\n  DatePicker: DatePicker,\n  TimePicker: TimePicker,\n  Calendar: Calendar,\n  global: {\n    placeholder: 'Please select'\n  },\n  Table: {\n    filterTitle: 'Filter menu',\n    filterConfirm: 'OK',\n    filterReset: 'Reset',\n    filterEmptyText: 'No filters',\n    emptyText: 'No data',\n    selectAll: 'Select current page',\n    selectInvert: 'Invert current page',\n    selectNone: 'Clear all data',\n    selectionAll: 'Select all data',\n    sortTitle: 'Sort',\n    expand: 'Expand row',\n    collapse: 'Collapse row',\n    triggerDesc: 'Click to sort descending',\n    triggerAsc: 'Click to sort ascending',\n    cancelSort: 'Click to cancel sorting'\n  },\n  Modal: {\n    okText: 'OK',\n    cancelText: 'Cancel',\n    justOkText: 'OK'\n  },\n  Popconfirm: {\n    okText: 'OK',\n    cancelText: 'Cancel'\n  },\n  Transfer: {\n    titles: ['', ''],\n    searchPlaceholder: 'Search here',\n    itemUnit: 'item',\n    itemsUnit: 'items',\n    remove: 'Remove',\n    selectCurrent: 'Select current page',\n    removeCurrent: 'Remove current page',\n    selectAll: 'Select all data',\n    removeAll: 'Remove all data',\n    selectInvert: 'Invert current page'\n  },\n  Upload: {\n    uploading: 'Uploading...',\n    removeFile: 'Remove file',\n    uploadError: 'Upload error',\n    previewFile: 'Preview file',\n    downloadFile: 'Download file'\n  },\n  Empty: {\n    description: 'No Data'\n  },\n  Icon: {\n    icon: 'icon'\n  },\n  Text: {\n    edit: 'Edit',\n    copy: 'Copy',\n    copied: 'Copied',\n    expand: 'Expand'\n  },\n  PageHeader: {\n    back: 'Back'\n  },\n  Form: {\n    optional: '(optional)',\n    defaultValidateMessages: {\n      default: 'Field validation error for ${label}',\n      required: 'Please enter ${label}',\n      enum: '${label} must be one of [${enum}]',\n      whitespace: '${label} cannot be a blank character',\n      date: {\n        format: '${label} date format is invalid',\n        parse: '${label} cannot be converted to a date',\n        invalid: '${label} is an invalid date'\n      },\n      types: {\n        string: typeTemplate,\n        method: typeTemplate,\n        array: typeTemplate,\n        object: typeTemplate,\n        number: typeTemplate,\n        date: typeTemplate,\n        boolean: typeTemplate,\n        integer: typeTemplate,\n        float: typeTemplate,\n        regexp: typeTemplate,\n        email: typeTemplate,\n        url: typeTemplate,\n        hex: typeTemplate\n      },\n      string: {\n        len: '${label} must be ${len} characters',\n        min: '${label} must be at least ${min} characters',\n        max: '${label} must be up to ${max} characters',\n        range: '${label} must be between ${min}-${max} characters'\n      },\n      number: {\n        len: '${label} must be equal to ${len}',\n        min: '${label} must be minimum ${min}',\n        max: '${label} must be maximum ${max}',\n        range: '${label} must be between ${min}-${max}'\n      },\n      array: {\n        len: 'Must be ${len} ${label}',\n        min: 'At least ${min} ${label}',\n        max: 'At most ${max} ${label}',\n        range: 'The amount of ${label} must be between ${min}-${max}'\n      },\n      pattern: {\n        mismatch: '${label} does not match the pattern ${pattern}'\n      }\n    }\n  },\n  Image: {\n    preview: 'Preview'\n  }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { inject, defineComponent, computed } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport defaultLocaleData from './default';\nexport default defineComponent({\n  name: 'LocaleReceiver',\n  props: {\n    componentName: PropTypes.string,\n    defaultLocale: {\n      type: [Object, Function]\n    },\n    children: {\n      type: Function\n    }\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n    var localeData = inject('localeData', {});\n    var locale = computed(function () {\n      var _props$componentName = props.componentName,\n          componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n          defaultLocale = props.defaultLocale;\n      var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n      var antLocale = localeData.antLocale;\n      var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n      return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n    });\n    var localeCode = computed(function () {\n      var antLocale = localeData.antLocale;\n      var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n      if (antLocale && antLocale.exist && !localeCode) {\n        return defaultLocaleData.locale;\n      }\n\n      return localeCode;\n    });\n    return function () {\n      var children = props.children || slots.default;\n      var antLocale = localeData.antLocale;\n      return children === null || children === void 0 ? void 0 : children(locale.value, localeCode.value, antLocale);\n    };\n  }\n});\nexport function useLocaleReceiver(componentName, defaultLocale) {\n  var localeData = inject('localeData', {});\n  var componentLocale = computed(function () {\n    var antLocale = localeData.antLocale;\n    var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n    var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n    return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n  });\n  return [componentLocale];\n}","import { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport { defaultConfigProvider } from '../config-provider';\n\nvar Empty = function Empty() {\n  var _inject = inject('configProvider', defaultConfigProvider),\n      getPrefixCls = _inject.getPrefixCls;\n\n  var prefixCls = getPrefixCls('empty-img-default');\n  return _createVNode(\"svg\", {\n    \"class\": prefixCls,\n    \"width\": \"184\",\n    \"height\": \"152\",\n    \"viewBox\": \"0 0 184 152\"\n  }, [_createVNode(\"g\", {\n    \"fill\": \"none\",\n    \"fill-rule\": \"evenodd\"\n  }, [_createVNode(\"g\", {\n    \"transform\": \"translate(24 31.67)\"\n  }, [_createVNode(\"ellipse\", {\n    \"class\": \"\".concat(prefixCls, \"-ellipse\"),\n    \"cx\": \"67.797\",\n    \"cy\": \"106.89\",\n    \"rx\": \"67.797\",\n    \"ry\": \"12.668\"\n  }, null), _createVNode(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-1\"),\n    \"d\": \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n  }, null), _createVNode(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-2\"),\n    \"d\": \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n    \"transform\": \"translate(13.56)\"\n  }, null), _createVNode(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-3\"),\n    \"d\": \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n  }, null), _createVNode(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-4\"),\n    \"d\": \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n  }, null)]), _createVNode(\"path\", {\n    \"class\": \"\".concat(prefixCls, \"-path-5\"),\n    \"d\": \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n  }, null), _createVNode(\"g\", {\n    \"class\": \"\".concat(prefixCls, \"-g\"),\n    \"transform\": \"translate(149.65 15.383)\"\n  }, [_createVNode(\"ellipse\", {\n    \"cx\": \"20.654\",\n    \"cy\": \"3.167\",\n    \"rx\": \"2.849\",\n    \"ry\": \"2.815\"\n  }, null), _createVNode(\"path\", {\n    \"d\": \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n  }, null)])])]);\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = true;\nexport default Empty;","import { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport { defaultConfigProvider } from '../config-provider';\n\nvar Simple = function Simple() {\n  var _inject = inject('configProvider', defaultConfigProvider),\n      getPrefixCls = _inject.getPrefixCls;\n\n  var prefixCls = getPrefixCls('empty-img-simple');\n  return _createVNode(\"svg\", {\n    \"class\": prefixCls,\n    \"width\": \"64\",\n    \"height\": \"41\",\n    \"viewBox\": \"0 0 64 41\"\n  }, [_createVNode(\"g\", {\n    \"transform\": \"translate(0 1)\",\n    \"fill\": \"none\",\n    \"fill-rule\": \"evenodd\"\n  }, [_createVNode(\"ellipse\", {\n    \"class\": \"\".concat(prefixCls, \"-ellipse\"),\n    \"fill\": \"#F5F5F5\",\n    \"cx\": \"32\",\n    \"cy\": \"33\",\n    \"rx\": \"32\",\n    \"ry\": \"7\"\n  }, null), _createVNode(\"g\", {\n    \"class\": \"\".concat(prefixCls, \"-g\"),\n    \"fill-rule\": \"nonzero\",\n    \"stroke\": \"#D9D9D9\"\n  }, [_createVNode(\"path\", {\n    \"d\": \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n  }, null), _createVNode(\"path\", {\n    \"d\": \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n    \"fill\": \"#FAFAFA\",\n    \"class\": \"\".concat(prefixCls, \"-path\")\n  }, null)])])]);\n};\n\nSimple.PRESENTED_IMAGE_SIMPLE = true;\nexport default Simple;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { inject } from 'vue';\nimport classNames from '../_util/classNames';\nimport { defaultConfigProvider } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport { filterEmpty } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport { withInstall } from '../_util/type';\n\nvar defaultEmptyImg = _createVNode(DefaultEmptyImg, null, null);\n\nvar simpleEmptyImg = _createVNode(SimpleEmptyImg, null, null);\n\nvar Empty = function Empty(props, _ref) {\n  var _ref$slots = _ref.slots,\n      slots = _ref$slots === void 0 ? {} : _ref$slots,\n      attrs = _ref.attrs;\n\n  var _a;\n\n  var configProvider = inject('configProvider', defaultConfigProvider);\n  var getPrefixCls = configProvider.getPrefixCls,\n      direction = configProvider.direction;\n\n  var _b = _extends(_extends({}, props), attrs),\n      customizePrefixCls = _b.prefixCls,\n      _b$image = _b.image,\n      image = _b$image === void 0 ? defaultEmptyImg : _b$image,\n      _b$description = _b.description,\n      description = _b$description === void 0 ? ((_a = slots.description) === null || _a === void 0 ? void 0 : _a.call(slots)) || undefined : _b$description,\n      imageStyle = _b.imageStyle,\n      _b$class = _b.class,\n      className = _b$class === void 0 ? '' : _b$class,\n      restProps = __rest(_b, [\"prefixCls\", \"image\", \"description\", \"imageStyle\", \"class\"]);\n\n  return _createVNode(LocaleReceiver, {\n    \"componentName\": \"Empty\",\n    \"children\": function children(locale) {\n      var _classNames;\n\n      var prefixCls = getPrefixCls('empty', customizePrefixCls);\n      var des = typeof description !== 'undefined' ? description : locale.description;\n      var alt = typeof des === 'string' ? des : 'empty';\n      var imageNode = null;\n\n      if (typeof image === 'string') {\n        imageNode = _createVNode(\"img\", {\n          \"alt\": alt,\n          \"src\": image\n        }, null);\n      } else {\n        imageNode = image;\n      }\n\n      return _createVNode(\"div\", _objectSpread({\n        \"class\": classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames))\n      }, restProps), [_createVNode(\"div\", {\n        \"class\": \"\".concat(prefixCls, \"-image\"),\n        \"style\": imageStyle\n      }, [imageNode]), des && _createVNode(\"p\", {\n        \"class\": \"\".concat(prefixCls, \"-description\")\n      }, [des]), slots.default && _createVNode(\"div\", {\n        \"class\": \"\".concat(prefixCls, \"-footer\")\n      }, [filterEmpty(slots.default())])]);\n    }\n  }, null);\n};\n\nEmpty.displayName = 'AEmpty';\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nEmpty.inheritAttrs = false;\nEmpty.props = {\n  prefixCls: PropTypes.string,\n  image: PropTypes.any,\n  description: PropTypes.any,\n  imageStyle: PropTypes.object\n};\nexport default withInstall(Empty);","import { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport Empty from '../empty';\nimport { defaultConfigProvider } from '.';\n\nvar RenderEmpty = function RenderEmpty(props) {\n  var configProvider = inject('configProvider', defaultConfigProvider);\n\n  var renderHtml = function renderHtml(componentName) {\n    var getPrefixCls = configProvider.getPrefixCls;\n    var prefix = getPrefixCls('empty');\n\n    switch (componentName) {\n      case 'Table':\n      case 'List':\n        return _createVNode(Empty, {\n          \"image\": Empty.PRESENTED_IMAGE_SIMPLE\n        }, null);\n\n      case 'Select':\n      case 'TreeSelect':\n      case 'Cascader':\n      case 'Transfer':\n      case 'Mentions':\n        return _createVNode(Empty, {\n          \"image\": Empty.PRESENTED_IMAGE_SIMPLE,\n          \"class\": \"\".concat(prefix, \"-small\")\n        }, null);\n\n      default:\n        return _createVNode(Empty, null, null);\n    }\n  };\n\n  return renderHtml(props.componentName);\n};\n\nfunction renderEmpty(componentName) {\n  return _createVNode(RenderEmpty, {\n    \"componentName\": componentName\n  }, null);\n}\n\nexport default renderEmpty;","// https://github.com/moment/moment/issues/3650\nexport default function interopDefault(m) {\n  return m.default || m;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\n\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\n\nexport function changeConfirmLocale(newLocale) {\n  if (newLocale) {\n    runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n  } else {\n    runtimeLocale = _extends({}, defaultLocale.Modal);\n  }\n}\nexport function getConfirmLocale() {\n  return runtimeLocale;\n}","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.error(\"Warning: \".concat(message));\n  }\n}\nexport function note(valid, message) {\n  // Support uglify\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    console.warn(\"Note: \".concat(message));\n  }\n}\nexport function resetWarned() {\n  warned = {};\n}\nexport function call(method, valid, message) {\n  if (!valid && !warned[message]) {\n    method(false, message);\n    warned[message] = true;\n  }\n}\nexport function warningOnce(valid, message) {\n  call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n  call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","import warning, { resetWarned } from '../vc-util/warning';\nexport { resetWarned };\nexport default (function (valid, component) {\n  var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n  warning(valid, \"[antdv: \".concat(component, \"] \").concat(message));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { provide, defineComponent, reactive, watch, onUnmounted } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport moment from 'moment';\nimport interopDefault from '../_util/interopDefault';\nimport { changeConfirmLocale } from '../modal/locale';\nimport warning from '../_util/warning';\nimport { withInstall } from '../_util/type';\nexport var ANT_MARK = 'internalMark';\n\nfunction setMomentLocale(locale) {\n  if (locale && locale.locale) {\n    interopDefault(moment).locale(locale.locale);\n  } else {\n    interopDefault(moment).locale('en');\n  }\n}\n\nvar LocaleProvider = defineComponent({\n  name: 'ALocaleProvider',\n  props: {\n    locale: {\n      type: Object\n    },\n    ANT_MARK__: PropTypes.string\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n    warning(props.ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');\n    var state = reactive({\n      antLocale: _extends(_extends({}, props.locale), {\n        exist: true\n      }),\n      ANT_MARK__: ANT_MARK\n    });\n    provide('localeData', state);\n    watch(function () {\n      return props.locale;\n    }, function (val) {\n      state.antLocale = _extends(_extends({}, val), {\n        exist: true\n      });\n      setMomentLocale(val);\n      changeConfirmLocale(val && val.Modal);\n    }, {\n      immediate: true\n    });\n    onUnmounted(function () {\n      changeConfirmLocale();\n    });\n    return function () {\n      var _a;\n\n      return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n    };\n  }\n});\n/* istanbul ignore next */\n\nLocaleProvider.install = function (app) {\n  app.component(LocaleProvider.name, LocaleProvider);\n  return app;\n};\n\nexport default withInstall(LocaleProvider);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { reactive, provide, defineComponent, watch } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport defaultRenderEmpty from './renderEmpty';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { withInstall } from '../_util/type';\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\nexport var configProviderProps = {\n  getTargetContainer: {\n    type: Function\n  },\n  getPopupContainer: {\n    type: Function\n  },\n  prefixCls: String,\n  getPrefixCls: {\n    type: Function\n  },\n  renderEmpty: {\n    type: Function\n  },\n  transformCellText: {\n    type: Function\n  },\n  csp: {\n    type: Object\n  },\n  autoInsertSpaceInButton: PropTypes.looseBool,\n  locale: {\n    type: Object\n  },\n  pageHeader: {\n    type: Object\n  },\n  componentSize: {\n    type: String\n  },\n  direction: {\n    type: String\n  },\n  space: {\n    type: Object\n  },\n  virtual: PropTypes.looseBool,\n  dropdownMatchSelectWidth: PropTypes.looseBool,\n  form: {\n    type: Object\n  }\n};\nvar ConfigProvider = defineComponent({\n  name: 'AConfigProvider',\n  props: configProviderProps,\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n\n    var getPrefixCls = function getPrefixCls(suffixCls, customizePrefixCls) {\n      var _props$prefixCls = props.prefixCls,\n          prefixCls = _props$prefixCls === void 0 ? 'ant' : _props$prefixCls;\n      if (customizePrefixCls) return customizePrefixCls;\n      return suffixCls ? \"\".concat(prefixCls, \"-\").concat(suffixCls) : prefixCls;\n    };\n\n    var renderEmptyComponent = function renderEmptyComponent(name) {\n      var renderEmpty = props.renderEmpty || slots.renderEmpty || defaultRenderEmpty;\n      return renderEmpty(name);\n    };\n\n    var getPrefixClsWrapper = function getPrefixClsWrapper(suffixCls, customizePrefixCls) {\n      var prefixCls = props.prefixCls;\n      if (customizePrefixCls) return customizePrefixCls;\n      var mergedPrefixCls = prefixCls || getPrefixCls('');\n      return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n    };\n\n    var configProvider = reactive(_extends(_extends({}, props), {\n      getPrefixCls: getPrefixClsWrapper,\n      renderEmpty: renderEmptyComponent\n    }));\n    Object.keys(props).forEach(function (key) {\n      watch(function () {\n        return props[key];\n      }, function () {\n        configProvider[key] = props[key];\n      });\n    });\n    provide('configProvider', configProvider);\n\n    var renderProvider = function renderProvider(legacyLocale) {\n      var _a;\n\n      return _createVNode(LocaleProvider, {\n        \"locale\": props.locale || legacyLocale,\n        \"ANT_MARK__\": ANT_MARK\n      }, {\n        default: function _default() {\n          return [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)];\n        }\n      });\n    };\n\n    return function () {\n      return _createVNode(LocaleReceiver, {\n        \"children\": function children(_, __, legacyLocale) {\n          return renderProvider(legacyLocale);\n        }\n      }, null);\n    };\n  }\n});\nexport var defaultConfigProvider = reactive({\n  getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n    if (customizePrefixCls) return customizePrefixCls;\n    return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n  },\n  renderEmpty: defaultRenderEmpty,\n  direction: 'ltr'\n});\nexport default withInstall(ConfigProvider);","import { computed, inject } from 'vue';\nimport { defaultConfigProvider } from '../../config-provider';\nexport default (function (name, props) {\n  var configProvider = inject('configProvider', defaultConfigProvider);\n  var prefixCls = computed(function () {\n    return configProvider.getPrefixCls(name, props.prefixCls);\n  });\n  var direction = computed(function () {\n    return configProvider.direction;\n  });\n  var autoInsertSpaceInButton = computed(function () {\n    return configProvider.autoInsertSpaceInButton;\n  });\n  var renderEmpty = computed(function () {\n    return configProvider.renderEmpty;\n  });\n  var space = computed(function () {\n    return configProvider.space;\n  });\n  var pageHeader = computed(function () {\n    return configProvider.pageHeader;\n  });\n  var form = computed(function () {\n    return configProvider.form;\n  });\n  var size = computed(function () {\n    return props.size || configProvider.componentSize;\n  });\n  var getTargetContainer = computed(function () {\n    return props.getTargetContainer;\n  });\n  return {\n    configProvider: configProvider,\n    prefixCls: prefixCls,\n    direction: direction,\n    size: size,\n    getTargetContainer: getTargetContainer,\n    space: space,\n    pageHeader: pageHeader,\n    form: form,\n    autoInsertSpaceInButton: autoInsertSpaceInButton,\n    renderEmpty: renderEmpty\n  };\n});","var id = 0;\nvar ids = {}; // Support call raf with delay specified frame\n\nexport default function wrapperRaf(callback) {\n  var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  var myId = id++;\n  var restFrames = delayFrames;\n\n  function internalCallback() {\n    restFrames -= 1;\n\n    if (restFrames <= 0) {\n      callback();\n      delete ids[myId];\n    } else {\n      ids[myId] = requestAnimationFrame(internalCallback);\n    }\n  }\n\n  ids[myId] = requestAnimationFrame(internalCallback);\n  return myId;\n}\n\nwrapperRaf.cancel = function cancel(pid) {\n  if (pid === undefined) return;\n  cancelAnimationFrame(ids[pid]);\n  delete ids[pid];\n};\n\nwrapperRaf.ids = ids; // export this for test usage","import { createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../_util/vue-types';\n\nvar TransBtn = function TransBtn(props, _ref) {\n  var slots = _ref.slots;\n\n  var _a;\n\n  var className = props.class,\n      customizeIcon = props.customizeIcon,\n      customizeIconProps = props.customizeIconProps,\n      _onMousedown = props.onMousedown,\n      onClick = props.onClick;\n  var icon;\n\n  if (typeof customizeIcon === 'function') {\n    icon = customizeIcon(customizeIconProps);\n  } else {\n    icon = customizeIcon;\n  }\n\n  return _createVNode(\"span\", {\n    \"class\": className,\n    \"onMousedown\": function onMousedown(event) {\n      event.preventDefault();\n\n      if (_onMousedown) {\n        _onMousedown(event);\n      }\n    },\n    \"style\": {\n      userSelect: 'none',\n      WebkitUserSelect: 'none'\n    },\n    \"unselectable\": \"on\",\n    \"onClick\": onClick,\n    \"aria-hidden\": true\n  }, [icon !== undefined ? icon : _createVNode(\"span\", {\n    \"class\": className.split(/\\s+/).map(function (cls) {\n      return \"\".concat(cls, \"-icon\");\n    })\n  }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]);\n};\n\nTransBtn.inheritAttrs = false;\nTransBtn.displayName = 'TransBtn';\nTransBtn.props = {\n  class: PropTypes.string,\n  customizeIcon: PropTypes.any,\n  customizeIconProps: PropTypes.any,\n  onMousedown: PropTypes.func,\n  onClick: PropTypes.func\n};\nexport default TransBtn;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n  /**\n   * MAC_ENTER\n   */\n  MAC_ENTER: 3,\n\n  /**\n   * BACKSPACE\n   */\n  BACKSPACE: 8,\n\n  /**\n   * TAB\n   */\n  TAB: 9,\n\n  /**\n   * NUMLOCK on FF/Safari Mac\n   */\n  NUM_CENTER: 12,\n\n  /**\n   * ENTER\n   */\n  ENTER: 13,\n\n  /**\n   * SHIFT\n   */\n  SHIFT: 16,\n\n  /**\n   * CTRL\n   */\n  CTRL: 17,\n\n  /**\n   * ALT\n   */\n  ALT: 18,\n\n  /**\n   * PAUSE\n   */\n  PAUSE: 19,\n\n  /**\n   * CAPS_LOCK\n   */\n  CAPS_LOCK: 20,\n\n  /**\n   * ESC\n   */\n  ESC: 27,\n\n  /**\n   * SPACE\n   */\n  SPACE: 32,\n\n  /**\n   * PAGE_UP\n   */\n  PAGE_UP: 33,\n\n  /**\n   * PAGE_DOWN\n   */\n  PAGE_DOWN: 34,\n\n  /**\n   * END\n   */\n  END: 35,\n\n  /**\n   * HOME\n   */\n  HOME: 36,\n\n  /**\n   * LEFT\n   */\n  LEFT: 37,\n\n  /**\n   * UP\n   */\n  UP: 38,\n\n  /**\n   * RIGHT\n   */\n  RIGHT: 39,\n\n  /**\n   * DOWN\n   */\n  DOWN: 40,\n\n  /**\n   * PRINT_SCREEN\n   */\n  PRINT_SCREEN: 44,\n\n  /**\n   * INSERT\n   */\n  INSERT: 45,\n\n  /**\n   * DELETE\n   */\n  DELETE: 46,\n\n  /**\n   * ZERO\n   */\n  ZERO: 48,\n\n  /**\n   * ONE\n   */\n  ONE: 49,\n\n  /**\n   * TWO\n   */\n  TWO: 50,\n\n  /**\n   * THREE\n   */\n  THREE: 51,\n\n  /**\n   * FOUR\n   */\n  FOUR: 52,\n\n  /**\n   * FIVE\n   */\n  FIVE: 53,\n\n  /**\n   * SIX\n   */\n  SIX: 54,\n\n  /**\n   * SEVEN\n   */\n  SEVEN: 55,\n\n  /**\n   * EIGHT\n   */\n  EIGHT: 56,\n\n  /**\n   * NINE\n   */\n  NINE: 57,\n\n  /**\n   * QUESTION_MARK\n   */\n  QUESTION_MARK: 63,\n\n  /**\n   * A\n   */\n  A: 65,\n\n  /**\n   * B\n   */\n  B: 66,\n\n  /**\n   * C\n   */\n  C: 67,\n\n  /**\n   * D\n   */\n  D: 68,\n\n  /**\n   * E\n   */\n  E: 69,\n\n  /**\n   * F\n   */\n  F: 70,\n\n  /**\n   * G\n   */\n  G: 71,\n\n  /**\n   * H\n   */\n  H: 72,\n\n  /**\n   * I\n   */\n  I: 73,\n\n  /**\n   * J\n   */\n  J: 74,\n\n  /**\n   * K\n   */\n  K: 75,\n\n  /**\n   * L\n   */\n  L: 76,\n\n  /**\n   * M\n   */\n  M: 77,\n\n  /**\n   * N\n   */\n  N: 78,\n\n  /**\n   * O\n   */\n  O: 79,\n\n  /**\n   * P\n   */\n  P: 80,\n\n  /**\n   * Q\n   */\n  Q: 81,\n\n  /**\n   * R\n   */\n  R: 82,\n\n  /**\n   * S\n   */\n  S: 83,\n\n  /**\n   * T\n   */\n  T: 84,\n\n  /**\n   * U\n   */\n  U: 85,\n\n  /**\n   * V\n   */\n  V: 86,\n\n  /**\n   * W\n   */\n  W: 87,\n\n  /**\n   * X\n   */\n  X: 88,\n\n  /**\n   * Y\n   */\n  Y: 89,\n\n  /**\n   * Z\n   */\n  Z: 90,\n\n  /**\n   * META\n   */\n  META: 91,\n\n  /**\n   * WIN_KEY_RIGHT\n   */\n  WIN_KEY_RIGHT: 92,\n\n  /**\n   * CONTEXT_MENU\n   */\n  CONTEXT_MENU: 93,\n\n  /**\n   * NUM_ZERO\n   */\n  NUM_ZERO: 96,\n\n  /**\n   * NUM_ONE\n   */\n  NUM_ONE: 97,\n\n  /**\n   * NUM_TWO\n   */\n  NUM_TWO: 98,\n\n  /**\n   * NUM_THREE\n   */\n  NUM_THREE: 99,\n\n  /**\n   * NUM_FOUR\n   */\n  NUM_FOUR: 100,\n\n  /**\n   * NUM_FIVE\n   */\n  NUM_FIVE: 101,\n\n  /**\n   * NUM_SIX\n   */\n  NUM_SIX: 102,\n\n  /**\n   * NUM_SEVEN\n   */\n  NUM_SEVEN: 103,\n\n  /**\n   * NUM_EIGHT\n   */\n  NUM_EIGHT: 104,\n\n  /**\n   * NUM_NINE\n   */\n  NUM_NINE: 105,\n\n  /**\n   * NUM_MULTIPLY\n   */\n  NUM_MULTIPLY: 106,\n\n  /**\n   * NUM_PLUS\n   */\n  NUM_PLUS: 107,\n\n  /**\n   * NUM_MINUS\n   */\n  NUM_MINUS: 109,\n\n  /**\n   * NUM_PERIOD\n   */\n  NUM_PERIOD: 110,\n\n  /**\n   * NUM_DIVISION\n   */\n  NUM_DIVISION: 111,\n\n  /**\n   * F1\n   */\n  F1: 112,\n\n  /**\n   * F2\n   */\n  F2: 113,\n\n  /**\n   * F3\n   */\n  F3: 114,\n\n  /**\n   * F4\n   */\n  F4: 115,\n\n  /**\n   * F5\n   */\n  F5: 116,\n\n  /**\n   * F6\n   */\n  F6: 117,\n\n  /**\n   * F7\n   */\n  F7: 118,\n\n  /**\n   * F8\n   */\n  F8: 119,\n\n  /**\n   * F9\n   */\n  F9: 120,\n\n  /**\n   * F10\n   */\n  F10: 121,\n\n  /**\n   * F11\n   */\n  F11: 122,\n\n  /**\n   * F12\n   */\n  F12: 123,\n\n  /**\n   * NUMLOCK\n   */\n  NUMLOCK: 144,\n\n  /**\n   * SEMICOLON\n   */\n  SEMICOLON: 186,\n\n  /**\n   * DASH\n   */\n  DASH: 189,\n\n  /**\n   * EQUALS\n   */\n  EQUALS: 187,\n\n  /**\n   * COMMA\n   */\n  COMMA: 188,\n\n  /**\n   * PERIOD\n   */\n  PERIOD: 190,\n\n  /**\n   * SLASH\n   */\n  SLASH: 191,\n\n  /**\n   * APOSTROPHE\n   */\n  APOSTROPHE: 192,\n\n  /**\n   * SINGLE_QUOTE\n   */\n  SINGLE_QUOTE: 222,\n\n  /**\n   * OPEN_SQUARE_BRACKET\n   */\n  OPEN_SQUARE_BRACKET: 219,\n\n  /**\n   * BACKSLASH\n   */\n  BACKSLASH: 220,\n\n  /**\n   * CLOSE_SQUARE_BRACKET\n   */\n  CLOSE_SQUARE_BRACKET: 221,\n\n  /**\n   * WIN_KEY\n   */\n  WIN_KEY: 224,\n\n  /**\n   * MAC_FF_META\n   */\n  MAC_FF_META: 224,\n\n  /**\n   * WIN_IME\n   */\n  WIN_IME: 229,\n  // ======================== Function ========================\n\n  /**\n   * whether text and modified key is entered at the same time.\n   */\n  isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n    var keyCode = e.keyCode;\n\n    if (e.altKey && !e.ctrlKey || e.metaKey || keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n      return false;\n    } // The following keys are quite harmless, even in combination with\n    // CTRL, ALT or SHIFT.\n\n\n    switch (keyCode) {\n      case KeyCode.ALT:\n      case KeyCode.CAPS_LOCK:\n      case KeyCode.CONTEXT_MENU:\n      case KeyCode.CTRL:\n      case KeyCode.DOWN:\n      case KeyCode.END:\n      case KeyCode.ESC:\n      case KeyCode.HOME:\n      case KeyCode.INSERT:\n      case KeyCode.LEFT:\n      case KeyCode.MAC_FF_META:\n      case KeyCode.META:\n      case KeyCode.NUMLOCK:\n      case KeyCode.NUM_CENTER:\n      case KeyCode.PAGE_DOWN:\n      case KeyCode.PAGE_UP:\n      case KeyCode.PAUSE:\n      case KeyCode.PRINT_SCREEN:\n      case KeyCode.RIGHT:\n      case KeyCode.SHIFT:\n      case KeyCode.UP:\n      case KeyCode.WIN_KEY:\n      case KeyCode.WIN_KEY_RIGHT:\n        return false;\n\n      default:\n        return true;\n    }\n  },\n\n  /**\n   * whether character is entered.\n   */\n  isCharacterKey: function isCharacterKey(keyCode) {\n    if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n      return true;\n    }\n\n    if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n      return true;\n    }\n\n    if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n      return true;\n    } // Safari sends zero key code for non-latin characters.\n\n\n    if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n      return true;\n    }\n\n    switch (keyCode) {\n      case KeyCode.SPACE:\n      case KeyCode.QUESTION_MARK:\n      case KeyCode.NUM_PLUS:\n      case KeyCode.NUM_MINUS:\n      case KeyCode.NUM_PERIOD:\n      case KeyCode.NUM_DIVISION:\n      case KeyCode.SEMICOLON:\n      case KeyCode.DASH:\n      case KeyCode.EQUALS:\n      case KeyCode.COMMA:\n      case KeyCode.PERIOD:\n      case KeyCode.SLASH:\n      case KeyCode.APOSTROPHE:\n      case KeyCode.SINGLE_QUOTE:\n      case KeyCode.OPEN_SQUARE_BRACKET:\n      case KeyCode.BACKSLASH:\n      case KeyCode.CLOSE_SQUARE_BRACKET:\n        return true;\n\n      default:\n        return false;\n    }\n  }\n};\nexport default KeyCode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar attributes = \"accept acceptcharset accesskey action allowfullscreen allowtransparency\\nalt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge\\ncharset checked classid classname colspan cols content contenteditable contextmenu\\ncontrols coords crossorigin data datetime default defer dir disabled download draggable\\nenctype form formaction formenctype formmethod formnovalidate formtarget frameborder\\nheaders height hidden high href hreflang htmlfor httpequiv icon id inputmode integrity\\nis keyparams keytype kind label lang list loop low manifest marginheight marginwidth max maxlength media\\nmediagroup method min minlength multiple muted name novalidate nonce open\\noptimum pattern placeholder poster preload radiogroup readonly rel required\\nreversed role rowspan rows sandbox scope scoped scrolling seamless selected\\nshape size sizes span spellcheck src srcdoc srclang srcset start step style\\nsummary tabindex target title type usemap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionend onCompositionstart onCompositionupdate onKeydown\\n    onKeypress onKeyup onFocus onBlur onChange onInput onSubmit onClick onContextmenu onDoubleclick onDblclick\\n    onDrag onDragend onDragenter onDragexit onDragleave onDragover onDragstart onDrop onMousedown\\n    onMouseenter onMouseleave onMousemove onMouseout onMouseover onMouseup onSelect onTouchcancel\\n    onTouchend onTouchmove onTouchstart onTouchstartPassive onTouchmovePassive onScroll onWheel onAbort onCanplay onCanplaythrough\\n    onDurationchange onEmptied onEncrypted onEnded onError onLoadeddata onLoadedmetadata\\n    onLoadstart onPause onPlay onPlaying onProgress onRatechange onSeeked onSeeking onStalled onSuspend onTimeupdate onVolumechange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n/* eslint-enable max-len */\n\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\n\nfunction match(key, prefix) {\n  return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\n\n\nexport default function pickAttrs(props) {\n  var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var mergedConfig;\n\n  if (ariaOnly === false) {\n    mergedConfig = {\n      aria: true,\n      data: true,\n      attr: true\n    };\n  } else if (ariaOnly === true) {\n    mergedConfig = {\n      aria: true\n    };\n  } else {\n    mergedConfig = _extends({}, ariaOnly);\n  }\n\n  var attrs = {};\n  Object.keys(props).forEach(function (key) {\n    if ( // Aria\n    mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) || mergedConfig.data && match(key, dataPrefix) || mergedConfig.attr && (propList.includes(key) || propList.includes(key.toLowerCase()))) {\n      attrs[key] = props[key];\n    }\n  });\n  return attrs;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nfunction createRef() {\n  var func = function func(node) {\n    func.current = node;\n  };\n\n  return func;\n}\n\nexport function fillRef(ref, node) {\n  if (typeof ref === 'function') {\n    ref(node);\n  } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n    ref.current = node;\n  }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n    refs[_key] = arguments[_key];\n  }\n\n  return function (node) {\n    refs.forEach(function (ref) {\n      fillRef(ref, node);\n    });\n  };\n}\nexport default createRef;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport classNames from '../_util/classNames';\nimport ResizeObserver from '../vc-resize-observer';\n\nvar Filter = function Filter(_ref, _ref2) {\n  var height = _ref.height,\n      offset = _ref.offset,\n      prefixCls = _ref.prefixCls,\n      onInnerResize = _ref.onInnerResize;\n  var slots = _ref2.slots;\n\n  var _a;\n\n  var outerStyle = {};\n  var innerStyle = {\n    display: 'flex',\n    flexDirection: 'column'\n  };\n\n  if (offset !== undefined) {\n    outerStyle = {\n      height: \"\".concat(height, \"px\"),\n      position: 'relative',\n      overflow: 'hidden'\n    };\n    innerStyle = _extends(_extends({}, innerStyle), {\n      transform: \"translateY(\".concat(offset, \"px)\"),\n      position: 'absolute',\n      left: 0,\n      right: 0,\n      top: 0\n    });\n  }\n\n  return _createVNode(\"div\", {\n    \"style\": outerStyle\n  }, [_createVNode(ResizeObserver, {\n    \"onResize\": function onResize(_ref3) {\n      var offsetHeight = _ref3.offsetHeight;\n\n      if (offsetHeight && onInnerResize) {\n        onInnerResize();\n      }\n    }\n  }, {\n    default: function _default() {\n      return [_createVNode(\"div\", {\n        \"style\": innerStyle,\n        \"class\": classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls))\n      }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])];\n    }\n  })]);\n};\n\nFilter.displayName = 'Filter';\nFilter.inheritAttrs = false;\nFilter.props = {\n  prefixCls: String,\n\n  /** Virtual filler height. Should be `count * itemMinHeight` */\n  height: Number,\n\n  /** Set offset of visible items. Should be the top of start item position */\n  offset: Number,\n  onInnerResize: Function\n};\nexport default Filter;","import { cloneVNode } from 'vue';\n\nvar Item = function Item(_ref, _ref2) {\n  var setRef = _ref.setRef;\n  var slots = _ref2.slots;\n\n  var _a;\n\n  var children = (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n  return children && children.length ? cloneVNode(children[0], {\n    ref: setRef\n  }) : children;\n};\n\nItem.props = {\n  setRef: {\n    type: Function,\n    default: function _default() {}\n  }\n};\nexport default Item;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, reactive } from 'vue';\nimport classNames from '../_util/classNames';\nimport createRef from '../_util/createRef';\nimport raf from '../_util/raf';\nimport supportsPassive from '../_util/supportsPassive';\nimport PropTypes from '../_util/vue-types';\nvar MIN_SIZE = 20;\n\nfunction getPageY(e) {\n  return 'touches' in e ? e.touches[0].pageY : e.pageY;\n}\n\nexport default defineComponent({\n  name: 'ScrollBar',\n  inheritAttrs: false,\n  props: {\n    prefixCls: PropTypes.string,\n    scrollTop: PropTypes.number,\n    scrollHeight: PropTypes.number,\n    height: PropTypes.number,\n    count: PropTypes.number,\n    onScroll: {\n      type: Function\n    },\n    onStartMove: {\n      type: Function\n    },\n    onStopMove: {\n      type: Function\n    }\n  },\n  setup: function setup() {\n    return {\n      moveRaf: null,\n      scrollbarRef: createRef(),\n      thumbRef: createRef(),\n      visibleTimeout: null,\n      state: reactive({\n        dragging: false,\n        pageY: null,\n        startTop: null,\n        visible: false\n      })\n    };\n  },\n  watch: {\n    scrollTop: {\n      handler: function handler() {\n        this.delayHidden();\n      },\n      flush: 'post'\n    }\n  },\n  mounted: function mounted() {\n    this.scrollbarRef.current.addEventListener('touchstart', this.onScrollbarTouchStart, supportsPassive ? {\n      passive: false\n    } : false);\n    this.thumbRef.current.addEventListener('touchstart', this.onMouseDown, supportsPassive ? {\n      passive: false\n    } : false);\n  },\n  beforeUnmount: function beforeUnmount() {\n    this.removeEvents();\n    clearTimeout(this.visibleTimeout);\n  },\n  methods: {\n    delayHidden: function delayHidden() {\n      var _this = this;\n\n      clearTimeout(this.visibleTimeout);\n      this.state.visible = true;\n      this.visibleTimeout = setTimeout(function () {\n        _this.state.visible = false;\n      }, 2000);\n    },\n    onScrollbarTouchStart: function onScrollbarTouchStart(e) {\n      e.preventDefault();\n    },\n    onContainerMouseDown: function onContainerMouseDown(e) {\n      e.stopPropagation();\n      e.preventDefault();\n    },\n    // ======================= Clean =======================\n    patchEvents: function patchEvents() {\n      window.addEventListener('mousemove', this.onMouseMove);\n      window.addEventListener('mouseup', this.onMouseUp);\n      this.thumbRef.current.addEventListener('touchmove', this.onMouseMove, supportsPassive ? {\n        passive: false\n      } : false);\n      this.thumbRef.current.addEventListener('touchend', this.onMouseUp);\n    },\n    removeEvents: function removeEvents() {\n      window.removeEventListener('mousemove', this.onMouseMove);\n      window.removeEventListener('mouseup', this.onMouseUp);\n      this.scrollbarRef.current.removeEventListener('touchstart', this.onScrollbarTouchStart, supportsPassive ? {\n        passive: false\n      } : false);\n      this.thumbRef.current.removeEventListener('touchstart', this.onMouseDown, supportsPassive ? {\n        passive: false\n      } : false);\n      this.thumbRef.current.removeEventListener('touchmove', this.onMouseMove, supportsPassive ? {\n        passive: false\n      } : false);\n      this.thumbRef.current.removeEventListener('touchend', this.onMouseUp);\n      raf.cancel(this.moveRaf);\n    },\n    // ======================= Thumb =======================\n    onMouseDown: function onMouseDown(e) {\n      var onStartMove = this.$props.onStartMove;\n\n      _extends(this.state, {\n        dragging: true,\n        pageY: getPageY(e),\n        startTop: this.getTop()\n      });\n\n      onStartMove();\n      this.patchEvents();\n      e.stopPropagation();\n      e.preventDefault();\n    },\n    onMouseMove: function onMouseMove(e) {\n      var _this$state = this.state,\n          dragging = _this$state.dragging,\n          pageY = _this$state.pageY,\n          startTop = _this$state.startTop;\n      var onScroll = this.$props.onScroll;\n      raf.cancel(this.moveRaf);\n\n      if (dragging) {\n        var offsetY = getPageY(e) - pageY;\n        var newTop = startTop + offsetY;\n        var enableScrollRange = this.getEnableScrollRange();\n        var enableHeightRange = this.getEnableHeightRange();\n        var ptg = enableHeightRange ? newTop / enableHeightRange : 0;\n        var newScrollTop = Math.ceil(ptg * enableScrollRange);\n        this.moveRaf = raf(function () {\n          onScroll(newScrollTop);\n        });\n      }\n    },\n    onMouseUp: function onMouseUp() {\n      var onStopMove = this.$props.onStopMove;\n      this.state.dragging = false;\n      onStopMove();\n      this.removeEvents();\n    },\n    // ===================== Calculate =====================\n    getSpinHeight: function getSpinHeight() {\n      var _this$$props = this.$props,\n          height = _this$$props.height,\n          count = _this$$props.count;\n      var baseHeight = height / count * 10;\n      baseHeight = Math.max(baseHeight, MIN_SIZE);\n      baseHeight = Math.min(baseHeight, height / 2);\n      return Math.floor(baseHeight);\n    },\n    getEnableScrollRange: function getEnableScrollRange() {\n      var _this$$props2 = this.$props,\n          scrollHeight = _this$$props2.scrollHeight,\n          height = _this$$props2.height;\n      return scrollHeight - height || 0;\n    },\n    getEnableHeightRange: function getEnableHeightRange() {\n      var height = this.$props.height;\n      var spinHeight = this.getSpinHeight();\n      return height - spinHeight || 0;\n    },\n    getTop: function getTop() {\n      var scrollTop = this.$props.scrollTop;\n      var enableScrollRange = this.getEnableScrollRange();\n      var enableHeightRange = this.getEnableHeightRange();\n\n      if (scrollTop === 0 || enableScrollRange === 0) {\n        return 0;\n      }\n\n      var ptg = scrollTop / enableScrollRange;\n      return ptg * enableHeightRange;\n    },\n    // Not show scrollbar when height is large than scrollHeight\n    showScroll: function showScroll() {\n      var _this$$props3 = this.$props,\n          height = _this$$props3.height,\n          scrollHeight = _this$$props3.scrollHeight;\n      return scrollHeight > height;\n    }\n  },\n  render: function render() {\n    // eslint-disable-next-line no-unused-vars\n    var _this$state2 = this.state,\n        dragging = _this$state2.dragging,\n        visible = _this$state2.visible;\n    var prefixCls = this.$props.prefixCls;\n    var spinHeight = this.getSpinHeight() + 'px';\n    var top = this.getTop() + 'px';\n    var canScroll = this.showScroll();\n    var mergedVisible = canScroll && visible;\n    return _createVNode(\"div\", {\n      \"ref\": this.scrollbarRef,\n      \"class\": classNames(\"\".concat(prefixCls, \"-scrollbar\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-show\"), canScroll)),\n      \"style\": {\n        width: '8px',\n        top: 0,\n        bottom: 0,\n        right: 0,\n        position: 'absolute',\n        display: mergedVisible ? undefined : 'none'\n      },\n      \"onMousedown\": this.onContainerMouseDown,\n      \"onMousemove\": this.delayHidden\n    }, [_createVNode(\"div\", {\n      \"ref\": this.thumbRef,\n      \"class\": classNames(\"\".concat(prefixCls, \"-scrollbar-thumb\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-thumb-moving\"), dragging)),\n      \"style\": {\n        width: '100%',\n        height: spinHeight,\n        top: top,\n        left: 0,\n        position: 'absolute',\n        background: 'rgba(0, 0, 0, 0.5)',\n        borderRadius: '99px',\n        cursor: 'pointer',\n        userSelect: 'none'\n      },\n      \"onMousedown\": this.onMouseDown\n    }, null)]);\n  }\n});","import { reactive } from 'vue';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n  var instance = new Map();\n  var heights = reactive({});\n  var heightUpdateId = 0;\n\n  function collectHeight() {\n    heightUpdateId += 1;\n    var currentId = heightUpdateId;\n    Promise.resolve().then(function () {\n      // Only collect when it's latest call\n      if (currentId !== heightUpdateId) return; // let changed = false;\n\n      instance.forEach(function (element, key) {\n        if (element && element.offsetParent) {\n          var offsetHeight = element.offsetHeight;\n\n          if (heights[key] !== offsetHeight) {\n            //changed = true;\n            heights[key] = element.offsetHeight;\n          }\n        }\n      });\n    });\n  }\n\n  function setInstance(item, ins) {\n    var key = getKey(item);\n    var origin = instance.get(key);\n\n    if (ins) {\n      instance.set(key, ins);\n      collectHeight();\n    } else {\n      instance.delete(key);\n    } // Instance changed\n\n\n    if (!origin !== !ins) {\n      if (ins) {\n        onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n      } else {\n        onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n      }\n    }\n  }\n\n  return [setInstance, collectHeight, heights];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport raf from '../../_util/raf';\nexport default function useScrollTo(containerRef, mergedData, heights, props, getKey, collectHeight, syncScrollTop, triggerFlash) {\n  var scroll = null;\n  return function (arg) {\n    // When not argument provided, we think dev may want to show the scrollbar\n    if (arg === null || arg === undefined) {\n      triggerFlash();\n      return;\n    } // Normal scroll logic\n\n\n    raf.cancel(scroll);\n    var data = mergedData.value;\n    var itemHeight = props.itemHeight;\n\n    if (typeof arg === 'number') {\n      syncScrollTop(arg);\n    } else if (arg && _typeof(arg) === 'object') {\n      var index;\n      var align = arg.align;\n\n      if ('index' in arg) {\n        index = arg.index;\n      } else {\n        index = data.findIndex(function (item) {\n          return getKey(item) === arg.key;\n        });\n      }\n\n      var _arg$offset = arg.offset,\n          offset = _arg$offset === void 0 ? 0 : _arg$offset; // We will retry 3 times in case dynamic height shaking\n\n      var syncScroll = function syncScroll(times, targetAlign) {\n        if (times < 0 || !containerRef.value) return;\n        var height = containerRef.value.clientHeight;\n        var needCollectHeight = false;\n        var newTargetAlign = targetAlign; // Go to next frame if height not exist\n\n        if (height) {\n          var mergedAlign = targetAlign || align; // Get top & bottom\n\n          var stackTop = 0;\n          var itemTop = 0;\n          var itemBottom = 0;\n          var maxLen = Math.min(data.length, index);\n\n          for (var i = 0; i <= maxLen; i += 1) {\n            var key = getKey(data[i]);\n            itemTop = stackTop;\n            var cacheHeight = heights[key];\n            itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n            stackTop = itemBottom;\n\n            if (i === index && cacheHeight === undefined) {\n              needCollectHeight = true;\n            }\n          } // Scroll to\n\n\n          var targetTop = null;\n\n          switch (mergedAlign) {\n            case 'top':\n              targetTop = itemTop - offset;\n              break;\n\n            case 'bottom':\n              targetTop = itemBottom - height + offset;\n              break;\n\n            default:\n              {\n                var scrollTop = containerRef.value.scrollTop;\n                var scrollBottom = scrollTop + height;\n\n                if (itemTop < scrollTop) {\n                  newTargetAlign = 'top';\n                } else if (itemBottom > scrollBottom) {\n                  newTargetAlign = 'bottom';\n                }\n              }\n          }\n\n          if (targetTop !== null && targetTop !== containerRef.value.scrollTop) {\n            syncScrollTop(targetTop);\n          }\n        } // We will retry since element may not sync height as it described\n\n\n        scroll = raf(function () {\n          if (needCollectHeight) {\n            collectHeight();\n          }\n\n          syncScroll(times - 1, newTargetAlign);\n        });\n      };\n\n      syncScroll(3);\n    }\n  };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","export default (function (isScrollAtTop, isScrollAtBottom) {\n  // Do lock for a wheel when scrolling\n  var lock = false;\n  var lockTimeout = null;\n\n  function lockScroll() {\n    clearTimeout(lockTimeout);\n    lock = true;\n    lockTimeout = setTimeout(function () {\n      lock = false;\n    }, 50);\n  }\n\n  return function (deltaY) {\n    var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var originScroll = // Pass origin wheel when on the top\n    deltaY < 0 && isScrollAtTop.value || deltaY > 0 && isScrollAtBottom.value;\n\n    if (smoothOffset && originScroll) {\n      // No need lock anymore when it's smooth offset from touchMove interval\n      clearTimeout(lockTimeout);\n      lock = false;\n    } else if (!originScroll || lock) {\n      lockScroll();\n    }\n\n    return !lock && originScroll;\n  };\n});","import raf from '../../_util/raf';\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {\n  var offsetRef = 0;\n  var nextFrame = null; // Firefox patch\n\n  var wheelValue = null;\n  var isMouseScroll = false; // Scroll status sync\n\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n  function onWheel(event) {\n    if (!inVirtual.value) return;\n    raf.cancel(nextFrame);\n    var deltaY = event.deltaY;\n    offsetRef += deltaY;\n    wheelValue = deltaY; // Do nothing when scroll at the edge, Skip check when is in scroll\n\n    if (originScroll(deltaY)) return; // Proxy of scroll events\n\n    if (!isFF) {\n      event.preventDefault();\n    }\n\n    nextFrame = raf(function () {\n      // Patch a multiple for Firefox to fix wheel number too small\n      // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n      var patchMultiple = isMouseScroll ? 10 : 1;\n      onWheelDelta(offsetRef * patchMultiple);\n      offsetRef = 0;\n    });\n  } // A patch for firefox\n\n\n  function onFireFoxScroll(event) {\n    if (!inVirtual.value) return;\n    isMouseScroll = event.detail === wheelValue;\n  }\n\n  return [onWheel, onFireFoxScroll];\n}","import supportsPassive from '../../_util/supportsPassive';\nimport { watch, onMounted } from 'vue';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n  var touched = false;\n  var touchY = 0;\n  var element = null; // Smooth scroll\n\n  var interval = null;\n\n  var cleanUpEvents = function cleanUpEvents() {\n    if (element) {\n      element.removeEventListener('touchmove', onTouchMove, supportsPassive ? {\n        passive: false\n      } : false);\n      element.removeEventListener('touchend', onTouchEnd);\n    }\n  };\n\n  var onTouchMove = function onTouchMove(e) {\n    if (touched) {\n      var currentY = Math.ceil(e.touches[0].pageY);\n      var offsetY = touchY - currentY;\n      touchY = currentY;\n\n      if (callback(offsetY)) {\n        e.preventDefault();\n      } // Smooth interval\n\n\n      clearInterval(interval);\n      interval = setInterval(function () {\n        offsetY *= SMOOTH_PTG;\n\n        if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n          clearInterval(interval);\n        }\n      }, 16);\n    }\n  };\n\n  var onTouchEnd = function onTouchEnd() {\n    touched = false;\n    cleanUpEvents();\n  };\n\n  var onTouchStart = function onTouchStart(e) {\n    cleanUpEvents();\n\n    if (e.touches.length === 1 && !touched) {\n      touched = true;\n      touchY = Math.ceil(e.touches[0].pageY);\n      element = e.target;\n      element.addEventListener('touchmove', onTouchMove, supportsPassive ? {\n        passive: false\n      } : false);\n      element.addEventListener('touchend', onTouchEnd);\n    }\n  };\n\n  onMounted(function () {\n    watch(inVirtual, function (val) {\n      listRef.value.removeEventListener('touchstart', onTouchStart, supportsPassive ? {\n        passive: false\n      } : false);\n      cleanUpEvents();\n      clearInterval(interval);\n\n      if (val) {\n        listRef.value.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n          passive: false\n        } : false);\n      }\n    }, {\n      immediate: true\n    });\n  });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { ref, defineComponent, watchEffect, computed, nextTick, onBeforeUnmount, reactive, watch } from 'vue';\nimport Filler from './Filler';\nimport Item from './Item';\nimport ScrollBar from './ScrollBar';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nimport PropTypes from '../_util/vue-types';\nimport classNames from '../_util/classNames';\nimport supportsPassive from '../_util/supportsPassive';\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n  overflowY: 'auto',\n  overflowAnchor: 'none'\n};\n\nfunction renderChildren(list, startIndex, endIndex, setNodeRef, renderFunc, _ref) {\n  var getKey = _ref.getKey;\n  return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n    var eleIndex = startIndex + index;\n    var node = renderFunc(item, eleIndex, {// style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {},\n    });\n    var key = getKey(item);\n    return _createVNode(Item, {\n      \"key\": key,\n      \"setRef\": function setRef(ele) {\n        return setNodeRef(item, ele);\n      }\n    }, {\n      default: function _default() {\n        return [node];\n      }\n    });\n  });\n}\n\nvar List = defineComponent({\n  name: 'List',\n  inheritAttrs: false,\n  props: {\n    prefixCls: PropTypes.string,\n    data: PropTypes.array,\n    height: PropTypes.number,\n    itemHeight: PropTypes.number,\n\n    /** If not match virtual scroll condition, Set List still use height of container. */\n    fullHeight: PropTypes.looseBool,\n    itemKey: {\n      type: [String, Number, Function],\n      required: true\n    },\n    component: {\n      type: [String, Object]\n    },\n\n    /** Set `false` will always use real scroll instead of virtual one */\n    virtual: PropTypes.looseBool,\n    children: PropTypes.func,\n    onScroll: PropTypes.func,\n    onMousedown: PropTypes.func,\n    onMouseenter: PropTypes.func\n  },\n  setup: function setup(props) {\n    // ================================= MISC =================================\n    var useVirtual = computed(function () {\n      var height = props.height,\n          itemHeight = props.itemHeight,\n          virtual = props.virtual;\n      return !!(virtual !== false && height && itemHeight);\n    });\n    var inVirtual = computed(function () {\n      var height = props.height,\n          itemHeight = props.itemHeight,\n          data = props.data;\n      return useVirtual.value && data && itemHeight * data.length > height;\n    });\n    var state = reactive({\n      scrollTop: 0,\n      scrollMoving: false\n    });\n    var mergedData = computed(function () {\n      return props.data || EMPTY_DATA;\n    });\n    var componentRef = ref();\n    var fillerInnerRef = ref();\n    var scrollBarRef = ref(); // Hack on scrollbar to enable flash call\n    // =============================== Item Key ===============================\n\n    var getKey = function getKey(item) {\n      if (typeof props.itemKey === 'function') {\n        return props.itemKey(item);\n      }\n\n      return item === null || item === void 0 ? void 0 : item[props.itemKey];\n    };\n\n    var sharedConfig = {\n      getKey: getKey\n    }; // ================================ Scroll ================================\n\n    function syncScrollTop(newTop) {\n      var value;\n\n      if (typeof newTop === 'function') {\n        value = newTop(state.scrollTop);\n      } else {\n        value = newTop;\n      }\n\n      var alignedTop = keepInRange(value);\n\n      if (componentRef.value) {\n        componentRef.value.scrollTop = alignedTop;\n      }\n\n      state.scrollTop = alignedTop;\n    } // ================================ Height ================================\n\n\n    var _useHeights = useHeights(getKey, null, null),\n        _useHeights2 = _slicedToArray(_useHeights, 3),\n        setInstance = _useHeights2[0],\n        collectHeight = _useHeights2[1],\n        heights = _useHeights2[2];\n\n    var calRes = ref({});\n    watch([inVirtual, useVirtual, function () {\n      return state.scrollTop;\n    }, mergedData, heights, function () {\n      return props.height;\n    }], function () {\n      nextTick(function () {\n        var _a;\n\n        if (!useVirtual.value) {\n          calRes.value = {\n            scrollHeight: undefined,\n            start: 0,\n            end: mergedData.value.length - 1,\n            offset: undefined\n          };\n          return;\n        } // Always use virtual scroll bar in avoid shaking\n\n\n        if (!inVirtual.value) {\n          calRes.value = {\n            scrollHeight: ((_a = fillerInnerRef.value) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0,\n            start: 0,\n            end: mergedData.value.length - 1,\n            offset: undefined\n          };\n          return;\n        }\n\n        var itemTop = 0;\n        var startIndex;\n        var startOffset;\n        var endIndex;\n        var dataLen = mergedData.value.length;\n        var data = mergedData.value;\n\n        for (var i = 0; i < dataLen; i += 1) {\n          var item = data[i];\n          var key = getKey(item);\n          var cacheHeight = heights[key];\n          var currentItemBottom = itemTop + (cacheHeight === undefined ? props.itemHeight : cacheHeight);\n\n          if (currentItemBottom >= state.scrollTop && startIndex === undefined) {\n            startIndex = i;\n            startOffset = itemTop;\n          } // Check item bottom in the range. We will render additional one item for motion usage\n\n\n          if (currentItemBottom > state.scrollTop + props.height && endIndex === undefined) {\n            endIndex = i;\n          }\n\n          itemTop = currentItemBottom;\n        } // Fallback to normal if not match. This code should never reach\n\n        /* istanbul ignore next */\n\n\n        if (startIndex === undefined) {\n          startIndex = 0;\n          startOffset = 0;\n        }\n\n        if (endIndex === undefined) {\n          endIndex = dataLen - 1;\n        } // Give cache to improve scroll experience\n\n\n        endIndex = Math.min(endIndex + 1, dataLen);\n        calRes.value = {\n          scrollHeight: itemTop,\n          start: startIndex,\n          end: endIndex,\n          offset: startOffset\n        };\n      });\n    }, {\n      immediate: true,\n      flush: 'post'\n    }); // =============================== In Range ===============================\n\n    var maxScrollHeight = computed(function () {\n      return calRes.value.scrollHeight - props.height;\n    });\n\n    function keepInRange(newScrollTop) {\n      var newTop = newScrollTop;\n\n      if (!Number.isNaN(maxScrollHeight.value)) {\n        newTop = Math.min(newTop, maxScrollHeight.value);\n      }\n\n      newTop = Math.max(newTop, 0);\n      return newTop;\n    }\n\n    var isScrollAtTop = computed(function () {\n      return state.scrollTop <= 0;\n    });\n    var isScrollAtBottom = computed(function () {\n      return state.scrollTop >= maxScrollHeight.value;\n    });\n    var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom); // ================================ Scroll ================================\n\n    function onScrollBar(newScrollTop) {\n      var newTop = newScrollTop;\n      syncScrollTop(newTop);\n    } // When data size reduce. It may trigger native scroll event back to fit scroll position\n\n\n    function onFallbackScroll(e) {\n      var _a;\n\n      var newScrollTop = e.currentTarget.scrollTop;\n\n      if (Math.abs(newScrollTop - state.scrollTop) >= 1) {\n        syncScrollTop(newScrollTop);\n      } // Trigger origin onScroll\n\n\n      (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e);\n    } // Since this added in global,should use ref to keep update\n\n\n    var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, function (offsetY) {\n      syncScrollTop(function (top) {\n        var newTop = top + offsetY;\n        return newTop;\n      });\n    }),\n        _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n        onRawWheel = _useFrameWheel2[0],\n        onFireFoxScroll = _useFrameWheel2[1]; // Mobile touch move\n\n\n    useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n      if (originScroll(deltaY, smoothOffset)) {\n        return false;\n      }\n\n      onRawWheel({\n        preventDefault: function preventDefault() {},\n        deltaY: deltaY\n      });\n      return true;\n    }); // Firefox only\n\n    function onMozMousePixelScroll(e) {\n      if (useVirtual.value) {\n        e.preventDefault();\n      }\n    }\n\n    var removeEventListener = function removeEventListener() {\n      if (componentRef.value) {\n        componentRef.value.removeEventListener('wheel', onRawWheel, supportsPassive ? {\n          passive: false\n        } : false);\n        componentRef.value.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n        componentRef.value.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n      }\n    };\n\n    watchEffect(function () {\n      nextTick(function () {\n        if (componentRef.value) {\n          removeEventListener();\n          componentRef.value.addEventListener('wheel', onRawWheel, supportsPassive ? {\n            passive: false\n          } : false);\n          componentRef.value.addEventListener('DOMMouseScroll', onFireFoxScroll);\n          componentRef.value.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n        }\n      });\n    });\n    onBeforeUnmount(function () {\n      removeEventListener();\n    }); // ================================= Ref ==================================\n\n    var scrollTo = useScrollTo(componentRef, mergedData, heights, props, getKey, collectHeight, syncScrollTop, function () {\n      var _a;\n\n      (_a = scrollBarRef.value) === null || _a === void 0 ? void 0 : _a.delayHidden();\n    });\n    var componentStyle = computed(function () {\n      var cs = null;\n\n      if (props.height) {\n        cs = _extends(_defineProperty({}, props.fullHeight ? 'height' : 'maxHeight', props.height + 'px'), ScrollStyle);\n\n        if (useVirtual.value) {\n          cs.overflowY = 'hidden';\n\n          if (state.scrollMoving) {\n            cs.pointerEvents = 'none';\n          }\n        }\n      }\n\n      return cs;\n    });\n    return {\n      state: state,\n      mergedData: mergedData,\n      componentStyle: componentStyle,\n      scrollTo: scrollTo,\n      onFallbackScroll: onFallbackScroll,\n      onScrollBar: onScrollBar,\n      componentRef: componentRef,\n      useVirtual: useVirtual,\n      calRes: calRes,\n      collectHeight: collectHeight,\n      setInstance: setInstance,\n      sharedConfig: sharedConfig,\n      scrollBarRef: scrollBarRef,\n      fillerInnerRef: fillerInnerRef\n    };\n  },\n  render: function render() {\n    var _this = this;\n\n    var _a = _extends(_extends({}, this.$props), this.$attrs),\n        _a$prefixCls = _a.prefixCls,\n        prefixCls = _a$prefixCls === void 0 ? 'rc-virtual-list' : _a$prefixCls,\n        height = _a.height,\n        itemHeight = _a.itemHeight,\n        fullHeight = _a.fullHeight,\n        data = _a.data,\n        itemKey = _a.itemKey,\n        virtual = _a.virtual,\n        _a$component = _a.component,\n        Component = _a$component === void 0 ? 'div' : _a$component,\n        onScroll = _a.onScroll,\n        children = _a.children,\n        style = _a.style,\n        className = _a.class,\n        restProps = __rest(_a, [\"prefixCls\", \"height\", \"itemHeight\", \"fullHeight\", \"data\", \"itemKey\", \"virtual\", \"component\", \"onScroll\", \"children\", \"style\", \"class\"]);\n\n    var mergedClassName = classNames(prefixCls, className);\n    var scrollTop = this.state.scrollTop;\n    var _this$calRes = this.calRes,\n        scrollHeight = _this$calRes.scrollHeight,\n        offset = _this$calRes.offset,\n        start = _this$calRes.start,\n        end = _this$calRes.end;\n    var componentStyle = this.componentStyle,\n        onFallbackScroll = this.onFallbackScroll,\n        onScrollBar = this.onScrollBar,\n        useVirtual = this.useVirtual,\n        collectHeight = this.collectHeight,\n        sharedConfig = this.sharedConfig,\n        setInstance = this.setInstance,\n        mergedData = this.mergedData;\n    var listChildren = renderChildren(mergedData, start, end, setInstance, children, sharedConfig);\n    return _createVNode(\"div\", _objectSpread({\n      \"style\": _extends(_extends({}, style), {\n        position: 'relative'\n      }),\n      \"class\": mergedClassName\n    }, restProps), [_createVNode(Component, {\n      \"class\": \"\".concat(prefixCls, \"-holder\"),\n      \"style\": componentStyle,\n      \"ref\": \"componentRef\",\n      \"onScroll\": onFallbackScroll\n    }, {\n      default: function _default() {\n        return [_createVNode(Filler, {\n          \"prefixCls\": prefixCls,\n          \"height\": scrollHeight,\n          \"offset\": offset,\n          \"onInnerResize\": collectHeight,\n          \"ref\": \"fillerInnerRef\"\n        }, {\n          default: function _default() {\n            return [listChildren];\n          }\n        })];\n      }\n    }), useVirtual && _createVNode(ScrollBar, {\n      \"ref\": \"scrollBarRef\",\n      \"prefixCls\": prefixCls,\n      \"scrollTop\": scrollTop,\n      \"height\": height,\n      \"scrollHeight\": scrollHeight,\n      \"count\": mergedData.length,\n      \"onScroll\": onScrollBar,\n      \"onStartMove\": function onStartMove() {\n        _this.state.scrollMoving = true;\n      },\n      \"onStopMove\": function onStopMove() {\n        _this.state.scrollMoving = false;\n      }\n    }, null)]);\n  }\n});\nexport default List;","import { ref, watch } from 'vue';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n  var cacheRef = ref(getValue());\n  watch(condition, function (next, pre) {\n    if (shouldUpdate) {\n      if (shouldUpdate(next, pre)) {\n        cacheRef.value = getValue();\n      }\n    } else {\n      cacheRef.value = getValue();\n    }\n  });\n  return cacheRef;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport TransBtn from './TransBtn';\nimport PropTypes from '../_util/vue-types';\nimport KeyCode from '../_util/KeyCode';\nimport classNames from '../_util/classNames';\nimport pickAttrs from '../_util/pickAttrs';\nimport { isValidElement } from '../_util/props-util';\nimport createRef from '../_util/createRef';\nimport { computed, defineComponent, nextTick, reactive, watch } from 'vue';\nimport List from '../vc-virtual-list/List';\nimport useMemo from '../_util/hooks/useMemo';\nvar OptionListProps = {\n  prefixCls: PropTypes.string,\n  id: PropTypes.string,\n  options: PropTypes.array,\n  flattenOptions: PropTypes.array,\n  height: PropTypes.number,\n  itemHeight: PropTypes.number,\n  values: PropTypes.any,\n  multiple: PropTypes.looseBool,\n  open: PropTypes.looseBool,\n  defaultActiveFirstOption: PropTypes.looseBool,\n  notFoundContent: PropTypes.any,\n  menuItemSelectedIcon: PropTypes.any,\n  childrenAsData: PropTypes.looseBool,\n  searchValue: PropTypes.string,\n  virtual: PropTypes.looseBool,\n  onSelect: PropTypes.func,\n  onToggleOpen: {\n    type: Function\n  },\n\n  /** Tell Select that some value is now active to make accessibility work */\n  onActiveValue: PropTypes.func,\n  onScroll: PropTypes.func,\n\n  /** Tell Select that mouse enter the popup to force re-render */\n  onMouseenter: PropTypes.func\n};\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\n\nvar OptionList = defineComponent({\n  name: 'OptionList',\n  inheritAttrs: false,\n  slots: ['option'],\n  setup: function setup(props) {\n    var itemPrefixCls = computed(function () {\n      return \"\".concat(props.prefixCls, \"-item\");\n    });\n    var memoFlattenOptions = useMemo(function () {\n      return props.flattenOptions;\n    }, [function () {\n      return props.open;\n    }, function () {\n      return props.flattenOptions;\n    }], function (next) {\n      return next[0];\n    }); // =========================== List ===========================\n\n    var listRef = createRef();\n\n    var onListMouseDown = function onListMouseDown(event) {\n      event.preventDefault();\n    };\n\n    var scrollIntoView = function scrollIntoView(index) {\n      if (listRef.current) {\n        listRef.current.scrollTo({\n          index: index\n        });\n      }\n    }; // ========================== Active ==========================\n\n\n    var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n      var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      var len = memoFlattenOptions.value.length;\n\n      for (var i = 0; i < len; i += 1) {\n        var current = (index + i * offset + len) % len;\n        var _memoFlattenOptions$v = memoFlattenOptions.value[current],\n            group = _memoFlattenOptions$v.group,\n            data = _memoFlattenOptions$v.data;\n\n        if (!group && !data.disabled) {\n          return current;\n        }\n      }\n\n      return -1;\n    };\n\n    var state = reactive({\n      activeIndex: getEnabledActiveIndex(0)\n    });\n\n    var setActive = function setActive(index) {\n      var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      state.activeIndex = index;\n      var info = {\n        source: fromKeyboard ? 'keyboard' : 'mouse'\n      }; // Trigger active event\n\n      var flattenItem = memoFlattenOptions.value[index];\n\n      if (!flattenItem) {\n        props.onActiveValue(null, -1, info);\n        return;\n      }\n\n      props.onActiveValue(flattenItem.data.value, index, info);\n    }; // Auto active first item when list length or searchValue changed\n\n\n    watch([function () {\n      return memoFlattenOptions.value.length;\n    }, function () {\n      return props.searchValue;\n    }], function () {\n      setActive(props.defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n    }, {\n      immediate: true\n    }); // Auto scroll to item position in single mode\n\n    watch(function () {\n      return props.open;\n    }, function () {\n      if (!props.multiple && props.open && props.values.size === 1) {\n        var value = Array.from(props.values)[0];\n        var index = memoFlattenOptions.value.findIndex(function (_ref) {\n          var data = _ref.data;\n          return data.value === value;\n        });\n        setActive(index);\n        nextTick(function () {\n          scrollIntoView(index);\n        });\n      } // Force trigger scrollbar visible when open\n\n\n      if (props.open) {\n        nextTick(function () {\n          var _a;\n\n          (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(undefined);\n        });\n      }\n    }, {\n      immediate: true,\n      flush: 'post'\n    }); // ========================== Values ==========================\n\n    var onSelectValue = function onSelectValue(value) {\n      if (value !== undefined) {\n        props.onSelect(value, {\n          selected: !props.values.has(value)\n        });\n      } // Single mode should always close by select\n\n\n      if (!props.multiple) {\n        props.onToggleOpen(false);\n      }\n    };\n\n    function renderItem(index) {\n      var item = memoFlattenOptions.value[index];\n      if (!item) return null;\n      var itemData = item.data || {};\n      var value = itemData.value,\n          label = itemData.label,\n          children = itemData.children;\n      var attrs = pickAttrs(itemData, true);\n      var mergedLabel = props.childrenAsData ? children : label;\n      return item ? _createVNode(\"div\", _objectSpread(_objectSpread({\n        \"aria-label\": typeof mergedLabel === 'string' ? mergedLabel : undefined\n      }, attrs), {}, {\n        \"key\": index,\n        \"role\": \"option\",\n        \"id\": \"\".concat(props.id, \"_list_\").concat(index),\n        \"aria-selected\": props.values.has(value)\n      }), [value]) : null;\n    }\n\n    return {\n      memoFlattenOptions: memoFlattenOptions,\n      renderItem: renderItem,\n      listRef: listRef,\n      state: state,\n      onListMouseDown: onListMouseDown,\n      itemPrefixCls: itemPrefixCls,\n      setActive: setActive,\n      onSelectValue: onSelectValue,\n      onKeydown: function onKeydown(event) {\n        var which = event.which;\n\n        switch (which) {\n          // >>> Arrow keys\n          case KeyCode.UP:\n          case KeyCode.DOWN:\n            {\n              var offset = 0;\n\n              if (which === KeyCode.UP) {\n                offset = -1;\n              } else if (which === KeyCode.DOWN) {\n                offset = 1;\n              }\n\n              if (offset !== 0) {\n                var nextActiveIndex = getEnabledActiveIndex(state.activeIndex + offset, offset);\n                scrollIntoView(nextActiveIndex);\n                setActive(nextActiveIndex, true);\n              }\n\n              break;\n            }\n          // >>> Select\n\n          case KeyCode.ENTER:\n            {\n              // value\n              var item = memoFlattenOptions.value[state.activeIndex];\n\n              if (item && !item.data.disabled) {\n                onSelectValue(item.data.value);\n              } else {\n                onSelectValue(undefined);\n              }\n\n              if (props.open) {\n                event.preventDefault();\n              }\n\n              break;\n            }\n          // >>> Close\n\n          case KeyCode.ESC:\n            {\n              props.onToggleOpen(false);\n\n              if (props.open) {\n                event.stopPropagation();\n              }\n            }\n        }\n      },\n      onKeyup: function onKeyup() {},\n      scrollTo: function scrollTo(index) {\n        scrollIntoView(index);\n      }\n    };\n  },\n  render: function render() {\n    var renderItem = this.renderItem,\n        listRef = this.listRef,\n        onListMouseDown = this.onListMouseDown,\n        itemPrefixCls = this.itemPrefixCls,\n        setActive = this.setActive,\n        onSelectValue = this.onSelectValue,\n        memoFlattenOptions = this.memoFlattenOptions,\n        $slots = this.$slots;\n    var _this$$props = this.$props,\n        id = _this$$props.id,\n        childrenAsData = _this$$props.childrenAsData,\n        values = _this$$props.values,\n        height = _this$$props.height,\n        itemHeight = _this$$props.itemHeight,\n        menuItemSelectedIcon = _this$$props.menuItemSelectedIcon,\n        notFoundContent = _this$$props.notFoundContent,\n        virtual = _this$$props.virtual,\n        onScroll = _this$$props.onScroll,\n        onMouseenter = _this$$props.onMouseenter;\n    var renderOption = $slots.option;\n    var activeIndex = this.state.activeIndex; // ========================== Render ==========================\n\n    if (memoFlattenOptions.length === 0) {\n      return _createVNode(\"div\", {\n        \"role\": \"listbox\",\n        \"id\": \"\".concat(id, \"_list\"),\n        \"class\": \"\".concat(itemPrefixCls, \"-empty\"),\n        \"onMousedown\": onListMouseDown\n      }, [notFoundContent]);\n    }\n\n    return _createVNode(_Fragment, null, [_createVNode(\"div\", {\n      \"role\": \"listbox\",\n      \"id\": \"\".concat(id, \"_list\"),\n      \"style\": {\n        height: 0,\n        width: 0,\n        overflow: 'hidden'\n      }\n    }, [renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)]), _createVNode(List, {\n      \"itemKey\": \"key\",\n      \"ref\": listRef,\n      \"data\": memoFlattenOptions,\n      \"height\": height,\n      \"itemHeight\": itemHeight,\n      \"fullHeight\": false,\n      \"onMousedown\": onListMouseDown,\n      \"onScroll\": onScroll,\n      \"virtual\": virtual,\n      \"onMouseenter\": onMouseenter,\n      \"children\": function children(_ref2, itemIndex) {\n        var _classNames;\n\n        var group = _ref2.group,\n            groupOption = _ref2.groupOption,\n            data = _ref2.data;\n        var label = data.label,\n            key = data.key; // Group\n\n        if (group) {\n          return _createVNode(\"div\", {\n            \"class\": classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"))\n          }, [renderOption ? renderOption(data) : label !== undefined ? label : key]);\n        }\n\n        var disabled = data.disabled,\n            value = data.value,\n            title = data.title,\n            children = data.children,\n            style = data.style,\n            cls = data.class,\n            className = data.className,\n            otherProps = __rest(data, [\"disabled\", \"value\", \"title\", \"children\", \"style\", \"class\", \"className\"]); // Option\n\n\n        var selected = values.has(value);\n        var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n        var optionClassName = classNames(itemPrefixCls, optionPrefixCls, cls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n        var mergedLabel = childrenAsData ? children : label;\n        var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n        var content = mergedLabel || value; // https://github.com/ant-design/ant-design/issues/26717\n\n        var optionTitle = typeof content === 'string' || typeof content === 'number' ? content.toString() : undefined;\n\n        if (title !== undefined) {\n          optionTitle = title;\n        }\n\n        return _createVNode(\"div\", _objectSpread(_objectSpread({}, otherProps), {}, {\n          \"aria-selected\": selected,\n          \"class\": optionClassName,\n          \"title\": optionTitle,\n          \"onMousemove\": function onMousemove(e) {\n            if (otherProps.onMousemove) {\n              otherProps.onMousemove(e);\n            }\n\n            if (activeIndex === itemIndex || disabled) {\n              return;\n            }\n\n            setActive(itemIndex);\n          },\n          \"onClick\": function onClick(e) {\n            if (!disabled) {\n              onSelectValue(value);\n            }\n\n            if (otherProps.onClick) {\n              otherProps.onClick(e);\n            }\n          },\n          \"style\": style\n        }), [_createVNode(\"div\", {\n          \"class\": \"\".concat(optionPrefixCls, \"-content\")\n        }, [renderOption ? renderOption(data) : content]), isValidElement(menuItemSelectedIcon) || selected, iconVisible && _createVNode(TransBtn, {\n          \"class\": \"\".concat(itemPrefixCls, \"-option-state\"),\n          \"customizeIcon\": menuItemSelectedIcon,\n          \"customizeIconProps\": {\n            isSelected: selected\n          }\n        }, {\n          default: function _default() {\n            return [selected ? '✓' : null];\n          }\n        })]);\n      }\n    }, null)]);\n  }\n});\nOptionList.props = OptionListProps;\nexport default OptionList;","var Option = function Option() {\n  return null;\n};\n\nOption.isSelectOption = true;\nOption.displayName = 'ASelectOption';\nexport default Option;","var OptGroup = function OptGroup() {\n  return null;\n};\n\nOptGroup.isSelectOptGroup = true;\nOptGroup.displayName = 'ASelectOptGroup';\nexport default OptGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { flattenChildren, isValidElement } from '../../_util/props-util';\n\nfunction convertNodeToOption(node) {\n  var _a = node,\n      key = _a.key,\n      children = _a.children,\n      _b = _a.props,\n      value = _b.value,\n      disabled = _b.disabled,\n      restProps = __rest(_b, [\"value\", \"disabled\"]);\n\n  var child = children && children.default ? children.default() : undefined;\n  return _extends({\n    key: key,\n    value: value !== undefined ? value : key,\n    children: child,\n    disabled: disabled || disabled === ''\n  }, restProps);\n}\n\nexport function convertChildrenToData(nodes) {\n  var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var dd = flattenChildren(nodes).map(function (node, index) {\n    var _a;\n\n    if (!isValidElement(node) || !node.type) {\n      return null;\n    }\n\n    var isSelectOptGroup = node.type.isSelectOptGroup,\n        key = node.key,\n        children = node.children,\n        props = node.props;\n\n    if (optionOnly || !isSelectOptGroup) {\n      return convertNodeToOption(node);\n    }\n\n    var child = children && children.default ? children.default() : undefined;\n    var label = (props === null || props === void 0 ? void 0 : props.label) || ((_a = children.label) === null || _a === void 0 ? void 0 : _a.call(children)) || key;\n    return _extends(_extends({\n      key: \"__RC_SELECT_GRP__\".concat(key === null ? index : String(key), \"__\")\n    }, props), {\n      label: label,\n      options: convertChildrenToData(child || [])\n    });\n  }).filter(function (data) {\n    return data;\n  });\n  return dd;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  }\n\n  return value !== undefined ? [value] : [];\n}\n/**\n * Convert outer props value into internal value\n */\n\nexport function toInnerValue(value, _ref) {\n  var labelInValue = _ref.labelInValue,\n      combobox = _ref.combobox;\n  var valueMap = new Map();\n\n  if (value === undefined || value === '' && combobox) {\n    return [[], valueMap];\n  }\n\n  var values = Array.isArray(value) ? value : [value];\n  var rawValues = values;\n\n  if (labelInValue) {\n    rawValues = values.filter(function (item) {\n      return item !== null;\n    }).map(function (itemValue) {\n      var key = itemValue.key,\n          val = itemValue.value;\n      var finalVal = val !== undefined ? val : key;\n      valueMap.set(finalVal, itemValue);\n      return finalVal;\n    });\n  }\n\n  return [rawValues, valueMap];\n}\n/**\n * Convert internal value into out event value\n */\n\nexport function toOuterValues(valueList, _ref2) {\n  var optionLabelProp = _ref2.optionLabelProp,\n      labelInValue = _ref2.labelInValue,\n      prevValueMap = _ref2.prevValueMap,\n      options = _ref2.options,\n      getLabeledValue = _ref2.getLabeledValue;\n  var values = valueList;\n\n  if (labelInValue) {\n    values = values.map(function (val) {\n      return getLabeledValue(val, {\n        options: options,\n        prevValueMap: prevValueMap,\n        labelInValue: labelInValue,\n        optionLabelProp: optionLabelProp\n      });\n    });\n  }\n\n  return values;\n}\nexport function removeLastEnabledValue(measureValues, values) {\n  var newValues = _toConsumableArray(values);\n\n  var removeIndex;\n\n  for (removeIndex = measureValues.length - 1; removeIndex >= 0; removeIndex -= 1) {\n    if (!measureValues[removeIndex].disabled) {\n      break;\n    }\n  }\n\n  var removedValue = null;\n\n  if (removeIndex !== -1) {\n    removedValue = newValues[removeIndex];\n    newValues.splice(removeIndex, 1);\n  }\n\n  return {\n    values: newValues,\n    removedValue: removedValue\n  };\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nvar uuid = 0;\n/** Get unique id for accessibility usage */\n\nexport function getUUID() {\n  var retId; // Test never reach\n\n  /* istanbul ignore if */\n\n  if (isBrowserClient) {\n    retId = uuid;\n    uuid += 1;\n  } else {\n    retId = 'TEST_OR_SSR';\n  }\n\n  return retId;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { warning } from '../../vc-util/warning';\nimport { cloneVNode, isVNode } from 'vue';\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n  var key = data.key;\n  var value;\n\n  if ('value' in data) {\n    value = data.value;\n  }\n\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n\n  if (value !== undefined) {\n    return value;\n  }\n\n  return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n  var flattenList = [];\n\n  function dig(list, isGroupOption) {\n    list.forEach(function (data) {\n      if (isGroupOption || !('options' in data)) {\n        // Option\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          groupOption: isGroupOption,\n          data: data\n        });\n      } else {\n        // Option Group\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          group: true,\n          data: data\n        });\n        dig(data.options, true);\n      }\n    });\n  }\n\n  dig(options, false);\n  return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n  var newOption = _extends({}, option);\n\n  if (!('props' in newOption)) {\n    Object.defineProperty(newOption, 'props', {\n      get: function get() {\n        warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n        return newOption;\n      }\n    });\n  }\n\n  return newOption;\n}\n\nexport function findValueOption(values, options) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref$prevValueOptions = _ref.prevValueOptions,\n      prevValueOptions = _ref$prevValueOptions === void 0 ? [] : _ref$prevValueOptions;\n\n  var optionMap = new Map();\n  options.forEach(function (flattenItem) {\n    if (!flattenItem.group) {\n      var data = flattenItem.data; // Check if match\n\n      optionMap.set(data.value, data);\n    }\n  });\n  return values.map(function (val) {\n    var option = optionMap.get(val); // Fallback to try to find prev options\n\n    if (!option) {\n      option = _extends({}, prevValueOptions.find(function (opt) {\n        return opt._INTERNAL_OPTION_VALUE_ === val;\n      }));\n    }\n\n    return injectPropsWithOption(option);\n  });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref2) {\n  var options = _ref2.options,\n      prevValueMap = _ref2.prevValueMap,\n      labelInValue = _ref2.labelInValue,\n      optionLabelProp = _ref2.optionLabelProp;\n  var item = findValueOption([value], options)[0];\n  var result = {\n    value: value\n  };\n  var prevValItem = labelInValue ? prevValueMap.get(value) : undefined;\n\n  if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n    result.label = prevValItem.label;\n\n    if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n      warning(false, '`label` of `value` is not same as `label` in Select options.');\n    }\n  } else if (item && optionLabelProp in item) {\n    if (Array.isArray(item[optionLabelProp])) {\n      result.label = isVNode(item[optionLabelProp][0]) ? cloneVNode(item[optionLabelProp][0]) : item[optionLabelProp];\n    } else {\n      result.label = item[optionLabelProp];\n    }\n  } else {\n    result.label = value;\n    result.isCacheable = true;\n  } // Used for motion control\n\n\n  result.key = result.value;\n  return result;\n};\n\nfunction toRawString(content) {\n  return toArray(content).map(function (item) {\n    var _a, _b;\n\n    if (isVNode(item)) {\n      return ((_a = item === null || item === void 0 ? void 0 : item.el) === null || _a === void 0 ? void 0 : _a.innerText) || ((_b = item === null || item === void 0 ? void 0 : item.el) === null || _b === void 0 ? void 0 : _b.wholeText);\n    } else {\n      return item;\n    }\n  }).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n  return function (searchValue, option) {\n    var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n    if ('options' in option) {\n      return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n    } // Option value search\n\n\n    var rawValue = option[optionFilterProp];\n    var value = toRawString(rawValue).toLowerCase();\n    return value.includes(lowerSearchText);\n  };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref3) {\n  var optionFilterProp = _ref3.optionFilterProp,\n      filterOption = _ref3.filterOption;\n  var filteredOptions = [];\n  var filterFunc;\n\n  if (filterOption === false) {\n    return _toConsumableArray(options);\n  }\n\n  if (typeof filterOption === 'function') {\n    filterFunc = filterOption;\n  } else {\n    filterFunc = getFilterFunction(optionFilterProp);\n  }\n\n  options.forEach(function (item) {\n    // Group should check child options\n    if ('options' in item) {\n      // Check group first\n      var matchGroup = filterFunc(searchValue, item);\n\n      if (matchGroup) {\n        filteredOptions.push(item);\n      } else {\n        // Check option\n        var subOptions = item.options.filter(function (subItem) {\n          return filterFunc(searchValue, subItem);\n        });\n\n        if (subOptions.length) {\n          filteredOptions.push(_extends(_extends({}, item), {\n            options: subOptions\n          }));\n        }\n      }\n\n      return;\n    }\n\n    if (filterFunc(searchValue, injectPropsWithOption(item))) {\n      filteredOptions.push(item);\n    }\n  });\n  return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n  if (!tokens || !tokens.length) {\n    return null;\n  }\n\n  var match = false;\n\n  function separate(str, _ref4) {\n    var _ref5 = _toArray(_ref4),\n        token = _ref5[0],\n        restTokens = _ref5.slice(1);\n\n    if (!token) {\n      return [str];\n    }\n\n    var list = str.split(token);\n    match = match || list.length > 1;\n    return list.reduce(function (prevList, unitStr) {\n      return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n    }, []).filter(function (unit) {\n      return unit;\n    });\n  }\n\n  var list = separate(text, tokens);\n  return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n  var option = findValueOption([value], options)[0];\n  return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n  var values = toArray(value).slice().sort();\n\n  var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n  var optionValues = new Set();\n  options.forEach(function (opt) {\n    if (opt.options) {\n      opt.options.forEach(function (subOpt) {\n        optionValues.add(subOpt.value);\n      });\n    } else {\n      optionValues.add(opt.value);\n    }\n  }); // Fill missing value\n\n  values.forEach(function (item) {\n    var val = labelInValue ? item.value : item;\n\n    if (!optionValues.has(val)) {\n      var _ref6;\n\n      cloneOptions.push(labelInValue ? (_ref6 = {}, _defineProperty(_ref6, optionLabelProp, item.label), _defineProperty(_ref6, \"value\", val), _ref6) : {\n        value: val\n      });\n    }\n  });\n  return cloneOptions;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { filterEmpty } from './props-util';\nimport { cloneVNode } from 'vue';\nimport warning from './warning';\nexport function cloneElement(vnode) {\n  var nodeProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  var mergeRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  var ele = vnode;\n\n  if (Array.isArray(vnode)) {\n    ele = filterEmpty(vnode)[0];\n  }\n\n  if (!ele) {\n    return null;\n  }\n\n  var node = cloneVNode(ele, nodeProps, mergeRef); // cloneVNode内部是合并属性，这里改成覆盖属性\n\n  node.props = override ? _extends(_extends({}, node.props), nodeProps) : node.props;\n  warning(_typeof(node.props.class) !== 'object', 'class must be string');\n  return node;\n}\nexport function cloneVNodes(vnodes) {\n  var nodeProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  return vnodes.map(function (vnode) {\n    return cloneElement(vnode, nodeProps, override);\n  });\n}","function onCompositionStart(e) {\n  e.target.composing = true;\n}\n\nfunction onCompositionEnd(e) {\n  // prevent triggering an input event for no reason\n  if (!e.target.composing) return;\n  e.target.composing = false;\n  trigger(e.target, 'input');\n}\n\nfunction trigger(el, type) {\n  var e = document.createEvent('HTMLEvents');\n  e.initEvent(type, true, true);\n  el.dispatchEvent(e);\n}\n\nexport function addEventListener(el, event, handler, options) {\n  el.addEventListener(event, handler, options);\n}\nvar antInput = {\n  created: function created(el, binding) {\n    if (!binding.modifiers || !binding.modifiers.lazy) {\n      addEventListener(el, 'compositionstart', onCompositionStart);\n      addEventListener(el, 'compositionend', onCompositionEnd); // Safari < 10.2 & UIWebView doesn't fire compositionend when\n      // switching focus before confirming composition choice\n      // this also fixes the issue where some browsers e.g. iOS Chrome\n      // fires \"change\" instead of \"input\" on autocomplete.\n\n      addEventListener(el, 'change', onCompositionEnd);\n    }\n  }\n};\nexport default antInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { cloneElement } from '../../_util/vnode';\nimport { defineComponent, getCurrentInstance, inject, onMounted, withDirectives } from 'vue';\nimport PropTypes from '../../_util/vue-types';\nimport antInput from '../../_util/antInputDirective';\nimport classNames from '../../_util/classNames';\nvar Input = defineComponent({\n  name: 'Input',\n  inheritAttrs: false,\n  props: {\n    inputRef: PropTypes.any,\n    prefixCls: PropTypes.string,\n    id: PropTypes.string,\n    inputElement: PropTypes.any,\n    disabled: PropTypes.looseBool,\n    autofocus: PropTypes.looseBool,\n    autocomplete: PropTypes.string,\n    editable: PropTypes.looseBool,\n    accessibilityIndex: PropTypes.number,\n    value: PropTypes.string,\n    open: PropTypes.looseBool,\n    tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n    /** Pass accessibility props to input */\n    attrs: PropTypes.object,\n    onKeydown: PropTypes.func,\n    onMousedown: PropTypes.func,\n    onChange: PropTypes.func,\n    onPaste: PropTypes.func,\n    onCompositionstart: PropTypes.func,\n    onCompositionend: PropTypes.func,\n    onFocus: PropTypes.func,\n    onBlur: PropTypes.func\n  },\n  setup: function setup(props) {\n    if (process.env.NODE_ENV === 'test') {\n      onMounted(function () {\n        var ins = getCurrentInstance();\n\n        if (props.autofocus) {\n          if (ins.vnode && ins.vnode.el) {\n            ins.vnode.el.focus();\n          }\n        }\n      });\n    }\n\n    return {\n      blurTimeout: null,\n      VCSelectContainerEvent: inject('VCSelectContainerEvent')\n    };\n  },\n  render: function render() {\n    var _this = this;\n\n    var _a;\n\n    var _this$$props = this.$props,\n        prefixCls = _this$$props.prefixCls,\n        id = _this$$props.id,\n        inputElement = _this$$props.inputElement,\n        disabled = _this$$props.disabled,\n        tabindex = _this$$props.tabindex,\n        autofocus = _this$$props.autofocus,\n        autocomplete = _this$$props.autocomplete,\n        editable = _this$$props.editable,\n        accessibilityIndex = _this$$props.accessibilityIndex,\n        value = _this$$props.value,\n        _onKeydown = _this$$props.onKeydown,\n        _onMousedown = _this$$props.onMousedown,\n        onChange = _this$$props.onChange,\n        onPaste = _this$$props.onPaste,\n        _onCompositionstart = _this$$props.onCompositionstart,\n        _onCompositionend = _this$$props.onCompositionend,\n        _onFocus = _this$$props.onFocus,\n        _onBlur = _this$$props.onBlur,\n        open = _this$$props.open,\n        inputRef = _this$$props.inputRef,\n        attrs = _this$$props.attrs;\n    var inputNode = inputElement || withDirectives(_createVNode(\"input\", null, null), [[antInput]]);\n    var inputProps = inputNode.props || {};\n    var onOriginKeyDown = inputProps.onKeydown,\n        onOriginInput = inputProps.onInput,\n        onOriginFocus = inputProps.onFocus,\n        onOriginBlur = inputProps.onBlur,\n        onOriginMouseDown = inputProps.onMousedown,\n        onOriginCompositionStart = inputProps.onCompositionstart,\n        onOriginCompositionEnd = inputProps.onCompositionend,\n        style = inputProps.style;\n    inputNode = cloneElement(inputNode, _extends(_extends(_extends({\n      id: id,\n      ref: inputRef,\n      disabled: disabled,\n      tabindex: tabindex,\n      autocomplete: autocomplete || 'off',\n      autofocus: autofocus,\n      class: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_a = inputNode === null || inputNode === void 0 ? void 0 : inputNode.props) === null || _a === void 0 ? void 0 : _a.className),\n      style: _extends(_extends({}, style), {\n        opacity: editable ? null : 0\n      }),\n      role: 'combobox',\n      'aria-expanded': open,\n      'aria-haspopup': 'listbox',\n      'aria-owns': \"\".concat(id, \"_list\"),\n      'aria-autocomplete': 'list',\n      'aria-controls': \"\".concat(id, \"_list\"),\n      'aria-activedescendant': \"\".concat(id, \"_list_\").concat(accessibilityIndex)\n    }, attrs), {\n      value: editable ? value : '',\n      readonly: !editable,\n      unselectable: !editable ? 'on' : null,\n      onKeydown: function onKeydown(event) {\n        _onKeydown(event);\n\n        if (onOriginKeyDown) {\n          onOriginKeyDown(event);\n        }\n      },\n      onMousedown: function onMousedown(event) {\n        _onMousedown(event);\n\n        if (onOriginMouseDown) {\n          onOriginMouseDown(event);\n        }\n      },\n      onInput: function onInput(event) {\n        onChange(event);\n\n        if (onOriginInput) {\n          onOriginInput(event);\n        }\n      },\n      onCompositionstart: function onCompositionstart(event) {\n        _onCompositionstart(event);\n\n        if (onOriginCompositionStart) {\n          onOriginCompositionStart(event);\n        }\n      },\n      onCompositionend: function onCompositionend(event) {\n        _onCompositionend(event);\n\n        if (onOriginCompositionEnd) {\n          onOriginCompositionEnd(event);\n        }\n      },\n      onPaste: onPaste,\n      onFocus: function onFocus() {\n        var _a;\n\n        clearTimeout(_this.blurTimeout);\n        onOriginFocus && onOriginFocus(arguments.length <= 0 ? undefined : arguments[0]);\n        _onFocus && _onFocus(arguments.length <= 0 ? undefined : arguments[0]);\n        (_a = _this.VCSelectContainerEvent) === null || _a === void 0 ? void 0 : _a.focus(arguments.length <= 0 ? undefined : arguments[0]);\n      },\n      onBlur: function onBlur() {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n\n        _this.blurTimeout = setTimeout(function () {\n          var _a;\n\n          onOriginBlur && onOriginBlur(args[0]);\n          _onBlur && _onBlur(args[0]);\n          (_a = _this.VCSelectContainerEvent) === null || _a === void 0 ? void 0 : _a.blur(args[0]);\n        }, 200);\n      }\n    }), inputNode.type === 'textarea' ? {} : {\n      type: 'search'\n    }), true, true);\n    return inputNode;\n  }\n}); // Input.props = {\n//   inputRef: PropTypes.any,\n//   prefixCls: PropTypes.string,\n//   id: PropTypes.string,\n//   inputElement: PropTypes.any,\n//   disabled: PropTypes.looseBool,\n//   autofocus: PropTypes.looseBool,\n//   autocomplete: PropTypes.string,\n//   editable: PropTypes.looseBool,\n//   accessibilityIndex: PropTypes.number,\n//   value: PropTypes.string,\n//   open: PropTypes.looseBool,\n//   tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n//   /** Pass accessibility props to input */\n//   attrs: PropTypes.object,\n//   onKeydown: PropTypes.func,\n//   onMousedown: PropTypes.func,\n//   onChange: PropTypes.func,\n//   onPaste: PropTypes.func,\n//   onCompositionstart: PropTypes.func,\n//   onCompositionend: PropTypes.func,\n//   onFocus: PropTypes.func,\n//   onBlur: PropTypes.func,\n// };\n\nexport default Input;","import { computed, defineComponent, inject, provide } from 'vue';\nvar OverflowContextProviderKey = Symbol('OverflowContextProviderKey');\nexport var OverflowContextProvider = defineComponent({\n  name: 'OverflowContextProvider',\n  inheritAttrs: false,\n  props: {\n    value: {\n      type: Object\n    }\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n    provide(OverflowContextProviderKey, computed(function () {\n      return props.value;\n    }));\n    return function () {\n      var _a;\n\n      return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n    };\n  }\n});\nexport var useInjectOverflowContext = function useInjectOverflowContext() {\n  return inject(OverflowContextProviderKey, computed(function () {\n    return null;\n  }));\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { computed, defineComponent, onUnmounted, ref } from 'vue';\nimport ResizeObserver from '../vc-resize-observer';\nimport classNames from '../_util/classNames';\nimport PropTypes from '../_util/vue-types';\nvar UNDEFINED = undefined;\nexport default defineComponent({\n  name: 'Item',\n  props: {\n    prefixCls: String,\n    item: PropTypes.any,\n    renderItem: Function,\n    responsive: Boolean,\n    itemKey: {\n      type: [String, Number]\n    },\n    registerSize: Function,\n    display: Boolean,\n    order: Number,\n    component: PropTypes.any,\n    invalidate: Boolean\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots,\n        expose = _ref.expose;\n    var mergedHidden = computed(function () {\n      return props.responsive && !props.display;\n    });\n    var itemNodeRef = ref();\n    expose({\n      itemNodeRef: itemNodeRef\n    }); // ================================ Effect ================================\n\n    function internalRegisterSize(width) {\n      props.registerSize(props.itemKey, width);\n    }\n\n    onUnmounted(function () {\n      internalRegisterSize(null);\n    });\n    return function () {\n      var _a;\n\n      var prefixCls = props.prefixCls,\n          invalidate = props.invalidate,\n          item = props.item,\n          renderItem = props.renderItem,\n          responsive = props.responsive,\n          registerSize = props.registerSize,\n          itemKey = props.itemKey,\n          display = props.display,\n          order = props.order,\n          _props$component = props.component,\n          Component = _props$component === void 0 ? 'div' : _props$component,\n          restProps = __rest(props, [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"registerSize\", \"itemKey\", \"display\", \"order\", \"component\"]);\n\n      var children = (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots); // ================================ Render ================================\n\n      var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n      var overflowStyle;\n\n      if (!invalidate) {\n        overflowStyle = {\n          opacity: mergedHidden.value ? 0 : 1,\n          height: mergedHidden.value ? 0 : UNDEFINED,\n          overflowY: mergedHidden.value ? 'hidden' : UNDEFINED,\n          order: responsive ? order : UNDEFINED,\n          pointerEvents: mergedHidden.value ? 'none' : UNDEFINED,\n          position: mergedHidden.value ? 'absolute' : UNDEFINED\n        };\n      }\n\n      var overflowProps = {};\n\n      if (mergedHidden.value) {\n        overflowProps['aria-hidden'] = true;\n      }\n\n      var itemNode = _createVNode(Component, _objectSpread(_objectSpread(_objectSpread({\n        \"class\": classNames(!invalidate && prefixCls),\n        \"style\": overflowStyle\n      }, overflowProps), restProps), {}, {\n        \"ref\": itemNodeRef\n      }), {\n        default: function _default() {\n          return [childNode];\n        }\n      }); // 使用 disabled  避免结构不一致 导致子组件 rerender\n\n\n      return _createVNode(ResizeObserver, {\n        \"disabled\": !responsive,\n        \"onResize\": function onResize(_ref2) {\n          var offsetWidth = _ref2.offsetWidth;\n          internalRegisterSize(offsetWidth);\n        }\n      }, {\n        default: function _default() {\n          return [itemNode];\n        }\n      });\n    };\n  }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { defineComponent } from 'vue';\nimport classNames from '../_util/classNames';\nimport PropTypes from '../_util/vue-types';\nimport { OverflowContextProvider, useInjectOverflowContext } from './context';\nimport Item from './Item';\nexport default defineComponent({\n  name: 'RawItem',\n  inheritAttrs: false,\n  props: {\n    component: PropTypes.any,\n    title: PropTypes.any\n  },\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots,\n        attrs = _ref.attrs;\n    var context = useInjectOverflowContext();\n    return function () {\n      var _a, _b; // Render directly when context not provided\n\n\n      if (!context.value) {\n        var _props$component = props.component,\n            Component = _props$component === void 0 ? 'div' : _props$component,\n            _restProps = __rest(props, [\"component\"]);\n\n        return _createVNode(Component, _objectSpread(_objectSpread({}, _restProps), attrs), {\n          default: function _default() {\n            return [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)];\n          }\n        });\n      }\n\n      var _c = context.value,\n          contextClassName = _c.className,\n          restContext = __rest(_c, [\"className\"]);\n\n      var className = attrs.class,\n          restProps = __rest(attrs, [\"class\"]); // Do not pass context to sub item to avoid multiple measure\n\n\n      return _createVNode(OverflowContextProvider, {\n        \"value\": null\n      }, {\n        default: function _default() {\n          return [_createVNode(Item, _objectSpread(_objectSpread(_objectSpread({\n            \"class\": classNames(contextClassName, className)\n          }, restContext), restProps), props), {\n            default: function _default() {\n              return [(_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots)];\n            }\n          })];\n        }\n      });\n    };\n  }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { computed, defineComponent, ref, watch } from 'vue';\nimport ResizeObserver from '../vc-resize-observer';\nimport classNames from '../_util/classNames';\nimport PropTypes from '../_util/vue-types';\nimport { OverflowContextProvider } from './context';\nimport Item from './Item';\nimport RawItem from './RawItem';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\n\nfunction defaultRenderRest(omittedItems) {\n  return \"+ \".concat(omittedItems.length, \" ...\");\n}\n\nvar Overflow = defineComponent({\n  name: 'Overflow',\n  inheritAttrs: false,\n  props: {\n    prefixCls: String,\n    data: Array,\n    itemKey: [String, Number, Function],\n\n    /** Used for `responsive`. It will limit render node to avoid perf issue */\n    itemWidth: {\n      type: Number,\n      default: 10\n    },\n    renderItem: Function,\n\n    /** @private Do not use in your production. Render raw node that need wrap Item by developer self */\n    renderRawItem: Function,\n    maxCount: [Number, String],\n    renderRest: Function,\n\n    /** @private Do not use in your production. Render raw node that need wrap Item by developer self */\n    renderRawRest: Function,\n    suffix: PropTypes.any,\n    component: String,\n    itemComponent: PropTypes.any,\n\n    /** @private This API may be refactor since not well design */\n    onVisibleChange: Function,\n\n    /** When set to `full`, ssr will render full items by default and remove at client side */\n    ssr: String\n  },\n  emits: ['visibleChange'],\n  setup: function setup(props, _ref) {\n    var attrs = _ref.attrs,\n        emit = _ref.emit;\n    var fullySSR = computed(function () {\n      return props.ssr === 'full';\n    });\n    var containerWidth = ref(null);\n    var mergedContainerWidth = computed(function () {\n      return containerWidth.value || 0;\n    });\n    var itemWidths = ref(new Map());\n    var prevRestWidth = ref(0);\n    var restWidth = ref(0);\n    var suffixWidth = ref(0);\n    var suffixFixedStart = ref(null);\n    var displayCount = ref(null);\n    var mergedDisplayCount = computed(function () {\n      if (displayCount.value === null && fullySSR.value) {\n        return Number.MAX_SAFE_INTEGER;\n      }\n\n      return displayCount.value || 0;\n    });\n    var restReady = ref(false);\n    var itemPrefixCls = computed(function () {\n      return \"\".concat(props.prefixCls, \"-item\");\n    }); // Always use the max width to avoid blink\n\n    var mergedRestWidth = computed(function () {\n      return Math.max(prevRestWidth.value, restWidth.value);\n    }); // ================================= Data =================================\n\n    var isResponsive = computed(function () {\n      return !!(props.data.length && props.maxCount === RESPONSIVE);\n    });\n    var invalidate = computed(function () {\n      return props.maxCount === INVALIDATE;\n    });\n    /**\n     * When is `responsive`, we will always render rest node to get the real width of it for calculation\n     */\n\n    var showRest = computed(function () {\n      return isResponsive.value || typeof props.maxCount === 'number' && props.data.length > props.maxCount;\n    });\n    var mergedData = computed(function () {\n      var items = props.data;\n\n      if (isResponsive.value) {\n        if (containerWidth.value === null && fullySSR.value) {\n          items = props.data;\n        } else {\n          items = props.data.slice(0, Math.min(props.data.length, mergedContainerWidth.value / props.itemWidth));\n        }\n      } else if (typeof props.maxCount === 'number') {\n        items = props.data.slice(0, props.maxCount);\n      }\n\n      return items;\n    });\n    var omittedItems = computed(function () {\n      if (isResponsive.value) {\n        return props.data.slice(mergedDisplayCount.value + 1);\n      }\n\n      return props.data.slice(mergedData.value.length);\n    }); // ================================= Item =================================\n\n    var getKey = function getKey(item, index) {\n      var _a, _b;\n\n      if (typeof props.itemKey === 'function') {\n        return props.itemKey(item);\n      }\n\n      return (_b = props.itemKey && ((_a = item) === null || _a === void 0 ? void 0 : _a[props.itemKey])) !== null && _b !== void 0 ? _b : index;\n    };\n\n    var mergedRenderItem = computed(function () {\n      return props.renderItem || function (item) {\n        return item;\n      };\n    });\n\n    var updateDisplayCount = function updateDisplayCount(count, notReady) {\n      displayCount.value = count;\n\n      if (!notReady) {\n        restReady.value = count < props.data.length - 1;\n        emit('visibleChange', count);\n      }\n    }; // ================================= Size =================================\n\n\n    var onOverflowResize = function onOverflowResize(_, element) {\n      containerWidth.value = element.clientWidth;\n    };\n\n    var registerSize = function registerSize(key, width) {\n      var clone = new Map(itemWidths.value);\n\n      if (width === null) {\n        clone.delete(key);\n      } else {\n        clone.set(key, width);\n      }\n\n      itemWidths.value = clone;\n    };\n\n    var registerOverflowSize = function registerOverflowSize(_, width) {\n      prevRestWidth.value = restWidth.value;\n      restWidth.value = width;\n    };\n\n    var registerSuffixSize = function registerSuffixSize(_, width) {\n      suffixWidth.value = width;\n    }; // ================================ Effect ================================\n\n\n    var getItemWidth = function getItemWidth(index) {\n      return itemWidths.value.get(getKey(mergedData.value[index], index));\n    };\n\n    watch([mergedContainerWidth, itemWidths, restWidth, suffixWidth, function () {\n      return props.itemKey;\n    }, mergedData], function () {\n      if (mergedContainerWidth.value && mergedRestWidth.value && mergedData.value) {\n        var totalWidth = suffixWidth.value;\n        var len = mergedData.value.length;\n        var lastIndex = len - 1; // When data count change to 0, reset this since not loop will reach\n\n        if (!len) {\n          updateDisplayCount(0);\n          suffixFixedStart.value = null;\n          return;\n        }\n\n        for (var i = 0; i < len; i += 1) {\n          var currentItemWidth = getItemWidth(i); // Break since data not ready\n\n          if (currentItemWidth === undefined) {\n            updateDisplayCount(i - 1, true);\n            break;\n          } // Find best match\n\n\n          totalWidth += currentItemWidth;\n\n          if ( // Only one means `totalWidth` is the final width\n          lastIndex === 0 && totalWidth <= mergedContainerWidth.value || i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth.value) {\n            // Additional check if match the end\n            updateDisplayCount(lastIndex);\n            suffixFixedStart.value = null;\n            break;\n          } else if (totalWidth + mergedRestWidth.value > mergedContainerWidth.value) {\n            // Can not hold all the content to show rest\n            updateDisplayCount(i - 1);\n            suffixFixedStart.value = totalWidth - currentItemWidth - suffixWidth.value + restWidth.value;\n            break;\n          }\n        }\n\n        if (props.suffix && getItemWidth(0) + suffixWidth.value > mergedContainerWidth.value) {\n          suffixFixedStart.value = null;\n        }\n      }\n    });\n    return function () {\n      // ================================ Render ================================\n      var displayRest = restReady.value && !!omittedItems.value.length;\n      var itemComponent = props.itemComponent,\n          renderRawItem = props.renderRawItem,\n          renderRawRest = props.renderRawRest,\n          renderRest = props.renderRest,\n          _props$prefixCls = props.prefixCls,\n          prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n          suffix = props.suffix,\n          _props$component = props.component,\n          Component = _props$component === void 0 ? 'div' : _props$component;\n\n      var className = attrs.class,\n          style = attrs.style,\n          restAttrs = __rest(attrs, [\"class\", \"style\"]);\n\n      var suffixStyle = {};\n\n      if (suffixFixedStart.value !== null && isResponsive.value) {\n        suffixStyle = {\n          position: 'absolute',\n          left: \"\".concat(suffixFixedStart.value, \"px\"),\n          top: 0\n        };\n      }\n\n      var itemSharedProps = {\n        prefixCls: itemPrefixCls.value,\n        responsive: isResponsive.value,\n        component: itemComponent,\n        invalidate: invalidate.value\n      }; // >>>>> Choice render fun by `renderRawItem`\n\n      var internalRenderItemNode = renderRawItem ? function (item, index) {\n        var key = getKey(item, index);\n        return _createVNode(OverflowContextProvider, {\n          \"key\": key,\n          \"value\": _extends(_extends({}, itemSharedProps), {\n            order: index,\n            item: item,\n            itemKey: key,\n            registerSize: registerSize,\n            display: index <= mergedDisplayCount.value\n          })\n        }, {\n          default: function _default() {\n            return [renderRawItem(item, index)];\n          }\n        });\n      } : function (item, index) {\n        var key = getKey(item, index);\n        return _createVNode(Item, _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n          \"order\": index,\n          \"key\": key,\n          \"item\": item,\n          \"renderItem\": mergedRenderItem.value,\n          \"itemKey\": key,\n          \"registerSize\": registerSize,\n          \"display\": index <= mergedDisplayCount.value\n        }), null);\n      }; // >>>>> Rest node\n\n      var restNode;\n      var restContextProps = {\n        order: displayRest ? mergedDisplayCount.value : Number.MAX_SAFE_INTEGER,\n        className: \"\".concat(itemPrefixCls.value, \"-rest\"),\n        registerSize: registerOverflowSize,\n        display: displayRest\n      };\n\n      if (!renderRawRest) {\n        var mergedRenderRest = renderRest || defaultRenderRest;\n        restNode = _createVNode(Item, _objectSpread(_objectSpread({}, itemSharedProps), restContextProps), {\n          default: function _default() {\n            return [typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems.value) : mergedRenderRest];\n          }\n        });\n      } else if (renderRawRest) {\n        restNode = _createVNode(OverflowContextProvider, {\n          \"value\": _extends(_extends({}, itemSharedProps), restContextProps)\n        }, {\n          default: function _default() {\n            return [renderRawRest(omittedItems.value)];\n          }\n        });\n      }\n\n      var overflowNode = _createVNode(Component, _objectSpread({\n        \"class\": classNames(!invalidate.value && prefixCls, className),\n        \"style\": style\n      }, restAttrs), {\n        default: function _default() {\n          return [mergedData.value.map(internalRenderItemNode), showRest.value ? restNode : null, suffix && _createVNode(Item, _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n            \"order\": mergedDisplayCount.value,\n            \"class\": \"\".concat(itemPrefixCls.value, \"-suffix\"),\n            \"registerSize\": registerSuffixSize,\n            \"display\": true,\n            \"style\": suffixStyle\n          }), {\n            default: function _default() {\n              return [suffix];\n            }\n          })];\n        }\n      }); // 使用 disabled  避免结构不一致 导致子组件 rerender\n\n\n      return _createVNode(ResizeObserver, {\n        \"disabled\": !isResponsive.value,\n        \"onResize\": onOverflowResize\n      }, {\n        default: function _default() {\n          return [overflowNode];\n        }\n      });\n    };\n  }\n});\nOverflow.Item = RawItem;\nOverflow.RESPONSIVE = RESPONSIVE;\nOverflow.INVALIDATE = INVALIDATE;\nexport default Overflow;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Fragment as _Fragment, createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\nimport TransBtn from '../TransBtn';\nimport Input from './Input';\nimport { computed, defineComponent, onMounted, ref, watch } from 'vue';\nimport classNames from '../../_util/classNames';\nimport pickAttrs from '../../_util/pickAttrs';\nimport PropTypes from '../../_util/vue-types';\nimport Overflow from '../../vc-overflow';\nvar props = {\n  id: PropTypes.string,\n  prefixCls: PropTypes.string,\n  values: PropTypes.array,\n  open: PropTypes.looseBool,\n  searchValue: PropTypes.string,\n  inputRef: PropTypes.any,\n  placeholder: PropTypes.any,\n  disabled: PropTypes.looseBool,\n  mode: PropTypes.string,\n  showSearch: PropTypes.looseBool,\n  autofocus: PropTypes.looseBool,\n  autocomplete: PropTypes.string,\n  accessibilityIndex: PropTypes.number,\n  tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  removeIcon: PropTypes.VNodeChild,\n  choiceTransitionName: PropTypes.string,\n  maxTagCount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  maxTagTextLength: PropTypes.number,\n  maxTagPlaceholder: PropTypes.any.def(function () {\n    return function (omittedValues) {\n      return \"+ \".concat(omittedValues.length, \" ...\");\n    };\n  }),\n  tagRender: PropTypes.func,\n  onToggleOpen: {\n    type: Function\n  },\n  onSelect: PropTypes.func,\n  onInputChange: PropTypes.func,\n  onInputPaste: PropTypes.func,\n  onInputKeyDown: PropTypes.func,\n  onInputMouseDown: PropTypes.func,\n  onInputCompositionStart: PropTypes.func,\n  onInputCompositionEnd: PropTypes.func\n};\n\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n  event.preventDefault();\n  event.stopPropagation();\n};\n\nvar SelectSelector = defineComponent({\n  name: 'MultipleSelectSelector',\n  inheritAttrs: false,\n  props: props,\n  setup: function setup(props) {\n    var measureRef = ref();\n    var inputWidth = ref(0);\n    var focused = ref(false);\n    var selectionPrefixCls = computed(function () {\n      return \"\".concat(props.prefixCls, \"-selection\");\n    }); // ===================== Search ======================\n\n    var inputValue = computed(function () {\n      return props.open || props.mode === 'tags' ? props.searchValue : '';\n    });\n    var inputEditable = computed(function () {\n      return props.mode === 'tags' || props.showSearch && (props.open || focused.value);\n    }); // We measure width and set to the input immediately\n\n    onMounted(function () {\n      watch(inputValue, function () {\n        inputWidth.value = measureRef.value.scrollWidth;\n      }, {\n        flush: 'post',\n        immediate: true\n      });\n    }); // ===================== Render ======================\n    // >>> Render Selector Node. Includes Item & Rest\n\n    function defaultRenderSelector(content, itemDisabled, closable, onClose) {\n      return _createVNode(\"span\", {\n        \"class\": classNames(\"\".concat(selectionPrefixCls.value, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls.value, \"-item-disabled\"), itemDisabled))\n      }, [_createVNode(\"span\", {\n        \"class\": \"\".concat(selectionPrefixCls.value, \"-item-content\")\n      }, [content]), closable && _createVNode(TransBtn, {\n        \"class\": \"\".concat(selectionPrefixCls.value, \"-item-remove\"),\n        \"onMousedown\": onPreventMouseDown,\n        \"onClick\": onClose,\n        \"customizeIcon\": props.removeIcon\n      }, {\n        default: function _default() {\n          return [_createTextVNode(\"\\xD7\")];\n        }\n      })]);\n    }\n\n    function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n      var onMouseDown = function onMouseDown(e) {\n        onPreventMouseDown(e);\n        props.onToggleOpen(!open);\n      };\n\n      return _createVNode(\"span\", {\n        \"onMousedown\": onMouseDown\n      }, [props.tagRender({\n        label: content,\n        value: value,\n        disabled: itemDisabled,\n        closable: closable,\n        onClose: onClose\n      })]);\n    }\n\n    function renderItem(_ref) {\n      var itemDisabled = _ref.disabled,\n          label = _ref.label,\n          value = _ref.value;\n      var closable = !props.disabled && !itemDisabled;\n      var displayLabel = label;\n\n      if (typeof props.maxTagTextLength === 'number') {\n        if (typeof label === 'string' || typeof label === 'number') {\n          var strLabel = String(displayLabel);\n\n          if (strLabel.length > props.maxTagTextLength) {\n            displayLabel = \"\".concat(strLabel.slice(0, props.maxTagTextLength), \"...\");\n          }\n        }\n      }\n\n      var onClose = function onClose(event) {\n        if (event) event.stopPropagation();\n        props.onSelect(value, {\n          selected: false\n        });\n      };\n\n      return typeof props.tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(displayLabel, itemDisabled, closable, onClose);\n    }\n\n    function renderRest(omittedValues) {\n      var _props$maxTagPlacehol = props.maxTagPlaceholder,\n          maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n        return \"+ \".concat(omittedValues.length, \" ...\");\n      } : _props$maxTagPlacehol;\n      var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n      return defaultRenderSelector(content, false);\n    }\n\n    return function () {\n      var id = props.id,\n          prefixCls = props.prefixCls,\n          values = props.values,\n          open = props.open,\n          inputRef = props.inputRef,\n          placeholder = props.placeholder,\n          disabled = props.disabled,\n          autofocus = props.autofocus,\n          autocomplete = props.autocomplete,\n          accessibilityIndex = props.accessibilityIndex,\n          tabindex = props.tabindex,\n          onInputChange = props.onInputChange,\n          onInputPaste = props.onInputPaste,\n          onInputKeyDown = props.onInputKeyDown,\n          onInputMouseDown = props.onInputMouseDown,\n          onInputCompositionStart = props.onInputCompositionStart,\n          onInputCompositionEnd = props.onInputCompositionEnd; // >>> Input Node\n\n      var inputNode = _createVNode(\"div\", {\n        \"class\": \"\".concat(selectionPrefixCls.value, \"-search\"),\n        \"style\": {\n          width: inputWidth.value + 'px'\n        },\n        \"key\": \"input\"\n      }, [_createVNode(Input, {\n        \"inputRef\": inputRef,\n        \"open\": open,\n        \"prefixCls\": prefixCls,\n        \"id\": id,\n        \"inputElement\": null,\n        \"disabled\": disabled,\n        \"autofocus\": autofocus,\n        \"autocomplete\": autocomplete,\n        \"editable\": inputEditable.value,\n        \"accessibilityIndex\": accessibilityIndex,\n        \"value\": inputValue.value,\n        \"onKeydown\": onInputKeyDown,\n        \"onMousedown\": onInputMouseDown,\n        \"onChange\": onInputChange,\n        \"onPaste\": onInputPaste,\n        \"onCompositionstart\": onInputCompositionStart,\n        \"onCompositionend\": onInputCompositionEnd,\n        \"tabindex\": tabindex,\n        \"attrs\": pickAttrs(props, true),\n        \"onFocus\": function onFocus() {\n          return focused.value = true;\n        },\n        \"onBlur\": function onBlur() {\n          return focused.value = false;\n        }\n      }, null), _createVNode(\"span\", {\n        \"ref\": measureRef,\n        \"class\": \"\".concat(selectionPrefixCls.value, \"-search-mirror\"),\n        \"aria-hidden\": true\n      }, [inputValue.value, _createTextVNode(\"\\xA0\")])]); // >>> Selections\n\n\n      var selectionNode = _createVNode(Overflow, {\n        \"prefixCls\": \"\".concat(selectionPrefixCls.value, \"-overflow\"),\n        \"data\": values,\n        \"renderItem\": renderItem,\n        \"renderRest\": renderRest,\n        \"suffix\": inputNode,\n        \"itemKey\": \"key\",\n        \"maxCount\": props.maxTagCount,\n        \"key\": \"overflow\"\n      }, null);\n\n      return _createVNode(_Fragment, null, [selectionNode, !values.length && !inputValue.value && _createVNode(\"span\", {\n        \"class\": \"\".concat(selectionPrefixCls.value, \"-placeholder\")\n      }, [placeholder])]);\n    };\n  }\n});\nexport default SelectSelector;","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\nimport pickAttrs from '../../_util/pickAttrs';\nimport Input from './Input';\nimport { computed, defineComponent, Fragment, ref, watch } from 'vue';\nimport PropTypes from '../../_util/vue-types';\nvar props = {\n  inputElement: PropTypes.any,\n  id: PropTypes.string,\n  prefixCls: PropTypes.string,\n  values: PropTypes.array,\n  open: PropTypes.looseBool,\n  searchValue: PropTypes.string,\n  inputRef: PropTypes.any,\n  placeholder: PropTypes.any,\n  disabled: PropTypes.looseBool,\n  mode: PropTypes.string,\n  showSearch: PropTypes.looseBool,\n  autofocus: PropTypes.looseBool,\n  autocomplete: PropTypes.string,\n  accessibilityIndex: PropTypes.number,\n  tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  activeValue: PropTypes.string,\n  backfill: PropTypes.looseBool,\n  onInputChange: PropTypes.func,\n  onInputPaste: PropTypes.func,\n  onInputKeyDown: PropTypes.func,\n  onInputMouseDown: PropTypes.func,\n  onInputCompositionStart: PropTypes.func,\n  onInputCompositionEnd: PropTypes.func\n};\nvar SingleSelector = defineComponent({\n  name: 'SingleSelector',\n  setup: function setup(props) {\n    var inputChanged = ref(false);\n    var combobox = computed(function () {\n      return props.mode === 'combobox';\n    });\n    var inputEditable = computed(function () {\n      return combobox.value || props.showSearch;\n    });\n    var inputValue = computed(function () {\n      var inputValue = props.searchValue || '';\n\n      if (combobox.value && props.activeValue && !inputChanged.value) {\n        inputValue = props.activeValue;\n      }\n\n      return inputValue;\n    });\n    watch([combobox, function () {\n      return props.activeValue;\n    }], function () {\n      if (combobox.value) {\n        inputChanged.value = false;\n      }\n    }, {\n      immediate: true\n    }); // Not show text when closed expect combobox mode\n\n    var hasTextInput = computed(function () {\n      return props.mode !== 'combobox' && !props.open ? false : !!inputValue.value;\n    });\n    var title = computed(function () {\n      var item = props.values[0];\n      return item && (typeof item.label === 'string' || typeof item.label === 'number') ? item.label.toString() : undefined;\n    });\n    return function () {\n      var inputElement = props.inputElement,\n          prefixCls = props.prefixCls,\n          id = props.id,\n          values = props.values,\n          inputRef = props.inputRef,\n          disabled = props.disabled,\n          autofocus = props.autofocus,\n          autocomplete = props.autocomplete,\n          accessibilityIndex = props.accessibilityIndex,\n          open = props.open,\n          placeholder = props.placeholder,\n          tabindex = props.tabindex,\n          onInputKeyDown = props.onInputKeyDown,\n          onInputMouseDown = props.onInputMouseDown,\n          onInputChange = props.onInputChange,\n          onInputPaste = props.onInputPaste,\n          onInputCompositionStart = props.onInputCompositionStart,\n          onInputCompositionEnd = props.onInputCompositionEnd;\n      var item = values[0];\n      return _createVNode(_Fragment, null, [_createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-selection-search\")\n      }, [_createVNode(Input, {\n        \"inputRef\": inputRef,\n        \"prefixCls\": prefixCls,\n        \"id\": id,\n        \"open\": open,\n        \"inputElement\": inputElement,\n        \"disabled\": disabled,\n        \"autofocus\": autofocus,\n        \"autocomplete\": autocomplete,\n        \"editable\": inputEditable.value,\n        \"accessibilityIndex\": accessibilityIndex,\n        \"value\": inputValue.value,\n        \"onKeydown\": onInputKeyDown,\n        \"onMousedown\": onInputMouseDown,\n        \"onChange\": function onChange(e) {\n          inputChanged.value = true;\n          onInputChange(e);\n        },\n        \"onPaste\": onInputPaste,\n        \"onCompositionstart\": onInputCompositionStart,\n        \"onCompositionend\": onInputCompositionEnd,\n        \"tabindex\": tabindex,\n        \"attrs\": pickAttrs(props, true)\n      }, null)]), !combobox.value && item && !hasTextInput.value && _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-selection-item\"),\n        \"title\": title.value\n      }, [_createVNode(_Fragment, {\n        \"key\": item.key || item.value\n      }, [item.label])]), !item && !hasTextInput.value && _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-selection-placeholder\")\n      }, [placeholder])]);\n    };\n  }\n});\nSingleSelector.props = props;\nSingleSelector.inheritAttrs = false;\nexport default SingleSelector;","import { onBeforeUpdate } from 'vue';\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\n\nexport default function useLock() {\n  var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n  var lock = null;\n  var timeout;\n  onBeforeUpdate(function () {\n    window.clearTimeout(timeout);\n  });\n\n  function doLock(locked) {\n    if (locked || lock === null) {\n      lock = locked;\n    }\n\n    window.clearTimeout(timeout);\n    timeout = window.setTimeout(function () {\n      lock = null;\n    }, duration);\n  }\n\n  return [function () {\n    return lock;\n  }, doLock];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { createVNode as _createVNode } from \"vue\";\n\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\nimport KeyCode from '../../_util/KeyCode';\nimport MultipleSelector from './MultipleSelector';\nimport SingleSelector from './SingleSelector';\nimport useLock from '../hooks/useLock';\nimport { defineComponent } from 'vue';\nimport createRef from '../../_util/createRef';\nimport PropTypes from '../../_util/vue-types';\nvar Selector = defineComponent({\n  name: 'Selector',\n  inheritAttrs: false,\n  props: {\n    id: PropTypes.string,\n    prefixCls: PropTypes.string,\n    showSearch: PropTypes.looseBool,\n    open: PropTypes.looseBool,\n\n    /** Display in the Selector value, it's not same as `value` prop */\n    values: PropTypes.array,\n    multiple: PropTypes.looseBool,\n    mode: PropTypes.string,\n    searchValue: PropTypes.string,\n    activeValue: PropTypes.string,\n    inputElement: PropTypes.any,\n    autofocus: PropTypes.looseBool,\n    accessibilityIndex: PropTypes.number,\n    tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    disabled: PropTypes.looseBool,\n    placeholder: PropTypes.any,\n    removeIcon: PropTypes.any,\n    // Tags\n    maxTagCount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    maxTagTextLength: PropTypes.number,\n    maxTagPlaceholder: PropTypes.any,\n    tagRender: PropTypes.func,\n\n    /** Check if `tokenSeparators` contains `\\n` or `\\r\\n` */\n    tokenWithEnter: PropTypes.looseBool,\n    // Motion\n    choiceTransitionName: PropTypes.string,\n    onToggleOpen: {\n      type: Function\n    },\n\n    /** `onSearch` returns go next step boolean to check if need do toggle open */\n    onSearch: PropTypes.func,\n    onSearchSubmit: PropTypes.func,\n    onSelect: PropTypes.func,\n    onInputKeyDown: {\n      type: Function\n    },\n\n    /**\n     * @private get real dom for trigger align.\n     * This may be removed after React provides replacement of `findDOMNode`\n     */\n    domRef: PropTypes.func\n  },\n  setup: function setup(props) {\n    var inputRef = createRef();\n    var compositionStatus = false; // ====================== Input ======================\n\n    var _useLock = useLock(0),\n        _useLock2 = _slicedToArray(_useLock, 2),\n        getInputMouseDown = _useLock2[0],\n        setInputMouseDown = _useLock2[1];\n\n    var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n      var which = event.which;\n\n      if (which === KeyCode.UP || which === KeyCode.DOWN) {\n        event.preventDefault();\n      }\n\n      if (props.onInputKeyDown) {\n        props.onInputKeyDown(event);\n      }\n\n      if (which === KeyCode.ENTER && props.mode === 'tags' && !compositionStatus && !props.open) {\n        // When menu isn't open, OptionList won't trigger a value change\n        // So when enter is pressed, the tag's input value should be emitted here to let selector know\n        props.onSearchSubmit(event.target.value);\n      }\n\n      if (![KeyCode.SHIFT, KeyCode.TAB, KeyCode.BACKSPACE, KeyCode.ESC].includes(which)) {\n        props.onToggleOpen(true);\n      }\n    };\n    /**\n     * We can not use `findDOMNode` sine it will get warning,\n     * have to use timer to check if is input element.\n     */\n\n\n    var onInternalInputMouseDown = function onInternalInputMouseDown() {\n      setInputMouseDown(true);\n    }; // When paste come, ignore next onChange\n\n\n    var pastedText = null;\n\n    var triggerOnSearch = function triggerOnSearch(value) {\n      if (props.onSearch(value, true, compositionStatus) !== false) {\n        props.onToggleOpen(true);\n      }\n    };\n\n    var onInputCompositionStart = function onInputCompositionStart() {\n      compositionStatus = true;\n    };\n\n    var onInputCompositionEnd = function onInputCompositionEnd(e) {\n      compositionStatus = false; // Trigger search again to support `tokenSeparators` with typewriting\n\n      if (props.mode !== 'combobox') {\n        triggerOnSearch(e.target.value);\n      }\n    };\n\n    var onInputChange = function onInputChange(event) {\n      var value = event.target.value; // Pasted text should replace back to origin content\n\n      if (props.tokenWithEnter && pastedText && /[\\r\\n]/.test(pastedText)) {\n        // CRLF will be treated as a single space for input element\n        var replacedText = pastedText.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n        value = value.replace(replacedText, pastedText);\n      }\n\n      pastedText = null;\n      triggerOnSearch(value);\n    };\n\n    var onInputPaste = function onInputPaste(e) {\n      var clipboardData = e.clipboardData;\n      var value = clipboardData.getData('text');\n      pastedText = value;\n    };\n\n    var onClick = function onClick(_ref) {\n      var target = _ref.target;\n\n      if (target !== inputRef.current) {\n        // Should focus input if click the selector\n        var isIE = document.body.style.msTouchAction !== undefined;\n\n        if (isIE) {\n          setTimeout(function () {\n            inputRef.current.focus();\n          });\n        } else {\n          inputRef.current.focus();\n        }\n      }\n    };\n\n    var onMousedown = function onMousedown(event) {\n      var inputMouseDown = getInputMouseDown();\n\n      if (event.target !== inputRef.current && !inputMouseDown) {\n        event.preventDefault();\n      }\n\n      if (props.mode !== 'combobox' && (!props.showSearch || !inputMouseDown) || !props.open) {\n        if (props.open) {\n          props.onSearch('', true, false);\n        }\n\n        props.onToggleOpen();\n      }\n    };\n\n    return {\n      focus: function focus() {\n        inputRef.current.focus();\n      },\n      blur: function blur() {\n        inputRef.current.blur();\n      },\n      onMousedown: onMousedown,\n      onClick: onClick,\n      onInputPaste: onInputPaste,\n      inputRef: inputRef,\n      onInternalInputKeyDown: onInternalInputKeyDown,\n      onInternalInputMouseDown: onInternalInputMouseDown,\n      onInputChange: onInputChange,\n      onInputCompositionEnd: onInputCompositionEnd,\n      onInputCompositionStart: onInputCompositionStart\n    };\n  },\n  render: function render() {\n    var _this$$props = this.$props,\n        prefixCls = _this$$props.prefixCls,\n        domRef = _this$$props.domRef,\n        multiple = _this$$props.multiple;\n    var onMousedown = this.onMousedown,\n        onClick = this.onClick,\n        inputRef = this.inputRef,\n        onInputPaste = this.onInputPaste,\n        onInternalInputKeyDown = this.onInternalInputKeyDown,\n        onInternalInputMouseDown = this.onInternalInputMouseDown,\n        onInputChange = this.onInputChange,\n        onInputCompositionStart = this.onInputCompositionStart,\n        onInputCompositionEnd = this.onInputCompositionEnd;\n    var sharedProps = {\n      inputRef: inputRef,\n      onInputKeyDown: onInternalInputKeyDown,\n      onInputMouseDown: onInternalInputMouseDown,\n      onInputChange: onInputChange,\n      onInputPaste: onInputPaste,\n      onInputCompositionStart: onInputCompositionStart,\n      onInputCompositionEnd: onInputCompositionEnd\n    };\n    var selectNode = multiple ? _createVNode(MultipleSelector, _objectSpread(_objectSpread({}, this.$props), sharedProps), null) : _createVNode(SingleSelector, _objectSpread(_objectSpread({}, this.$props), sharedProps), null);\n    return _createVNode(\"div\", {\n      \"ref\": domRef,\n      \"class\": \"\".concat(prefixCls, \"-selector\"),\n      \"onClick\": onClick,\n      \"onMousedown\": onMousedown\n    }, [selectNode]);\n  }\n});\nexport default Selector;","export default function contains(root, n) {\n  if (!root) {\n    return false;\n  }\n\n  return root.contains(n);\n}","var availablePrefixs = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill() {\n  var lastTime = 0;\n  return function (callback) {\n    var currTime = new Date().getTime();\n    var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n    var id = window.setTimeout(function () {\n      callback(currTime + timeToCall);\n    }, timeToCall);\n    lastTime = currTime + timeToCall;\n    return id;\n  };\n}\n\nexport default function getRequestAnimationFrame() {\n  if (typeof window === 'undefined') {\n    return function () {};\n  }\n\n  if (window.requestAnimationFrame) {\n    // https://github.com/vuejs/vue/issues/4465\n    return window.requestAnimationFrame.bind(window);\n  }\n\n  var prefix = availablePrefixs.filter(function (key) {\n    return \"\".concat(key, \"RequestAnimationFrame\") in window;\n  })[0];\n  return prefix ? window[\"\".concat(prefix, \"RequestAnimationFrame\")] : requestAnimationFramePolyfill();\n}\nexport function cancelRequestAnimationFrame(id) {\n  if (typeof window === 'undefined') {\n    return null;\n  }\n\n  if (window.cancelAnimationFrame) {\n    return window.cancelAnimationFrame(id);\n  }\n\n  var prefix = availablePrefixs.filter(function (key) {\n    return \"\".concat(key, \"CancelAnimationFrame\") in window || \"\".concat(key, \"CancelRequestAnimationFrame\") in window;\n  })[0];\n  return prefix ? (window[\"\".concat(prefix, \"CancelAnimationFrame\")] || window[\"\".concat(prefix, \"CancelRequestAnimationFrame\")]).call(this, id) : clearTimeout(id);\n}","import getRequestAnimationFrame, { cancelRequestAnimationFrame as caf } from './getRequestAnimationFrame';\nvar raf = getRequestAnimationFrame();\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n  return caf(frame.id);\n};\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n  var start = Date.now();\n\n  function timeout() {\n    if (Date.now() - start >= delay) {\n      callback.call();\n    } else {\n      frame.id = raf(timeout);\n    }\n  }\n\n  var frame = {\n    id: raf(timeout)\n  };\n  return frame;\n};","export default (function (element) {\n  if (!element) {\n    return false;\n  }\n\n  if (element.offsetParent) {\n    return true;\n  }\n\n  if (element.getBBox) {\n    var box = element.getBBox();\n\n    if (box.width || box.height) {\n      return true;\n    }\n  }\n\n  if (element.getBoundingClientRect) {\n    var _box = element.getBoundingClientRect();\n\n    if (_box.width || _box.height) {\n      return true;\n    }\n  }\n\n  return false;\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport contains from '../vc-util/Dom/contains';\nimport ResizeObserver from 'resize-observer-polyfill';\nexport function isSamePoint(prev, next) {\n  if (prev === next) return true;\n  if (!prev || !next) return false;\n\n  if ('pageX' in next && 'pageY' in next) {\n    return prev.pageX === next.pageX && prev.pageY === next.pageY;\n  }\n\n  if ('clientX' in next && 'clientY' in next) {\n    return prev.clientX === next.clientX && prev.clientY === next.clientY;\n  }\n\n  return false;\n}\nexport function restoreFocus(activeElement, container) {\n  // Focus back if is in the container\n  if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n    activeElement.focus();\n  }\n}\nexport function monitorResize(element, callback) {\n  var prevWidth = null;\n  var prevHeight = null;\n\n  function onResize(_ref) {\n    var _ref2 = _slicedToArray(_ref, 1),\n        target = _ref2[0].target;\n\n    if (!document.documentElement.contains(target)) return;\n\n    var _target$getBoundingCl = target.getBoundingClientRect(),\n        width = _target$getBoundingCl.width,\n        height = _target$getBoundingCl.height;\n\n    var fixedWidth = Math.floor(width);\n    var fixedHeight = Math.floor(height);\n\n    if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n      // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n      Promise.resolve().then(function () {\n        callback({\n          width: fixedWidth,\n          height: fixedHeight\n        });\n      });\n    }\n\n    prevWidth = fixedWidth;\n    prevHeight = fixedHeight;\n  }\n\n  var resizeObserver = new ResizeObserver(onResize);\n\n  if (element) {\n    resizeObserver.observe(element);\n  }\n\n  return function () {\n    resizeObserver.disconnect();\n  };\n}","export default (function (callback, buffer) {\n  var called = false;\n  var timeout = null;\n\n  function cancelTrigger() {\n    window.clearTimeout(timeout);\n  }\n\n  function trigger(force) {\n    if (!called || force === true) {\n      if (callback() === false) {\n        // Not delay since callback cancelled self\n        return;\n      }\n\n      called = true;\n      cancelTrigger();\n      timeout = window.setTimeout(function () {\n        called = false;\n      }, buffer.value);\n    } else {\n      cancelTrigger();\n      timeout = window.setTimeout(function () {\n        called = false;\n        trigger();\n      }, buffer.value);\n    }\n  }\n\n  return [trigger, function () {\n    called = false;\n    cancelTrigger();\n  }];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { defineComponent, ref, computed, onMounted, onUpdated, watch, onUnmounted } from 'vue';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport { cloneElement } from '../_util/vnode';\nimport isVisible from '../vc-util/Dom/isVisible';\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\nvar alignProps = {\n  align: Object,\n  target: [Object, Function],\n  onAlign: Function,\n  monitorBufferTime: Number,\n  monitorWindowResize: Boolean,\n  disabled: Boolean\n};\n\nfunction getElement(func) {\n  if (typeof func !== 'function') return null;\n  return func();\n}\n\nfunction getPoint(point) {\n  if (_typeof(point) !== 'object' || !point) return null;\n  return point;\n}\n\nexport default defineComponent({\n  name: 'Align',\n  props: alignProps,\n  emits: ['align'],\n  setup: function setup(props, _ref) {\n    var expose = _ref.expose,\n        slots = _ref.slots;\n    var cacheRef = ref({});\n    var nodeRef = ref();\n    var forceAlignPropsRef = computed(function () {\n      return {\n        disabled: props.disabled,\n        target: props.target,\n        onAlign: props.onAlign\n      };\n    });\n\n    var _useBuffer = useBuffer(function () {\n      var _forceAlignPropsRef$v = forceAlignPropsRef.value,\n          latestDisabled = _forceAlignPropsRef$v.disabled,\n          latestTarget = _forceAlignPropsRef$v.target,\n          latestOnAlign = _forceAlignPropsRef$v.onAlign;\n\n      if (!latestDisabled && latestTarget && nodeRef.value && nodeRef.value.$el) {\n        var source = nodeRef.value.$el;\n        var result;\n        var element = getElement(latestTarget);\n        var point = getPoint(latestTarget);\n        cacheRef.value.element = element;\n        cacheRef.value.point = point; // IE lose focus after element realign\n        // We should record activeElement and restore later\n\n        // IE lose focus after element realign\n        // We should record activeElement and restore later\n        var _document = document,\n            activeElement = _document.activeElement; // We only align when element is visible\n\n        // We only align when element is visible\n        if (element && isVisible(element)) {\n          result = alignElement(source, element, props.align);\n        } else if (point) {\n          result = alignPoint(source, point, props.align);\n        }\n\n        restoreFocus(activeElement, source);\n\n        if (latestOnAlign && result) {\n          latestOnAlign(source, result);\n        }\n\n        return true;\n      }\n\n      return false;\n    }, computed(function () {\n      return props.monitorBufferTime;\n    })),\n        _useBuffer2 = _slicedToArray(_useBuffer, 2),\n        _forceAlign = _useBuffer2[0],\n        cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n    // Listen for target updated\n\n\n    var resizeMonitor = ref({\n      cancel: function cancel() {}\n    }); // Listen for source updated\n\n    var sourceResizeMonitor = ref({\n      cancel: function cancel() {}\n    });\n\n    var goAlign = function goAlign() {\n      var target = props.target;\n      var element = getElement(target);\n      var point = getPoint(target);\n\n      if (nodeRef.value && nodeRef.value.$el !== sourceResizeMonitor.value.element) {\n        sourceResizeMonitor.value.cancel();\n        sourceResizeMonitor.value.element = nodeRef.value.$el;\n        sourceResizeMonitor.value.cancel = monitorResize(nodeRef.value.$el, _forceAlign);\n      }\n\n      if (cacheRef.value.element !== element || !isSamePoint(cacheRef.value.point, point)) {\n        _forceAlign(); // Add resize observer\n\n\n        if (resizeMonitor.value.element !== element) {\n          resizeMonitor.value.cancel();\n          resizeMonitor.value.element = element;\n          resizeMonitor.value.cancel = monitorResize(element, _forceAlign);\n        }\n      }\n    };\n\n    onMounted(function () {\n      goAlign();\n    });\n    onUpdated(function () {\n      goAlign();\n    }); // Listen for disabled change\n\n    watch(function () {\n      return props.disabled;\n    }, function (disabled) {\n      if (!disabled) {\n        _forceAlign();\n      } else {\n        cancelForceAlign();\n      }\n    }, {\n      flush: 'post'\n    }); // Listen for window resize\n\n    var winResizeRef = ref(null);\n    watch(function () {\n      return props.monitorWindowResize;\n    }, function (monitorWindowResize) {\n      if (monitorWindowResize) {\n        if (!winResizeRef.value) {\n          winResizeRef.value = addEventListener(window, 'resize', _forceAlign);\n        }\n      } else if (winResizeRef.value) {\n        winResizeRef.value.remove();\n        winResizeRef.value = null;\n      }\n    }, {\n      flush: 'post'\n    });\n    onUnmounted(function () {\n      resizeMonitor.value.cancel();\n      sourceResizeMonitor.value.cancel();\n      if (winResizeRef.value) winResizeRef.value.remove();\n      cancelForceAlign();\n    });\n    expose({\n      forceAlign: function forceAlign() {\n        return _forceAlign(true);\n      }\n    });\n    return function () {\n      var child = slots === null || slots === void 0 ? void 0 : slots.default();\n\n      if (child) {\n        return cloneElement(child[0], {\n          ref: nodeRef\n        }, true, true);\n      }\n\n      return child && child[0];\n    };\n  }\n});","import { createVNode as _createVNode } from \"vue\";\nimport { Text } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport { getSlot } from '../_util/props-util';\nexport default {\n  name: 'LazyRenderBox',\n  props: {\n    visible: PropTypes.looseBool,\n    hiddenClassName: PropTypes.string\n  },\n  render: function render() {\n    var hiddenClassName = this.$props.hiddenClassName;\n    var child = getSlot(this);\n\n    if (hiddenClassName || child && child.length > 1 || child && child[0] && child[0].type === Text) {\n      // const cls = '';\n      // if (!visible && hiddenClassName) {\n      //   // cls += ` ${hiddenClassName}`\n      // }\n      return _createVNode(\"div\", null, [child]);\n    }\n\n    return child && child[0];\n  }\n};","import { createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../_util/vue-types';\nimport LazyRenderBox from './LazyRenderBox';\nexport default {\n  props: {\n    hiddenClassName: PropTypes.string.def(''),\n    prefixCls: PropTypes.string,\n    visible: PropTypes.looseBool\n  },\n  render: function render() {\n    var _this = this;\n\n    var _a, _b;\n\n    var _this$$props = this.$props,\n        prefixCls = _this$$props.prefixCls,\n        visible = _this$$props.visible,\n        hiddenClassName = _this$$props.hiddenClassName;\n    return _createVNode(\"div\", {\n      \"class\": !visible ? hiddenClassName : ''\n    }, [_createVNode(LazyRenderBox, {\n      \"class\": \"\".concat(prefixCls, \"-content\"),\n      \"visible\": visible\n    }, {\n      default: function _default() {\n        return [(_b = (_a = _this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a)];\n      }\n    })]);\n  }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { nextTick } from 'vue';\nimport { getOptionProps } from './props-util';\nexport default {\n  methods: {\n    setState: function setState() {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 ? arguments[1] : undefined;\n      var newState = typeof state === 'function' ? state(this.$data, this.$props) : state;\n\n      if (this.getDerivedStateFromProps) {\n        var s = this.getDerivedStateFromProps(getOptionProps(this), _extends(_extends({}, this.$data), newState));\n\n        if (s === null) {\n          return;\n        } else {\n          newState = _extends(_extends({}, newState), s || {});\n        }\n      }\n\n      _extends(this.$data, newState);\n\n      if (this._.isMounted) {\n        this.$forceUpdate();\n      }\n\n      nextTick(function () {\n        callback && callback();\n      });\n    },\n    __emit: function __emit() {\n      // 直接调用事件，底层组件不需要vueTool记录events\n      var args = [].slice.call(arguments, 0);\n      var eventName = args[0];\n      eventName = \"on\".concat(eventName[0].toUpperCase()).concat(eventName.substring(1));\n      var event = this.$props[eventName] || this.$attrs[eventName];\n\n      if (args.length && event) {\n        if (Array.isArray(event)) {\n          for (var i = 0, l = event.length; i < l; i++) {\n            event[i].apply(event, _toConsumableArray(args.slice(1)));\n          }\n        } else {\n          event.apply(void 0, _toConsumableArray(args.slice(1)));\n        }\n      }\n    }\n  }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n  if (isAlignPoint) {\n    return a1[0] === a2[0];\n  }\n\n  return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n  var baseAlign = builtinPlacements[placementStr] || {};\n  return _extends(_extends({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n  var points = align.points;\n\n  for (var placement in builtinPlacements) {\n    if (builtinPlacements.hasOwnProperty(placement)) {\n      if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n        return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n      }\n    }\n  }\n\n  return '';\n}\nexport function noop() {}\nexport function saveRef(name, component) {\n  this[name] = component;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { onUpdated } from 'vue';\nimport { getCurrentInstance } from 'vue';\nimport { defineComponent, nextTick, Transition as T, TransitionGroup as TG } from 'vue';\nexport var getTransitionProps = function getTransitionProps(transitionName) {\n  var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (process.env.NODE_ENV === 'test') {\n    return opt;\n  }\n\n  var transitionProps = transitionName ? _extends({\n    appear: true,\n    // appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,\n    // appearActiveClass: `antdv-base-transtion`,\n    appearToClass: \"\".concat(transitionName, \"-appear \").concat(transitionName, \"-appear-active\"),\n    enterFromClass: \"\".concat(transitionName, \"-enter \").concat(transitionName, \"-enter-prepare\"),\n    // enterActiveClass: `antdv-base-transtion`,\n    enterToClass: \"\".concat(transitionName, \"-enter \").concat(transitionName, \"-enter-active\"),\n    leaveFromClass: \" \".concat(transitionName, \"-leave\"),\n    leaveActiveClass: \"\".concat(transitionName, \"-leave \").concat(transitionName, \"-leave-active\"),\n    leaveToClass: \"\".concat(transitionName, \"-leave \").concat(transitionName, \"-leave-active\")\n  }, opt) : _extends({\n    css: false\n  }, opt);\n  return transitionProps;\n};\nexport var getTransitionGroupProps = function getTransitionGroupProps(transitionName) {\n  var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var transitionProps = transitionName ? _extends({\n    appear: true,\n    // appearFromClass: `${transitionName}-appear ${transitionName}-appear-prepare`,\n    appearActiveClass: \"\".concat(transitionName),\n    appearToClass: \"\".concat(transitionName, \"-appear \").concat(transitionName, \"-appear-active\"),\n    enterFromClass: \"\".concat(transitionName, \"-appear \").concat(transitionName, \"-enter \").concat(transitionName, \"-appear-prepare \").concat(transitionName, \"-enter-prepare\"),\n    enterActiveClass: \"\".concat(transitionName),\n    enterToClass: \"\".concat(transitionName, \"-enter \").concat(transitionName, \"-appear \").concat(transitionName, \"-appear-active \").concat(transitionName, \"-enter-active\"),\n    leaveActiveClass: \"\".concat(transitionName, \" \").concat(transitionName, \"-leave\"),\n    leaveToClass: \"\".concat(transitionName, \"-leave-active\")\n  }, opt) : _extends({\n    css: false\n  }, opt);\n  return transitionProps;\n};\nvar Transition = T;\nvar TransitionGroup = TG;\n\nif (process.env.NODE_ENV === 'test') {\n  Transition = defineComponent({\n    name: 'TransitionForTest',\n    inheritAttrs: false,\n    setup: function setup(_props, _ref) {\n      var slots = _ref.slots,\n          attrs = _ref.attrs;\n      var instance = getCurrentInstance();\n      onUpdated(function () {\n        var child = instance.subTree.children[0];\n\n        if (child && child.dirs && child.dirs[0]) {\n          var value = child.dirs[0].value;\n          var oldValue = child.dirs[0].oldValue;\n\n          if (!value && value !== oldValue) {\n            nextTick(function () {\n              if (attrs.onAfterLeave) {\n                attrs.onAfterLeave(instance.vnode.el);\n              }\n            });\n          }\n        }\n      });\n      return function () {\n        var _a;\n\n        return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);\n      };\n    }\n  });\n  TransitionGroup = defineComponent({\n    name: 'TransitionGroupForTest',\n    inheritAttrs: false,\n    props: ['tag', 'class'],\n    setup: function setup(props, _ref2) {\n      var slots = _ref2.slots;\n      return function () {\n        var _a;\n\n        var Tag = props.tag,\n            rest = __rest(props, [\"tag\"]);\n\n        var children = ((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) || [];\n\n        if (Tag) {\n          return _createVNode(Tag, rest, {\n            default: function _default() {\n              return [children];\n            }\n          });\n        } else {\n          return children;\n        }\n      };\n    }\n  });\n} // ================== Collapse Motion ==================\n\n\nvar getCollapsedHeight = function getCollapsedHeight() {\n  return {\n    height: 0,\n    opacity: 0\n  };\n};\n\nvar getRealHeight = function getRealHeight(node) {\n  return {\n    height: \"\".concat(node.scrollHeight, \"px\"),\n    opacity: 1\n  };\n};\n\nvar getCurrentHeight = function getCurrentHeight(node) {\n  return {\n    height: \"\".concat(node.offsetHeight, \"px\")\n  };\n};\n\nvar collapseMotion = function collapseMotion(style, className) {\n  return {\n    name: 'ant-motion-collapse',\n    appear: true,\n    css: true,\n    onBeforeEnter: function onBeforeEnter(node) {\n      className.value = 'ant-motion-collapse';\n      style.value = getCollapsedHeight(node);\n    },\n    onEnter: function onEnter(node) {\n      nextTick(function () {\n        style.value = getRealHeight(node);\n      });\n    },\n    onAfterEnter: function onAfterEnter() {\n      className.value = '';\n      style.value = {};\n    },\n    onBeforeLeave: function onBeforeLeave(node) {\n      className.value = 'ant-motion-collapse';\n      style.value = getCurrentHeight(node);\n    },\n    onLeave: function onLeave(node) {\n      window.setTimeout(function () {\n        style.value = getCollapsedHeight(node);\n      });\n    },\n    onAfterLeave: function onAfterLeave() {\n      className.value = '';\n      style.value = {};\n    }\n  };\n};\n\nexport { Transition, TransitionGroup, collapseMotion };\nexport default Transition;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../_util/vue-types';\nimport Align from '../vc-align';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport BaseMixin from '../_util/BaseMixin';\nimport { saveRef } from './utils';\nimport { splitAttrs, findDOMNode } from '../_util/props-util';\nimport { getTransitionProps, Transition } from '../_util/transition';\nexport default {\n  name: 'VCTriggerPopup',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: {\n    visible: PropTypes.looseBool,\n    getClassNameFromAlign: PropTypes.func,\n    getRootDomNode: PropTypes.func,\n    align: PropTypes.any,\n    destroyPopupOnHide: PropTypes.looseBool,\n    prefixCls: PropTypes.string,\n    getContainer: PropTypes.func,\n    transitionName: PropTypes.string,\n    animation: PropTypes.any,\n    maskAnimation: PropTypes.string,\n    maskTransitionName: PropTypes.string,\n    mask: PropTypes.looseBool,\n    zIndex: PropTypes.number,\n    popupClassName: PropTypes.any,\n    popupStyle: PropTypes.object.def(function () {\n      return {};\n    }),\n    stretch: PropTypes.string,\n    point: PropTypes.shape({\n      pageX: PropTypes.number,\n      pageY: PropTypes.number\n    }).loose\n  },\n  data: function data() {\n    this.domEl = null;\n    this.currentAlignClassName = undefined;\n    this.transitionProps = {};\n    this.savePopupRef = saveRef.bind(this, 'popupInstance');\n    this.saveAlignRef = saveRef.bind(this, 'alignInstance');\n    return {\n      // Used for stretch\n      stretchChecked: false,\n      targetWidth: undefined,\n      targetHeight: undefined\n    };\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      _this.rootNode = _this.getPopupDomNode();\n\n      _this.setStretchSize();\n    });\n  },\n  // 如添加会导致动画失效，如放开会导致快速输入时闪动 https://github.com/vueComponent/ant-design-vue/issues/1327，\n  // 目前方案是保留动画，闪动问题(动画多次执行)进一步定位\n  // beforeUpdate() {\n  //   if (this.domEl && this.domEl.rcEndListener) {\n  //     this.domEl.rcEndListener();\n  //     this.domEl = null;\n  //   }\n  // },\n  updated: function updated() {\n    var _this2 = this;\n\n    this.$nextTick(function () {\n      _this2.setStretchSize();\n    });\n  },\n  methods: {\n    onAlign: function onAlign(popupDomNode, align) {\n      var props = this.$props;\n      var currentAlignClassName = props.getClassNameFromAlign(align); // FIX: https://github.com/react-component/trigger/issues/56\n      // FIX: https://github.com/react-component/tooltip/issues/79\n\n      if (this.currentAlignClassName !== currentAlignClassName) {\n        this.currentAlignClassName = currentAlignClassName;\n        popupDomNode.className = this.getClassName(currentAlignClassName, popupDomNode.className);\n      }\n\n      var onaAlign = this.$attrs.onaAlign;\n      onaAlign && onaAlign(popupDomNode, align);\n    },\n    // Record size if stretch needed\n    setStretchSize: function setStretchSize() {\n      var _this$$props = this.$props,\n          stretch = _this$$props.stretch,\n          getRootDomNode = _this$$props.getRootDomNode,\n          visible = _this$$props.visible;\n      var _this$$data = this.$data,\n          stretchChecked = _this$$data.stretchChecked,\n          targetHeight = _this$$data.targetHeight,\n          targetWidth = _this$$data.targetWidth;\n\n      if (!stretch || !visible) {\n        if (stretchChecked) {\n          this.setState({\n            stretchChecked: false\n          });\n        }\n\n        return;\n      }\n\n      var $ele = getRootDomNode();\n      if (!$ele) return;\n      var height = $ele.offsetHeight;\n      var width = $ele.offsetWidth;\n\n      if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n        this.setState({\n          stretchChecked: true,\n          targetHeight: height,\n          targetWidth: width\n        });\n      }\n    },\n    getPopupDomNode: function getPopupDomNode() {\n      return findDOMNode(this.popupInstance);\n    },\n    getTargetElement: function getTargetElement() {\n      return this.$props.getRootDomNode();\n    },\n    // `target` on `rc-align` can accept as a function to get the bind element or a point.\n    // ref: https://www.npmjs.com/package/rc-align\n    getAlignTarget: function getAlignTarget() {\n      var point = this.$props.point;\n\n      if (point) {\n        return point;\n      }\n\n      return this.getTargetElement;\n    },\n    getMaskTransitionName: function getMaskTransitionName() {\n      var props = this.$props;\n      var transitionName = props.maskTransitionName;\n      var animation = props.maskAnimation;\n\n      if (!transitionName && animation) {\n        transitionName = \"\".concat(props.prefixCls, \"-\").concat(animation);\n      }\n\n      return transitionName;\n    },\n    getTransitionName: function getTransitionName() {\n      var props = this.$props;\n      var transitionName = props.transitionName;\n      var animation = props.animation;\n\n      if (!transitionName) {\n        if (typeof animation === 'string') {\n          transitionName = \"\".concat(animation);\n        } else if (animation && animation.props && animation.props.name) {\n          transitionName = animation.props.name;\n        }\n      }\n\n      return transitionName;\n    },\n    getClassName: function getClassName(currentAlignClassName) {\n      var _this3 = this;\n\n      var originClassName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      // 保留动画 class\n      var enterActiveClass = [];\n\n      if (this.transitionProps) {\n        Object.keys(this.transitionProps).forEach(function (k) {\n          if (typeof _this3.transitionProps[k] === 'string') {\n            enterActiveClass.push.apply(enterActiveClass, _toConsumableArray(_this3.transitionProps[k].split(' ')));\n          }\n        });\n      }\n\n      var classNames = originClassName.split(' ').filter(function (c) {\n        return enterActiveClass.indexOf(c) !== -1;\n      }).join(' ');\n      return \"\".concat(this.$props.prefixCls, \" \").concat(this.$attrs.class || '', \" \").concat(this.$props.popupClassName, \" \").concat(currentAlignClassName, \" \").concat(classNames);\n    },\n    getPopupElement: function getPopupElement() {\n      var _this4 = this;\n\n      var _a, _b;\n\n      var savePopupRef = this.savePopupRef;\n      var props = this.$props,\n          $attrs = this.$attrs,\n          $slots = this.$slots,\n          getTransitionName = this.getTransitionName;\n      var _this$$data2 = this.$data,\n          stretchChecked = _this$$data2.stretchChecked,\n          targetHeight = _this$$data2.targetHeight,\n          targetWidth = _this$$data2.targetWidth;\n      var _$attrs$style = $attrs.style,\n          style = _$attrs$style === void 0 ? {} : _$attrs$style;\n      var onEvents = splitAttrs($attrs).onEvents;\n      var align = props.align,\n          visible = props.visible,\n          prefixCls = props.prefixCls,\n          animation = props.animation,\n          popupStyle = props.popupStyle,\n          getClassNameFromAlign = props.getClassNameFromAlign,\n          destroyPopupOnHide = props.destroyPopupOnHide,\n          stretch = props.stretch;\n      var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align)); // const hiddenClassName = `${prefixCls}-hidden`\n\n      if (!visible) {\n        this.currentAlignClassName = null;\n      }\n\n      var sizeStyle = {};\n\n      if (stretch) {\n        // Stretch with target\n        if (stretch.indexOf('height') !== -1) {\n          sizeStyle.height = typeof targetHeight === 'number' ? \"\".concat(targetHeight, \"px\") : targetHeight;\n        } else if (stretch.indexOf('minHeight') !== -1) {\n          sizeStyle.minHeight = typeof targetHeight === 'number' ? \"\".concat(targetHeight, \"px\") : targetHeight;\n        }\n\n        if (stretch.indexOf('width') !== -1) {\n          sizeStyle.width = typeof targetWidth === 'number' ? \"\".concat(targetWidth, \"px\") : targetWidth;\n        } else if (stretch.indexOf('minWidth') !== -1) {\n          sizeStyle.minWidth = typeof targetWidth === 'number' ? \"\".concat(targetWidth, \"px\") : targetWidth;\n        } // Delay force align to makes ui smooth\n\n\n        if (!stretchChecked) {\n          // sizeStyle.visibility = 'hidden'\n          setTimeout(function () {\n            if (_this4.alignInstance) {\n              _this4.alignInstance.forceAlign();\n            }\n          }, 0);\n        }\n      }\n\n      var popupInnerProps = _extends(_extends({\n        prefixCls: prefixCls,\n        visible: visible,\n        // hiddenClassName,\n        class: className\n      }, onEvents), {\n        ref: savePopupRef,\n        style: _extends(_extends(_extends(_extends({}, sizeStyle), popupStyle), style), this.getZIndexStyle())\n      });\n\n      var transitionName = getTransitionName();\n      var useTransition = !!transitionName;\n      var transitionProps = getTransitionProps(transitionName);\n\n      if (_typeof(animation) === 'object') {\n        useTransition = true;\n        transitionProps = _extends(_extends({}, transitionProps), animation);\n      }\n\n      if (!useTransition) {\n        transitionProps = {};\n      }\n\n      this.transitionProps = transitionProps;\n\n      if (destroyPopupOnHide) {\n        return _createVNode(Transition, transitionProps, {\n          default: function _default() {\n            return [visible ? _createVNode(Align, {\n              \"target\": _this4.getAlignTarget(),\n              \"key\": \"popup\",\n              \"ref\": _this4.saveAlignRef,\n              \"monitorWindowResize\": true,\n              \"align\": align,\n              \"onAlign\": _this4.onAlign\n            }, {\n              default: function _default() {\n                return [_createVNode(PopupInner, popupInnerProps, {\n                  default: function _default() {\n                    return [(_a = $slots.default) === null || _a === void 0 ? void 0 : _a.call($slots)];\n                  }\n                })];\n              }\n            }) : null];\n          }\n        });\n      }\n\n      return _createVNode(Transition, transitionProps, {\n        default: function _default() {\n          return [_withDirectives(_createVNode(Align, {\n            \"target\": _this4.getAlignTarget(),\n            \"key\": \"popup\",\n            \"ref\": _this4.saveAlignRef,\n            \"monitorWindowResize\": true,\n            \"disabled\": !visible,\n            \"align\": align,\n            \"onAlign\": _this4.onAlign\n          }, {\n            default: function _default() {\n              return [_createVNode(PopupInner, popupInnerProps, {\n                default: function _default() {\n                  return [(_b = $slots.default) === null || _b === void 0 ? void 0 : _b.call($slots)];\n                }\n              })];\n            }\n          }), [[_vShow, visible]])];\n        }\n      });\n    },\n    getZIndexStyle: function getZIndexStyle() {\n      var style = {};\n      var props = this.$props;\n\n      if (props.zIndex !== undefined) {\n        style.zIndex = props.zIndex;\n      }\n\n      return style;\n    },\n    getMaskElement: function getMaskElement() {\n      var props = this.$props;\n      var maskElement = null;\n\n      if (props.mask) {\n        var maskTransition = this.getMaskTransitionName();\n        maskElement = _withDirectives(_createVNode(LazyRenderBox, {\n          \"style\": this.getZIndexStyle(),\n          \"key\": \"mask\",\n          \"class\": \"\".concat(props.prefixCls, \"-mask\"),\n          \"visible\": props.visible\n        }, null), [[_vShow, props.visible]]);\n\n        if (maskTransition) {\n          var _maskElement = function () {\n            return maskElement;\n          }();\n\n          maskElement = _createVNode(Transition, {\n            \"appear\": true,\n            \"name\": maskTransition\n          }, {\n            default: function _default() {\n              return [_maskElement];\n            }\n          });\n        }\n      }\n\n      return maskElement;\n    }\n  },\n  render: function render() {\n    var getMaskElement = this.getMaskElement,\n        getPopupElement = this.getPopupElement;\n    return _createVNode(\"div\", null, [getMaskElement(), getPopupElement()]);\n  }\n};","import { createVNode as _createVNode } from \"vue\";\nimport PropTypes from './vue-types';\nimport { defineComponent, nextTick, Teleport } from 'vue';\nexport default defineComponent({\n  name: 'Portal',\n  props: {\n    getContainer: PropTypes.func.isRequired,\n    children: PropTypes.any.isRequired,\n    didUpdate: PropTypes.func\n  },\n  data: function data() {\n    this._container = null;\n    return {};\n  },\n  mounted: function mounted() {\n    this.createContainer();\n  },\n  updated: function updated() {\n    var _this = this;\n\n    var didUpdate = this.$props.didUpdate;\n\n    if (didUpdate) {\n      nextTick(function () {\n        didUpdate(_this.$props);\n      });\n    }\n  },\n  beforeUnmount: function beforeUnmount() {\n    this.removeContainer();\n  },\n  methods: {\n    createContainer: function createContainer() {\n      this._container = this.$props.getContainer();\n      this.$forceUpdate();\n    },\n    removeContainer: function removeContainer() {\n      if (this._container && this._container.parentNode) {\n        this._container.parentNode.removeChild(this._container);\n      }\n    }\n  },\n  render: function render() {\n    var _this2 = this;\n\n    if (this._container) {\n      return _createVNode(Teleport, {\n        \"to\": this._container\n      }, {\n        default: function _default() {\n          return [_this2.$props.children];\n        }\n      });\n    }\n\n    return null;\n  }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject, provide } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport contains from '../vc-util/Dom/contains';\nimport { hasProp, getComponent as _getComponent, getEvents, filterEmpty, getSlot, findDOMNode } from '../_util/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport warning from '../_util/warning';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getAlignPopupClassName, noop } from './utils';\nimport BaseMixin from '../_util/BaseMixin';\nimport Portal from '../_util/Portal';\nimport classNames from '../_util/classNames';\nimport { cloneElement } from '../_util/vnode';\nimport supportsPassive from '../_util/supportsPassive';\n\nfunction returnEmptyString() {\n  return '';\n}\n\nfunction returnDocument() {\n  return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMousedown', 'onTouchstart', 'onMouseenter', 'onMouseleave', 'onFocus', 'onBlur', 'onContextmenu'];\nexport default defineComponent({\n  name: 'Trigger',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: {\n    action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).def([]),\n    showAction: PropTypes.any.def([]),\n    hideAction: PropTypes.any.def([]),\n    getPopupClassNameFromAlign: PropTypes.any.def(returnEmptyString),\n    onPopupVisibleChange: PropTypes.func.def(noop),\n    afterPopupVisibleChange: PropTypes.func.def(noop),\n    popup: PropTypes.any,\n    popupStyle: PropTypes.object.def(function () {\n      return {};\n    }),\n    prefixCls: PropTypes.string.def('rc-trigger-popup'),\n    popupClassName: PropTypes.string.def(''),\n    popupPlacement: PropTypes.string,\n    builtinPlacements: PropTypes.object,\n    popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n    popupAnimation: PropTypes.any,\n    mouseEnterDelay: PropTypes.number.def(0),\n    mouseLeaveDelay: PropTypes.number.def(0.1),\n    zIndex: PropTypes.number,\n    focusDelay: PropTypes.number.def(0),\n    blurDelay: PropTypes.number.def(0.15),\n    getPopupContainer: PropTypes.func,\n    getDocument: PropTypes.func.def(returnDocument),\n    forceRender: PropTypes.looseBool,\n    destroyPopupOnHide: PropTypes.looseBool.def(false),\n    mask: PropTypes.looseBool.def(false),\n    maskClosable: PropTypes.looseBool.def(true),\n    // onPopupAlign: PropTypes.func.def(noop),\n    popupAlign: PropTypes.object.def(function () {\n      return {};\n    }),\n    popupVisible: PropTypes.looseBool,\n    defaultPopupVisible: PropTypes.looseBool.def(false),\n    maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n    maskAnimation: PropTypes.string,\n    stretch: PropTypes.string,\n    alignPoint: PropTypes.looseBool // Maybe we can support user pass position in the future\n\n  },\n  setup: function setup() {\n    return {\n      vcTriggerContext: inject('vcTriggerContext', {}),\n      savePopupRef: inject('savePopupRef', noop),\n      dialogContext: inject('dialogContext', null)\n    };\n  },\n  data: function data() {\n    var _this = this;\n\n    var props = this.$props;\n    var popupVisible;\n\n    if (hasProp(this, 'popupVisible')) {\n      popupVisible = !!props.popupVisible;\n    } else {\n      popupVisible = !!props.defaultPopupVisible;\n    }\n\n    ALL_HANDLERS.forEach(function (h) {\n      _this[\"fire\".concat(h)] = function (e) {\n        _this.fireEvents(h, e);\n      };\n    });\n    this._component = null;\n    this.focusTime = null;\n    this.clickOutsideHandler = null;\n    this.contextmenuOutsideHandler1 = null;\n    this.contextmenuOutsideHandler2 = null;\n    this.touchOutsideHandler = null;\n    return {\n      prevPopupVisible: popupVisible,\n      sPopupVisible: popupVisible,\n      point: null\n    };\n  },\n  watch: {\n    popupVisible: function popupVisible(val) {\n      if (val !== undefined) {\n        this.prevPopupVisible = this.sPopupVisible;\n        this.sPopupVisible = val;\n      }\n    }\n  },\n  created: function created() {\n    provide('vcTriggerContext', this);\n  },\n  deactivated: function deactivated() {\n    this.setPopupVisible(false);\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    this.$nextTick(function () {\n      _this2.updatedCal();\n    });\n  },\n  updated: function updated() {\n    var _this3 = this;\n\n    this.$nextTick(function () {\n      _this3.updatedCal();\n    });\n  },\n  beforeUnmount: function beforeUnmount() {\n    this.clearDelayTimer();\n    this.clearOutsideHandler();\n    clearTimeout(this.mouseDownTimeout);\n  },\n  methods: {\n    updatedCal: function updatedCal() {\n      var props = this.$props;\n      var state = this.$data; // We must listen to `mousedown` or `touchstart`, edge case:\n      // https://github.com/ant-design/ant-design/issues/5804\n      // https://github.com/react-component/calendar/issues/250\n      // https://github.com/react-component/trigger/issues/50\n\n      if (state.sPopupVisible) {\n        var currentDocument;\n\n        if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextmenuToShow())) {\n          currentDocument = props.getDocument();\n          this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n        } // always hide on mobile\n\n\n        if (!this.touchOutsideHandler) {\n          currentDocument = currentDocument || props.getDocument();\n          this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick, supportsPassive ? {\n            passive: false\n          } : false);\n        } // close popup when trigger type contains 'onContextmenu' and document is scrolling.\n\n\n        if (!this.contextmenuOutsideHandler1 && this.isContextmenuToShow()) {\n          currentDocument = currentDocument || props.getDocument();\n          this.contextmenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextmenuClose);\n        } // close popup when trigger type contains 'onContextmenu' and window is blur.\n\n\n        if (!this.contextmenuOutsideHandler2 && this.isContextmenuToShow()) {\n          this.contextmenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextmenuClose);\n        }\n      } else {\n        this.clearOutsideHandler();\n      }\n    },\n    onMouseenter: function onMouseenter(e) {\n      var mouseEnterDelay = this.$props.mouseEnterDelay;\n      this.fireEvents('onMouseenter', e);\n      this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n    },\n    onMouseMove: function onMouseMove(e) {\n      this.fireEvents('onMousemove', e);\n      this.setPoint(e);\n    },\n    onMouseleave: function onMouseleave(e) {\n      this.fireEvents('onMouseleave', e);\n      this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n    },\n    onPopupMouseenter: function onPopupMouseenter() {\n      this.clearDelayTimer();\n    },\n    onPopupMouseleave: function onPopupMouseleave(e) {\n      if (e && e.relatedTarget && !e.relatedTarget.setTimeout && this._component && this._component.getPopupDomNode && contains(this._component.getPopupDomNode(), e.relatedTarget)) {\n        return;\n      }\n\n      this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n    },\n    onFocus: function onFocus(e) {\n      this.fireEvents('onFocus', e); // incase focusin and focusout\n\n      this.clearDelayTimer();\n\n      if (this.isFocusToShow()) {\n        this.focusTime = Date.now();\n        this.delaySetPopupVisible(true, this.$props.focusDelay);\n      }\n    },\n    onMousedown: function onMousedown(e) {\n      this.fireEvents('onMousedown', e);\n      this.preClickTime = Date.now();\n    },\n    onTouchstart: function onTouchstart(e) {\n      this.fireEvents('onTouchstart', e);\n      this.preTouchTime = Date.now();\n    },\n    onBlur: function onBlur(e) {\n      if (!contains(e.target, e.relatedTarget || document.activeElement)) {\n        this.fireEvents('onBlur', e);\n        this.clearDelayTimer();\n\n        if (this.isBlurToHide()) {\n          this.delaySetPopupVisible(false, this.$props.blurDelay);\n        }\n      }\n    },\n    onContextmenu: function onContextmenu(e) {\n      e.preventDefault();\n      this.fireEvents('onContextmenu', e);\n      this.setPopupVisible(true, e);\n    },\n    onContextmenuClose: function onContextmenuClose() {\n      if (this.isContextmenuToShow()) {\n        this.close();\n      }\n    },\n    onClick: function onClick(event) {\n      this.fireEvents('onClick', event); // focus will trigger click\n\n      if (this.focusTime) {\n        var preTime;\n\n        if (this.preClickTime && this.preTouchTime) {\n          preTime = Math.min(this.preClickTime, this.preTouchTime);\n        } else if (this.preClickTime) {\n          preTime = this.preClickTime;\n        } else if (this.preTouchTime) {\n          preTime = this.preTouchTime;\n        }\n\n        if (Math.abs(preTime - this.focusTime) < 20) {\n          return;\n        }\n\n        this.focusTime = 0;\n      }\n\n      this.preClickTime = 0;\n      this.preTouchTime = 0; // Only prevent default when all the action is click.\n      // https://github.com/ant-design/ant-design/issues/17043\n      // https://github.com/ant-design/ant-design/issues/17291\n\n      if (this.isClickToShow() && (this.isClickToHide() || this.isBlurToHide()) && event && event.preventDefault) {\n        event.preventDefault();\n      }\n\n      if (event && event.domEvent) {\n        event.domEvent.preventDefault();\n      }\n\n      var nextVisible = !this.$data.sPopupVisible;\n\n      if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n        this.setPopupVisible(!this.$data.sPopupVisible, event);\n      }\n    },\n    onPopupMouseDown: function onPopupMouseDown() {\n      var _this4 = this;\n\n      var _this$vcTriggerContex = this.vcTriggerContext,\n          vcTriggerContext = _this$vcTriggerContex === void 0 ? {} : _this$vcTriggerContex;\n      this.hasPopupMouseDown = true;\n      clearTimeout(this.mouseDownTimeout);\n      this.mouseDownTimeout = setTimeout(function () {\n        _this4.hasPopupMouseDown = false;\n      }, 0);\n\n      if (vcTriggerContext.onPopupMouseDown) {\n        vcTriggerContext.onPopupMouseDown.apply(vcTriggerContext, arguments);\n      }\n    },\n    onDocumentClick: function onDocumentClick(event) {\n      if (this.$props.mask && !this.$props.maskClosable) {\n        return;\n      }\n\n      var target = event.target;\n      var root = findDOMNode(this);\n\n      if (!contains(root, target) && !this.hasPopupMouseDown) {\n        this.close();\n      }\n    },\n    getPopupDomNode: function getPopupDomNode() {\n      if (this._component && this._component.getPopupDomNode) {\n        return this._component.getPopupDomNode();\n      }\n\n      return null;\n    },\n    getRootDomNode: function getRootDomNode() {\n      return findDOMNode(this);\n    },\n    handleGetPopupClassFromAlign: function handleGetPopupClassFromAlign(align) {\n      var className = [];\n      var props = this.$props;\n      var popupPlacement = props.popupPlacement,\n          builtinPlacements = props.builtinPlacements,\n          prefixCls = props.prefixCls,\n          alignPoint = props.alignPoint,\n          getPopupClassNameFromAlign = props.getPopupClassNameFromAlign;\n\n      if (popupPlacement && builtinPlacements) {\n        className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n      }\n\n      if (getPopupClassNameFromAlign) {\n        className.push(getPopupClassNameFromAlign(align));\n      }\n\n      return className.join(' ');\n    },\n    getPopupAlign: function getPopupAlign() {\n      var props = this.$props;\n      var popupPlacement = props.popupPlacement,\n          popupAlign = props.popupAlign,\n          builtinPlacements = props.builtinPlacements;\n\n      if (popupPlacement && builtinPlacements) {\n        return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n      }\n\n      return popupAlign;\n    },\n    savePopup: function savePopup(node) {\n      this._component = node;\n      this.savePopupRef(node);\n    },\n    getComponent: function getComponent() {\n      var self = this;\n      var mouseProps = {};\n\n      if (this.isMouseEnterToShow()) {\n        mouseProps.onMouseenter = self.onPopupMouseenter;\n      }\n\n      if (this.isMouseLeaveToHide()) {\n        mouseProps.onMouseleave = self.onPopupMouseleave;\n      }\n\n      mouseProps.onMousedown = this.onPopupMouseDown;\n      mouseProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.onPopupMouseDown;\n      var handleGetPopupClassFromAlign = self.handleGetPopupClassFromAlign,\n          getRootDomNode = self.getRootDomNode,\n          getContainer = self.getContainer,\n          $attrs = self.$attrs;\n      var _self$$props = self.$props,\n          prefixCls = _self$$props.prefixCls,\n          destroyPopupOnHide = _self$$props.destroyPopupOnHide,\n          popupClassName = _self$$props.popupClassName,\n          action = _self$$props.action,\n          popupAnimation = _self$$props.popupAnimation,\n          popupTransitionName = _self$$props.popupTransitionName,\n          popupStyle = _self$$props.popupStyle,\n          mask = _self$$props.mask,\n          maskAnimation = _self$$props.maskAnimation,\n          maskTransitionName = _self$$props.maskTransitionName,\n          zIndex = _self$$props.zIndex,\n          stretch = _self$$props.stretch,\n          alignPoint = _self$$props.alignPoint;\n      var _this$$data = this.$data,\n          sPopupVisible = _this$$data.sPopupVisible,\n          point = _this$$data.point;\n      var align = this.getPopupAlign();\n\n      var popupProps = _extends(_extends({\n        prefixCls: prefixCls,\n        destroyPopupOnHide: destroyPopupOnHide,\n        visible: sPopupVisible,\n        point: alignPoint ? point : null,\n        action: action,\n        align: align,\n        animation: popupAnimation,\n        getClassNameFromAlign: handleGetPopupClassFromAlign,\n        stretch: stretch,\n        getRootDomNode: getRootDomNode,\n        mask: mask,\n        zIndex: zIndex,\n        transitionName: popupTransitionName,\n        maskAnimation: maskAnimation,\n        maskTransitionName: maskTransitionName,\n        getContainer: getContainer,\n        popupClassName: popupClassName,\n        popupStyle: popupStyle,\n        onAlign: $attrs.onPopupAlign || noop\n      }, mouseProps), {\n        ref: this.savePopup\n      });\n\n      return _createVNode(Popup, popupProps, {\n        default: function _default() {\n          return [_getComponent(self, 'popup')];\n        }\n      });\n    },\n    getContainer: function getContainer() {\n      var props = this.$props,\n          dialogContext = this.dialogContext;\n      var popupContainer = document.createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n      // https://github.com/react-component/trigger/issues/41\n\n      popupContainer.style.position = 'absolute';\n      popupContainer.style.top = '0';\n      popupContainer.style.left = '0';\n      popupContainer.style.width = '100%';\n      var mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(this), dialogContext) : props.getDocument().body;\n      mountNode.appendChild(popupContainer);\n      this.popupContainer = popupContainer;\n      return popupContainer;\n    },\n    setPopupVisible: function setPopupVisible(sPopupVisible, event) {\n      var alignPoint = this.alignPoint,\n          prevPopupVisible = this.sPopupVisible,\n          onPopupVisibleChange = this.onPopupVisibleChange;\n      this.clearDelayTimer();\n\n      if (prevPopupVisible !== sPopupVisible) {\n        if (!hasProp(this, 'popupVisible')) {\n          this.setState({\n            sPopupVisible: sPopupVisible,\n            prevPopupVisible: prevPopupVisible\n          });\n        }\n\n        onPopupVisibleChange && onPopupVisibleChange(sPopupVisible);\n      } // Always record the point position since mouseEnterDelay will delay the show\n\n\n      if (alignPoint && event) {\n        this.setPoint(event);\n      }\n    },\n    setPoint: function setPoint(point) {\n      var alignPoint = this.$props.alignPoint;\n      if (!alignPoint || !point) return;\n      this.setState({\n        point: {\n          pageX: point.pageX,\n          pageY: point.pageY\n        }\n      });\n    },\n    handlePortalUpdate: function handlePortalUpdate() {\n      if (this.prevPopupVisible !== this.sPopupVisible) {\n        this.afterPopupVisibleChange(this.sPopupVisible);\n      }\n    },\n    delaySetPopupVisible: function delaySetPopupVisible(visible, delayS, event) {\n      var _this5 = this;\n\n      var delay = delayS * 1000;\n      this.clearDelayTimer();\n\n      if (delay) {\n        var point = event ? {\n          pageX: event.pageX,\n          pageY: event.pageY\n        } : null;\n        this.delayTimer = requestAnimationTimeout(function () {\n          _this5.setPopupVisible(visible, point);\n\n          _this5.clearDelayTimer();\n        }, delay);\n      } else {\n        this.setPopupVisible(visible, event);\n      }\n    },\n    clearDelayTimer: function clearDelayTimer() {\n      if (this.delayTimer) {\n        cancelAnimationTimeout(this.delayTimer);\n        this.delayTimer = null;\n      }\n    },\n    clearOutsideHandler: function clearOutsideHandler() {\n      if (this.clickOutsideHandler) {\n        this.clickOutsideHandler.remove();\n        this.clickOutsideHandler = null;\n      }\n\n      if (this.contextmenuOutsideHandler1) {\n        this.contextmenuOutsideHandler1.remove();\n        this.contextmenuOutsideHandler1 = null;\n      }\n\n      if (this.contextmenuOutsideHandler2) {\n        this.contextmenuOutsideHandler2.remove();\n        this.contextmenuOutsideHandler2 = null;\n      }\n\n      if (this.touchOutsideHandler) {\n        this.touchOutsideHandler.remove();\n        this.touchOutsideHandler = null;\n      }\n    },\n    createTwoChains: function createTwoChains(event) {\n      var fn = function fn() {};\n\n      var events = getEvents(this);\n\n      if (this.childOriginEvents[event] && events[event]) {\n        return this[\"fire\".concat(event)];\n      }\n\n      fn = this.childOriginEvents[event] || events[event] || fn;\n      return fn;\n    },\n    isClickToShow: function isClickToShow() {\n      var _this$$props = this.$props,\n          action = _this$$props.action,\n          showAction = _this$$props.showAction;\n      return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n    },\n    isContextmenuToShow: function isContextmenuToShow() {\n      var _this$$props2 = this.$props,\n          action = _this$$props2.action,\n          showAction = _this$$props2.showAction;\n      return action.indexOf('contextmenu') !== -1 || showAction.indexOf('contextmenu') !== -1;\n    },\n    isClickToHide: function isClickToHide() {\n      var _this$$props3 = this.$props,\n          action = _this$$props3.action,\n          hideAction = _this$$props3.hideAction;\n      return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n    },\n    isMouseEnterToShow: function isMouseEnterToShow() {\n      var _this$$props4 = this.$props,\n          action = _this$$props4.action,\n          showAction = _this$$props4.showAction;\n      return action.indexOf('hover') !== -1 || showAction.indexOf('mouseenter') !== -1;\n    },\n    isMouseLeaveToHide: function isMouseLeaveToHide() {\n      var _this$$props5 = this.$props,\n          action = _this$$props5.action,\n          hideAction = _this$$props5.hideAction;\n      return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseleave') !== -1;\n    },\n    isFocusToShow: function isFocusToShow() {\n      var _this$$props6 = this.$props,\n          action = _this$$props6.action,\n          showAction = _this$$props6.showAction;\n      return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n    },\n    isBlurToHide: function isBlurToHide() {\n      var _this$$props7 = this.$props,\n          action = _this$$props7.action,\n          hideAction = _this$$props7.hideAction;\n      return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n    },\n    forcePopupAlign: function forcePopupAlign() {\n      if (this.$data.sPopupVisible && this._component && this._component.alignInstance) {\n        this._component.alignInstance.forceAlign();\n      }\n    },\n    fireEvents: function fireEvents(type, e) {\n      if (this.childOriginEvents[type]) {\n        this.childOriginEvents[type](e);\n      }\n\n      var event = this.$props[type] || this.$attrs[type];\n\n      if (event) {\n        event(e);\n      }\n    },\n    close: function close() {\n      this.setPopupVisible(false);\n    }\n  },\n  render: function render() {\n    var _this6 = this;\n\n    var sPopupVisible = this.sPopupVisible,\n        $attrs = this.$attrs;\n    var children = filterEmpty(getSlot(this));\n    var _this$$props8 = this.$props,\n        forceRender = _this$$props8.forceRender,\n        alignPoint = _this$$props8.alignPoint;\n\n    if (children.length > 1) {\n      warning(false, 'Trigger children just support only one default', true);\n    }\n\n    var child = children[0];\n    this.childOriginEvents = getEvents(child);\n    var newChildProps = {\n      key: 'trigger'\n    };\n\n    if (this.isContextmenuToShow()) {\n      newChildProps.onContextmenu = this.onContextmenu;\n    } else {\n      newChildProps.onContextmenu = this.createTwoChains('onContextmenu');\n    }\n\n    if (this.isClickToHide() || this.isClickToShow()) {\n      newChildProps.onClick = this.onClick;\n      newChildProps.onMousedown = this.onMousedown;\n      newChildProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.onTouchstart;\n    } else {\n      newChildProps.onClick = this.createTwoChains('onClick');\n      newChildProps.onMousedown = this.createTwoChains('onMousedown');\n      newChildProps[supportsPassive ? 'onTouchstartPassive' : 'onTouchstart'] = this.createTwoChains('onTouchstart');\n    }\n\n    if (this.isMouseEnterToShow()) {\n      newChildProps.onMouseenter = this.onMouseenter;\n\n      if (alignPoint) {\n        newChildProps.onMousemove = this.onMouseMove;\n      }\n    } else {\n      newChildProps.onMouseenter = this.createTwoChains('onMouseenter');\n    }\n\n    if (this.isMouseLeaveToHide()) {\n      newChildProps.onMouseleave = this.onMouseleave;\n    } else {\n      newChildProps.onMouseleave = this.createTwoChains('onMouseleave');\n    }\n\n    if (this.isFocusToShow() || this.isBlurToHide()) {\n      newChildProps.onFocus = this.onFocus;\n      newChildProps.onBlur = this.onBlur;\n    } else {\n      newChildProps.onFocus = this.createTwoChains('onFocus');\n\n      newChildProps.onBlur = function (e) {\n        if (e && (!e.relatedTarget || !contains(e.target, e.relatedTarget))) {\n          _this6.createTwoChains('onBlur')(e);\n        }\n      };\n    }\n\n    var childrenClassName = classNames(child && child.props && child.props.class, $attrs.class);\n\n    if (childrenClassName) {\n      newChildProps.class = childrenClassName;\n    }\n\n    var trigger = cloneElement(child, newChildProps);\n    var portal; // prevent unmounting after it's rendered\n\n    if (sPopupVisible || this._component || forceRender) {\n      portal = _createVNode(Portal, {\n        \"key\": \"portal\",\n        \"children\": this.getComponent(),\n        \"getContainer\": this.getContainer,\n        \"didUpdate\": this.handlePortalUpdate\n      }, null);\n    }\n\n    return [portal, trigger];\n  }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport Trigger from '../vc-trigger';\nimport PropTypes from '../_util/vue-types';\nimport { getSlot } from '../_util/props-util';\nimport classNames from '../_util/classNames';\nimport createRef from '../_util/createRef';\nimport { defineComponent } from 'vue';\n\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n  // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n  var adjustX = typeof dropdownMatchSelectWidth !== 'number' ? 0 : 1;\n  return {\n    bottomLeft: {\n      points: ['tl', 'bl'],\n      offset: [0, 4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      }\n    },\n    bottomRight: {\n      points: ['tr', 'br'],\n      offset: [0, 4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      }\n    },\n    topLeft: {\n      points: ['bl', 'tl'],\n      offset: [0, -4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      }\n    },\n    topRight: {\n      points: ['br', 'tr'],\n      offset: [0, -4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      }\n    }\n  };\n};\n\nvar SelectTrigger = defineComponent({\n  name: 'SelectTrigger',\n  inheritAttrs: false,\n  created: function created() {\n    this.popupRef = createRef();\n  },\n  methods: {\n    getPopupElement: function getPopupElement() {\n      return this.popupRef.current;\n    }\n  },\n  render: function render() {\n    var _this = this;\n\n    var _a = _extends(_extends({}, this.$props), this.$attrs),\n        _a$empty = _a.empty,\n        empty = _a$empty === void 0 ? false : _a$empty,\n        props = __rest(_a, [\"empty\"]);\n\n    var visible = props.visible,\n        dropdownAlign = props.dropdownAlign,\n        prefixCls = props.prefixCls,\n        popupElement = props.popupElement,\n        dropdownClassName = props.dropdownClassName,\n        dropdownStyle = props.dropdownStyle,\n        dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n        containerWidth = props.containerWidth,\n        dropdownRender = props.dropdownRender,\n        animation = props.animation,\n        transitionName = props.transitionName,\n        direction = props.direction,\n        getPopupContainer = props.getPopupContainer;\n    var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n    var popupNode = popupElement;\n\n    if (dropdownRender) {\n      popupNode = dropdownRender({\n        menuNode: popupElement,\n        props: props\n      });\n    }\n\n    var builtInPlacements = getBuiltInPlacements(dropdownMatchSelectWidth);\n    var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n    var popupStyle = _extends({\n      minWidth: \"\".concat(containerWidth, \"px\")\n    }, dropdownStyle);\n\n    if (typeof dropdownMatchSelectWidth === 'number') {\n      popupStyle.width = \"\".concat(dropdownMatchSelectWidth, \"px\");\n    } else if (dropdownMatchSelectWidth) {\n      popupStyle.width = \"\".concat(containerWidth, \"px\");\n    }\n\n    return _createVNode(Trigger, _objectSpread(_objectSpread({}, props), {}, {\n      \"showAction\": [],\n      \"hideAction\": [],\n      \"popupPlacement\": direction === 'rtl' ? 'bottomRight' : 'bottomLeft',\n      \"builtinPlacements\": builtInPlacements,\n      \"prefixCls\": dropdownPrefixCls,\n      \"popupTransitionName\": mergedTransitionName,\n      \"popup\": _createVNode(\"div\", {\n        \"ref\": this.popupRef\n      }, [popupNode]),\n      \"popupAlign\": dropdownAlign,\n      \"popupVisible\": visible,\n      \"getPopupContainer\": getPopupContainer,\n      \"popupClassName\": classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n      \"popupStyle\": popupStyle\n    }), {\n      default: function _default() {\n        return [getSlot(_this)[0]];\n      }\n    });\n  }\n});\nSelectTrigger.props = {\n  dropdownAlign: PropTypes.object,\n  visible: PropTypes.looseBool,\n  disabled: PropTypes.looseBool,\n  dropdownClassName: PropTypes.string,\n  dropdownStyle: PropTypes.object,\n  empty: PropTypes.looseBool,\n  prefixCls: PropTypes.string,\n  popupClassName: PropTypes.string,\n  animation: PropTypes.string,\n  transitionName: PropTypes.string,\n  getPopupContainer: PropTypes.func,\n  dropdownRender: PropTypes.func,\n  containerWidth: PropTypes.number,\n  dropdownMatchSelectWidth: PropTypes.oneOfType([Number, Boolean]).def(true),\n  popupElement: PropTypes.any,\n  direction: PropTypes.string,\n  getTriggerDOMNode: PropTypes.func\n};\nexport default SelectTrigger;","export var INTERNAL_PROPS_MARK = 'RC_SELECT_INTERNAL_PROPS_MARK';","import { onMounted, ref } from 'vue';\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\n\nexport default function useDelayReset() {\n  var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n  var bool = ref(false);\n  var delay;\n\n  var cancelLatest = function cancelLatest() {\n    window.clearTimeout(delay);\n  };\n\n  onMounted(function () {\n    cancelLatest();\n  });\n\n  var delaySetBool = function delaySetBool(value, callback) {\n    cancelLatest();\n    delay = window.setTimeout(function () {\n      bool.value = value;\n\n      if (callback) {\n        callback();\n      }\n    }, timeout);\n  };\n\n  return [bool, delaySetBool, cancelLatest];\n}","import { onBeforeUnmount, onMounted } from 'vue';\nexport default function useSelectTriggerControl(refs, open, triggerOpen) {\n  function onGlobalMouseDown(event) {\n    var _a, _b, _c;\n\n    var target = event.target;\n\n    if (target.shadowRoot && event.composed) {\n      target = event.composedPath()[0] || target;\n    }\n\n    var elements = [(_a = refs[0]) === null || _a === void 0 ? void 0 : _a.value, (_c = (_b = refs[1]) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.getPopupElement()];\n\n    if (open.value && elements.every(function (element) {\n      return element && !element.contains(target) && element !== target;\n    })) {\n      // Should trigger close\n      triggerOpen(false);\n    }\n  }\n\n  onMounted(function () {\n    window.addEventListener('mousedown', onGlobalMouseDown);\n  });\n  onBeforeUnmount(function () {\n    window.removeEventListener('mousedown', onGlobalMouseDown);\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { computed } from 'vue';\nexport default function useCacheDisplayValue(values) {\n  var prevValues = _toConsumableArray(values.value);\n\n  var mergedValues = computed(function () {\n    // Create value - label map\n    var valueLabels = new Map();\n    prevValues.forEach(function (_ref) {\n      var value = _ref.value,\n          label = _ref.label;\n\n      if (value !== label) {\n        valueLabels.set(value, label);\n      }\n    });\n    var resultValues = values.value.map(function (item) {\n      var cacheLabel = valueLabels.get(item.value);\n\n      if (item.isCacheable && cacheLabel) {\n        return _extends(_extends({}, item), {\n          label: cacheLabel\n        });\n      }\n\n      return item;\n    });\n    prevValues = resultValues;\n    return resultValues;\n  });\n  return mergedValues;\n}","import { computed } from 'vue';\nexport default function useCacheOptions(options) {\n  var optionMap = computed(function () {\n    var map = new Map();\n    options.value.forEach(function (item) {\n      var value = item.data.value;\n      map.set(value, item);\n    });\n    return map;\n  });\n\n  var getValueOption = function getValueOption(vals) {\n    return vals.map(function (value) {\n      return optionMap.value.get(value);\n    }).filter(Boolean);\n  };\n\n  return getValueOption;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar initDefaultProps = function initDefaultProps(types, defaultProps) {\n  var propTypes = _extends({}, types);\n\n  Object.keys(defaultProps).forEach(function (k) {\n    var prop = propTypes[k];\n\n    if (prop) {\n      prop.default = defaultProps[k];\n    } else {\n      throw new Error(\"not have \".concat(k, \" prop\"));\n    }\n  });\n  return propTypes;\n};\n\nexport default initDefaultProps;","export default (function () {\n  if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n    return false;\n  }\n\n  var agent = navigator.userAgent || navigator.vendor || window.opera;\n\n  if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4))) {\n    return true;\n  }\n\n  return false;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { createTextVNode as _createTextVNode, createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabindex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n */\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport KeyCode from '../_util/KeyCode';\nimport classNames from '../_util/classNames';\nimport Selector from './Selector';\nimport SelectTrigger from './SelectTrigger';\nimport { INTERNAL_PROPS_MARK } from './interface/generator';\nimport { toInnerValue, toOuterValues, removeLastEnabledValue, getUUID } from './utils/commonUtil';\nimport TransBtn from './TransBtn';\nimport useLock from './hooks/useLock';\nimport useDelayReset from './hooks/useDelayReset';\nimport { getSeparatedContent } from './utils/valueUtil';\nimport useSelectTriggerControl from './hooks/useSelectTriggerControl';\nimport useCacheDisplayValue from './hooks/useCacheDisplayValue';\nimport useCacheOptions from './hooks/useCacheOptions';\nimport { computed, defineComponent, onBeforeUnmount, onMounted, provide, ref, watch, watchEffect } from 'vue';\nimport createRef from '../_util/createRef';\nimport PropTypes, { withUndefined } from '../_util/vue-types';\nimport initDefaultProps from '../_util/props-util/initDefaultProps';\nimport warning from '../_util/warning';\nimport isMobile from '../vc-util/isMobile';\nvar DEFAULT_OMIT_PROPS = ['children', 'removeIcon', 'placeholder', 'autofocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'tabindex'];\nexport var BaseProps = function BaseProps() {\n  return {\n    prefixCls: PropTypes.string,\n    id: PropTypes.string,\n    class: PropTypes.string,\n    style: PropTypes.any,\n    // Options\n    options: PropTypes.array,\n    mode: PropTypes.string,\n    // Value\n    value: PropTypes.any,\n    defaultValue: PropTypes.any,\n    labelInValue: PropTypes.looseBool,\n    // Search\n    inputValue: PropTypes.string,\n    searchValue: PropTypes.string,\n    optionFilterProp: PropTypes.string,\n\n    /**\n     * In Select, `false` means do nothing.\n     * In TreeSelect, `false` will highlight match item.\n     * It's by design.\n     */\n    filterOption: PropTypes.any,\n    filterSort: PropTypes.func,\n    showSearch: PropTypes.looseBool,\n    autoClearSearchValue: PropTypes.looseBool,\n    onSearch: PropTypes.func,\n    onClear: PropTypes.func,\n    // Icons\n    allowClear: PropTypes.looseBool,\n    clearIcon: PropTypes.VNodeChild,\n    showArrow: PropTypes.looseBool,\n    inputIcon: PropTypes.VNodeChild,\n    removeIcon: PropTypes.VNodeChild,\n    menuItemSelectedIcon: PropTypes.VNodeChild,\n    // Dropdown\n    open: PropTypes.looseBool,\n    defaultOpen: PropTypes.looseBool,\n    listHeight: PropTypes.number,\n    listItemHeight: PropTypes.number,\n    dropdownStyle: PropTypes.object,\n    dropdownClassName: PropTypes.string,\n    dropdownMatchSelectWidth: withUndefined(PropTypes.oneOfType([Boolean, Number])),\n    virtual: PropTypes.looseBool,\n    dropdownRender: PropTypes.func,\n    dropdownAlign: PropTypes.any,\n    animation: PropTypes.string,\n    transitionName: PropTypes.string,\n    getPopupContainer: PropTypes.func,\n    direction: PropTypes.string,\n    // Others\n    disabled: PropTypes.looseBool,\n    loading: PropTypes.looseBool,\n    autofocus: PropTypes.looseBool,\n    defaultActiveFirstOption: PropTypes.looseBool,\n    notFoundContent: PropTypes.VNodeChild,\n    placeholder: PropTypes.VNodeChild,\n    backfill: PropTypes.looseBool,\n    getInputElement: PropTypes.func,\n    optionLabelProp: PropTypes.string,\n    maxTagTextLength: PropTypes.number,\n    maxTagCount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    maxTagPlaceholder: PropTypes.any,\n    tokenSeparators: PropTypes.arrayOf(PropTypes.string),\n    tagRender: PropTypes.func,\n    showAction: PropTypes.array,\n    tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    // Events\n    onKeyup: PropTypes.func,\n    onKeydown: PropTypes.func,\n    onPopupScroll: PropTypes.func,\n    onDropdownVisibleChange: PropTypes.func,\n    onSelect: PropTypes.func,\n    onDeselect: PropTypes.func,\n    onInputKeyDown: {\n      type: Function\n    },\n    onClick: PropTypes.func,\n    onChange: PropTypes.func,\n    onBlur: PropTypes.func,\n    onFocus: PropTypes.func,\n    onMousedown: PropTypes.func,\n    onMouseenter: PropTypes.func,\n    onMouseleave: PropTypes.func,\n    // Motion\n    choiceTransitionName: PropTypes.string,\n    // Internal props\n\n    /**\n     * Only used in current version for internal event process.\n     * Do not use in production environment.\n     */\n    internalProps: PropTypes.object,\n    children: PropTypes.array\n  };\n};\n/**\n * This function is in internal usage.\n * Do not use it in your prod env since we may refactor this.\n */\n\nexport default function generateSelector(config) {\n  var defaultPrefixCls = config.prefixCls,\n      OptionList = config.components.optionList,\n      convertChildrenToData = config.convertChildrenToData,\n      flattenOptions = config.flattenOptions,\n      getLabeledValue = config.getLabeledValue,\n      filterOptions = config.filterOptions,\n      isValueDisabled = config.isValueDisabled,\n      findValueOption = config.findValueOption,\n      warningProps = config.warningProps,\n      fillOptionsWithMissingValue = config.fillOptionsWithMissingValue,\n      omitDOMProps = config.omitDOMProps;\n  var Select = defineComponent({\n    name: 'Select',\n    slots: ['option'],\n    props: initDefaultProps(BaseProps(), {}),\n    setup: function setup(props) {\n      var _a;\n\n      var useInternalProps = computed(function () {\n        return props.internalProps && props.internalProps.mark === INTERNAL_PROPS_MARK;\n      });\n      warning(props.optionFilterProp !== 'children', 'Select', 'optionFilterProp not support children, please use label instead');\n      var containerRef = ref(null);\n      var triggerRef = ref(null);\n      var selectorRef = ref(null);\n      var listRef = ref(null);\n      var tokenWithEnter = computed(function () {\n        return (props.tokenSeparators || []).some(function (tokenSeparator) {\n          return ['\\n', '\\r\\n'].includes(tokenSeparator);\n        });\n      });\n      /** Used for component focused management */\n\n      var _useDelayReset = useDelayReset(),\n          _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n          mockFocused = _useDelayReset2[0],\n          setMockFocused = _useDelayReset2[1],\n          cancelSetMockFocused = _useDelayReset2[2];\n\n      var mergedId = computed(function () {\n        return props.id || \"rc_select_\".concat(getUUID());\n      }); // optionLabelProp\n\n      var mergedOptionLabelProp = computed(function () {\n        var mergedOptionLabelProp = props.optionLabelProp;\n\n        if (mergedOptionLabelProp === undefined) {\n          mergedOptionLabelProp = props.options ? 'label' : 'children';\n        }\n\n        return mergedOptionLabelProp;\n      }); // labelInValue\n\n      var mergedLabelInValue = computed(function () {\n        return props.mode === 'combobox' ? false : props.labelInValue;\n      });\n      var isMultiple = computed(function () {\n        return props.mode === 'tags' || props.mode === 'multiple';\n      });\n      var mergedShowSearch = computed(function () {\n        return props.showSearch !== undefined ? props.showSearch : isMultiple.value || props.mode === 'combobox';\n      });\n      var mobile = ref(false);\n      onMounted(function () {\n        mobile.value = isMobile();\n      }); // ============================== Ref ===============================\n\n      var selectorDomRef = createRef();\n      var innerSearchValue = ref('');\n\n      var setInnerSearchValue = function setInnerSearchValue(val) {\n        innerSearchValue.value = val;\n      };\n\n      var mergedValue = ref(props.value !== undefined ? props.value : props.defaultValue);\n      watch(function () {\n        return props.value;\n      }, function () {\n        mergedValue.value = props.value;\n        innerSearchValue.value = '';\n      }); // ============================= Value ==============================\n\n      /** Unique raw values */\n\n      var mergedRawValueArr = computed(function () {\n        return toInnerValue(mergedValue.value, {\n          labelInValue: mergedLabelInValue.value,\n          combobox: props.mode === 'combobox'\n        });\n      });\n      var mergedRawValue = computed(function () {\n        return mergedRawValueArr.value[0];\n      });\n      var mergedValueMap = computed(function () {\n        return mergedRawValueArr.value[1];\n      });\n      /** We cache a set of raw values to speed up check */\n\n      var rawValues = computed(function () {\n        return new Set(mergedRawValue.value);\n      }); // ============================= Option =============================\n      // Set by option list active, it will merge into search input when mode is `combobox`\n\n      var activeValue = ref(null);\n\n      var setActiveValue = function setActiveValue(val) {\n        activeValue.value = val;\n      };\n\n      var mergedSearchValue = computed(function () {\n        var mergedSearchValue = innerSearchValue.value;\n\n        if (props.mode === 'combobox' && mergedValue.value !== undefined) {\n          mergedSearchValue = mergedValue.value;\n        } else if (props.searchValue !== undefined) {\n          mergedSearchValue = props.searchValue;\n        } else if (props.inputValue) {\n          mergedSearchValue = props.inputValue;\n        }\n\n        return mergedSearchValue;\n      });\n      var mergedOptions = computed(function () {\n        var newOptions = props.options;\n\n        if (newOptions === undefined) {\n          newOptions = convertChildrenToData(props.children);\n        }\n        /**\n         * `tags` should fill un-list item.\n         * This is not cool here since TreeSelect do not need this\n         */\n\n\n        if (props.mode === 'tags' && fillOptionsWithMissingValue) {\n          newOptions = fillOptionsWithMissingValue(newOptions, mergedValue.value, mergedOptionLabelProp.value, props.labelInValue);\n        }\n\n        return newOptions || [];\n      });\n      var mergedFlattenOptions = computed(function () {\n        return flattenOptions(mergedOptions.value, props);\n      });\n      var getValueOption = useCacheOptions(mergedFlattenOptions); // Display options for OptionList\n\n      var displayOptions = computed(function () {\n        if (!mergedSearchValue.value || !mergedShowSearch.value) {\n          return _toConsumableArray(mergedOptions.value);\n        }\n\n        var _props$optionFilterPr = props.optionFilterProp,\n            optionFilterProp = _props$optionFilterPr === void 0 ? 'value' : _props$optionFilterPr,\n            mode = props.mode,\n            filterOption = props.filterOption;\n        var filteredOptions = filterOptions(mergedSearchValue.value, mergedOptions.value, {\n          optionFilterProp: optionFilterProp,\n          filterOption: mode === 'combobox' && filterOption === undefined ? function () {\n            return true;\n          } : filterOption\n        });\n\n        if (mode === 'tags' && filteredOptions.every(function (opt) {\n          return opt[optionFilterProp] !== mergedSearchValue.value;\n        })) {\n          filteredOptions.unshift({\n            value: mergedSearchValue.value,\n            label: mergedSearchValue.value,\n            key: '__RC_SELECT_TAG_PLACEHOLDER__'\n          });\n        }\n\n        if (props.filterSort && Array.isArray(filteredOptions)) {\n          return _toConsumableArray(filteredOptions).sort(props.filterSort);\n        }\n\n        return filteredOptions;\n      });\n      var displayFlattenOptions = computed(function () {\n        return flattenOptions(displayOptions.value, props);\n      });\n      onMounted(function () {\n        watch(mergedSearchValue, function () {\n          if (listRef.value && listRef.value.scrollTo) {\n            listRef.value.scrollTo(0);\n          }\n        }, {\n          flush: 'post',\n          immediate: true\n        });\n      }); // ============================ Selector ============================\n\n      var displayValues = computed(function () {\n        var tmpValues = mergedRawValue.value.map(function (val) {\n          var valueOptions = getValueOption([val]);\n          var displayValue = getLabeledValue(val, {\n            options: valueOptions,\n            prevValueMap: mergedValueMap.value,\n            labelInValue: mergedLabelInValue.value,\n            optionLabelProp: mergedOptionLabelProp.value\n          });\n          return _extends(_extends({}, displayValue), {\n            disabled: isValueDisabled(val, valueOptions)\n          });\n        });\n\n        if (!props.mode && tmpValues.length === 1 && tmpValues[0].value === null && tmpValues[0].label === null) {\n          return [];\n        }\n\n        return tmpValues;\n      }); // Polyfill with cache label\n\n      displayValues = useCacheDisplayValue(displayValues);\n\n      var triggerSelect = function triggerSelect(newValue, isSelect, source) {\n        var newValueOption = getValueOption([newValue]);\n        var outOption = findValueOption([newValue], newValueOption)[0];\n        var _props$internalProps = props.internalProps,\n            internalProps = _props$internalProps === void 0 ? {} : _props$internalProps;\n\n        if (!internalProps.skipTriggerSelect) {\n          // Skip trigger `onSelect` or `onDeselect` if configured\n          var selectValue = mergedLabelInValue.value ? getLabeledValue(newValue, {\n            options: newValueOption,\n            prevValueMap: mergedValueMap.value,\n            labelInValue: mergedLabelInValue.value,\n            optionLabelProp: mergedOptionLabelProp.value\n          }) : newValue;\n\n          if (isSelect && props.onSelect) {\n            props.onSelect(selectValue, outOption);\n          } else if (!isSelect && props.onDeselect) {\n            props.onDeselect(selectValue, outOption);\n          }\n        } // Trigger internal event\n\n\n        if (useInternalProps.value) {\n          if (isSelect && internalProps.onRawSelect) {\n            internalProps.onRawSelect(newValue, outOption, source);\n          } else if (!isSelect && internalProps.onRawDeselect) {\n            internalProps.onRawDeselect(newValue, outOption, source);\n          }\n        }\n      }; // We need cache options here in case user update the option list\n\n\n      var prevValueOptions = ref([]);\n\n      var setPrevValueOptions = function setPrevValueOptions(val) {\n        prevValueOptions.value = val;\n      };\n\n      var triggerChange = function triggerChange(newRawValues) {\n        if (useInternalProps.value && props.internalProps && props.internalProps.skipTriggerChange) {\n          return;\n        }\n\n        var newRawValuesOptions = getValueOption(newRawValues);\n        var outValues = toOuterValues(Array.from(newRawValues), {\n          labelInValue: mergedLabelInValue.value,\n          options: newRawValuesOptions,\n          getLabeledValue: getLabeledValue,\n          prevValueMap: mergedValueMap.value,\n          optionLabelProp: mergedOptionLabelProp.value\n        });\n        var outValue = isMultiple.value ? outValues : outValues[0]; // Skip trigger if prev & current value is both empty\n\n        if (props.onChange && (mergedRawValue.value.length !== 0 || outValues.length !== 0)) {\n          var outOptions = findValueOption(newRawValues, newRawValuesOptions, {\n            prevValueOptions: prevValueOptions.value\n          }); // We will cache option in case it removed by ajax\n\n          setPrevValueOptions(outOptions.map(function (option, index) {\n            var clone = _extends({}, option);\n\n            Object.defineProperty(clone, '_INTERNAL_OPTION_VALUE_', {\n              get: function get() {\n                return newRawValues[index];\n              }\n            });\n            return clone;\n          }));\n          props.onChange(outValue, isMultiple.value ? outOptions : outOptions[0]);\n        }\n\n        mergedValue.value = outValue;\n      };\n\n      var onInternalSelect = function onInternalSelect(newValue, _ref) {\n        var selected = _ref.selected,\n            source = _ref.source;\n        var _props$autoClearSearc = props.autoClearSearchValue,\n            autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc;\n\n        if (props.disabled) {\n          return;\n        }\n\n        var newRawValue;\n\n        if (isMultiple.value) {\n          newRawValue = new Set(mergedRawValue.value);\n\n          if (selected) {\n            newRawValue.add(newValue);\n          } else {\n            newRawValue.delete(newValue);\n          }\n        } else {\n          newRawValue = new Set();\n          newRawValue.add(newValue);\n        } // Multiple always trigger change and single should change if value changed\n\n\n        if (isMultiple.value || !isMultiple.value && Array.from(mergedRawValue.value)[0] !== newValue) {\n          triggerChange(Array.from(newRawValue));\n        } // Trigger `onSelect`. Single mode always trigger select\n\n\n        triggerSelect(newValue, !isMultiple.value || selected, source); // Clean search value if single or configured\n\n        if (props.mode === 'combobox') {\n          setInnerSearchValue(String(newValue));\n          setActiveValue('');\n        } else if (!isMultiple.value || autoClearSearchValue) {\n          setInnerSearchValue('');\n          setActiveValue('');\n        }\n      };\n\n      var onInternalOptionSelect = function onInternalOptionSelect(newValue, info) {\n        onInternalSelect(newValue, _extends(_extends({}, info), {\n          source: 'option'\n        }));\n      };\n\n      var onInternalSelectionSelect = function onInternalSelectionSelect(newValue, info) {\n        onInternalSelect(newValue, _extends(_extends({}, info), {\n          source: 'selection'\n        }));\n      }; // ============================== Open ==============================\n\n\n      var initOpen = props.open !== undefined ? props.open : props.defaultOpen;\n      var innerOpen = ref(initOpen);\n      var mergedOpen = ref(initOpen);\n\n      var setInnerOpen = function setInnerOpen(val) {\n        innerOpen.value = props.open !== undefined ? props.open : val;\n        mergedOpen.value = innerOpen.value;\n      };\n\n      watch(function () {\n        return props.open;\n      }, function () {\n        setInnerOpen(props.open);\n      }); // Not trigger `open` in `combobox` when `notFoundContent` is empty\n\n      var emptyListContent = computed(function () {\n        return !props.notFoundContent && !displayOptions.value.length;\n      });\n      watchEffect(function () {\n        mergedOpen.value = innerOpen.value;\n\n        if (props.disabled || emptyListContent.value && mergedOpen.value && props.mode === 'combobox') {\n          mergedOpen.value = false;\n        }\n      });\n      var triggerOpen = computed(function () {\n        return emptyListContent.value ? false : mergedOpen.value;\n      });\n\n      var onToggleOpen = function onToggleOpen(newOpen) {\n        var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen.value;\n\n        if (innerOpen.value !== nextOpen && !props.disabled) {\n          setInnerOpen(nextOpen);\n\n          if (props.onDropdownVisibleChange) {\n            props.onDropdownVisibleChange(nextOpen);\n          }\n        }\n      };\n\n      useSelectTriggerControl([containerRef, triggerRef], triggerOpen, onToggleOpen); // ============================= Search =============================\n\n      var triggerSearch = function triggerSearch(searchText, fromTyping, isCompositing) {\n        var ret = true;\n        var newSearchText = searchText;\n        var preSearchValue = mergedSearchValue.value;\n        setActiveValue(null); // Check if match the `tokenSeparators`\n\n        var patchLabels = isCompositing ? null : getSeparatedContent(searchText, props.tokenSeparators);\n        var patchRawValues = patchLabels;\n\n        if (props.mode === 'combobox') {\n          // Only typing will trigger onChange\n          if (fromTyping) {\n            triggerChange([newSearchText]);\n          }\n        } else if (patchLabels) {\n          newSearchText = '';\n\n          if (props.mode !== 'tags') {\n            patchRawValues = patchLabels.map(function (label) {\n              var item = mergedFlattenOptions.value.find(function (_ref2) {\n                var data = _ref2.data;\n                return data[mergedOptionLabelProp.value] === label;\n              });\n              return item ? item.data.value : null;\n            }).filter(function (val) {\n              return val !== null;\n            });\n          }\n\n          var newRawValues = Array.from(new Set([].concat(_toConsumableArray(mergedRawValue.value), _toConsumableArray(patchRawValues))));\n          triggerChange(newRawValues);\n          newRawValues.forEach(function (newRawValue) {\n            triggerSelect(newRawValue, true, 'input');\n          }); // Should close when paste finish\n\n          onToggleOpen(false); // Tell Selector that break next actions\n\n          ret = false;\n        }\n\n        setInnerSearchValue(newSearchText);\n\n        if (props.onSearch && preSearchValue !== newSearchText) {\n          props.onSearch(newSearchText);\n        }\n\n        return ret;\n      }; // Only triggered when menu is closed & mode is tags\n      // If menu is open, OptionList will take charge\n      // If mode isn't tags, press enter is not meaningful when you can't see any option\n\n\n      var onSearchSubmit = function onSearchSubmit(searchText) {\n        // prevent empty tags from appearing when you click the Enter button\n        if (!searchText || !searchText.trim()) {\n          return;\n        }\n\n        var newRawValues = Array.from(new Set([].concat(_toConsumableArray(mergedRawValue.value), [searchText])));\n        triggerChange(newRawValues);\n        newRawValues.forEach(function (newRawValue) {\n          triggerSelect(newRawValue, true, 'input');\n        });\n        setInnerSearchValue('');\n      }; // Close dropdown when disabled change\n\n\n      watch(function () {\n        return props.disabled;\n      }, function () {\n        if (innerOpen.value && !!props.disabled) {\n          setInnerOpen(false);\n        }\n      }, {\n        immediate: true\n      }); // Close will clean up single mode search text\n\n      watch(mergedOpen, function () {\n        if (!mergedOpen.value && !isMultiple.value && props.mode !== 'combobox') {\n          triggerSearch('', false, false);\n        }\n      }, {\n        immediate: true\n      }); // ============================ Keyboard ============================\n\n      /**\n       * We record input value here to check if can press to clean up by backspace\n       * - null: Key is not down, this is reset by key up\n       * - true: Search text is empty when first time backspace down\n       * - false: Search text is not empty when first time backspace down\n       */\n\n      var _useLock = useLock(),\n          _useLock2 = _slicedToArray(_useLock, 2),\n          getClearLock = _useLock2[0],\n          setClearLock = _useLock2[1]; // KeyDown\n\n\n      var onInternalKeyDown = function onInternalKeyDown(event) {\n        var clearLock = getClearLock();\n        var which = event.which;\n\n        if (which === KeyCode.ENTER) {\n          // Do not submit form when type in the input\n          if (props.mode !== 'combobox') {\n            event.preventDefault();\n          } // We only manage open state here, close logic should handle by list component\n\n\n          if (!mergedOpen.value) {\n            onToggleOpen(true);\n          }\n        }\n\n        setClearLock(!!mergedSearchValue.value); // Remove value by `backspace`\n\n        if (which === KeyCode.BACKSPACE && !clearLock && isMultiple.value && !mergedSearchValue.value && mergedRawValue.value.length) {\n          var removeInfo = removeLastEnabledValue(displayValues.value, mergedRawValue.value);\n\n          if (removeInfo.removedValue !== null) {\n            triggerChange(removeInfo.values);\n            triggerSelect(removeInfo.removedValue, false, 'input');\n          }\n        }\n\n        if (mergedOpen.value && listRef.value) {\n          listRef.value.onKeydown(event);\n        }\n\n        if (props.onKeydown) {\n          props.onKeydown(event);\n        }\n      }; // KeyUp\n\n\n      var onInternalKeyUp = function onInternalKeyUp(event) {\n        if (mergedOpen.value && listRef.value) {\n          listRef.value.onKeyup(event);\n        }\n\n        if (props.onKeyup) {\n          props.onKeyup(event);\n        }\n      }; // ========================== Focus / Blur ==========================\n\n      /** Record real focus status */\n\n\n      var focusRef = ref(false);\n\n      var onContainerFocus = function onContainerFocus() {\n        setMockFocused(true);\n\n        if (!props.disabled) {\n          if (props.onFocus && !focusRef.value) {\n            props.onFocus(arguments.length <= 0 ? undefined : arguments[0]);\n          } // `showAction` should handle `focus` if set\n\n\n          if (props.showAction && props.showAction.includes('focus')) {\n            onToggleOpen(true);\n          }\n        }\n\n        focusRef.value = true;\n      };\n\n      var onContainerBlur = function onContainerBlur() {\n        setMockFocused(false, function () {\n          focusRef.value = false;\n          onToggleOpen(false);\n        });\n\n        if (props.disabled) {\n          return;\n        }\n\n        var searchVal = mergedSearchValue.value;\n\n        if (searchVal) {\n          // `tags` mode should move `searchValue` into values\n          if (props.mode === 'tags') {\n            triggerSearch('', false, false);\n            triggerChange(Array.from(new Set([].concat(_toConsumableArray(mergedRawValue.value), [searchVal]))));\n          } else if (props.mode === 'multiple') {\n            // `multiple` mode only clean the search value but not trigger event\n            setInnerSearchValue('');\n          }\n        }\n\n        if (props.onBlur) {\n          props.onBlur(arguments.length <= 0 ? undefined : arguments[0]);\n        }\n      };\n\n      provide('VCSelectContainerEvent', {\n        focus: onContainerFocus,\n        blur: onContainerBlur\n      });\n      var activeTimeoutIds = [];\n      onMounted(function () {\n        activeTimeoutIds.forEach(function (timeoutId) {\n          return window.clearTimeout(timeoutId);\n        });\n        activeTimeoutIds.splice(0, activeTimeoutIds.length);\n      });\n      onBeforeUnmount(function () {\n        activeTimeoutIds.forEach(function (timeoutId) {\n          return window.clearTimeout(timeoutId);\n        });\n        activeTimeoutIds.splice(0, activeTimeoutIds.length);\n      });\n\n      var onInternalMouseDown = function onInternalMouseDown(event) {\n        var target = event.target;\n        var popupElement = triggerRef.value && triggerRef.value.getPopupElement(); // We should give focus back to selector if clicked item is not focusable\n\n        if (popupElement && popupElement.contains(target)) {\n          var timeoutId = window.setTimeout(function () {\n            var index = activeTimeoutIds.indexOf(timeoutId);\n\n            if (index !== -1) {\n              activeTimeoutIds.splice(index, 1);\n            }\n\n            cancelSetMockFocused();\n\n            if (!mobile.value && !popupElement.contains(document.activeElement)) {\n              selectorRef.value.focus();\n            }\n          });\n          activeTimeoutIds.push(timeoutId);\n        }\n\n        if (props.onMousedown) {\n          props.onMousedown(event);\n        }\n      }; // ========================= Accessibility ==========================\n\n\n      var accessibilityIndex = ref(0);\n      var mergedDefaultActiveFirstOption = computed(function () {\n        return props.defaultActiveFirstOption !== undefined ? props.defaultActiveFirstOption : props.mode !== 'combobox';\n      });\n\n      var onActiveValue = function onActiveValue(active, index) {\n        var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n            _ref3$source = _ref3.source,\n            source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n\n        accessibilityIndex.value = index;\n\n        if (props.backfill && props.mode === 'combobox' && active !== null && source === 'keyboard') {\n          setActiveValue(String(active));\n        }\n      }; // ============================= Popup ==============================\n\n\n      var containerWidth = ref(null);\n      onMounted(function () {\n        watch(triggerOpen, function () {\n          if (triggerOpen.value) {\n            var newWidth = Math.ceil(containerRef.value.offsetWidth);\n\n            if (containerWidth.value !== newWidth) {\n              containerWidth.value = newWidth;\n            }\n          }\n        }, {\n          immediate: true\n        });\n      });\n\n      var focus = function focus() {\n        selectorRef.value.focus();\n      };\n\n      var blur = function blur() {\n        selectorRef.value.blur();\n      };\n\n      return {\n        focus: focus,\n        blur: blur,\n        scrollTo: (_a = listRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo,\n        tokenWithEnter: tokenWithEnter,\n        mockFocused: mockFocused,\n        mergedId: mergedId,\n        containerWidth: containerWidth,\n        onActiveValue: onActiveValue,\n        accessibilityIndex: accessibilityIndex,\n        mergedDefaultActiveFirstOption: mergedDefaultActiveFirstOption,\n        onInternalMouseDown: onInternalMouseDown,\n        onContainerFocus: onContainerFocus,\n        onContainerBlur: onContainerBlur,\n        onInternalKeyDown: onInternalKeyDown,\n        isMultiple: isMultiple,\n        mergedOpen: mergedOpen,\n        displayOptions: displayOptions,\n        displayFlattenOptions: displayFlattenOptions,\n        rawValues: rawValues,\n        onInternalOptionSelect: onInternalOptionSelect,\n        onToggleOpen: onToggleOpen,\n        mergedSearchValue: mergedSearchValue,\n        useInternalProps: useInternalProps,\n        triggerChange: triggerChange,\n        triggerSearch: triggerSearch,\n        mergedRawValue: mergedRawValue,\n        mergedShowSearch: mergedShowSearch,\n        onInternalKeyUp: onInternalKeyUp,\n        triggerOpen: triggerOpen,\n        mergedOptions: mergedOptions,\n        onInternalSelectionSelect: onInternalSelectionSelect,\n        selectorDomRef: selectorDomRef,\n        displayValues: displayValues,\n        activeValue: activeValue,\n        onSearchSubmit: onSearchSubmit,\n        containerRef: containerRef,\n        listRef: listRef,\n        triggerRef: triggerRef,\n        selectorRef: selectorRef\n      };\n    },\n    methods: {\n      // We need force update here since popup dom is render async\n      onPopupMouseEnter: function onPopupMouseEnter() {\n        this.$forceUpdate();\n      }\n    },\n    render: function render() {\n      var _classNames2,\n          _this = this;\n\n      var tokenWithEnter = this.tokenWithEnter,\n          mockFocused = this.mockFocused,\n          mergedId = this.mergedId,\n          containerWidth = this.containerWidth,\n          onActiveValue = this.onActiveValue,\n          accessibilityIndex = this.accessibilityIndex,\n          mergedDefaultActiveFirstOption = this.mergedDefaultActiveFirstOption,\n          onInternalMouseDown = this.onInternalMouseDown,\n          onInternalKeyDown = this.onInternalKeyDown,\n          isMultiple = this.isMultiple,\n          mergedOpen = this.mergedOpen,\n          displayOptions = this.displayOptions,\n          displayFlattenOptions = this.displayFlattenOptions,\n          rawValues = this.rawValues,\n          onInternalOptionSelect = this.onInternalOptionSelect,\n          onToggleOpen = this.onToggleOpen,\n          mergedSearchValue = this.mergedSearchValue,\n          onPopupMouseEnter = this.onPopupMouseEnter,\n          useInternalProps = this.useInternalProps,\n          triggerChange = this.triggerChange,\n          triggerSearch = this.triggerSearch,\n          mergedRawValue = this.mergedRawValue,\n          mergedShowSearch = this.mergedShowSearch,\n          onInternalKeyUp = this.onInternalKeyUp,\n          triggerOpen = this.triggerOpen,\n          mergedOptions = this.mergedOptions,\n          onInternalSelectionSelect = this.onInternalSelectionSelect,\n          selectorDomRef = this.selectorDomRef,\n          displayValues = this.displayValues,\n          activeValue = this.activeValue,\n          onSearchSubmit = this.onSearchSubmit,\n          slots = this.$slots;\n\n      var _a = this.$props,\n          _a$prefixCls = _a.prefixCls,\n          prefixCls = _a$prefixCls === void 0 ? defaultPrefixCls : _a$prefixCls,\n          className = _a.class,\n          id = _a.id,\n          open = _a.open,\n          defaultOpen = _a.defaultOpen,\n          options = _a.options,\n          children = _a.children,\n          mode = _a.mode,\n          value = _a.value,\n          defaultValue = _a.defaultValue,\n          labelInValue = _a.labelInValue,\n          showSearch = _a.showSearch,\n          inputValue = _a.inputValue,\n          searchValue = _a.searchValue,\n          filterOption = _a.filterOption,\n          optionFilterProp = _a.optionFilterProp,\n          autoClearSearchValue = _a.autoClearSearchValue,\n          onSearch = _a.onSearch,\n          allowClear = _a.allowClear,\n          clearIcon = _a.clearIcon,\n          showArrow = _a.showArrow,\n          inputIcon = _a.inputIcon,\n          menuItemSelectedIcon = _a.menuItemSelectedIcon,\n          disabled = _a.disabled,\n          loading = _a.loading,\n          defaultActiveFirstOption = _a.defaultActiveFirstOption,\n          _a$notFoundContent = _a.notFoundContent,\n          notFoundContent = _a$notFoundContent === void 0 ? 'Not Found' : _a$notFoundContent,\n          optionLabelProp = _a.optionLabelProp,\n          backfill = _a.backfill,\n          getInputElement = _a.getInputElement,\n          getPopupContainer = _a.getPopupContainer,\n          _a$listHeight = _a.listHeight,\n          listHeight = _a$listHeight === void 0 ? 200 : _a$listHeight,\n          _a$listItemHeight = _a.listItemHeight,\n          listItemHeight = _a$listItemHeight === void 0 ? 20 : _a$listItemHeight,\n          animation = _a.animation,\n          transitionName = _a.transitionName,\n          virtual = _a.virtual,\n          dropdownStyle = _a.dropdownStyle,\n          dropdownClassName = _a.dropdownClassName,\n          dropdownMatchSelectWidth = _a.dropdownMatchSelectWidth,\n          dropdownRender = _a.dropdownRender,\n          dropdownAlign = _a.dropdownAlign,\n          showAction = _a.showAction,\n          direction = _a.direction,\n          tokenSeparators = _a.tokenSeparators,\n          tagRender = _a.tagRender,\n          onPopupScroll = _a.onPopupScroll,\n          onDropdownVisibleChange = _a.onDropdownVisibleChange,\n          onFocus = _a.onFocus,\n          onBlur = _a.onBlur,\n          onKeyup = _a.onKeyup,\n          onKeydown = _a.onKeydown,\n          onMousedown = _a.onMousedown,\n          onChange = _a.onChange,\n          onSelect = _a.onSelect,\n          onDeselect = _a.onDeselect,\n          onClear = _a.onClear,\n          _a$internalProps = _a.internalProps,\n          internalProps = _a$internalProps === void 0 ? {} : _a$internalProps,\n          restProps = __rest(_a, [\"prefixCls\", \"class\", \"id\", \"open\", \"defaultOpen\", \"options\", \"children\", \"mode\", \"value\", \"defaultValue\", \"labelInValue\", \"showSearch\", \"inputValue\", \"searchValue\", \"filterOption\", \"optionFilterProp\", \"autoClearSearchValue\", \"onSearch\", \"allowClear\", \"clearIcon\", \"showArrow\", \"inputIcon\", \"menuItemSelectedIcon\", \"disabled\", \"loading\", \"defaultActiveFirstOption\", \"notFoundContent\", \"optionLabelProp\", \"backfill\", \"getInputElement\", \"getPopupContainer\", \"listHeight\", \"listItemHeight\", \"animation\", \"transitionName\", \"virtual\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"showAction\", \"direction\", \"tokenSeparators\", \"tagRender\", \"onPopupScroll\", \"onDropdownVisibleChange\", \"onFocus\", \"onBlur\", \"onKeyup\", \"onKeydown\", \"onMousedown\", \"onChange\", \"onSelect\", \"onDeselect\", \"onClear\", \"internalProps\"]); // ============================= Input ==============================\n      // Only works in `combobox`\n\n\n      var customizeInputElement = mode === 'combobox' && getInputElement && getInputElement() || null;\n      var domProps = omitDOMProps ? omitDOMProps(restProps) : restProps;\n      DEFAULT_OMIT_PROPS.forEach(function (prop) {\n        delete domProps[prop];\n      });\n\n      var popupNode = _createVNode(OptionList, {\n        \"ref\": \"listRef\",\n        \"prefixCls\": prefixCls,\n        \"id\": mergedId,\n        \"open\": mergedOpen,\n        \"childrenAsData\": !options,\n        \"options\": displayOptions,\n        \"flattenOptions\": displayFlattenOptions,\n        \"multiple\": isMultiple,\n        \"values\": rawValues,\n        \"height\": listHeight,\n        \"itemHeight\": listItemHeight,\n        \"onSelect\": onInternalOptionSelect,\n        \"onToggleOpen\": onToggleOpen,\n        \"onActiveValue\": onActiveValue,\n        \"defaultActiveFirstOption\": mergedDefaultActiveFirstOption,\n        \"notFoundContent\": notFoundContent,\n        \"onScroll\": onPopupScroll,\n        \"searchValue\": mergedSearchValue,\n        \"menuItemSelectedIcon\": menuItemSelectedIcon,\n        \"virtual\": virtual !== false && dropdownMatchSelectWidth !== false,\n        \"onMouseenter\": onPopupMouseEnter\n      }, {\n        option: slots.option\n      }); // ============================= Clear ==============================\n\n\n      var clearNode;\n\n      var onClearMouseDown = function onClearMouseDown() {\n        // Trigger internal `onClear` event\n        if (useInternalProps && internalProps.onClear) {\n          internalProps.onClear();\n        }\n\n        if (onClear) {\n          onClear();\n        }\n\n        triggerChange([]);\n        triggerSearch('', false, false);\n      };\n\n      if (!disabled && allowClear && (mergedRawValue.length || mergedSearchValue)) {\n        clearNode = _createVNode(TransBtn, {\n          \"class\": \"\".concat(prefixCls, \"-clear\"),\n          \"onMousedown\": onClearMouseDown,\n          \"customizeIcon\": clearIcon\n        }, {\n          default: function _default() {\n            return [_createTextVNode(\"\\xD7\")];\n          }\n        });\n      } // ============================= Arrow ==============================\n\n\n      var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !isMultiple && mode !== 'combobox';\n      var arrowNode;\n\n      if (mergedShowArrow) {\n        arrowNode = _createVNode(TransBtn, {\n          \"class\": classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n          \"customizeIcon\": inputIcon,\n          \"customizeIconProps\": {\n            loading: loading,\n            searchValue: mergedSearchValue,\n            open: mergedOpen,\n            focused: mockFocused,\n            showSearch: mergedShowSearch\n          }\n        }, null);\n      } // ============================ Warning =============================\n\n\n      if (process.env.NODE_ENV !== 'production' && warningProps) {\n        warningProps(this.$props);\n      } // ============================= Render =============================\n\n\n      var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), isMultiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !isMultiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-arrow\"), mergedShowArrow), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-open\"), mergedOpen), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch), _classNames2));\n      return _createVNode(\"div\", _objectSpread(_objectSpread({\n        \"class\": mergedClassName\n      }, domProps), {}, {\n        \"ref\": \"containerRef\",\n        \"onMousedown\": onInternalMouseDown,\n        \"onKeydown\": onInternalKeyDown,\n        \"onKeyup\": onInternalKeyUp\n      }), [mockFocused && !mergedOpen && _createVNode(\"span\", {\n        \"style\": {\n          width: 0,\n          height: 0,\n          display: 'flex',\n          overflow: 'hidden',\n          opacity: 0\n        },\n        \"aria-live\": \"polite\"\n      }, [\"\".concat(mergedRawValue.join(', '))]), _createVNode(SelectTrigger, {\n        \"ref\": \"triggerRef\",\n        \"disabled\": disabled,\n        \"prefixCls\": prefixCls,\n        \"visible\": triggerOpen,\n        \"popupElement\": popupNode,\n        \"containerWidth\": containerWidth,\n        \"animation\": animation,\n        \"transitionName\": transitionName,\n        \"dropdownStyle\": dropdownStyle,\n        \"dropdownClassName\": dropdownClassName,\n        \"direction\": direction,\n        \"dropdownMatchSelectWidth\": dropdownMatchSelectWidth,\n        \"dropdownRender\": dropdownRender,\n        \"dropdownAlign\": dropdownAlign,\n        \"getPopupContainer\": getPopupContainer,\n        \"empty\": !mergedOptions.length,\n        \"getTriggerDOMNode\": function getTriggerDOMNode() {\n          return selectorDomRef.current;\n        }\n      }, {\n        default: function _default() {\n          return [_createVNode(Selector, _objectSpread(_objectSpread({}, _this.$props), {}, {\n            \"domRef\": selectorDomRef,\n            \"prefixCls\": prefixCls,\n            \"inputElement\": customizeInputElement,\n            \"ref\": \"selectorRef\",\n            \"id\": mergedId,\n            \"showSearch\": mergedShowSearch,\n            \"mode\": mode,\n            \"accessibilityIndex\": accessibilityIndex,\n            \"multiple\": isMultiple,\n            \"tagRender\": tagRender,\n            \"values\": displayValues,\n            \"open\": mergedOpen,\n            \"onToggleOpen\": onToggleOpen,\n            \"searchValue\": mergedSearchValue,\n            \"activeValue\": activeValue,\n            \"onSearch\": triggerSearch,\n            \"onSearchSubmit\": onSearchSubmit,\n            \"onSelect\": onInternalSelectionSelect,\n            \"tokenWithEnter\": tokenWithEnter\n          }), null)];\n        }\n      }), arrowNode, clearNode]);\n    }\n  });\n  return Select;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning, { noteOnce } from '../../vc-util/warning';\nimport { convertChildrenToData } from './legacyUtil';\nimport { toArray } from './commonUtil';\nimport { isValidElement } from '../../_util/props-util';\n\nfunction warningProps(props) {\n  var mode = props.mode,\n      options = props.options,\n      children = props.children,\n      backfill = props.backfill,\n      allowClear = props.allowClear,\n      placeholder = props.placeholder,\n      getInputElement = props.getInputElement,\n      showSearch = props.showSearch,\n      onSearch = props.onSearch,\n      defaultOpen = props.defaultOpen,\n      autofocus = props.autofocus,\n      labelInValue = props.labelInValue,\n      value = props.value,\n      inputValue = props.inputValue,\n      optionLabelProp = props.optionLabelProp;\n  var multiple = mode === 'multiple' || mode === 'tags';\n  var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n  var mergedOptions = options || convertChildrenToData(children); // `tags` should not set option as disabled\n\n  warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n    return !opt.disabled;\n  }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.'); // `combobox` should not use `optionLabelProp`\n\n  warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.'); // Only `combobox` support `backfill`\n\n  warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.'); // Only `combobox` support `getInputElement`\n\n  warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.'); // Customize `getInputElement` should not use `allowClear` & `placeholder`\n\n  noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.'); // `onSearch` should use in `combobox` or `showSearch`\n\n  if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n    warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n  }\n\n  noteOnce(!defaultOpen || autofocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autofocus` if needed.');\n\n  if (value !== undefined && value !== null) {\n    var values = toArray(value);\n    warning(!labelInValue || values.every(function (val) {\n      return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n    }), '`value` should in shape of `{ value: string | number, label?: any }` when you set `labelInValue` to `true`');\n    warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n  } // Syntactic sugar should use correct children type\n\n\n  if (children) {\n    var invalidateChildType = null;\n    children.some(function (node) {\n      var _a;\n\n      if (!isValidElement(node) || !node.type) {\n        return false;\n      }\n\n      var type = node.type;\n\n      if (type.isSelectOption) {\n        return false;\n      }\n\n      if (type.isSelectOptGroup) {\n        var childs = ((_a = node.children) === null || _a === void 0 ? void 0 : _a.default()) || [];\n        var allChildrenValid = childs.every(function (subNode) {\n          if (!isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n            return true;\n          }\n\n          invalidateChildType = subNode.type;\n          return false;\n        });\n\n        if (allChildrenValid) {\n          return false;\n        }\n\n        return true;\n      }\n\n      invalidateChildType = type;\n      return true;\n    });\n\n    if (invalidateChildType) {\n      warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n    }\n\n    warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n  }\n}\n\nexport default warningProps;","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nexport default arrayMap;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n  return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n  return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n  return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n  var result = [];\n  while (object) {\n    arrayPush(result, getSymbols(object));\n    object = getPrototype(object);\n  }\n  return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n  return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n  return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n  var length = array.length,\n      result = new array.constructor(length);\n\n  // Add properties assigned by `RegExp#exec`.\n  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return cloneArrayBuffer(object);\n\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n\n    case dataViewTag:\n      return cloneDataView(object, isDeep);\n\n    case float32Tag: case float64Tag:\n    case int8Tag: case int16Tag: case int32Tag:\n    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n      return cloneTypedArray(object, isDeep);\n\n    case mapTag:\n      return new Ctor;\n\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n\n    case regexpTag:\n      return cloneRegExp(object);\n\n    case setTag:\n      return new Ctor;\n\n    case symbolTag:\n      return cloneSymbol(object);\n  }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n  return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n  return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_FLAT_FLAG = 2,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Deep clone\n *  2 - Flatten inherited properties\n *  4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n  var result,\n      isDeep = bitmask & CLONE_DEEP_FLAG,\n      isFlat = bitmask & CLONE_FLAT_FLAG,\n      isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== undefined) {\n    return result;\n  }\n  if (!isObject(value)) {\n    return value;\n  }\n  var isArr = isArray(value);\n  if (isArr) {\n    result = initCloneArray(value);\n    if (!isDeep) {\n      return copyArray(value, result);\n    }\n  } else {\n    var tag = getTag(value),\n        isFunc = tag == funcTag || tag == genTag;\n\n    if (isBuffer(value)) {\n      return cloneBuffer(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n      result = (isFlat || isFunc) ? {} : initCloneObject(value);\n      if (!isDeep) {\n        return isFlat\n          ? copySymbolsIn(value, baseAssignIn(result, value))\n          : copySymbols(value, baseAssign(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = initCloneByTag(value, tag, isDeep);\n    }\n  }\n  // Check for circular references and return its corresponding clone.\n  stack || (stack = new Stack);\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n\n  if (isSet(value)) {\n    value.forEach(function(subValue) {\n      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n    });\n  } else if (isMap(value)) {\n    value.forEach(function(subValue, key) {\n      result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n    });\n  }\n\n  var keysFunc = isFull\n    ? (isFlat ? getAllKeysIn : getAllKeys)\n    : (isFlat ? keysIn : keys);\n\n  var props = isArr ? undefined : keysFunc(value);\n  arrayEach(props || value, function(subValue, key) {\n    if (props) {\n      key = subValue;\n      subValue = value[key];\n    }\n    // Recursively populate clone (susceptible to call stack limits).\n    assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n  });\n  return result;\n}\n\nexport default baseClone;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nexport default stringToPath;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nexport default baseSlice;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n  return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n  path = castPath(path, object);\n  object = parent(object, path);\n  return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n  return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n  return isArray(value) || isArguments(value) ||\n    !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n  var index = -1,\n      length = array.length;\n\n  predicate || (predicate = isFlattenable);\n  result || (result = []);\n\n  while (++index < length) {\n    var value = array[index];\n    if (depth > 0 && predicate(value)) {\n      if (depth > 1) {\n        // Recursively flatten arrays (susceptible to call stack limits).\n        baseFlatten(value, depth - 1, predicate, isStrict, result);\n      } else {\n        arrayPush(result, value);\n      }\n    } else if (!isStrict) {\n      result[result.length] = value;\n    }\n  }\n  return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nexport default constant;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nexport default identity;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n  return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_FLAT_FLAG = 2,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n  var result = {};\n  if (object == null) {\n    return result;\n  }\n  var isDeep = false;\n  paths = arrayMap(paths, function(path) {\n    path = castPath(path, object);\n    isDeep || (isDeep = path.length > 1);\n    return path;\n  });\n  copyObject(object, getAllKeysIn(object), result);\n  if (isDeep) {\n    result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n  }\n  var length = paths.length;\n  while (length--) {\n    baseUnset(result, paths[length]);\n  }\n  return result;\n});\n\nexport default omit;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\nimport SelectOptionList from './OptionList';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport { convertChildrenToData as convertSelectChildrenToData } from './utils/legacyUtil';\nimport { getLabeledValue as getSelectLabeledValue, filterOptions as selectDefaultFilterOptions, isValueDisabled as isSelectValueDisabled, findValueOption as findSelectValueOption, flattenOptions, fillOptionsWithMissingValue } from './utils/valueUtil';\nimport generateSelector from './generate';\nimport warningProps from './utils/warningPropsUtil';\nimport { defineComponent, ref } from 'vue';\nimport omit from 'lodash-es/omit';\nvar RefSelect = generateSelector({\n  prefixCls: 'rc-select',\n  components: {\n    optionList: SelectOptionList\n  },\n  convertChildrenToData: convertSelectChildrenToData,\n  flattenOptions: flattenOptions,\n  getLabeledValue: getSelectLabeledValue,\n  filterOptions: selectDefaultFilterOptions,\n  isValueDisabled: isSelectValueDisabled,\n  findValueOption: findSelectValueOption,\n  warningProps: warningProps,\n  fillOptionsWithMissingValue: fillOptionsWithMissingValue\n});\nvar Select = defineComponent({\n  setup: function setup(props, _ref) {\n    var attrs = _ref.attrs,\n        expose = _ref.expose,\n        slots = _ref.slots;\n    var selectRef = ref(null);\n    expose({\n      focus: function focus() {\n        var _a;\n\n        (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n      },\n      blur: function blur() {\n        var _a;\n\n        (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.blur();\n      }\n    });\n    return function () {\n      var _a;\n\n      return _createVNode(RefSelect, _objectSpread(_objectSpread(_objectSpread({\n        \"ref\": selectRef\n      }, props), attrs), {}, {\n        \"children\": ((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) || []\n      }), slots);\n    };\n  }\n});\nSelect.inheritAttrs = false;\nSelect.props = omit(RefSelect.props, ['children']);\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","import { createVNode as _createVNode } from \"vue\";\nimport DownOutlined from '@ant-design/icons-vue/DownOutlined';\nimport LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined';\nimport CheckOutlined from '@ant-design/icons-vue/CheckOutlined';\nimport CloseOutlined from '@ant-design/icons-vue/CloseOutlined';\nimport CloseCircleFilled from '@ant-design/icons-vue/CloseCircleFilled';\nimport SearchOutlined from '@ant-design/icons-vue/SearchOutlined';\nexport default function getIcons(props) {\n  var slots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var loading = props.loading,\n      multiple = props.multiple,\n      prefixCls = props.prefixCls;\n  var suffixIcon = props.suffixIcon || slots.suffixIcon && slots.suffixIcon();\n  var clearIcon = props.clearIcon || slots.clearIcon && slots.clearIcon();\n  var menuItemSelectedIcon = props.menuItemSelectedIcon || slots.menuItemSelectedIcon && slots.menuItemSelectedIcon();\n  var removeIcon = props.removeIcon || slots.removeIcon && slots.removeIcon(); // Clear Icon\n\n  var mergedClearIcon = clearIcon;\n\n  if (!clearIcon) {\n    mergedClearIcon = _createVNode(CloseCircleFilled, null, null);\n  } // Arrow item icon\n\n\n  var mergedSuffixIcon = null;\n\n  if (suffixIcon !== undefined) {\n    mergedSuffixIcon = suffixIcon;\n  } else if (loading) {\n    mergedSuffixIcon = _createVNode(LoadingOutlined, {\n      \"spin\": true\n    }, null);\n  } else {\n    var iconCls = \"\".concat(prefixCls, \"-suffix\");\n\n    mergedSuffixIcon = function mergedSuffixIcon(_ref) {\n      var open = _ref.open,\n          showSearch = _ref.showSearch;\n\n      if (open && showSearch) {\n        return _createVNode(SearchOutlined, {\n          \"class\": iconCls\n        }, null);\n      }\n\n      return _createVNode(DownOutlined, {\n        \"class\": iconCls\n      }, null);\n    };\n  } // Checked item icon\n\n\n  var mergedItemIcon = null;\n\n  if (menuItemSelectedIcon !== undefined) {\n    mergedItemIcon = menuItemSelectedIcon;\n  } else if (multiple) {\n    mergedItemIcon = _createVNode(CheckOutlined, null, null);\n  } else {\n    mergedItemIcon = null;\n  }\n\n  var mergedRemoveIcon = null;\n\n  if (removeIcon !== undefined) {\n    mergedRemoveIcon = removeIcon;\n  } else {\n    mergedRemoveIcon = _createVNode(CloseOutlined, null, null);\n  }\n\n  return {\n    clearIcon: mergedClearIcon,\n    suffixIcon: mergedSuffixIcon,\n    itemIcon: mergedItemIcon,\n    removeIcon: mergedRemoveIcon\n  };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\nimport { computed, defineComponent, ref } from 'vue';\nimport omit from 'omit.js';\nimport classNames from '../_util/classNames';\nimport RcSelect, { Option, OptGroup, BaseProps } from '../vc-select';\nimport getIcons from './utils/iconUtil';\nimport PropTypes from '../_util/vue-types';\nimport { tuple } from '../_util/type';\nimport useConfigInject from '../_util/hooks/useConfigInject';\nexport var SelectProps = function SelectProps() {\n  return _extends(_extends({}, omit(BaseProps(), ['inputIcon', 'mode', 'getInputElement', 'backfill', 'class', 'style'])), {\n    value: {\n      type: [Array, Object, String, Number]\n    },\n    defaultValue: {\n      type: [Array, Object, String, Number]\n    },\n    notFoundContent: PropTypes.VNodeChild,\n    suffixIcon: PropTypes.VNodeChild,\n    itemIcon: PropTypes.VNodeChild,\n    size: PropTypes.oneOf(tuple('small', 'middle', 'large', 'default')),\n    mode: PropTypes.oneOf(tuple('multiple', 'tags', 'SECRET_COMBOBOX_MODE_DO_NOT_USE')),\n    bordered: PropTypes.looseBool.def(true),\n    transitionName: PropTypes.string.def('slide-up'),\n    choiceTransitionName: PropTypes.string.def('')\n  });\n};\nvar Select = defineComponent({\n  name: 'ASelect',\n  Option: Option,\n  OptGroup: OptGroup,\n  inheritAttrs: false,\n  props: SelectProps(),\n  SECRET_COMBOBOX_MODE_DO_NOT_USE: 'SECRET_COMBOBOX_MODE_DO_NOT_USE',\n  emits: ['change', 'update:value'],\n  slots: ['notFoundContent', 'suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'dropdownRender', 'option'],\n  setup: function setup(props, _ref) {\n    var attrs = _ref.attrs,\n        emit = _ref.emit,\n        slots = _ref.slots,\n        expose = _ref.expose;\n    var selectRef = ref(null);\n\n    var focus = function focus() {\n      if (selectRef.value) {\n        selectRef.value.focus();\n      }\n    };\n\n    var blur = function blur() {\n      if (selectRef.value) {\n        selectRef.value.blur();\n      }\n    };\n\n    var mode = computed(function () {\n      var mode = props.mode;\n\n      if (mode === 'combobox') {\n        return undefined;\n      }\n\n      if (mode === Select.SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n        return 'combobox';\n      }\n\n      return mode;\n    });\n\n    var _useConfigInject = useConfigInject('select', props),\n        prefixCls = _useConfigInject.prefixCls,\n        direction = _useConfigInject.direction,\n        configProvider = _useConfigInject.configProvider;\n\n    var mergedClassName = computed(function () {\n      var _classNames;\n\n      return classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls.value, \"-lg\"), props.size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls.value, \"-sm\"), props.size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls.value, \"-rtl\"), direction.value === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls.value, \"-borderless\"), !props.bordered), _classNames));\n    });\n\n    var triggerChange = function triggerChange() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      emit('update:value', args[0]);\n      emit.apply(void 0, ['change'].concat(args));\n    };\n\n    expose({\n      blur: blur,\n      focus: focus\n    });\n    return function () {\n      var _a;\n\n      var notFoundContent = props.notFoundContent,\n          _props$listHeight = props.listHeight,\n          listHeight = _props$listHeight === void 0 ? 256 : _props$listHeight,\n          _props$listItemHeight = props.listItemHeight,\n          listItemHeight = _props$listItemHeight === void 0 ? 24 : _props$listItemHeight,\n          getPopupContainer = props.getPopupContainer,\n          dropdownClassName = props.dropdownClassName,\n          virtual = props.virtual,\n          dropdownMatchSelectWidth = props.dropdownMatchSelectWidth;\n      var renderEmpty = configProvider.renderEmpty,\n          getContextPopupContainer = configProvider.getPopupContainer;\n      var isMultiple = mode.value === 'multiple' || mode.value === 'tags'; // ===================== Empty =====================\n\n      var mergedNotFound;\n\n      if (notFoundContent !== undefined) {\n        mergedNotFound = notFoundContent;\n      } else if (slots.notFoundContent) {\n        mergedNotFound = slots.notFoundContent();\n      } else if (mode.value === 'combobox') {\n        mergedNotFound = null;\n      } else {\n        mergedNotFound = renderEmpty('Select');\n      } // ===================== Icons =====================\n\n\n      var _getIcons = getIcons(_extends(_extends({}, props), {\n        multiple: isMultiple,\n        prefixCls: prefixCls.value\n      }), slots),\n          suffixIcon = _getIcons.suffixIcon,\n          itemIcon = _getIcons.itemIcon,\n          removeIcon = _getIcons.removeIcon,\n          clearIcon = _getIcons.clearIcon;\n\n      var selectProps = omit(props, ['prefixCls', 'suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'size', 'bordered']);\n      var rcSelectRtlDropDownClassName = classNames(dropdownClassName, _defineProperty({}, \"\".concat(prefixCls.value, \"-dropdown-\").concat(direction.value), direction.value === 'rtl'));\n      return _createVNode(RcSelect, _objectSpread(_objectSpread(_objectSpread({\n        \"ref\": selectRef,\n        \"virtual\": virtual,\n        \"dropdownMatchSelectWidth\": dropdownMatchSelectWidth\n      }, selectProps), attrs), {}, {\n        \"listHeight\": listHeight,\n        \"listItemHeight\": listItemHeight,\n        \"mode\": mode.value,\n        \"prefixCls\": prefixCls.value,\n        \"direction\": direction.value,\n        \"inputIcon\": suffixIcon,\n        \"menuItemSelectedIcon\": itemIcon,\n        \"removeIcon\": removeIcon,\n        \"clearIcon\": clearIcon,\n        \"notFoundContent\": mergedNotFound,\n        \"class\": [mergedClassName.value, attrs.class],\n        \"getPopupContainer\": getPopupContainer || getContextPopupContainer,\n        \"dropdownClassName\": rcSelectRtlDropDownClassName,\n        \"onChange\": triggerChange,\n        \"dropdownRender\": selectProps.dropdownRender || slots.dropdownRender\n      }), {\n        default: function _default() {\n          return [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)];\n        },\n        option: slots.option\n      });\n    };\n  }\n});\n/* istanbul ignore next */\n\nSelect.install = function (app) {\n  app.component(Select.name, Select);\n  app.component(Select.Option.displayName, Select.Option);\n  app.component(Select.OptGroup.displayName, Select.OptGroup);\n  return app;\n};\n\nexport var SelectOption = Select.Option;\nexport var SelectOptGroup = Select.OptGroup;\nexport default Select;","import PropTypes from '../_util/vue-types';\nexport default {\n  prefixCls: PropTypes.string,\n  inputPrefixCls: PropTypes.string,\n  defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  placeholder: {\n    type: [String, Number]\n  },\n  type: PropTypes.string.def('text'),\n  name: PropTypes.string,\n  size: {\n    type: String\n  },\n  disabled: PropTypes.looseBool,\n  readonly: PropTypes.looseBool,\n  addonBefore: PropTypes.VNodeChild,\n  addonAfter: PropTypes.VNodeChild,\n  prefix: PropTypes.VNodeChild,\n  suffix: PropTypes.VNodeChild,\n  autofocus: PropTypes.looseBool,\n  allowClear: PropTypes.looseBool,\n  lazy: PropTypes.looseBool.def(true),\n  maxlength: PropTypes.number,\n  loading: PropTypes.looseBool,\n  onPressEnter: PropTypes.func,\n  onKeydown: PropTypes.func,\n  onKeyup: PropTypes.func,\n  onFocus: PropTypes.func,\n  onBlur: PropTypes.func,\n  onChange: PropTypes.func,\n  onInput: PropTypes.func,\n  'onUpdate:value': PropTypes.func\n};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createVNode as _createVNode } from \"vue\";\nimport classNames from '../_util/classNames';\nimport CloseCircleFilled from '@ant-design/icons-vue/CloseCircleFilled';\nimport { getInputClassName } from './Input';\nimport PropTypes from '../_util/vue-types';\nimport { cloneElement } from '../_util/vnode';\nimport { getComponent } from '../_util/props-util';\nimport { defineComponent } from 'vue';\nimport { tuple } from '../_util/type';\nexport function hasPrefixSuffix(instance) {\n  return !!(getComponent(instance, 'prefix') || getComponent(instance, 'suffix') || instance.$props.allowClear);\n}\nvar ClearableInputType = ['text', 'input'];\nvar ClearableLabeledInput = defineComponent({\n  name: 'ClearableLabeledInput',\n  inheritAttrs: false,\n  props: {\n    prefixCls: PropTypes.string,\n    inputType: PropTypes.oneOf(tuple('text', 'input')),\n    value: PropTypes.any,\n    defaultValue: PropTypes.any,\n    allowClear: PropTypes.looseBool,\n    element: PropTypes.VNodeChild,\n    handleReset: PropTypes.func,\n    disabled: PropTypes.looseBool,\n    size: PropTypes.oneOf(tuple('small', 'large', 'default')),\n    suffix: PropTypes.VNodeChild,\n    prefix: PropTypes.VNodeChild,\n    addonBefore: PropTypes.VNodeChild,\n    addonAfter: PropTypes.VNodeChild,\n    readonly: PropTypes.looseBool,\n    isFocused: PropTypes.looseBool\n  },\n  methods: {\n    renderClearIcon: function renderClearIcon(prefixCls) {\n      var _this$$props = this.$props,\n          allowClear = _this$$props.allowClear,\n          value = _this$$props.value,\n          disabled = _this$$props.disabled,\n          readonly = _this$$props.readonly,\n          inputType = _this$$props.inputType,\n          handleReset = _this$$props.handleReset;\n\n      if (!allowClear) {\n        return null;\n      }\n\n      var showClearIcon = !disabled && !readonly && value !== undefined && value !== null && value !== '';\n      var className = inputType === ClearableInputType[0] ? \"\".concat(prefixCls, \"-textarea-clear-icon\") : \"\".concat(prefixCls, \"-clear-icon\");\n      return _createVNode(CloseCircleFilled, {\n        \"onClick\": handleReset,\n        \"class\": classNames(className, _defineProperty({}, \"\".concat(className, \"-hidden\"), !showClearIcon)),\n        \"role\": \"button\"\n      }, null);\n    },\n    renderSuffix: function renderSuffix(prefixCls) {\n      var _this$$props2 = this.$props,\n          suffix = _this$$props2.suffix,\n          allowClear = _this$$props2.allowClear;\n\n      if (suffix || allowClear) {\n        return _createVNode(\"span\", {\n          \"class\": \"\".concat(prefixCls, \"-suffix\")\n        }, [this.renderClearIcon(prefixCls), suffix]);\n      }\n\n      return null;\n    },\n    renderLabeledIcon: function renderLabeledIcon(prefixCls, element) {\n      var _classNames2;\n\n      var _a;\n\n      var props = this.$props;\n      var style = this.$attrs.style;\n      var suffix = this.renderSuffix(prefixCls);\n\n      if (!hasPrefixSuffix(this)) {\n        return cloneElement(element, {\n          value: props.value\n        });\n      }\n\n      var prefix = props.prefix ? _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-prefix\")\n      }, [props.prefix]) : null;\n      var affixWrapperCls = classNames((_a = this.$attrs) === null || _a === void 0 ? void 0 : _a.class, \"\".concat(prefixCls, \"-affix-wrapper\"), (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), props.isFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-disabled\"), props.disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-sm\"), props.size === 'small'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-lg\"), props.size === 'large'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-input-with-clear-btn\"), props.suffix && props.allowClear && this.$props.value), _classNames2));\n      return _createVNode(\"span\", {\n        \"class\": affixWrapperCls,\n        \"style\": style\n      }, [prefix, cloneElement(element, {\n        style: null,\n        value: props.value,\n        class: getInputClassName(prefixCls, props.size, props.disabled)\n      }), suffix]);\n    },\n    renderInputWithLabel: function renderInputWithLabel(prefixCls, labeledElement) {\n      var _classNames4;\n\n      var _this$$props3 = this.$props,\n          addonBefore = _this$$props3.addonBefore,\n          addonAfter = _this$$props3.addonAfter,\n          size = _this$$props3.size;\n      var _this$$attrs = this.$attrs,\n          style = _this$$attrs.style,\n          className = _this$$attrs.class; // Not wrap when there is not addons\n\n      if (!addonBefore && !addonAfter) {\n        return labeledElement;\n      }\n\n      var wrapperClassName = \"\".concat(prefixCls, \"-group\");\n      var addonClassName = \"\".concat(wrapperClassName, \"-addon\");\n      var addonBeforeNode = addonBefore ? _createVNode(\"span\", {\n        \"class\": addonClassName\n      }, [addonBefore]) : null;\n      var addonAfterNode = addonAfter ? _createVNode(\"span\", {\n        \"class\": addonClassName\n      }, [addonAfter]) : null;\n      var mergedWrapperClassName = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, wrapperClassName, addonBefore || addonAfter));\n      var mergedGroupClassName = classNames(className, \"\".concat(prefixCls, \"-group-wrapper\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-group-wrapper-sm\"), size === 'small'), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-group-wrapper-lg\"), size === 'large'), _classNames4)); // Need another wrapper for changing display:table to display:inline-block\n      // and put style prop in wrapper\n\n      return _createVNode(\"span\", {\n        \"class\": mergedGroupClassName,\n        \"style\": style\n      }, [_createVNode(\"span\", {\n        \"class\": mergedWrapperClassName\n      }, [addonBeforeNode, cloneElement(labeledElement, {\n        style: null\n      }), addonAfterNode])]);\n    },\n    renderTextAreaWithClearIcon: function renderTextAreaWithClearIcon(prefixCls, element) {\n      var _this$$props4 = this.$props,\n          value = _this$$props4.value,\n          allowClear = _this$$props4.allowClear;\n      var _this$$attrs2 = this.$attrs,\n          style = _this$$attrs2.style,\n          className = _this$$attrs2.class;\n\n      if (!allowClear) {\n        return cloneElement(element, {\n          value: value\n        });\n      }\n\n      var affixWrapperCls = classNames(className, \"\".concat(prefixCls, \"-affix-wrapper\"), \"\".concat(prefixCls, \"-affix-wrapper-textarea-with-clear-btn\"));\n      return _createVNode(\"span\", {\n        \"class\": affixWrapperCls,\n        \"style\": style\n      }, [cloneElement(element, {\n        style: null,\n        value: value\n      }), this.renderClearIcon(prefixCls)]);\n    },\n    renderClearableLabeledInput: function renderClearableLabeledInput() {\n      var _this$$props5 = this.$props,\n          prefixCls = _this$$props5.prefixCls,\n          inputType = _this$$props5.inputType,\n          element = _this$$props5.element;\n\n      if (inputType === ClearableInputType[0]) {\n        return this.renderTextAreaWithClearIcon(prefixCls, element);\n      }\n\n      return this.renderInputWithLabel(prefixCls, this.renderLabeledIcon(prefixCls, element));\n    }\n  },\n  render: function render() {\n    return this.renderClearableLabeledInput();\n  }\n});\nexport default ClearableLabeledInput;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject, nextTick, withDirectives } from 'vue';\nimport antInputDirective from '../_util/antInputDirective';\nimport classNames from '../_util/classNames';\nimport omit from 'omit.js';\nimport inputProps from './inputProps';\nimport { hasProp, getComponent, getOptionProps } from '../_util/props-util';\nimport { defaultConfigProvider } from '../config-provider';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nexport function fixControlledValue(value) {\n  if (typeof value === 'undefined' || value === null) {\n    return '';\n  }\n\n  return value;\n}\nexport function resolveOnChange(target, e, onChange) {\n  if (onChange) {\n    var event = e;\n\n    if (e.type === 'click') {\n      // click clear icon\n      //event = Object.create(e);\n      Object.defineProperty(event, 'target', {\n        writable: true\n      });\n      Object.defineProperty(event, 'currentTarget', {\n        writable: true\n      });\n      event.target = target;\n      event.currentTarget = target;\n      var originalInputValue = target.value; // change target ref value cause e.target.value should be '' when clear input\n\n      target.value = '';\n      onChange(event); // reset target ref value\n\n      target.value = originalInputValue;\n      return;\n    }\n\n    onChange(event);\n  }\n}\nexport function getInputClassName(prefixCls, size, disabled) {\n  var _classNames;\n\n  return classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n}\nexport default defineComponent({\n  name: 'AInput',\n  inheritAttrs: false,\n  props: _extends({}, inputProps),\n  setup: function setup() {\n    return {\n      configProvider: inject('configProvider', defaultConfigProvider),\n      removePasswordTimeout: undefined,\n      input: null,\n      clearableInput: null\n    };\n  },\n  data: function data() {\n    var props = this.$props;\n    var value = typeof props.value === 'undefined' ? props.defaultValue : props.value;\n    return {\n      stateValue: typeof value === 'undefined' ? '' : value,\n      isFocused: false\n    };\n  },\n  watch: {\n    value: function value(val) {\n      this.stateValue = val;\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    nextTick(function () {\n      if (process.env.NODE_ENV === 'test') {\n        if (_this.autofocus) {\n          _this.focus();\n        }\n      }\n\n      _this.clearPasswordValueAttribute();\n    });\n  },\n  beforeUnmount: function beforeUnmount() {\n    if (this.removePasswordTimeout) {\n      clearTimeout(this.removePasswordTimeout);\n    }\n  },\n  methods: {\n    handleInputFocus: function handleInputFocus(e) {\n      this.isFocused = true;\n      this.onFocus && this.onFocus(e);\n    },\n    handleInputBlur: function handleInputBlur(e) {\n      this.isFocused = false;\n      this.onBlur && this.onBlur(e);\n    },\n    focus: function focus() {\n      this.input.focus();\n    },\n    blur: function blur() {\n      this.input.blur();\n    },\n    select: function select() {\n      this.input.select();\n    },\n    saveClearableInput: function saveClearableInput(input) {\n      this.clearableInput = input;\n    },\n    saveInput: function saveInput(input) {\n      this.input = input;\n    },\n    setValue: function setValue(value, callback) {\n      if (this.stateValue === value) {\n        return;\n      }\n\n      if (!hasProp(this, 'value')) {\n        this.stateValue = value;\n      } else {\n        this.$forceUpdate();\n      }\n\n      nextTick(function () {\n        callback && callback();\n      });\n    },\n    triggerChange: function triggerChange(e) {\n      this.$emit('update:value', e.target.value);\n      this.$emit('change', e);\n      this.$emit('input', e);\n    },\n    handleReset: function handleReset(e) {\n      var _this2 = this;\n\n      this.setValue('', function () {\n        _this2.focus();\n      });\n      resolveOnChange(this.input, e, this.triggerChange);\n    },\n    renderInput: function renderInput(prefixCls, _ref) {\n      var addonBefore = _ref.addonBefore,\n          addonAfter = _ref.addonAfter;\n      var otherProps = omit(this.$props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear', 'defaultValue', 'lazy', 'size', 'inputPrefixCls', 'loading']);\n      var handleKeyDown = this.handleKeyDown,\n          handleChange = this.handleChange,\n          handleInputFocus = this.handleInputFocus,\n          handleInputBlur = this.handleInputBlur,\n          size = this.size,\n          disabled = this.disabled,\n          $attrs = this.$attrs;\n\n      var inputProps = _extends(_extends(_extends({}, otherProps), $attrs), {\n        onKeydown: handleKeyDown,\n        class: classNames(getInputClassName(prefixCls, size, disabled), _defineProperty({}, $attrs.class, $attrs.class && !addonBefore && !addonAfter)),\n        ref: this.saveInput,\n        key: 'ant-input',\n        onInput: handleChange,\n        onChange: handleChange,\n        onFocus: handleInputFocus,\n        onBlur: handleInputBlur\n      });\n\n      if (!inputProps.autofocus) {\n        delete inputProps.autofocus;\n      }\n\n      var inputNode = _createVNode(\"input\", inputProps, null);\n\n      return withDirectives(inputNode, [[antInputDirective]]);\n    },\n    clearPasswordValueAttribute: function clearPasswordValueAttribute() {\n      var _this3 = this;\n\n      // https://github.com/ant-design/ant-design/issues/20541\n      this.removePasswordTimeout = setTimeout(function () {\n        if (_this3.input && _this3.input.getAttribute && _this3.input.getAttribute('type') === 'password' && _this3.input.hasAttribute('value')) {\n          _this3.input.removeAttribute('value');\n        }\n      });\n    },\n    handleChange: function handleChange(e) {\n      var _e$target = e.target,\n          value = _e$target.value,\n          composing = _e$target.composing,\n          isComposing = _e$target.isComposing; // https://github.com/vueComponent/ant-design-vue/issues/2203\n\n      if ((isComposing || composing) && this.lazy || this.stateValue === value) return;\n      this.setValue(value, this.clearPasswordValueAttribute);\n      resolveOnChange(this.input, e, this.triggerChange);\n    },\n    handleKeyDown: function handleKeyDown(e) {\n      if (e.keyCode === 13) {\n        this.$emit('pressEnter', e);\n      }\n\n      this.$emit('keydown', e);\n    }\n  },\n  render: function render() {\n    var customizePrefixCls = this.$props.prefixCls;\n    var _this$$data = this.$data,\n        stateValue = _this$$data.stateValue,\n        isFocused = _this$$data.isFocused;\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var prefixCls = getPrefixCls('input', customizePrefixCls);\n    var addonAfter = getComponent(this, 'addonAfter');\n    var addonBefore = getComponent(this, 'addonBefore');\n    var suffix = getComponent(this, 'suffix');\n    var prefix = getComponent(this, 'prefix');\n\n    var props = _extends(_extends(_extends({}, this.$attrs), getOptionProps(this)), {\n      prefixCls: prefixCls,\n      inputType: 'input',\n      value: fixControlledValue(stateValue),\n      element: this.renderInput(prefixCls, {\n        addonAfter: addonAfter,\n        addonBefore: addonBefore\n      }),\n      handleReset: this.handleReset,\n      addonAfter: addonAfter,\n      addonBefore: addonBefore,\n      suffix: suffix,\n      prefix: prefix,\n      isFocused: isFocused\n    });\n\n    return _createVNode(ClearableLabeledInput, _objectSpread(_objectSpread({}, props), {}, {\n      \"ref\": this.saveClearableInput\n    }), null);\n  }\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport { getSlot } from '../_util/props-util';\nimport { defaultConfigProvider } from '../config-provider';\nimport { tuple } from '../_util/type';\nexport default defineComponent({\n  name: 'AInputGroup',\n  props: {\n    prefixCls: PropTypes.string,\n    size: PropTypes.oneOf(tuple('small', 'large', 'default')),\n    compact: PropTypes.looseBool\n  },\n  setup: function setup() {\n    return {\n      configProvider: inject('configProvider', defaultConfigProvider)\n    };\n  },\n  computed: {\n    classes: function classes() {\n      var _ref;\n\n      var customizePrefixCls = this.prefixCls,\n          size = this.size,\n          _this$compact = this.compact,\n          compact = _this$compact === void 0 ? false : _this$compact,\n          configProvider = this.configProvider;\n      var getPrefixCls = configProvider.getPrefixCls;\n      var prefixCls = getPrefixCls('input-group', customizePrefixCls);\n      return _ref = {}, _defineProperty(_ref, \"\".concat(prefixCls), true), _defineProperty(_ref, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_ref, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_ref, \"\".concat(prefixCls, \"-compact\"), compact), _ref;\n    }\n  },\n  render: function render() {\n    return _createVNode(\"span\", {\n      \"class\": this.classes\n    }, [getSlot(this)]);\n  }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n// MIT License from https://github.com/kaimallea/isMobile\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\n\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\n\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n  return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n  var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : ''); // Facebook mobile app's integrated browser adds a bunch of strings that\n  // match everything. Strip it out if it exists.\n\n  var tmp = ua.split('[FBAN');\n\n  if (typeof tmp[1] !== 'undefined') {\n    var _tmp = tmp;\n\n    var _tmp2 = _slicedToArray(_tmp, 1);\n\n    ua = _tmp2[0];\n  } // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n  // iPhone\" string. Same probably happens on other tablet platforms.\n  // This will confuse detection so strip it out if it exists.\n\n\n  tmp = ua.split('Twitter');\n\n  if (typeof tmp[1] !== 'undefined') {\n    var _tmp3 = tmp;\n\n    var _tmp4 = _slicedToArray(_tmp3, 1);\n\n    ua = _tmp4[0];\n  }\n\n  var result = {\n    apple: {\n      phone: match(applePhone, ua) && !match(windowsPhone, ua),\n      ipod: match(appleIpod, ua),\n      tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n      device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n    },\n    amazon: {\n      phone: match(amazonPhone, ua),\n      tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n      device: match(amazonPhone, ua) || match(amazonTablet, ua)\n    },\n    android: {\n      phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n      tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n      device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n    },\n    windows: {\n      phone: match(windowsPhone, ua),\n      tablet: match(windowsTablet, ua),\n      device: match(windowsPhone, ua) || match(windowsTablet, ua)\n    },\n    other: {\n      blackberry: match(otherBlackberry, ua),\n      blackberry10: match(otherBlackberry10, ua),\n      opera: match(otherOpera, ua),\n      firefox: match(otherFirefox, ua),\n      chrome: match(otherChrome, ua),\n      device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n    },\n    // Additional\n    any: null,\n    phone: null,\n    tablet: null\n  };\n  result.any = result.apple.device || result.android.device || result.windows.device || result.other.device; // excludes 'other' devices and ipods, targeting touchscreen phones\n\n  result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n  result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n  return result;\n}\n\nvar defaultResult = _extends(_extends({}, isMobile()), {\n  isMobile: isMobile\n});\n\nexport default defaultResult;","var START_EVENT_NAME_MAP = {\n  transitionstart: {\n    transition: 'transitionstart',\n    WebkitTransition: 'webkitTransitionStart',\n    MozTransition: 'mozTransitionStart',\n    OTransition: 'oTransitionStart',\n    msTransition: 'MSTransitionStart'\n  },\n  animationstart: {\n    animation: 'animationstart',\n    WebkitAnimation: 'webkitAnimationStart',\n    MozAnimation: 'mozAnimationStart',\n    OAnimation: 'oAnimationStart',\n    msAnimation: 'MSAnimationStart'\n  }\n};\nvar END_EVENT_NAME_MAP = {\n  transitionend: {\n    transition: 'transitionend',\n    WebkitTransition: 'webkitTransitionEnd',\n    MozTransition: 'mozTransitionEnd',\n    OTransition: 'oTransitionEnd',\n    msTransition: 'MSTransitionEnd'\n  },\n  animationend: {\n    animation: 'animationend',\n    WebkitAnimation: 'webkitAnimationEnd',\n    MozAnimation: 'mozAnimationEnd',\n    OAnimation: 'oAnimationEnd',\n    msAnimation: 'MSAnimationEnd'\n  }\n};\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n  var testEl = document.createElement('div');\n  var style = testEl.style;\n\n  if (!('AnimationEvent' in window)) {\n    delete START_EVENT_NAME_MAP.animationstart.animation;\n    delete END_EVENT_NAME_MAP.animationend.animation;\n  }\n\n  if (!('TransitionEvent' in window)) {\n    delete START_EVENT_NAME_MAP.transitionstart.transition;\n    delete END_EVENT_NAME_MAP.transitionend.transition;\n  }\n\n  function process(EVENT_NAME_MAP, events) {\n    for (var baseEventName in EVENT_NAME_MAP) {\n      if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n        var baseEvents = EVENT_NAME_MAP[baseEventName];\n\n        for (var styleName in baseEvents) {\n          if (styleName in style) {\n            events.push(baseEvents[styleName]);\n            break;\n          }\n        }\n      }\n    }\n  }\n\n  process(START_EVENT_NAME_MAP, startEvents);\n  process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n  detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n  node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n  node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n  // Start events\n  startEvents: startEvents,\n  addStartEventListener: function addStartEventListener(node, eventListener) {\n    if (startEvents.length === 0) {\n      window.setTimeout(eventListener, 0);\n      return;\n    }\n\n    startEvents.forEach(function (startEvent) {\n      addEventListener(node, startEvent, eventListener);\n    });\n  },\n  removeStartEventListener: function removeStartEventListener(node, eventListener) {\n    if (startEvents.length === 0) {\n      return;\n    }\n\n    startEvents.forEach(function (startEvent) {\n      removeEventListener(node, startEvent, eventListener);\n    });\n  },\n  // End events\n  endEvents: endEvents,\n  addEndEventListener: function addEndEventListener(node, eventListener) {\n    if (endEvents.length === 0) {\n      window.setTimeout(eventListener, 0);\n      return;\n    }\n\n    endEvents.forEach(function (endEvent) {\n      addEventListener(node, endEvent, eventListener);\n    });\n  },\n  removeEndEventListener: function removeEndEventListener(node, eventListener) {\n    if (endEvents.length === 0) {\n      return;\n    }\n\n    endEvents.forEach(function (endEvent) {\n      removeEventListener(node, endEvent, eventListener);\n    });\n  }\n};\nexport default TransitionEvents;","import { nextTick, inject, defineComponent } from 'vue';\nimport TransitionEvents from './css-animation/Event';\nimport raf from './raf';\nimport { defaultConfigProvider } from '../config-provider';\nimport { findDOMNode } from './props-util';\nvar styleForPesudo; // Where el is the DOM element you'd like to test for visibility\n\nfunction isHidden(element) {\n  if (process.env.NODE_ENV === 'test') {\n    return false;\n  }\n\n  return !element || element.offsetParent === null;\n}\n\nfunction isNotGrey(color) {\n  // eslint-disable-next-line no-useless-escape\n  var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\.\\d]*)?\\)/);\n\n  if (match && match[1] && match[2] && match[3]) {\n    return !(match[1] === match[2] && match[2] === match[3]);\n  }\n\n  return true;\n}\n\nexport default defineComponent({\n  name: 'Wave',\n  props: ['insertExtraNode'],\n  setup: function setup() {\n    var configProvider = inject('configProvider', defaultConfigProvider);\n    return {\n      configProvider: configProvider\n    };\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    nextTick(function () {\n      var node = findDOMNode(_this);\n\n      if (node.nodeType !== 1) {\n        return;\n      }\n\n      _this.instance = _this.bindAnimationEvent(node);\n    });\n  },\n  beforeUnmount: function beforeUnmount() {\n    if (this.instance) {\n      this.instance.cancel();\n    }\n\n    if (this.clickWaveTimeoutId) {\n      clearTimeout(this.clickWaveTimeoutId);\n    }\n  },\n  methods: {\n    onClick: function onClick(node, waveColor) {\n      if (!node || isHidden(node) || node.className.indexOf('-leave') >= 0) {\n        return;\n      }\n\n      var insertExtraNode = this.$props.insertExtraNode;\n      this.extraNode = document.createElement('div');\n      var extraNode = this.extraNode;\n      extraNode.className = 'ant-click-animating-node';\n      var attributeName = this.getAttributeName();\n      node.removeAttribute(attributeName);\n      node.setAttribute(attributeName, 'true'); // Not white or transparent or grey\n\n      styleForPesudo = styleForPesudo || document.createElement('style');\n\n      if (waveColor && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && isNotGrey(waveColor) && !/rgba\\(\\d*, \\d*, \\d*, 0\\)/.test(waveColor) && // any transparent rgba color\n      waveColor !== 'transparent') {\n        // Add nonce if CSP exist\n        if (this.csp && this.csp.nonce) {\n          styleForPesudo.nonce = this.csp.nonce;\n        }\n\n        extraNode.style.borderColor = waveColor;\n        styleForPesudo.innerHTML = \"\\n        [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\\n          --antd-wave-shadow-color: \".concat(waveColor, \";\\n        }\");\n\n        if (!document.body.contains(styleForPesudo)) {\n          document.body.appendChild(styleForPesudo);\n        }\n      }\n\n      if (insertExtraNode) {\n        node.appendChild(extraNode);\n      }\n\n      TransitionEvents.addStartEventListener(node, this.onTransitionStart);\n      TransitionEvents.addEndEventListener(node, this.onTransitionEnd);\n    },\n    onTransitionStart: function onTransitionStart(e) {\n      if (this._.isUnmounted) return;\n      var node = findDOMNode(this);\n\n      if (!e || e.target !== node) {\n        return;\n      }\n\n      if (!this.animationStart) {\n        this.resetEffect(node);\n      }\n    },\n    onTransitionEnd: function onTransitionEnd(e) {\n      if (!e || e.animationName !== 'fadeEffect') {\n        return;\n      }\n\n      this.resetEffect(e.target);\n    },\n    getAttributeName: function getAttributeName() {\n      var insertExtraNode = this.$props.insertExtraNode;\n      return insertExtraNode ? 'ant-click-animating' : 'ant-click-animating-without-extra-node';\n    },\n    bindAnimationEvent: function bindAnimationEvent(node) {\n      var _this2 = this;\n\n      if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.indexOf('disabled') >= 0) {\n        return;\n      }\n\n      var onClick = function onClick(e) {\n        // Fix radio button click twice\n        if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n          return;\n        }\n\n        _this2.resetEffect(node); // Get wave color from target\n\n\n        var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') || // Firefox Compatible\n        getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n        _this2.clickWaveTimeoutId = window.setTimeout(function () {\n          return _this2.onClick(node, waveColor);\n        }, 0);\n        raf.cancel(_this2.animationStartId);\n        _this2.animationStart = true; // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n\n        _this2.animationStartId = raf(function () {\n          _this2.animationStart = false;\n        }, 10);\n      };\n\n      node.addEventListener('click', onClick, true);\n      return {\n        cancel: function cancel() {\n          node.removeEventListener('click', onClick, true);\n        }\n      };\n    },\n    resetEffect: function resetEffect(node) {\n      if (!node || node === this.extraNode || !(node instanceof Element)) {\n        return;\n      }\n\n      var insertExtraNode = this.$props.insertExtraNode;\n      var attributeName = this.getAttributeName();\n      node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n\n      if (styleForPesudo) {\n        styleForPesudo.innerHTML = '';\n      }\n\n      if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n        node.removeChild(this.extraNode);\n      }\n\n      TransitionEvents.removeStartEventListener(node, this.onTransitionStart);\n      TransitionEvents.removeEndEventListener(node, this.onTransitionEnd);\n    }\n  },\n  render: function render() {\n    var _a, _b;\n\n    var csp = this.configProvider.csp;\n\n    if (csp) {\n      this.csp = csp;\n    }\n\n    return (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a)[0];\n  }\n});","import { tuple } from '../_util/type';\nimport PropTypes from '../_util/vue-types';\nvar ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'link', 'text');\nvar ButtonShapes = tuple('circle', 'round');\nvar ButtonHTMLTypes = tuple('submit', 'button', 'reset');\nexport function convertLegacyProps(type) {\n  if (type === 'danger') {\n    return {\n      danger: true\n    };\n  }\n\n  return {\n    type: type\n  };\n}\n\nvar buttonProps = function buttonProps() {\n  return {\n    prefixCls: PropTypes.string,\n    type: PropTypes.oneOf(ButtonTypes),\n    htmlType: PropTypes.oneOf(ButtonHTMLTypes).def('button'),\n    shape: PropTypes.oneOf(ButtonShapes),\n    size: {\n      type: String\n    },\n    loading: {\n      type: [Boolean, Object],\n      default: function _default() {\n        return false;\n      }\n    },\n    disabled: PropTypes.looseBool,\n    ghost: PropTypes.looseBool,\n    block: PropTypes.looseBool,\n    danger: PropTypes.looseBool,\n    icon: PropTypes.VNodeChild,\n    href: PropTypes.string,\n    target: PropTypes.string,\n    title: PropTypes.string,\n    onClick: {\n      type: Function\n    }\n  };\n};\n\nexport default buttonProps;","import devWarning, { resetWarned } from './warning';\nexport { resetWarned };\nexport default (function (valid, component, message) {\n  devWarning(valid, \"[ant-design-vue: \".concat(component, \"] \").concat(message));\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent, onBeforeUnmount, onMounted, onUpdated, ref, Text, watch, watchEffect } from 'vue';\nimport Wave from '../_util/wave';\nimport buttonTypes from './buttonTypes';\nimport LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined';\nimport { flattenChildren, getPropsSlot } from '../_util/props-util';\nimport useConfigInject from '../_util/hooks/useConfigInject';\nimport devWarning from '../vc-util/devWarning';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nvar props = buttonTypes();\n\nfunction isUnborderedButtonType(type) {\n  return type === 'text' || type === 'link';\n}\n\nexport default defineComponent({\n  name: 'AButton',\n  inheritAttrs: false,\n  __ANT_BUTTON: true,\n  props: props,\n  slots: ['icon'],\n  emits: ['click'],\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots,\n        attrs = _ref.attrs,\n        emit = _ref.emit;\n\n    var _useConfigInject = useConfigInject('btn', props),\n        prefixCls = _useConfigInject.prefixCls,\n        autoInsertSpaceInButton = _useConfigInject.autoInsertSpaceInButton,\n        direction = _useConfigInject.direction;\n\n    var buttonNodeRef = ref(null);\n    var delayTimeoutRef = ref(undefined);\n    var isNeedInserted = false;\n    var innerLoading = ref(false);\n    var hasTwoCNChar = ref(false);\n    var autoInsertSpace = computed(function () {\n      return autoInsertSpaceInButton.value !== false;\n    }); // =============== Update Loading ===============\n\n    var loadingOrDelay = computed(function () {\n      return _typeof(props.loading) === 'object' && props.loading.delay ? props.loading.delay || true : !!props.loading;\n    });\n    watch(loadingOrDelay, function (val) {\n      clearTimeout(delayTimeoutRef.value);\n\n      if (typeof loadingOrDelay.value === 'number') {\n        delayTimeoutRef.value = window.setTimeout(function () {\n          innerLoading.value = val;\n        }, loadingOrDelay.value);\n      } else {\n        innerLoading.value = val;\n      }\n    }, {\n      immediate: true\n    });\n    var classes = computed(function () {\n      var _ref2;\n\n      var type = props.type,\n          shape = props.shape,\n          size = props.size,\n          ghost = props.ghost,\n          block = props.block,\n          danger = props.danger;\n      var pre = prefixCls.value; // large => lg\n      // small => sm\n\n      var sizeCls = '';\n\n      switch (size) {\n        case 'large':\n          sizeCls = 'lg';\n          break;\n\n        case 'small':\n          sizeCls = 'sm';\n          break;\n\n        default:\n          break;\n      }\n\n      return _ref2 = {}, _defineProperty(_ref2, \"\".concat(pre), true), _defineProperty(_ref2, \"\".concat(pre, \"-\").concat(type), type), _defineProperty(_ref2, \"\".concat(pre, \"-\").concat(shape), shape), _defineProperty(_ref2, \"\".concat(pre, \"-\").concat(sizeCls), sizeCls), _defineProperty(_ref2, \"\".concat(pre, \"-loading\"), innerLoading.value), _defineProperty(_ref2, \"\".concat(pre, \"-background-ghost\"), ghost && !isUnborderedButtonType(type)), _defineProperty(_ref2, \"\".concat(pre, \"-two-chinese-chars\"), hasTwoCNChar.value && autoInsertSpace.value), _defineProperty(_ref2, \"\".concat(pre, \"-block\"), block), _defineProperty(_ref2, \"\".concat(pre, \"-dangerous\"), !!danger), _defineProperty(_ref2, \"\".concat(pre, \"-rtl\"), direction.value === 'rtl'), _ref2;\n    });\n\n    var fixTwoCNChar = function fixTwoCNChar() {\n      // Fix for HOC usage like <FormatMessage />\n      var node = buttonNodeRef.value;\n\n      if (!node || autoInsertSpaceInButton.value === false) {\n        return;\n      }\n\n      var buttonText = node.textContent;\n\n      if (isNeedInserted && isTwoCNChar(buttonText)) {\n        if (!hasTwoCNChar.value) {\n          hasTwoCNChar.value = true;\n        }\n      } else if (hasTwoCNChar.value) {\n        hasTwoCNChar.value = false;\n      }\n    };\n\n    var handleClick = function handleClick(event) {\n      // https://github.com/ant-design/ant-design/issues/30207\n      if (innerLoading.value || props.disabled) {\n        event.preventDefault();\n        return;\n      }\n\n      emit('click', event);\n    };\n\n    var insertSpace = function insertSpace(child, needInserted) {\n      var SPACE = needInserted ? ' ' : '';\n\n      if (child.type === Text) {\n        var text = child.children.trim();\n\n        if (isTwoCNChar(text)) {\n          text = text.split('').join(SPACE);\n        }\n\n        return _createVNode(\"span\", null, [text]);\n      }\n\n      return child;\n    };\n\n    watchEffect(function () {\n      devWarning(!(props.ghost && isUnborderedButtonType(props.type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\");\n    });\n    onMounted(fixTwoCNChar);\n    onUpdated(fixTwoCNChar);\n    onBeforeUnmount(function () {\n      delayTimeoutRef.value && clearTimeout(delayTimeoutRef.value);\n    });\n    return function () {\n      var children = flattenChildren(getPropsSlot(slots, props));\n      var icon = getPropsSlot(slots, props, 'icon');\n      isNeedInserted = children.length === 1 && !icon && !isUnborderedButtonType(props.type);\n      var type = props.type,\n          htmlType = props.htmlType,\n          disabled = props.disabled,\n          href = props.href,\n          title = props.title,\n          target = props.target;\n      var iconType = innerLoading.value ? 'loading' : icon;\n\n      var buttonProps = _extends(_extends({}, attrs), {\n        title: title,\n        disabled: disabled,\n        class: [classes.value, attrs.class, _defineProperty({}, \"\".concat(prefixCls.value, \"-icon-only\"), children.length === 0 && !!iconType)],\n        onClick: handleClick\n      });\n\n      var iconNode = innerLoading.value ? _createVNode(LoadingOutlined, null, null) : icon;\n      var kids = children.map(function (child) {\n        return insertSpace(child, isNeedInserted && autoInsertSpace.value);\n      });\n\n      if (href !== undefined) {\n        return _createVNode(\"a\", _objectSpread(_objectSpread({}, buttonProps), {}, {\n          \"href\": href,\n          \"target\": target,\n          \"ref\": buttonNodeRef\n        }), [iconNode, kids]);\n      }\n\n      var buttonNode = _createVNode(\"button\", _objectSpread(_objectSpread({}, buttonProps), {}, {\n        \"ref\": buttonNodeRef,\n        \"type\": htmlType\n      }), [iconNode, kids]);\n\n      if (isUnborderedButtonType(type)) {\n        return buttonNode;\n      }\n\n      return _createVNode(Wave, {\n        \"ref\": \"wave\"\n      }, {\n        default: function _default() {\n          return [buttonNode];\n        }\n      });\n    };\n  }\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from 'vue';\nimport { flattenChildren } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport useConfigInject from '../_util/hooks/useConfigInject';\nvar buttonGroupProps = {\n  prefixCls: PropTypes.string,\n  size: {\n    type: String\n  }\n};\nexport { buttonGroupProps };\nexport default defineComponent({\n  name: 'AButtonGroup',\n  props: buttonGroupProps,\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n\n    var _useConfigInject = useConfigInject('btn-group', props),\n        prefixCls = _useConfigInject.prefixCls,\n        direction = _useConfigInject.direction;\n\n    var classes = computed(function () {\n      var _ref2;\n\n      var size = props.size; // large => lg\n      // small => sm\n\n      var sizeCls = '';\n\n      switch (size) {\n        case 'large':\n          sizeCls = 'lg';\n          break;\n\n        case 'small':\n          sizeCls = 'sm';\n          break;\n\n        default:\n          break;\n      }\n\n      return _ref2 = {}, _defineProperty(_ref2, \"\".concat(prefixCls.value), true), _defineProperty(_ref2, \"\".concat(prefixCls.value, \"-\").concat(sizeCls), sizeCls), _defineProperty(_ref2, \"\".concat(prefixCls.value, \"-rtl\"), direction.value === 'rtl'), _ref2;\n    });\n    return function () {\n      var _a;\n\n      return _createVNode(\"div\", {\n        \"class\": classes.value\n      }, [flattenChildren((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots))]);\n    };\n  }\n});","import Button from './button';\nimport ButtonGroup from './button-group';\nButton.Group = ButtonGroup;\n/* istanbul ignore next */\n\nButton.install = function (app) {\n  app.component(Button.name, Button);\n  app.component(ButtonGroup.name, ButtonGroup);\n  return app;\n};\n\nexport { ButtonGroup };\nexport default Button;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { defineComponent, inject } from 'vue';\nimport classNames from '../_util/classNames';\nimport isMobile from '../_util/isMobile';\nimport Input from './Input';\nimport LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined';\nimport SearchOutlined from '@ant-design/icons-vue/SearchOutlined';\nimport inputProps from './inputProps';\nimport Button from '../button';\nimport { cloneElement } from '../_util/vnode';\nimport PropTypes from '../_util/vue-types';\nimport { getOptionProps, getComponent } from '../_util/props-util';\nimport { defaultConfigProvider } from '../config-provider';\nimport isPlainObject from 'lodash-es/isPlainObject';\nexport default defineComponent({\n  name: 'AInputSearch',\n  inheritAttrs: false,\n  props: _extends(_extends({}, inputProps), {\n    // 不能设置默认值 https://github.com/vueComponent/ant-design-vue/issues/1916\n    enterButton: PropTypes.VNodeChild,\n    onSearch: PropTypes.func\n  }),\n  setup: function setup() {\n    return {\n      configProvider: inject('configProvider', defaultConfigProvider),\n      input: null\n    };\n  },\n  methods: {\n    saveInput: function saveInput(node) {\n      this.input = node;\n    },\n    handleChange: function handleChange(e) {\n      this.$emit('update:value', e.target.value);\n\n      if (e && e.target && e.type === 'click') {\n        this.$emit('search', e.target.value, e);\n      }\n\n      this.$emit('change', e);\n    },\n    handleSearch: function handleSearch(e) {\n      if (this.loading || this.disabled) {\n        return;\n      }\n\n      this.$emit('search', this.input.stateValue, e);\n\n      if (!isMobile.tablet) {\n        this.input.focus();\n      }\n    },\n    focus: function focus() {\n      this.input.focus();\n    },\n    blur: function blur() {\n      this.input.blur();\n    },\n    renderLoading: function renderLoading(prefixCls) {\n      var size = this.$props.size;\n      var enterButton = getComponent(this, 'enterButton'); // 兼容 <a-input-search enterButton />， 因enterButton类型为 any，此类写法 enterButton 为空字符串\n\n      enterButton = enterButton || enterButton === '';\n\n      if (enterButton) {\n        return _createVNode(Button, {\n          \"class\": \"\".concat(prefixCls, \"-button\"),\n          \"type\": \"primary\",\n          \"size\": size,\n          \"key\": \"enterButton\"\n        }, {\n          default: function _default() {\n            return [_createVNode(LoadingOutlined, null, null)];\n          }\n        });\n      }\n\n      return _createVNode(LoadingOutlined, {\n        \"class\": \"\".concat(prefixCls, \"-icon\"),\n        \"key\": \"loadingIcon\"\n      }, null);\n    },\n    renderSuffix: function renderSuffix(prefixCls) {\n      var loading = this.loading;\n      var suffix = getComponent(this, 'suffix');\n      var enterButton = getComponent(this, 'enterButton'); // 兼容 <a-input-search enterButton />， 因enterButton类型为 any，此类写法 enterButton 为空字符串\n\n      enterButton = enterButton || enterButton === '';\n\n      if (loading && !enterButton) {\n        return [suffix, this.renderLoading(prefixCls)];\n      }\n\n      if (enterButton) return suffix;\n\n      var icon = _createVNode(SearchOutlined, {\n        \"class\": \"\".concat(prefixCls, \"-icon\"),\n        \"key\": \"searchIcon\",\n        \"onClick\": this.handleSearch\n      }, null);\n\n      if (suffix) {\n        // let cloneSuffix = suffix;\n        // if (isValidElement(cloneSuffix) && !cloneSuffix.key) {\n        //   cloneSuffix = cloneElement(cloneSuffix, {\n        //     key: 'originSuffix',\n        //   });\n        // }\n        return [suffix, icon];\n      }\n\n      return icon;\n    },\n    renderAddonAfter: function renderAddonAfter(prefixCls) {\n      var size = this.size,\n          disabled = this.disabled,\n          loading = this.loading;\n      var btnClassName = \"\".concat(prefixCls, \"-button\");\n      var enterButton = getComponent(this, 'enterButton');\n      enterButton = enterButton || enterButton === '';\n      var addonAfter = getComponent(this, 'addonAfter');\n\n      if (loading && enterButton) {\n        return [this.renderLoading(prefixCls), addonAfter];\n      }\n\n      if (!enterButton) return addonAfter;\n      var enterButtonAsElement = Array.isArray(enterButton) ? enterButton[0] : enterButton;\n      var button;\n\n      var isAntdButton = enterButtonAsElement.type && isPlainObject(enterButtonAsElement.type) && enterButtonAsElement.type.__ANT_BUTTON;\n\n      if (enterButtonAsElement.tagName === 'button' || isAntdButton) {\n        button = cloneElement(enterButtonAsElement, _extends(_extends({\n          key: 'enterButton',\n          class: isAntdButton ? btnClassName : ''\n        }, isAntdButton ? {\n          size: size\n        } : {}), {\n          onClick: this.handleSearch\n        }));\n      } else {\n        button = _createVNode(Button, {\n          \"class\": btnClassName,\n          \"type\": \"primary\",\n          \"size\": size,\n          \"disabled\": disabled,\n          \"key\": \"enterButton\",\n          \"onClick\": this.handleSearch\n        }, {\n          default: function _default() {\n            return [enterButton === true || enterButton === '' ? _createVNode(SearchOutlined, null, null) : enterButton];\n          }\n        });\n      }\n\n      if (addonAfter) {\n        return [button, addonAfter];\n      }\n\n      return button;\n    }\n  },\n  render: function render() {\n    var _a = _extends(_extends({}, getOptionProps(this)), this.$attrs),\n        customizePrefixCls = _a.prefixCls,\n        customizeInputPrefixCls = _a.inputPrefixCls,\n        size = _a.size,\n        className = _a.class,\n        restProps = __rest(_a, [\"prefixCls\", \"inputPrefixCls\", \"size\", \"class\"]);\n\n    delete restProps.onSearch;\n    delete restProps.loading;\n    delete restProps.enterButton;\n    delete restProps.addonBefore;\n    delete restProps['onUpdate:value'];\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var prefixCls = getPrefixCls('input-search', customizePrefixCls);\n    var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n    var enterButton = getComponent(this, 'enterButton');\n    var addonBefore = getComponent(this, 'addonBefore');\n    enterButton = enterButton || enterButton === '';\n    var inputClassName;\n\n    if (enterButton) {\n      var _classNames;\n\n      inputClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-enter-button\"), !!enterButton), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), !!size), _classNames));\n    } else {\n      inputClassName = classNames(prefixCls, className);\n    }\n\n    var inputProps = _extends(_extends({}, restProps), {\n      prefixCls: inputPrefixCls,\n      size: size,\n      suffix: this.renderSuffix(prefixCls),\n      prefix: getComponent(this, 'prefix'),\n      addonAfter: this.renderAddonAfter(prefixCls),\n      addonBefore: addonBefore,\n      class: inputClassName,\n      onPressEnter: this.handleSearch,\n      onChange: this.handleChange\n    });\n\n    return _createVNode(Input, _objectSpread(_objectSpread({}, inputProps), {}, {\n      \"ref\": this.saveInput\n    }), null);\n  }\n});","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nvar HIDDEN_TEXTAREA_STYLE = \"\\n  min-height:0 !important;\\n  max-height:none !important;\\n  height:0 !important;\\n  visibility:hidden !important;\\n  overflow:hidden !important;\\n  position:absolute !important;\\n  z-index:-1000 !important;\\n  top:0 !important;\\n  right:0 !important\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n  var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n\n  if (useCache && computedStyleCache[nodeRef]) {\n    return computedStyleCache[nodeRef];\n  }\n\n  var style = window.getComputedStyle(node);\n  var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n  var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n  var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n  var sizingStyle = SIZING_STYLE.map(function (name) {\n    return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n  }).join(';');\n  var nodeInfo = {\n    sizingStyle: sizingStyle,\n    paddingSize: paddingSize,\n    borderSize: borderSize,\n    boxSizing: boxSizing\n  };\n\n  if (useCache && nodeRef) {\n    computedStyleCache[nodeRef] = nodeInfo;\n  }\n\n  return nodeInfo;\n}\nexport default function calculateNodeHeight(uiTextNode) {\n  var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  if (!hiddenTextarea) {\n    hiddenTextarea = document.createElement('textarea');\n    document.body.appendChild(hiddenTextarea);\n  } // Fix wrap=\"off\" issue\n  // https://github.com/ant-design/ant-design/issues/6577\n\n\n  if (uiTextNode.getAttribute('wrap')) {\n    hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n  } else {\n    hiddenTextarea.removeAttribute('wrap');\n  } // Copy all CSS properties that have an impact on the height of the content in\n  // the textbox\n\n\n  var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n      paddingSize = _calculateNodeStyling.paddingSize,\n      borderSize = _calculateNodeStyling.borderSize,\n      boxSizing = _calculateNodeStyling.boxSizing,\n      sizingStyle = _calculateNodeStyling.sizingStyle; // Need to have the overflow attribute to hide the scrollbar otherwise\n  // text-lines will not calculated properly as the shadow will technically be\n  // narrower for content\n\n\n  hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n  hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n  var minHeight = Number.MIN_SAFE_INTEGER;\n  var maxHeight = Number.MAX_SAFE_INTEGER;\n  var height = hiddenTextarea.scrollHeight;\n  var overflowY;\n\n  if (boxSizing === 'border-box') {\n    // border-box: add border, since height = content + padding + border\n    height += borderSize;\n  } else if (boxSizing === 'content-box') {\n    // remove padding, since height = content\n    height -= paddingSize;\n  }\n\n  if (minRows !== null || maxRows !== null) {\n    // measure height of a textarea with a single row\n    hiddenTextarea.value = ' ';\n    var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n    if (minRows !== null) {\n      minHeight = singleRowHeight * minRows;\n\n      if (boxSizing === 'border-box') {\n        minHeight = minHeight + paddingSize + borderSize;\n      }\n\n      height = Math.max(minHeight, height);\n    }\n\n    if (maxRows !== null) {\n      maxHeight = singleRowHeight * maxRows;\n\n      if (boxSizing === 'border-box') {\n        maxHeight = maxHeight + paddingSize + borderSize;\n      }\n\n      overflowY = height > maxHeight ? '' : 'hidden';\n      height = Math.min(maxHeight, height);\n    }\n  }\n\n  return {\n    height: \"\".concat(height, \"px\"),\n    minHeight: \"\".concat(minHeight, \"px\"),\n    maxHeight: \"\".concat(maxHeight, \"px\"),\n    overflowY: overflowY,\n    resize: 'none'\n  };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { nextTick } from 'vue';\nimport ResizeObserver from '../vc-resize-observer';\nimport omit from 'omit.js';\nimport classNames from '../_util/classNames';\nimport calculateNodeHeight from './calculateNodeHeight';\nimport raf from '../_util/raf';\nimport warning from '../_util/warning';\nimport BaseMixin from '../_util/BaseMixin';\nimport inputProps from './inputProps';\nimport PropTypes from '../_util/vue-types';\nimport { getOptionProps } from '../_util/props-util';\nimport { defineComponent, withDirectives } from 'vue';\nimport antInput from '../_util/antInputDirective';\nvar RESIZE_STATUS_NONE = 0;\nvar RESIZE_STATUS_RESIZING = 1;\nvar RESIZE_STATUS_RESIZED = 2;\n\nvar TextAreaProps = _extends(_extends({}, inputProps), {\n  autosize: {\n    type: [Boolean, Object],\n    default: undefined\n  },\n  autoSize: {\n    type: [Boolean, Object],\n    default: undefined\n  },\n  onResize: PropTypes.func\n});\n\nvar ResizableTextArea = defineComponent({\n  name: 'ResizableTextArea',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: TextAreaProps,\n  setup: function setup() {\n    return {\n      nextFrameActionId: undefined,\n      textArea: null,\n      resizeFrameId: undefined\n    };\n  },\n  data: function data() {\n    return {\n      textareaStyles: {},\n      resizeStatus: RESIZE_STATUS_NONE\n    };\n  },\n  watch: {\n    value: function value() {\n      var _this = this;\n\n      nextTick(function () {\n        _this.resizeTextarea();\n      });\n    }\n  },\n  mounted: function mounted() {\n    this.resizeTextarea();\n  },\n  beforeUnmount: function beforeUnmount() {\n    raf.cancel(this.nextFrameActionId);\n    raf.cancel(this.resizeFrameId);\n  },\n  methods: {\n    saveTextArea: function saveTextArea(textArea) {\n      this.textArea = textArea;\n    },\n    handleResize: function handleResize(size) {\n      var resizeStatus = this.$data.resizeStatus;\n\n      if (resizeStatus !== RESIZE_STATUS_NONE) {\n        return;\n      }\n\n      this.$emit('resize', size);\n    },\n    resizeOnNextFrame: function resizeOnNextFrame() {\n      raf.cancel(this.nextFrameActionId);\n      this.nextFrameActionId = raf(this.resizeTextarea);\n    },\n    resizeTextarea: function resizeTextarea() {\n      var _this2 = this;\n\n      var autoSize = this.$props.autoSize || this.$props.autosize;\n\n      if (!autoSize || !this.textArea) {\n        return;\n      }\n\n      var minRows = autoSize.minRows,\n          maxRows = autoSize.maxRows;\n      var textareaStyles = calculateNodeHeight(this.textArea, false, minRows, maxRows);\n      this.setState({\n        textareaStyles: textareaStyles,\n        resizeStatus: RESIZE_STATUS_RESIZING\n      }, function () {\n        raf.cancel(_this2.resizeFrameId);\n        _this2.resizeFrameId = raf(function () {\n          _this2.setState({\n            resizeStatus: RESIZE_STATUS_RESIZED\n          }, function () {\n            _this2.resizeFrameId = raf(function () {\n              _this2.setState({\n                resizeStatus: RESIZE_STATUS_NONE\n              });\n\n              _this2.fixFirefoxAutoScroll();\n            });\n          });\n        });\n      });\n    },\n    // https://github.com/ant-design/ant-design/issues/21870\n    fixFirefoxAutoScroll: function fixFirefoxAutoScroll() {\n      try {\n        if (document.activeElement === this.textArea) {\n          var currentStart = this.textArea.selectionStart;\n          var currentEnd = this.textArea.selectionEnd;\n          this.textArea.setSelectionRange(currentStart, currentEnd);\n        }\n      } catch (e) {// Fix error in Chrome:\n        // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n        // http://stackoverflow.com/q/21177489/3040605\n      }\n    },\n    renderTextArea: function renderTextArea() {\n      var _this3 = this;\n\n      var props = _extends(_extends({}, getOptionProps(this)), this.$attrs);\n\n      var prefixCls = props.prefixCls,\n          autoSize = props.autoSize,\n          autosize = props.autosize,\n          disabled = props.disabled,\n          className = props.class;\n      var _this$$data = this.$data,\n          textareaStyles = _this$$data.textareaStyles,\n          resizeStatus = _this$$data.resizeStatus;\n      warning(autosize === undefined, 'Input.TextArea', 'autosize is deprecated, please use autoSize instead.');\n      var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'autoSize', 'autosize', 'defaultValue', 'allowClear', 'type', 'lazy']);\n      var cls = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)); // Fix https://github.com/ant-design/ant-design/issues/6776\n      // Make sure it could be reset when using form.getFieldDecorator\n\n      if ('value' in otherProps) {\n        otherProps.value = otherProps.value || '';\n      }\n\n      var style = _extends(_extends(_extends({}, props.style), textareaStyles), resizeStatus === RESIZE_STATUS_RESIZING ? {\n        overflowX: 'hidden',\n        overflowY: 'hidden'\n      } : null);\n\n      var textareaProps = _extends(_extends({}, otherProps), {\n        style: style,\n        class: cls\n      });\n\n      if (!textareaProps.autofocus) {\n        delete textareaProps.autofocus;\n      }\n\n      return _createVNode(ResizeObserver, {\n        \"onResize\": this.handleResize,\n        \"disabled\": !(autoSize || autosize)\n      }, {\n        default: function _default() {\n          return [withDirectives(_createVNode(\"textarea\", _objectSpread(_objectSpread({}, textareaProps), {}, {\n            \"ref\": _this3.saveTextArea\n          }), null), [[antInput]])];\n        }\n      });\n    }\n  },\n  render: function render() {\n    return this.renderTextArea();\n  }\n});\nexport default ResizableTextArea;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject, nextTick } from 'vue';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nimport ResizableTextArea from './ResizableTextArea';\nimport inputProps from './inputProps';\nimport { hasProp, getOptionProps } from '../_util/props-util';\nimport { defaultConfigProvider } from '../config-provider';\nimport { fixControlledValue, resolveOnChange } from './Input';\nimport classNames from '../_util/classNames';\nimport PropTypes, { withUndefined } from '../_util/vue-types';\n\nvar TextAreaProps = _extends(_extends({}, inputProps), {\n  autosize: withUndefined(PropTypes.oneOfType([Object, Boolean])),\n  autoSize: withUndefined(PropTypes.oneOfType([Object, Boolean])),\n  showCount: PropTypes.looseBool,\n  onCompositionstart: PropTypes.func,\n  onCompositionend: PropTypes.func\n});\n\nexport default defineComponent({\n  name: 'ATextarea',\n  inheritAttrs: false,\n  props: _extends({}, TextAreaProps),\n  setup: function setup() {\n    return {\n      configProvider: inject('configProvider', defaultConfigProvider),\n      resizableTextArea: null,\n      clearableInput: null\n    };\n  },\n  data: function data() {\n    var value = typeof this.value === 'undefined' ? this.defaultValue : this.value;\n    return {\n      stateValue: typeof value === 'undefined' ? '' : value\n    };\n  },\n  watch: {\n    value: function value(val) {\n      this.stateValue = val;\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    nextTick(function () {\n      if (process.env.NODE_ENV === 'test') {\n        if (_this.autofocus) {\n          _this.focus();\n        }\n      }\n    });\n  },\n  methods: {\n    setValue: function setValue(value, callback) {\n      if (!hasProp(this, 'value')) {\n        this.stateValue = value;\n      } else {\n        this.$forceUpdate();\n      }\n\n      nextTick(function () {\n        callback && callback();\n      });\n    },\n    handleKeyDown: function handleKeyDown(e) {\n      if (e.keyCode === 13) {\n        this.$emit('pressEnter', e);\n      }\n\n      this.$emit('keydown', e);\n    },\n    triggerChange: function triggerChange(e) {\n      this.$emit('update:value', e.target.value);\n      this.$emit('change', e);\n      this.$emit('input', e);\n    },\n    handleChange: function handleChange(e) {\n      var _this2 = this;\n\n      var _e$target = e.target,\n          value = _e$target.value,\n          composing = _e$target.composing,\n          isComposing = _e$target.isComposing;\n      if ((isComposing || composing) && this.lazy || this.stateValue === value) return;\n      this.setValue(e.target.value, function () {\n        var _a;\n\n        (_a = _this2.resizableTextArea) === null || _a === void 0 ? void 0 : _a.resizeTextarea();\n      });\n      resolveOnChange(this.resizableTextArea.textArea, e, this.triggerChange);\n    },\n    focus: function focus() {\n      this.resizableTextArea.textArea.focus();\n    },\n    blur: function blur() {\n      this.resizableTextArea.textArea.blur();\n    },\n    saveTextArea: function saveTextArea(resizableTextArea) {\n      this.resizableTextArea = resizableTextArea;\n    },\n    saveClearableInput: function saveClearableInput(clearableInput) {\n      this.clearableInput = clearableInput;\n    },\n    handleReset: function handleReset(e) {\n      var _this3 = this;\n\n      this.setValue('', function () {\n        _this3.resizableTextArea.renderTextArea();\n\n        _this3.focus();\n      });\n      resolveOnChange(this.resizableTextArea.textArea, e, this.triggerChange);\n    },\n    renderTextArea: function renderTextArea(prefixCls) {\n      var props = getOptionProps(this);\n      var _this$$attrs = this.$attrs,\n          style = _this$$attrs.style,\n          customClass = _this$$attrs.class;\n\n      var resizeProps = _extends(_extends(_extends({}, props), this.$attrs), {\n        style: !props.showCount && style,\n        class: !props.showCount && customClass,\n        showCount: null,\n        prefixCls: prefixCls,\n        onInput: this.handleChange,\n        onChange: this.handleChange,\n        onKeydown: this.handleKeyDown\n      });\n\n      return _createVNode(ResizableTextArea, _objectSpread(_objectSpread({}, resizeProps), {}, {\n        \"ref\": this.saveTextArea\n      }), null);\n    }\n  },\n  render: function render() {\n    var stateValue = this.stateValue,\n        customizePrefixCls = this.prefixCls,\n        maxlength = this.maxlength,\n        showCount = this.showCount;\n    var _this$$attrs2 = this.$attrs,\n        style = _this$$attrs2.style,\n        customClass = _this$$attrs2.class;\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var prefixCls = getPrefixCls('input', customizePrefixCls);\n    var value = fixControlledValue(stateValue); // Max length value\n\n    var hasMaxlength = Number(maxlength) > 0;\n    value = hasMaxlength ? value.slice(0, maxlength) : value;\n\n    var props = _extends(_extends(_extends({}, getOptionProps(this)), this.$attrs), {\n      prefixCls: prefixCls,\n      inputType: 'text',\n      element: this.renderTextArea(prefixCls),\n      handleReset: this.handleReset\n    });\n\n    var textareaNode = _createVNode(ClearableLabeledInput, _objectSpread(_objectSpread({}, props), {}, {\n      \"value\": value,\n      \"ref\": this.saveClearableInput\n    }), null);\n\n    if (showCount) {\n      var valueLength = _toConsumableArray(value).length;\n\n      var dataCount = \"\".concat(valueLength).concat(hasMaxlength ? \" / \".concat(maxlength) : '');\n\n      var _textareaNode = function () {\n        return textareaNode;\n      }();\n\n      textareaNode = _createVNode(\"div\", {\n        \"class\": classNames(\"\".concat(prefixCls, \"-textarea\"), \"\".concat(prefixCls, \"-textarea-show-count\"), customClass),\n        \"style\": style,\n        \"data-count\": dataCount\n      }, [textareaNode]);\n    }\n\n    return textareaNode;\n  }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport classNames from '../_util/classNames';\nimport { getComponent, getOptionProps } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport Input from './Input';\nimport EyeOutlined from '@ant-design/icons-vue/EyeOutlined';\nimport EyeInvisibleOutlined from '@ant-design/icons-vue/EyeInvisibleOutlined';\nimport inputProps from './inputProps';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { defineComponent, inject } from 'vue';\nimport { defaultConfigProvider } from '../config-provider';\nvar ActionMap = {\n  click: 'onClick',\n  hover: 'onMouseover'\n};\nexport default defineComponent({\n  name: 'AInputPassword',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: _extends(_extends({}, inputProps), {\n    prefixCls: PropTypes.string,\n    inputPrefixCls: PropTypes.string,\n    action: PropTypes.string.def('click'),\n    visibilityToggle: PropTypes.looseBool.def(true),\n    iconRender: PropTypes.func.def(function (visible) {\n      return visible ? _createVNode(EyeOutlined, null, null) : _createVNode(EyeInvisibleOutlined, null, null);\n    })\n  }),\n  setup: function setup() {\n    return {\n      input: null,\n      configProvider: inject('configProvider', defaultConfigProvider)\n    };\n  },\n  data: function data() {\n    return {\n      visible: false\n    };\n  },\n  methods: {\n    saveInput: function saveInput(node) {\n      this.input = node;\n    },\n    focus: function focus() {\n      this.input.focus();\n    },\n    blur: function blur() {\n      this.input.blur();\n    },\n    onVisibleChange: function onVisibleChange() {\n      if (this.disabled) {\n        return;\n      }\n\n      this.setState({\n        visible: !this.visible\n      });\n    },\n    getIcon: function getIcon(prefixCls) {\n      var _iconProps;\n\n      var action = this.$props.action;\n      var iconTrigger = ActionMap[action] || '';\n      var iconRender = this.$slots.iconRender || this.$props.iconRender;\n      var icon = iconRender(this.visible);\n      var iconProps = (_iconProps = {}, _defineProperty(_iconProps, iconTrigger, this.onVisibleChange), _defineProperty(_iconProps, \"onMousedown\", function onMousedown(e) {\n        // Prevent focused state lost\n        // https://github.com/ant-design/ant-design/issues/15173\n        e.preventDefault();\n      }), _defineProperty(_iconProps, \"onMouseup\", function onMouseup(e) {\n        // Prevent focused state lost\n        // https://github.com/ant-design/ant-design/pull/23633/files\n        e.preventDefault();\n      }), _defineProperty(_iconProps, \"class\", \"\".concat(prefixCls, \"-icon\")), _defineProperty(_iconProps, \"key\", 'passwordIcon'), _iconProps);\n      return cloneElement(icon, iconProps);\n    }\n  },\n  render: function render() {\n    var _a = getOptionProps(this),\n        customizePrefixCls = _a.prefixCls,\n        customizeInputPrefixCls = _a.inputPrefixCls,\n        size = _a.size,\n        suffix = _a.suffix,\n        action = _a.action,\n        visibilityToggle = _a.visibilityToggle,\n        iconRender = _a.iconRender,\n        restProps = __rest(_a, [\"prefixCls\", \"inputPrefixCls\", \"size\", \"suffix\", \"action\", \"visibilityToggle\", \"iconRender\"]);\n\n    var className = this.$attrs.class;\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n    var prefixCls = getPrefixCls('input-password', customizePrefixCls);\n    var suffixIcon = visibilityToggle && this.getIcon(prefixCls);\n    var inputClassName = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), !!size));\n\n    var inputProps = _extends(_extends(_extends(_extends({}, restProps), {\n      prefixCls: inputPrefixCls,\n      size: size,\n      suffix: suffixIcon,\n      prefix: getComponent(this, 'prefix'),\n      addonAfter: getComponent(this, 'addonAfter'),\n      addonBefore: getComponent(this, 'addonBefore')\n    }), this.$attrs), {\n      type: this.visible ? 'text' : 'password',\n      class: inputClassName,\n      ref: 'input'\n    });\n\n    return _createVNode(Input, _objectSpread(_objectSpread({}, inputProps), {}, {\n      \"ref\": this.saveInput\n    }), null);\n  }\n});","import Input from './Input';\nimport Group from './Group';\nimport Search from './Search';\nimport TextArea from './TextArea';\nimport Password from './Password';\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\n/* istanbul ignore next */\n\nInput.install = function (app) {\n  app.component(Input.name, Input);\n  app.component(Input.Group.name, Input.Group);\n  app.component(Input.Search.name, Input.Search);\n  app.component(Input.TextArea.name, Input.TextArea);\n  app.component(Input.Password.name, Input.Password);\n  return app;\n};\n\nexport { Group as InputGroup, Search as InputSearch, TextArea as Textarea, Password as InputPassword };\nexport default Input;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { toRaw } from 'vue';\n\nfunction shallowEqual(objA, objB, compare, compareContext) {\n  var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n  if (ret !== void 0) {\n    return !!ret;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (_typeof(objA) !== 'object' || !objA || _typeof(objB) !== 'object' || !objB) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n  for (var idx = 0; idx < keysA.length; idx++) {\n    var key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    var valueA = objA[key];\n    var valueB = objB[key];\n    ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n    if (ret === false || ret === void 0 && valueA !== valueB) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nexport default function (value, other, customizer, thisArg) {\n  return shallowEqual(toRaw(value), toRaw(other), customizer, thisArg);\n}","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n      index = fromIndex + (fromRight ? 1 : -1);\n\n  while ((fromRight ? index-- : ++index < length)) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nexport default cacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nexport default setToArray;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n  var printWarning = function printWarning(format, args) {\n    var len = arguments.length;\n    args = new Array(len > 1 ? len - 1 : 0);\n    for (var key = 1; key < len; key++) {\n      args[key - 1] = arguments[key];\n    }\n    var argIndex = 0;\n    var message = 'Warning: ' +\n      format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  }\n\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n          '`warning(condition, format, ...args)` requires a warning ' +\n          'message argument'\n      );\n    }\n    if (!condition) {\n      printWarning.apply(null, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport default debounce;\n","import { computed } from 'vue';\nimport { inject, provide } from 'vue';\nexport var RowContextKey = Symbol('rowContextKey');\n\nvar useProvideRow = function useProvideRow(state) {\n  provide(RowContextKey, state);\n};\n\nvar useInjectRow = function useInjectRow() {\n  return inject(RowContextKey, {\n    gutter: computed(function () {\n      return undefined;\n    }),\n    wrap: computed(function () {\n      return undefined;\n    }),\n    supportFlexGap: computed(function () {\n      return undefined;\n    })\n  });\n};\n\nexport { useInjectRow, useProvideRow };\nexport default useProvideRow;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, computed } from 'vue';\nimport classNames from '../_util/classNames';\nimport PropTypes from '../_util/vue-types';\nimport useConfigInject from '../_util/hooks/useConfigInject';\nimport { useInjectRow } from './context';\n\nfunction parseFlex(flex) {\n  if (typeof flex === 'number') {\n    return \"\".concat(flex, \" \").concat(flex, \" auto\");\n  }\n\n  if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n    return \"0 0 \".concat(flex);\n  }\n\n  return flex;\n}\n\nvar stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\nexport var colSize = PropTypes.shape({\n  span: stringOrNumber,\n  order: stringOrNumber,\n  offset: stringOrNumber,\n  push: stringOrNumber,\n  pull: stringOrNumber\n}).loose;\nvar objectOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number, colSize]);\nvar colProps = {\n  span: stringOrNumber,\n  order: stringOrNumber,\n  offset: stringOrNumber,\n  push: stringOrNumber,\n  pull: stringOrNumber,\n  xs: objectOrNumber,\n  sm: objectOrNumber,\n  md: objectOrNumber,\n  lg: objectOrNumber,\n  xl: objectOrNumber,\n  xxl: objectOrNumber,\n  prefixCls: PropTypes.string,\n  flex: stringOrNumber\n};\nexport default defineComponent({\n  name: 'ACol',\n  props: colProps,\n  setup: function setup(props, _ref) {\n    var slots = _ref.slots;\n\n    var _useInjectRow = useInjectRow(),\n        gutter = _useInjectRow.gutter,\n        supportFlexGap = _useInjectRow.supportFlexGap,\n        wrap = _useInjectRow.wrap;\n\n    var _useConfigInject = useConfigInject('col', props),\n        prefixCls = _useConfigInject.prefixCls,\n        direction = _useConfigInject.direction;\n\n    var classes = computed(function () {\n      var _classNames;\n\n      var span = props.span,\n          order = props.order,\n          offset = props.offset,\n          push = props.push,\n          pull = props.pull;\n      var pre = prefixCls.value;\n      var sizeClassObj = {};\n      ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(function (size) {\n        var _extends2;\n\n        var sizeProps = {};\n        var propSize = props[size];\n\n        if (typeof propSize === 'number') {\n          sizeProps.span = propSize;\n        } else if (_typeof(propSize) === 'object') {\n          sizeProps = propSize || {};\n        }\n\n        sizeClassObj = _extends(_extends({}, sizeClassObj), (_extends2 = {}, _defineProperty(_extends2, \"\".concat(pre, \"-\").concat(size, \"-\").concat(sizeProps.span), sizeProps.span !== undefined), _defineProperty(_extends2, \"\".concat(pre, \"-\").concat(size, \"-order-\").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), _defineProperty(_extends2, \"\".concat(pre, \"-\").concat(size, \"-offset-\").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), _defineProperty(_extends2, \"\".concat(pre, \"-\").concat(size, \"-push-\").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), _defineProperty(_extends2, \"\".concat(pre, \"-\").concat(size, \"-pull-\").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), _defineProperty(_extends2, \"\".concat(pre, \"-rtl\"), direction.value === 'rtl'), _extends2));\n      });\n      return classNames(pre, (_classNames = {}, _defineProperty(_classNames, \"\".concat(pre, \"-\").concat(span), span !== undefined), _defineProperty(_classNames, \"\".concat(pre, \"-order-\").concat(order), order), _defineProperty(_classNames, \"\".concat(pre, \"-offset-\").concat(offset), offset), _defineProperty(_classNames, \"\".concat(pre, \"-push-\").concat(push), push), _defineProperty(_classNames, \"\".concat(pre, \"-pull-\").concat(pull), pull), _classNames), sizeClassObj);\n    });\n    var mergedStyle = computed(function () {\n      var flex = props.flex;\n      var gutterVal = gutter.value;\n      var style = {}; // Horizontal gutter use padding\n\n      if (gutterVal && gutterVal[0] > 0) {\n        var horizontalGutter = \"\".concat(gutterVal[0] / 2, \"px\");\n        style.paddingLeft = horizontalGutter;\n        style.paddingRight = horizontalGutter;\n      } // Vertical gutter use padding when gap not support\n\n\n      if (gutterVal && gutterVal[1] > 0 && !supportFlexGap.value) {\n        var verticalGutter = \"\".concat(gutterVal[1] / 2, \"px\");\n        style.paddingTop = verticalGutter;\n        style.paddingBottom = verticalGutter;\n      }\n\n      if (flex) {\n        style.flex = parseFlex(flex); // Hack for Firefox to avoid size issue\n        // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n\n        if (flex === 'auto' && wrap.value === false && !style.minWidth) {\n          style.minWidth = 0;\n        }\n      }\n\n      return style;\n    });\n    return function () {\n      var _a;\n\n      return _createVNode(\"div\", {\n        \"class\": classes.value,\n        \"style\": mergedStyle.value\n      }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]);\n    };\n  }\n});","import { Col } from '../grid';\nimport { withInstall } from '../_util/type';\nexport default withInstall(Col);","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n  var length = array == null ? 0 : array.length;\n  if (!length) {\n    return -1;\n  }\n  var index = fromIndex == null ? 0 : toInteger(fromIndex);\n  if (index < 0) {\n    index = nativeMax(length + index, 0);\n  }\n  return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n\n/**\n * source by `component-classes`\n * https://github.com/component/classes.git\n */\nimport indexOf from 'lodash-es/indexOf';\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\nexport var ClassList = /*#__PURE__*/function () {\n  function ClassList(el) {\n    _classCallCheck(this, ClassList);\n\n    if (!el || !el.nodeType) {\n      throw new Error('A DOM element reference is required');\n    }\n\n    this.el = el;\n    this.list = el.classList;\n  }\n\n  _createClass(ClassList, [{\n    key: \"array\",\n    value: function array() {\n      var className = this.el.getAttribute('class') || '';\n      var str = className.replace(/^\\s+|\\s+$/g, '');\n      var arr = str.split(re);\n      if ('' === arr[0]) arr.shift();\n      return arr;\n    }\n    /**\n     * Add class `name` if not already present.\n     *\n     * @param {String} name\n     * @return {ClassList}\n     * @api public\n     */\n\n  }, {\n    key: \"add\",\n    value: function add(name) {\n      // classList\n      if (this.list) {\n        this.list.add(name);\n        return this;\n      } // fallback\n\n\n      var arr = this.array();\n      var i = indexOf(arr, name);\n      if (!~i) arr.push(name);\n      this.el.className = arr.join(' ');\n      return this;\n    }\n    /**\n     * Remove class `name` when present, or\n     * pass a regular expression to remove\n     * any which match.\n     *\n     * @param {String|RegExp} name\n     * @return {ClassList}\n     * @api public\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove(name) {\n      if ('[object RegExp]' === toString.call(name)) {\n        return this._removeMatching(name);\n      } // classList\n\n\n      if (this.list) {\n        this.list.remove(name);\n        return this;\n      } // fallback\n\n\n      var arr = this.array();\n      var i = indexOf(arr, name);\n      if (~i) arr.splice(i, 1);\n      this.el.className = arr.join(' ');\n      return this;\n    }\n    /**\n     * Remove all classes matching `re`.\n     *\n     * @param {RegExp} re\n     * @return {ClassList}\n     * @api private\n     */\n\n  }, {\n    key: \"_removeMatching\",\n    value: function _removeMatching(re) {\n      var arr = this.array();\n\n      for (var i = 0; i < arr.length; i++) {\n        if (re.test(arr[i])) {\n          this.remove(arr[i]);\n        }\n      }\n\n      return this;\n    }\n    /**\n     * Toggle class `name`, can force state via `force`.\n     *\n     * For browsers that support classList, but do not support `force` yet,\n     * the mistake will be detected and corrected.\n     *\n     * @param {String} name\n     * @param {Boolean} force\n     * @return {ClassList}\n     * @api public\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle(name, force) {\n      // classList\n      if (this.list) {\n        if ('undefined' !== typeof force) {\n          if (force !== this.list.toggle(name, force)) {\n            this.list.toggle(name); // toggle again to correct\n          }\n        } else {\n          this.list.toggle(name);\n        }\n\n        return this;\n      } // fallback\n\n\n      if ('undefined' !== typeof force) {\n        if (!force) {\n          this.remove(name);\n        } else {\n          this.add(name);\n        }\n      } else {\n        if (this.has(name)) {\n          this.remove(name);\n        } else {\n          this.add(name);\n        }\n      }\n\n      return this;\n    }\n    /**\n     * Check if class `name` is present.\n     *\n     * @param {String} name\n     * @api public\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(name) {\n      return this.list ? this.list.contains(name) : !!~indexOf(this.array(), name);\n    }\n    /**\n     * Check if class `name` is present.\n     *\n     * @param {String} name\n     * @api public\n     */\n\n  }, {\n    key: \"contains\",\n    value: function contains(name) {\n      return this.has(name);\n    }\n  }]);\n\n  return ClassList;\n}();\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nexport default function (el) {\n  return new ClassList(el);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n// https://github.com/yiminghe/css-animation 1.5.0\nimport Event from './Event';\nimport classes from '../component-classes';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../requestAnimationTimeout';\nvar isCssAnimationSupported = Event.endEvents.length !== 0;\nvar capitalPrefixes = ['Webkit', 'Moz', 'O', // ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n  // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n  var style = window.getComputedStyle(node, null);\n  var ret = '';\n\n  for (var i = 0; i < prefixes.length; i++) {\n    ret = style.getPropertyValue(prefixes[i] + name);\n\n    if (ret) {\n      break;\n    }\n  }\n\n  return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n  if (isCssAnimationSupported) {\n    var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n    var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n    var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n    var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n    var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay); // sometimes, browser bug\n\n    node.rcEndAnimTimeout = setTimeout(function () {\n      node.rcEndAnimTimeout = null;\n\n      if (node.rcEndListener) {\n        node.rcEndListener();\n      }\n    }, time * 1000 + 200);\n  }\n}\n\nfunction clearBrowserBugTimeout(node) {\n  if (node.rcEndAnimTimeout) {\n    clearTimeout(node.rcEndAnimTimeout);\n    node.rcEndAnimTimeout = null;\n  }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n  var nameIsObj = _typeof(transitionName) === 'object';\n  var className = nameIsObj ? transitionName.name : transitionName;\n  var activeClassName = nameIsObj ? transitionName.active : \"\".concat(transitionName, \"-active\");\n  var end = endCallback;\n  var start;\n  var active;\n  var nodeClasses = classes(node);\n\n  if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n    end = endCallback.end;\n    start = endCallback.start;\n    active = endCallback.active;\n  }\n\n  if (node.rcEndListener) {\n    node.rcEndListener();\n  }\n\n  node.rcEndListener = function (e) {\n    if (e && e.target !== node) {\n      return;\n    }\n\n    if (node.rcAnimTimeout) {\n      cancelAnimationTimeout(node.rcAnimTimeout);\n      node.rcAnimTimeout = null;\n    }\n\n    clearBrowserBugTimeout(node);\n    nodeClasses.remove(className);\n    nodeClasses.remove(activeClassName);\n    Event.removeEndEventListener(node, node.rcEndListener);\n    node.rcEndListener = null; // Usually this optional end is used for informing an owner of\n    // a leave animation and telling it to remove the child.\n\n    if (end) {\n      end();\n    }\n  };\n\n  Event.addEndEventListener(node, node.rcEndListener);\n\n  if (start) {\n    start();\n  }\n\n  nodeClasses.add(className);\n  node.rcAnimTimeout = requestAnimationTimeout(function () {\n    node.rcAnimTimeout = null;\n    nodeClasses.add(className);\n    nodeClasses.add(activeClassName);\n\n    if (active) {\n      requestAnimationTimeout(active, 0);\n    }\n\n    fixBrowserByTimeout(node); // 30ms for firefox\n  }, 30);\n  return {\n    stop: function stop() {\n      if (node.rcEndListener) {\n        node.rcEndListener();\n      }\n    }\n  };\n};\n\ncssAnimation.style = function (node, style, callback) {\n  if (node.rcEndListener) {\n    node.rcEndListener();\n  }\n\n  node.rcEndListener = function (e) {\n    if (e && e.target !== node) {\n      return;\n    }\n\n    if (node.rcAnimTimeout) {\n      cancelAnimationTimeout(node.rcAnimTimeout);\n      node.rcAnimTimeout = null;\n    }\n\n    clearBrowserBugTimeout(node);\n    Event.removeEndEventListener(node, node.rcEndListener);\n    node.rcEndListener = null; // Usually this optional callback is used for informing an owner of\n    // a leave animation and telling it to remove the child.\n\n    if (callback) {\n      callback();\n    }\n  };\n\n  Event.addEndEventListener(node, node.rcEndListener);\n  node.rcAnimTimeout = requestAnimationTimeout(function () {\n    for (var s in style) {\n      if (style.hasOwnProperty(s)) {\n        node.style[s] = style[s];\n      }\n    }\n\n    node.rcAnimTimeout = null;\n    fixBrowserByTimeout(node);\n  }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n  var property = p;\n  var v = value;\n\n  if (value === undefined) {\n    v = property;\n    property = '';\n  }\n\n  property = property || '';\n  capitalPrefixes.forEach(function (prefix) {\n    node.style[\"\".concat(prefix, \"Transition\").concat(property)] = v;\n  });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\nexport { isCssAnimationSupported };\nexport default cssAnimation;","import cssAnimation from './css-animation';\nimport { nextTick } from 'vue';\n\nfunction animate(node, show, done) {\n  var height;\n  var requestAnimationFrameId;\n  var appearRequestAnimationFrameId;\n  return cssAnimation(node, 'ant-motion-collapse-legacy', {\n    start: function start() {\n      if (appearRequestAnimationFrameId) {\n        cancelAnimationFrame(appearRequestAnimationFrameId);\n      }\n\n      if (!show) {\n        node.style.height = \"\".concat(node.offsetHeight, \"px\");\n        node.style.opacity = '1';\n      } else {\n        height = node.offsetHeight; // not get offsetHeight when appear\n        // set it into raf get correct offsetHeight\n\n        if (height === 0) {\n          appearRequestAnimationFrameId = requestAnimationFrame(function () {\n            height = node.offsetHeight;\n            node.style.height = '0px';\n            node.style.opacity = '0';\n          });\n        } else {\n          node.style.height = '0px';\n          node.style.opacity = '0';\n        }\n      }\n    },\n    active: function active() {\n      if (requestAnimationFrameId) {\n        cancelAnimationFrame(requestAnimationFrameId);\n      }\n\n      requestAnimationFrameId = requestAnimationFrame(function () {\n        node.style.height = \"\".concat(show ? height : 0, \"px\");\n        node.style.opacity = show ? '1' : '0';\n      });\n    },\n    end: function end() {\n      if (appearRequestAnimationFrameId) {\n        cancelAnimationFrame(appearRequestAnimationFrameId);\n      }\n\n      if (requestAnimationFrameId) {\n        cancelAnimationFrame(requestAnimationFrameId);\n      }\n\n      node.style.height = '';\n      node.style.opacity = '';\n      done && done();\n    }\n  });\n}\n\nvar animation = {\n  onEnter: function onEnter(node, done) {\n    nextTick(function () {\n      animate(node, true, done);\n    });\n  },\n  onLeave: function onLeave(node, done) {\n    return animate(node, false, done);\n  }\n};\nexport default animation;","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.arrayTreeFilter = factory());\n}(this, (function () { 'use strict';\n\nfunction arrayTreeFilter(data, filterFn, options) {\n    options = options || {};\n    options.childrenKeyName = options.childrenKeyName || \"children\";\n    var children = data || [];\n    var result = [];\n    var level = 0;\n    do {\n        var foundItem = children.filter(function (item) {\n            return filterFn(item, level);\n        })[0];\n        if (!foundItem) {\n            break;\n        }\n        result.push(foundItem);\n        children = foundItem[options.childrenKeyName] || [];\n        level += 1;\n    } while (children.length > 0);\n    return result;\n}\n\nreturn arrayTreeFilter;\n\n})));\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport default arraySome;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nexport default mapToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { getComponent, findDOMNode } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport arrayTreeFilter from 'array-tree-filter';\nimport BaseMixin from '../_util/BaseMixin';\nimport isEqual from 'lodash-es/isEqual';\nexport default {\n  name: 'CascaderMenus',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: {\n    value: PropTypes.array.def([]),\n    activeValue: PropTypes.array.def([]),\n    options: PropTypes.array,\n    prefixCls: PropTypes.string.def('rc-cascader-menus'),\n    expandTrigger: PropTypes.string.def('click'),\n    // onSelect: PropTypes.func,\n    visible: PropTypes.looseBool.def(false),\n    dropdownMenuColumnStyle: PropTypes.object,\n    defaultFieldNames: PropTypes.object,\n    fieldNames: PropTypes.object,\n    expandIcon: PropTypes.any,\n    loadingIcon: PropTypes.any\n  },\n  data: function data() {\n    this.menuItems = {};\n    return {};\n  },\n  watch: {\n    visible: function visible(val) {\n      var _this = this;\n\n      if (val) {\n        this.$nextTick(function () {\n          _this.scrollActiveItemToView();\n        });\n      }\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    this.$nextTick(function () {\n      _this2.scrollActiveItemToView();\n    });\n  },\n  methods: {\n    getFieldName: function getFieldName(name) {\n      var _this$$props = this.$props,\n          fieldNames = _this$$props.fieldNames,\n          defaultFieldNames = _this$$props.defaultFieldNames; // 防止只设置单个属性的名字\n\n      return fieldNames[name] || defaultFieldNames[name];\n    },\n    getOption: function getOption(option, menuIndex) {\n      var _this3 = this;\n\n      var prefixCls = this.prefixCls,\n          expandTrigger = this.expandTrigger;\n      var loadingIcon = getComponent(this, 'loadingIcon');\n      var expandIcon = getComponent(this, 'expandIcon');\n\n      var onSelect = function onSelect(e) {\n        _this3.__emit('select', option, menuIndex, e);\n      };\n\n      var onItemDoubleClick = function onItemDoubleClick(e) {\n        _this3.__emit('itemDoubleClick', option, menuIndex, e);\n      };\n\n      var key = option[this.getFieldName('value')];\n      var expandProps = {\n        onClick: onSelect,\n        onDblclick: onItemDoubleClick\n      };\n      var menuItemCls = \"\".concat(prefixCls, \"-menu-item\");\n      var expandIconNode = null;\n      var hasChildren = option[this.getFieldName('children')] && option[this.getFieldName('children')].length > 0;\n\n      if (hasChildren || option.isLeaf === false) {\n        menuItemCls += \" \".concat(prefixCls, \"-menu-item-expand\");\n\n        if (!option.loading) {\n          expandIconNode = _createVNode(\"span\", {\n            \"class\": \"\".concat(prefixCls, \"-menu-item-expand-icon\")\n          }, [expandIcon]);\n        }\n      }\n\n      if (expandTrigger === 'hover' && (hasChildren || option.isLeaf === false)) {\n        expandProps = {\n          onMouseenter: this.delayOnSelect.bind(this, onSelect),\n          onMouseleave: this.delayOnSelect.bind(this),\n          onClick: onSelect\n        };\n      }\n\n      if (this.isActiveOption(option, menuIndex)) {\n        menuItemCls += \" \".concat(prefixCls, \"-menu-item-active\");\n        expandProps.ref = this.saveMenuItem(menuIndex);\n      }\n\n      if (option.disabled) {\n        menuItemCls += \" \".concat(prefixCls, \"-menu-item-disabled\");\n      }\n\n      var loadingIconNode = null;\n\n      if (option.loading) {\n        menuItemCls += \" \".concat(prefixCls, \"-menu-item-loading\");\n        loadingIconNode = loadingIcon || null;\n      }\n\n      var title = '';\n\n      if (option.title) {\n        title = option.title;\n      } else if (typeof option[this.getFieldName('label')] === 'string') {\n        title = option[this.getFieldName('label')];\n      }\n\n      return _createVNode(\"li\", _objectSpread(_objectSpread({\n        \"key\": Array.isArray(key) ? key.join('__ant__') : key,\n        \"class\": menuItemCls,\n        \"title\": title\n      }, expandProps), {}, {\n        \"role\": \"menuitem\",\n        \"onMousedown\": function onMousedown(e) {\n          return e.preventDefault();\n        }\n      }), [option[this.getFieldName('label')], expandIconNode, loadingIconNode]);\n    },\n    getActiveOptions: function getActiveOptions(values) {\n      var _this4 = this;\n\n      var activeValue = values || this.activeValue;\n      var options = this.options;\n      return arrayTreeFilter(options, function (o, level) {\n        return isEqual(o[_this4.getFieldName('value')], activeValue[level]);\n      }, {\n        childrenKeyName: this.getFieldName('children')\n      });\n    },\n    getShowOptions: function getShowOptions() {\n      var _this5 = this;\n\n      var options = this.options;\n      var result = this.getActiveOptions().map(function (activeOption) {\n        return activeOption[_this5.getFieldName('children')];\n      }).filter(function (activeOption) {\n        return !!activeOption;\n      });\n      result.unshift(options);\n      return result;\n    },\n    delayOnSelect: function delayOnSelect(onSelect) {\n      var _this6 = this;\n\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      if (this.delayTimer) {\n        clearTimeout(this.delayTimer);\n        this.delayTimer = null;\n      }\n\n      if (typeof onSelect === 'function') {\n        this.delayTimer = setTimeout(function () {\n          onSelect(args);\n          _this6.delayTimer = null;\n        }, 150);\n      }\n    },\n    scrollActiveItemToView: function scrollActiveItemToView() {\n      // scroll into view\n      var optionsLength = this.getShowOptions().length;\n\n      for (var i = 0; i < optionsLength; i++) {\n        var itemComponent = this.menuItems[i];\n\n        if (itemComponent) {\n          var target = findDOMNode(itemComponent);\n          target.parentNode.scrollTop = target.offsetTop;\n        }\n      }\n    },\n    isActiveOption: function isActiveOption(option, menuIndex) {\n      var _this$activeValue = this.activeValue,\n          activeValue = _this$activeValue === void 0 ? [] : _this$activeValue;\n      return isEqual(activeValue[menuIndex], option[this.getFieldName('value')]);\n    },\n    saveMenuItem: function saveMenuItem(index) {\n      var _this7 = this;\n\n      return function (node) {\n        _this7.menuItems[index] = node;\n      };\n    }\n  },\n  render: function render() {\n    var _this8 = this;\n\n    var prefixCls = this.prefixCls,\n        dropdownMenuColumnStyle = this.dropdownMenuColumnStyle;\n    return _createVNode(\"div\", null, [this.getShowOptions().map(function (options, menuIndex) {\n      return _createVNode(\"ul\", {\n        \"class\": \"\".concat(prefixCls, \"-menu\"),\n        \"key\": menuIndex,\n        \"style\": dropdownMenuColumnStyle\n      }, [options.map(function (option) {\n        return _this8.getOption(option, menuIndex);\n      })]);\n    })]);\n  }\n};","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n  if (arrA === arrB) {\n    return true;\n  }\n\n  if (!arrA || !arrB) {\n    return false;\n  }\n\n  var len = arrA.length;\n\n  if (arrB.length !== len) {\n    return false;\n  }\n\n  for (var i = 0; i < len; i++) {\n    if (arrA[i] !== arrB[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqualArrays;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { getComponent, getSlot } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport Menus from './Menus';\nimport KeyCode from '../_util/KeyCode';\nimport arrayTreeFilter from 'array-tree-filter';\nimport shallowEqualArrays from 'shallow-equal/arrays';\nimport { hasProp, getEvents } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { cloneElement } from '../_util/vnode';\nimport { defineComponent } from 'vue';\nimport isEqual from 'lodash-es/isEqual';\nvar BUILT_IN_PLACEMENTS = {\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 1,\n      adjustY: 1\n    }\n  },\n  topLeft: {\n    points: ['bl', 'tl'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 1,\n      adjustY: 1\n    }\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 1,\n      adjustY: 1\n    }\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 1,\n      adjustY: 1\n    }\n  }\n};\nexport default defineComponent({\n  name: 'Cascader',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  // model: {\n  //   prop: 'value',\n  //   event: 'change',\n  // },\n  props: {\n    value: PropTypes.array,\n    defaultValue: PropTypes.array,\n    options: PropTypes.array,\n    // onChange: PropTypes.func,\n    // onPopupVisibleChange: PropTypes.func,\n    popupVisible: PropTypes.looseBool,\n    disabled: PropTypes.looseBool.def(false),\n    transitionName: PropTypes.string.def(''),\n    popupClassName: PropTypes.string.def(''),\n    popupStyle: PropTypes.object.def(function () {\n      return {};\n    }),\n    popupPlacement: PropTypes.string.def('bottomLeft'),\n    prefixCls: PropTypes.string.def('rc-cascader'),\n    dropdownMenuColumnStyle: PropTypes.object,\n    builtinPlacements: PropTypes.object.def(BUILT_IN_PLACEMENTS),\n    loadData: PropTypes.func,\n    changeOnSelect: PropTypes.looseBool,\n    // onKeyDown: PropTypes.func,\n    expandTrigger: PropTypes.string.def('click'),\n    fieldNames: PropTypes.object.def(function () {\n      return {\n        label: 'label',\n        value: 'value',\n        children: 'children'\n      };\n    }),\n    expandIcon: PropTypes.any,\n    loadingIcon: PropTypes.any,\n    getPopupContainer: PropTypes.func\n  },\n  data: function data() {\n    var initialValue = [];\n    var value = this.value,\n        defaultValue = this.defaultValue,\n        popupVisible = this.popupVisible;\n\n    if (hasProp(this, 'value')) {\n      initialValue = value || [];\n    } else if (hasProp(this, 'defaultValue')) {\n      initialValue = defaultValue || [];\n    }\n\n    this.children = undefined; // warning(!('filedNames' in props),\n    //   '`filedNames` of Cascader is a typo usage and deprecated, please use `fieldNames` instead.');\n\n    this.defaultFieldNames = {\n      label: 'label',\n      value: 'value',\n      children: 'children'\n    };\n    return {\n      sPopupVisible: popupVisible,\n      sActiveValue: initialValue,\n      sValue: initialValue\n    };\n  },\n  watch: {\n    value: function value(val, oldValue) {\n      if (!shallowEqualArrays(val, oldValue)) {\n        var newValues = {\n          sValue: val || []\n        }; // allow activeValue diff from value\n        // https://github.com/ant-design/ant-design/issues/2767\n\n        if (!hasProp(this, 'loadData')) {\n          newValues.sActiveValue = val || [];\n        }\n\n        this.setState(newValues);\n      }\n    },\n    popupVisible: function popupVisible(val) {\n      this.setState({\n        sPopupVisible: val\n      });\n    }\n  },\n  methods: {\n    getPopupDOMNode: function getPopupDOMNode() {\n      return this.trigger.getPopupDomNode();\n    },\n    getFieldName: function getFieldName(name) {\n      var defaultFieldNames = this.defaultFieldNames,\n          fieldNames = this.fieldNames;\n      return fieldNames[name] || defaultFieldNames[name];\n    },\n    getFieldNames: function getFieldNames() {\n      return this.fieldNames;\n    },\n    getCurrentLevelOptions: function getCurrentLevelOptions() {\n      var _this = this;\n\n      var _this$options = this.options,\n          options = _this$options === void 0 ? [] : _this$options,\n          _this$sActiveValue = this.sActiveValue,\n          sActiveValue = _this$sActiveValue === void 0 ? [] : _this$sActiveValue;\n      var result = arrayTreeFilter(options, function (o, level) {\n        return isEqual(o[_this.getFieldName('value')], sActiveValue[level]);\n      }, {\n        childrenKeyName: this.getFieldName('children')\n      });\n\n      if (result[result.length - 2]) {\n        return result[result.length - 2][this.getFieldName('children')];\n      }\n\n      return _toConsumableArray(options).filter(function (o) {\n        return !o.disabled;\n      });\n    },\n    getActiveOptions: function getActiveOptions(activeValue) {\n      var _this2 = this;\n\n      return arrayTreeFilter(this.options || [], function (o, level) {\n        return isEqual(o[_this2.getFieldName('value')], activeValue[level]);\n      }, {\n        childrenKeyName: this.getFieldName('children')\n      });\n    },\n    setPopupVisible: function setPopupVisible(popupVisible) {\n      if (!hasProp(this, 'popupVisible')) {\n        this.setState({\n          sPopupVisible: popupVisible\n        });\n      } // sync activeValue with value when panel open\n\n\n      if (popupVisible && !this.sPopupVisible) {\n        this.setState({\n          sActiveValue: this.sValue\n        });\n      }\n\n      this.__emit('popupVisibleChange', popupVisible);\n    },\n    handleChange: function handleChange(options, setProps, e) {\n      var _this3 = this;\n\n      if (e.type !== 'keydown' || e.keyCode === KeyCode.ENTER) {\n        var value = options.map(function (o) {\n          return o[_this3.getFieldName('value')];\n        });\n\n        this.__emit('change', value, options);\n\n        this.setPopupVisible(setProps.visible);\n      }\n    },\n    handlePopupVisibleChange: function handlePopupVisibleChange(popupVisible) {\n      this.setPopupVisible(popupVisible);\n    },\n    handleMenuSelect: function handleMenuSelect(targetOption, menuIndex, e) {\n      // Keep focused state for keyboard support\n      var triggerNode = this.trigger.getRootDomNode();\n\n      if (triggerNode && triggerNode.focus) {\n        triggerNode.focus();\n      }\n\n      var changeOnSelect = this.changeOnSelect,\n          loadData = this.loadData,\n          expandTrigger = this.expandTrigger;\n\n      if (!targetOption || targetOption.disabled) {\n        return;\n      }\n\n      var sActiveValue = this.sActiveValue;\n      sActiveValue = sActiveValue.slice(0, menuIndex + 1);\n      sActiveValue[menuIndex] = targetOption[this.getFieldName('value')];\n      var activeOptions = this.getActiveOptions(sActiveValue);\n\n      if (targetOption.isLeaf === false && !targetOption[this.getFieldName('children')] && loadData) {\n        if (changeOnSelect) {\n          this.handleChange(activeOptions, {\n            visible: true\n          }, e);\n        }\n\n        this.setState({\n          sActiveValue: sActiveValue\n        });\n        loadData(activeOptions);\n        return;\n      }\n\n      var newState = {};\n\n      if (!targetOption[this.getFieldName('children')] || !targetOption[this.getFieldName('children')].length) {\n        this.handleChange(activeOptions, {\n          visible: false\n        }, e); // set value to activeValue when select leaf option\n\n        newState.sValue = sActiveValue; // add e.type judgement to prevent `onChange` being triggered by mouseEnter\n      } else if (changeOnSelect && (e.type === 'click' || e.type === 'keydown')) {\n        if (expandTrigger === 'hover') {\n          this.handleChange(activeOptions, {\n            visible: false\n          }, e);\n        } else {\n          this.handleChange(activeOptions, {\n            visible: true\n          }, e);\n        } // set value to activeValue on every select\n\n\n        newState.sValue = sActiveValue;\n      }\n\n      newState.sActiveValue = sActiveValue; //  not change the value by keyboard\n\n      if (hasProp(this, 'value') || e.type === 'keydown' && e.keyCode !== KeyCode.ENTER) {\n        delete newState.sValue;\n      }\n\n      this.setState(newState);\n    },\n    handleItemDoubleClick: function handleItemDoubleClick() {\n      var changeOnSelect = this.$props.changeOnSelect;\n\n      if (changeOnSelect) {\n        this.setPopupVisible(false);\n      }\n    },\n    handleKeyDown: function handleKeyDown(e) {\n      var _this4 = this;\n\n      var children = this.children; // https://github.com/ant-design/ant-design/issues/6717\n      // Don't bind keyboard support when children specify the onKeyDown\n\n      if (children) {\n        var keydown = getEvents(children).onKeydown;\n\n        if (keydown) {\n          keydown(e);\n          return;\n        }\n      }\n\n      var activeValue = _toConsumableArray(this.sActiveValue);\n\n      var currentLevel = activeValue.length - 1 < 0 ? 0 : activeValue.length - 1;\n      var currentOptions = this.getCurrentLevelOptions();\n      var currentIndex = currentOptions.map(function (o) {\n        return o[_this4.getFieldName('value')];\n      }).findIndex(function (val) {\n        return isEqual(activeValue[currentLevel], val);\n      });\n\n      if (e.keyCode !== KeyCode.DOWN && e.keyCode !== KeyCode.UP && e.keyCode !== KeyCode.LEFT && e.keyCode !== KeyCode.RIGHT && e.keyCode !== KeyCode.ENTER && e.keyCode !== KeyCode.SPACE && e.keyCode !== KeyCode.BACKSPACE && e.keyCode !== KeyCode.ESC && e.keyCode !== KeyCode.TAB) {\n        return;\n      } // Press any keys above to reopen menu\n\n\n      if (!this.sPopupVisible && e.keyCode !== KeyCode.BACKSPACE && e.keyCode !== KeyCode.LEFT && e.keyCode !== KeyCode.RIGHT && e.keyCode !== KeyCode.ESC && e.keyCode !== KeyCode.TAB) {\n        this.setPopupVisible(true);\n        return;\n      }\n\n      if (e.keyCode === KeyCode.DOWN || e.keyCode === KeyCode.UP) {\n        e.preventDefault();\n        var nextIndex = currentIndex;\n\n        if (nextIndex !== -1) {\n          if (e.keyCode === KeyCode.DOWN) {\n            nextIndex += 1;\n            nextIndex = nextIndex >= currentOptions.length ? 0 : nextIndex;\n          } else {\n            nextIndex -= 1;\n            nextIndex = nextIndex < 0 ? currentOptions.length - 1 : nextIndex;\n          }\n        } else {\n          nextIndex = 0;\n        }\n\n        activeValue[currentLevel] = currentOptions[nextIndex][this.getFieldName('value')];\n      } else if (e.keyCode === KeyCode.LEFT || e.keyCode === KeyCode.BACKSPACE) {\n        e.preventDefault();\n        activeValue.splice(activeValue.length - 1, 1);\n      } else if (e.keyCode === KeyCode.RIGHT) {\n        e.preventDefault();\n\n        if (currentOptions[currentIndex] && currentOptions[currentIndex][this.getFieldName('children')]) {\n          activeValue.push(currentOptions[currentIndex][this.getFieldName('children')][0][this.getFieldName('value')]);\n        }\n      } else if (e.keyCode === KeyCode.ESC || e.keyCode === KeyCode.TAB) {\n        this.setPopupVisible(false);\n        return;\n      }\n\n      if (!activeValue || activeValue.length === 0) {\n        this.setPopupVisible(false);\n      }\n\n      var activeOptions = this.getActiveOptions(activeValue);\n      var targetOption = activeOptions[activeOptions.length - 1];\n      this.handleMenuSelect(targetOption, activeOptions.length - 1, e);\n\n      this.__emit('keydown', e);\n    },\n    saveTrigger: function saveTrigger(node) {\n      this.trigger = node;\n    }\n  },\n  render: function render() {\n    var $props = this.$props,\n        sActiveValue = this.sActiveValue,\n        handleMenuSelect = this.handleMenuSelect,\n        sPopupVisible = this.sPopupVisible,\n        handlePopupVisibleChange = this.handlePopupVisibleChange,\n        handleKeyDown = this.handleKeyDown;\n\n    var prefixCls = $props.prefixCls,\n        transitionName = $props.transitionName,\n        popupClassName = $props.popupClassName,\n        _$props$options = $props.options,\n        options = _$props$options === void 0 ? [] : _$props$options,\n        disabled = $props.disabled,\n        builtinPlacements = $props.builtinPlacements,\n        popupPlacement = $props.popupPlacement,\n        restProps = __rest($props, [\"prefixCls\", \"transitionName\", \"popupClassName\", \"options\", \"disabled\", \"builtinPlacements\", \"popupPlacement\"]); // Did not show popup when there is no options\n\n\n    var menus = _createVNode(\"div\", null, null);\n\n    var emptyMenuClassName = '';\n\n    if (options && options.length > 0) {\n      var loadingIcon = getComponent(this, 'loadingIcon');\n      var expandIcon = getComponent(this, 'expandIcon') || '>';\n\n      var menusProps = _extends(_extends(_extends({}, $props), this.$attrs), {\n        fieldNames: this.getFieldNames(),\n        defaultFieldNames: this.defaultFieldNames,\n        activeValue: sActiveValue,\n        visible: sPopupVisible,\n        loadingIcon: loadingIcon,\n        expandIcon: expandIcon,\n        onSelect: handleMenuSelect,\n        onItemDoubleClick: this.handleItemDoubleClick\n      });\n\n      menus = _createVNode(Menus, menusProps, null);\n    } else {\n      emptyMenuClassName = \" \".concat(prefixCls, \"-menus-empty\");\n    }\n\n    var triggerProps = _extends(_extends(_extends({}, restProps), this.$attrs), {\n      disabled: disabled,\n      popupPlacement: popupPlacement,\n      builtinPlacements: builtinPlacements,\n      popupTransitionName: transitionName,\n      action: disabled ? [] : ['click'],\n      popupVisible: disabled ? false : sPopupVisible,\n      prefixCls: \"\".concat(prefixCls, \"-menus\"),\n      popupClassName: popupClassName + emptyMenuClassName,\n      popup: menus,\n      onPopupVisibleChange: handlePopupVisibleChange,\n      ref: this.saveTrigger\n    });\n\n    var children = getSlot(this);\n    this.children = children;\n    return _createVNode(Trigger, triggerProps, {\n      default: function _default() {\n        return [children && cloneElement(children[0], {\n          onKeydown: handleKeyDown,\n          tabindex: disabled ? undefined : 0\n        })];\n      }\n    });\n  }\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { inject, provide, defineComponent } from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport VcCascader from '../vc-cascader';\nimport arrayTreeFilter from 'array-tree-filter';\nimport classNames from '../_util/classNames';\nimport omit from 'omit.js';\nimport KeyCode from '../_util/KeyCode';\nimport Input from '../input';\nimport CloseCircleFilled from '@ant-design/icons-vue/CloseCircleFilled';\nimport DownOutlined from '@ant-design/icons-vue/DownOutlined';\nimport RightOutlined from '@ant-design/icons-vue/RightOutlined';\nimport RedoOutlined from '@ant-design/icons-vue/RedoOutlined';\nimport { hasProp, getOptionProps, isValidElement, getComponent, splitAttrs, findDOMNode, getSlot } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { cloneElement } from '../_util/vnode';\nimport warning from '../_util/warning';\nimport { defaultConfigProvider } from '../config-provider';\nimport { tuple, withInstall } from '../_util/type'; // const ShowSearchType = PropTypes.shape({\n//   filter: PropTypes.func,\n//   render: PropTypes.func,\n//   sort: PropTypes.func,\n//   matchInputWidth: PropTypes.looseBool,\n//   limit: withUndefined(PropTypes.oneOfType([Boolean, Number])),\n// }).loose;\n\nfunction noop() {}\n\nvar cascaderProps = {\n  /** 可选项数据源 */\n  options: {\n    type: Array,\n    default: []\n  },\n\n  /** 默认的选中项 */\n  defaultValue: PropTypes.array,\n\n  /** 指定选中项 */\n  value: PropTypes.array,\n\n  /** 选择完成后的回调 */\n  // onChange?: (value: string[], selectedOptions?: CascaderOptionType[]) => void;\n\n  /** 选择后展示的渲染函数 */\n  displayRender: PropTypes.func,\n  transitionName: PropTypes.string.def('slide-up'),\n  popupStyle: PropTypes.object.def(function () {\n    return {};\n  }),\n\n  /** 自定义浮层类名 */\n  popupClassName: PropTypes.string,\n\n  /** 浮层预设位置：`bottomLeft` `bottomRight` `topLeft` `topRight` */\n  popupPlacement: PropTypes.oneOf(tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight')).def('bottomLeft'),\n\n  /** 输入框占位文本*/\n  placeholder: PropTypes.string.def('Please select'),\n\n  /** 输入框大小，可选 `large` `default` `small` */\n  size: PropTypes.oneOf(tuple('large', 'default', 'small')),\n\n  /** 禁用*/\n  disabled: PropTypes.looseBool.def(false),\n\n  /** 是否支持清除*/\n  allowClear: PropTypes.looseBool.def(true),\n  showSearch: {\n    type: [Boolean, Object],\n    default: undefined\n  },\n  notFoundContent: PropTypes.VNodeChild,\n  loadData: PropTypes.func,\n\n  /** 次级菜单的展开方式，可选 'click' 和 'hover' */\n  expandTrigger: PropTypes.oneOf(tuple('click', 'hover')),\n\n  /** 当此项为 true 时，点选每级菜单选项值都会发生变化 */\n  changeOnSelect: PropTypes.looseBool,\n\n  /** 浮层可见变化时回调 */\n  // onPopupVisibleChange?: (popupVisible: boolean) => void;\n  prefixCls: PropTypes.string,\n  inputPrefixCls: PropTypes.string,\n  getPopupContainer: PropTypes.func,\n  popupVisible: PropTypes.looseBool,\n  fieldNames: {\n    type: Object\n  },\n  autofocus: PropTypes.looseBool,\n  suffixIcon: PropTypes.VNodeChild,\n  showSearchRender: PropTypes.any,\n  onChange: PropTypes.func,\n  onPopupVisibleChange: PropTypes.func,\n  onFocus: PropTypes.func,\n  onBlur: PropTypes.func,\n  onSearch: PropTypes.func,\n  'onUpdate:value': PropTypes.func\n}; // We limit the filtered item count by default\n\nvar defaultLimit = 50;\n\nfunction defaultFilterOption(inputValue, path, names) {\n  return path.some(function (option) {\n    return option[names.label].indexOf(inputValue) > -1;\n  });\n}\n\nfunction defaultSortFilteredOption(a, b, inputValue, names) {\n  function callback(elem) {\n    return elem[names.label].indexOf(inputValue) > -1;\n  }\n\n  return a.findIndex(callback) - b.findIndex(callback);\n}\n\nfunction getFilledFieldNames(props) {\n  var fieldNames = props.fieldNames || {};\n  var names = {\n    children: fieldNames.children || 'children',\n    label: fieldNames.label || 'label',\n    value: fieldNames.value || 'value'\n  };\n  return names;\n}\n\nfunction flattenTree(options, props) {\n  var ancestor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  var names = getFilledFieldNames(props);\n  var flattenOptions = [];\n  var childrenName = names.children;\n  options.forEach(function (option) {\n    var path = ancestor.concat(option);\n\n    if (props.changeOnSelect || !option[childrenName] || !option[childrenName].length) {\n      flattenOptions.push(path);\n    }\n\n    if (option[childrenName]) {\n      flattenOptions = flattenOptions.concat(flattenTree(option[childrenName], props, path));\n    }\n  });\n  return flattenOptions;\n}\n\nvar defaultDisplayRender = function defaultDisplayRender(_ref) {\n  var labels = _ref.labels;\n  return labels.join(' / ');\n};\n\nvar Cascader = defineComponent({\n  name: 'ACascader',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: cascaderProps,\n  setup: function setup() {\n    return {\n      configProvider: inject('configProvider', defaultConfigProvider),\n      localeData: inject('localeData', {}),\n      cachedOptions: [],\n      popupRef: undefined,\n      input: undefined\n    };\n  },\n  data: function data() {\n    var _this$$props = this.$props,\n        value = _this$$props.value,\n        defaultValue = _this$$props.defaultValue,\n        popupVisible = _this$$props.popupVisible,\n        showSearch = _this$$props.showSearch,\n        options = _this$$props.options;\n    return {\n      sValue: value || defaultValue || [],\n      inputValue: '',\n      inputFocused: false,\n      sPopupVisible: popupVisible,\n      flattenOptions: showSearch ? flattenTree(options, this.$props) : undefined\n    };\n  },\n  watch: {\n    value: function value(val) {\n      this.setState({\n        sValue: val || []\n      });\n    },\n    popupVisible: function popupVisible(val) {\n      this.setState({\n        sPopupVisible: val\n      });\n    },\n    options: function options(val) {\n      if (this.showSearch) {\n        this.setState({\n          flattenOptions: flattenTree(val, this.$props)\n        });\n      }\n    }\n  },\n  // model: {\n  //   prop: 'value',\n  //   event: 'change',\n  // },\n  created: function created() {\n    provide('savePopupRef', this.savePopupRef);\n  },\n  methods: {\n    savePopupRef: function savePopupRef(ref) {\n      this.popupRef = ref;\n    },\n    highlightKeyword: function highlightKeyword(str, keyword, prefixCls) {\n      return str.split(keyword).map(function (node, index) {\n        return index === 0 ? node : [_createVNode(\"span\", {\n          \"class\": \"\".concat(prefixCls, \"-menu-item-keyword\")\n        }, [keyword]), node];\n      });\n    },\n    defaultRenderFilteredOption: function defaultRenderFilteredOption(opt) {\n      var _this = this;\n\n      var inputValue = opt.inputValue,\n          path = opt.path,\n          prefixCls = opt.prefixCls,\n          names = opt.names;\n      return path.map(function (option, index) {\n        var label = option[names.label];\n        var node = label.indexOf(inputValue) > -1 ? _this.highlightKeyword(label, inputValue, prefixCls) : label;\n        return index === 0 ? node : [' / ', node];\n      });\n    },\n    saveInput: function saveInput(node) {\n      this.input = node;\n    },\n    handleChange: function handleChange(value, selectedOptions) {\n      this.setState({\n        inputValue: ''\n      });\n\n      if (selectedOptions[0].__IS_FILTERED_OPTION) {\n        var unwrappedValue = value[0];\n        var unwrappedSelectedOptions = selectedOptions[0].path;\n        this.setValue(unwrappedValue, unwrappedSelectedOptions);\n        return;\n      }\n\n      this.setValue(value, selectedOptions);\n    },\n    handlePopupVisibleChange: function handlePopupVisibleChange(popupVisible) {\n      if (!hasProp(this, 'popupVisible')) {\n        this.setState(function (state) {\n          return {\n            sPopupVisible: popupVisible,\n            inputFocused: popupVisible,\n            inputValue: popupVisible ? state.inputValue : ''\n          };\n        });\n      }\n\n      this.$emit('popupVisibleChange', popupVisible);\n    },\n    handleInputFocus: function handleInputFocus(e) {\n      this.$emit('focus', e);\n    },\n    handleInputBlur: function handleInputBlur(e) {\n      this.setState({\n        inputFocused: false\n      });\n      this.$emit('blur', e);\n    },\n    handleInputClick: function handleInputClick(e) {\n      var inputFocused = this.inputFocused,\n          sPopupVisible = this.sPopupVisible; // Prevent `Trigger` behavior.\n\n      if (inputFocused || sPopupVisible) {\n        e.stopPropagation();\n\n        if (e.nativeEvent && e.nativeEvent.stopImmediatePropagation) {\n          e.nativeEvent.stopImmediatePropagation();\n        }\n      }\n    },\n    handleKeyDown: function handleKeyDown(e) {\n      if (e.keyCode === KeyCode.BACKSPACE || e.keyCode === KeyCode.SPACE) {\n        e.stopPropagation();\n      }\n    },\n    handleInputChange: function handleInputChange(e) {\n      var inputValue = e.target.value;\n      this.setState({\n        inputValue: inputValue\n      });\n      this.$emit('search', inputValue);\n    },\n    setValue: function setValue(value) {\n      var selectedOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n      if (!hasProp(this, 'value')) {\n        this.setState({\n          sValue: value\n        });\n      }\n\n      this.$emit('update:value', value);\n      this.$emit('change', value, selectedOptions);\n    },\n    getLabel: function getLabel() {\n      var options = this.options;\n      var names = getFilledFieldNames(this.$props);\n      var displayRender = getComponent(this, 'displayRender', {}, false) || defaultDisplayRender;\n      var value = this.sValue;\n      var unwrappedValue = Array.isArray(value[0]) ? value[0] : value;\n      var selectedOptions = arrayTreeFilter(options, function (o, level) {\n        return o[names.value] === unwrappedValue[level];\n      }, {\n        childrenKeyName: names.children\n      });\n      var labels = selectedOptions.map(function (o) {\n        return o[names.label];\n      });\n      return displayRender({\n        labels: labels,\n        selectedOptions: selectedOptions\n      });\n    },\n    clearSelection: function clearSelection(e) {\n      e.preventDefault();\n      e.stopPropagation();\n\n      if (!this.inputValue) {\n        this.setValue([]);\n        this.handlePopupVisibleChange(false);\n      } else {\n        this.setState({\n          inputValue: ''\n        });\n      }\n    },\n    generateFilteredOptions: function generateFilteredOptions(prefixCls, renderEmpty) {\n      var _ref3;\n\n      var showSearch = this.showSearch,\n          notFoundContent = this.notFoundContent;\n      var names = getFilledFieldNames(this.$props);\n      var _showSearch$filter = showSearch.filter,\n          filter = _showSearch$filter === void 0 ? defaultFilterOption : _showSearch$filter,\n          _showSearch$sort = showSearch.sort,\n          sort = _showSearch$sort === void 0 ? defaultSortFilteredOption : _showSearch$sort,\n          _showSearch$limit = showSearch.limit,\n          limit = _showSearch$limit === void 0 ? defaultLimit : _showSearch$limit;\n      var render = showSearch.render || getComponent(this, 'showSearchRender') || this.defaultRenderFilteredOption;\n      var _this$$data = this.$data,\n          _this$$data$flattenOp = _this$$data.flattenOptions,\n          flattenOptions = _this$$data$flattenOp === void 0 ? [] : _this$$data$flattenOp,\n          inputValue = _this$$data.inputValue; // Limit the filter if needed\n\n      var filtered;\n\n      if (limit > 0) {\n        filtered = [];\n        var matchCount = 0; // Perf optimization to filter items only below the limit\n\n        flattenOptions.some(function (path) {\n          var match = filter(inputValue, path, names);\n\n          if (match) {\n            filtered.push(path);\n            matchCount += 1;\n          }\n\n          return matchCount >= limit;\n        });\n      } else {\n        warning(typeof limit !== 'number', 'Cascader', \"'limit' of showSearch in Cascader should be positive number or false.\");\n        filtered = flattenOptions.filter(function (path) {\n          return filter(inputValue, path, names);\n        });\n      }\n\n      filtered.sort(function (a, b) {\n        return sort(a, b, inputValue, names);\n      });\n\n      if (filtered.length > 0) {\n        return filtered.map(function (path) {\n          var _ref2;\n\n          return _ref2 = {\n            __IS_FILTERED_OPTION: true,\n            path: path\n          }, _defineProperty(_ref2, names.label, render({\n            inputValue: inputValue,\n            path: path,\n            prefixCls: prefixCls,\n            names: names\n          })), _defineProperty(_ref2, names.value, path.map(function (o) {\n            return o[names.value];\n          })), _defineProperty(_ref2, \"disabled\", path.some(function (o) {\n            return !!o.disabled;\n          })), _ref2;\n        });\n      }\n\n      return [(_ref3 = {}, _defineProperty(_ref3, names.label, notFoundContent || renderEmpty('Cascader')), _defineProperty(_ref3, names.value, 'ANT_CASCADER_NOT_FOUND'), _defineProperty(_ref3, \"disabled\", true), _ref3)];\n    },\n    focus: function focus() {\n      this.input && this.input.focus();\n    },\n    blur: function blur() {\n      this.input && this.input.blur();\n    }\n  },\n  render: function render() {\n    var _classNames, _classNames2, _classNames3;\n\n    var sPopupVisible = this.sPopupVisible,\n        inputValue = this.inputValue,\n        configProvider = this.configProvider,\n        localeData = this.localeData;\n    var _this$$data2 = this.$data,\n        value = _this$$data2.sValue,\n        inputFocused = _this$$data2.inputFocused;\n    var props = getOptionProps(this);\n    var suffixIcon = getComponent(this, 'suffixIcon');\n    suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;\n    var getContextPopupContainer = configProvider.getPopupContainer;\n\n    var _a = props,\n        customizePrefixCls = _a.prefixCls,\n        customizeInputPrefixCls = _a.inputPrefixCls,\n        _a$placeholder = _a.placeholder,\n        placeholder = _a$placeholder === void 0 ? localeData.placeholder : _a$placeholder,\n        size = _a.size,\n        disabled = _a.disabled,\n        allowClear = _a.allowClear,\n        _a$showSearch = _a.showSearch,\n        showSearch = _a$showSearch === void 0 ? false : _a$showSearch,\n        notFoundContent = _a.notFoundContent,\n        otherProps = __rest(_a, [\"prefixCls\", \"inputPrefixCls\", \"placeholder\", \"size\", \"disabled\", \"allowClear\", \"showSearch\", \"notFoundContent\"]);\n\n    var _splitAttrs = splitAttrs(this.$attrs),\n        onEvents = _splitAttrs.onEvents,\n        extraAttrs = _splitAttrs.extraAttrs;\n\n    var className = extraAttrs.class,\n        style = extraAttrs.style,\n        restAttrs = __rest(extraAttrs, [\"class\", \"style\"]);\n\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var renderEmpty = this.configProvider.renderEmpty;\n    var prefixCls = getPrefixCls('cascader', customizePrefixCls);\n    var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n    var sizeCls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(inputPrefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(inputPrefixCls, \"-sm\"), size === 'small'), _classNames));\n    var clearIcon = allowClear && !disabled && value.length > 0 || inputValue ? _createVNode(CloseCircleFilled, {\n      \"class\": \"\".concat(prefixCls, \"-picker-clear\"),\n      \"onClick\": this.clearSelection,\n      \"key\": \"clear-icon\"\n    }, null) : null;\n    var arrowCls = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-picker-arrow\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-picker-arrow-expand\"), sPopupVisible), _classNames2));\n    var pickerCls = classNames(className, \"\".concat(prefixCls, \"-picker\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-picker-with-value\"), inputValue), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-picker-disabled\"), disabled), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-picker-\").concat(size), !!size), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-picker-show-search\"), !!showSearch), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-picker-focused\"), inputFocused), _classNames3)); // Fix bug of https://github.com/facebook/react/pull/5004\n    // and https://fb.me/react-unknown-prop\n\n    var tempInputProps = omit(otherProps, ['popupStyle', 'options', 'popupPlacement', 'transitionName', 'displayRender', 'changeOnSelect', 'expandTrigger', 'popupVisible', 'getPopupContainer', 'loadData', 'popupClassName', 'filterOption', 'renderFilteredOption', 'sortFilteredOption', 'notFoundContent', 'defaultValue', 'fieldNames', 'onChange', 'onPopupVisibleChange', 'onFocus', 'onBlur', 'onSearch', 'onUpdate:value']);\n    var options = props.options;\n    var names = getFilledFieldNames(this.$props);\n\n    if (options && options.length > 0) {\n      if (inputValue) {\n        options = this.generateFilteredOptions(prefixCls, renderEmpty);\n      }\n    } else {\n      var _ref4;\n\n      options = [(_ref4 = {}, _defineProperty(_ref4, names.label, notFoundContent || renderEmpty('Cascader')), _defineProperty(_ref4, names.value, 'ANT_CASCADER_NOT_FOUND'), _defineProperty(_ref4, \"disabled\", true), _ref4)];\n    } // Dropdown menu should keep previous status until it is fully closed.\n\n\n    if (!sPopupVisible) {\n      options = this.cachedOptions;\n    } else {\n      this.cachedOptions = options;\n    }\n\n    var dropdownMenuColumnStyle = {};\n    var isNotFound = (options || []).length === 1 && options[0].value === 'ANT_CASCADER_NOT_FOUND';\n\n    if (isNotFound) {\n      dropdownMenuColumnStyle.height = 'auto'; // Height of one row.\n    } // The default value of `matchInputWidth` is `true`\n\n\n    var resultListMatchInputWidth = showSearch.matchInputWidth !== false;\n\n    if (resultListMatchInputWidth && (inputValue || isNotFound) && this.input) {\n      dropdownMenuColumnStyle.width = findDOMNode(this.input.input).offsetWidth + 'px';\n    } // showSearch时，focus、blur在input上触发，反之在ref='picker'上触发\n\n\n    var inputProps = _extends(_extends(_extends({}, restAttrs), tempInputProps), {\n      prefixCls: inputPrefixCls,\n      placeholder: value && value.length > 0 ? undefined : placeholder,\n      value: inputValue,\n      disabled: disabled,\n      readonly: !showSearch,\n      autocomplete: 'off',\n      class: \"\".concat(prefixCls, \"-input \").concat(sizeCls),\n      onFocus: this.handleInputFocus,\n      onClick: showSearch ? this.handleInputClick : noop,\n      onBlur: showSearch ? this.handleInputBlur : props.onBlur,\n      onKeydown: this.handleKeyDown,\n      onChange: showSearch ? this.handleInputChange : noop\n    });\n\n    var children = getSlot(this);\n\n    var inputIcon = suffixIcon && (isValidElement(suffixIcon) ? cloneElement(suffixIcon, {\n      class: \"\".concat(prefixCls, \"-picker-arrow\")\n    }) : _createVNode(\"span\", {\n      \"class\": \"\".concat(prefixCls, \"-picker-arrow\")\n    }, [suffixIcon])) || _createVNode(DownOutlined, {\n      \"class\": arrowCls\n    }, null);\n\n    var input = children.length ? children : _createVNode(\"span\", {\n      \"class\": pickerCls,\n      \"style\": style\n    }, [_createVNode(\"span\", {\n      \"class\": \"\".concat(prefixCls, \"-picker-label\")\n    }, [this.getLabel()]), _createVNode(Input, _objectSpread(_objectSpread({}, inputProps), {}, {\n      \"ref\": this.saveInput\n    }), null), clearIcon, inputIcon]);\n\n    var expandIcon = _createVNode(RightOutlined, null, null);\n\n    var loadingIcon = _createVNode(\"span\", {\n      \"class\": \"\".concat(prefixCls, \"-menu-item-loading-icon\")\n    }, [_createVNode(RedoOutlined, {\n      \"spin\": true\n    }, null)]);\n\n    var getPopupContainer = props.getPopupContainer || getContextPopupContainer;\n\n    var cascaderProps = _extends(_extends(_extends(_extends({}, props), {\n      getPopupContainer: getPopupContainer,\n      options: options,\n      prefixCls: prefixCls,\n      value: value,\n      popupVisible: sPopupVisible,\n      dropdownMenuColumnStyle: dropdownMenuColumnStyle,\n      expandIcon: expandIcon,\n      loadingIcon: loadingIcon\n    }), onEvents), {\n      onPopupVisibleChange: this.handlePopupVisibleChange,\n      onChange: this.handleChange\n    });\n\n    return _createVNode(VcCascader, cascaderProps, {\n      default: function _default() {\n        return [input];\n      }\n    });\n  }\n});\nexport default withInstall(Cascader);","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n  var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n  if (!it) {\n    if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n      var F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          if (i >= o.length) return {\n            done: true\n          };\n          return {\n            done: false,\n            value: o[i++]\n          };\n        },\n        e: function e(_e) {\n          throw _e;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var normalCompletion = true,\n    didErr = false,\n    err;\n  return {\n    s: function s() {\n      it = it.call(o);\n    },\n    n: function n() {\n      var step = it.next();\n      normalCompletion = step.done;\n      return step;\n    },\n    e: function e(_e2) {\n      didErr = true;\n      err = _e2;\n    },\n    f: function f() {\n      try {\n        if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n      } finally {\n        if (didErr) throw err;\n      }\n    }\n  };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, inject, provide } from 'vue';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from '../../_util/classNames';\nimport { getNodeChildren as _getNodeChildren, mapChildren, warnOnlyTreeNode, getDataAndAria } from './util';\nimport { initDefaultProps, getComponent, getSlot } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getTransitionProps, Transition } from '../../_util/transition';\n\nfunction noop() {}\n\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar TreeNode = defineComponent({\n  name: 'TreeNode',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  __ANT_TREE_NODE: true,\n  props: initDefaultProps({\n    eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n    prefixCls: PropTypes.string,\n    // className: PropTypes.string,\n    root: PropTypes.object,\n    // onSelect: PropTypes.func,\n    // By parent\n    expanded: PropTypes.looseBool,\n    selected: PropTypes.looseBool,\n    checked: PropTypes.looseBool,\n    loaded: PropTypes.looseBool,\n    loading: PropTypes.looseBool,\n    halfChecked: PropTypes.looseBool,\n    title: PropTypes.any,\n    pos: PropTypes.string,\n    dragOver: PropTypes.looseBool,\n    dragOverGapTop: PropTypes.looseBool,\n    dragOverGapBottom: PropTypes.looseBool,\n    // By user\n    isLeaf: PropTypes.looseBool,\n    checkable: PropTypes.looseBool,\n    selectable: PropTypes.looseBool,\n    disabled: PropTypes.looseBool,\n    disableCheckbox: PropTypes.looseBool,\n    icon: PropTypes.any,\n    dataRef: PropTypes.object,\n    switcherIcon: PropTypes.any,\n    label: PropTypes.any,\n    value: PropTypes.any\n  }, {}),\n  setup: function setup() {\n    return {\n      vcTree: inject('vcTree', {}),\n      vcTreeNode: inject('vcTreeNode', {})\n    };\n  },\n  data: function data() {\n    this.children = null;\n    return {\n      dragNodeHighlight: false\n    };\n  },\n  created: function created() {\n    provide('vcTreeNode', this);\n  },\n  // Isomorphic needn't load data in server side\n  mounted: function mounted() {\n    var eventKey = this.eventKey,\n        registerTreeNode = this.vcTree.registerTreeNode;\n    this.syncLoadData(this.$props);\n    registerTreeNode && registerTreeNode(eventKey, this);\n  },\n  updated: function updated() {\n    this.syncLoadData(this.$props);\n  },\n  beforeUnmount: function beforeUnmount() {\n    var eventKey = this.eventKey,\n        registerTreeNode = this.vcTree.registerTreeNode;\n    registerTreeNode && registerTreeNode(eventKey, null);\n  },\n  methods: {\n    onSelectorClick: function onSelectorClick(e) {\n      // Click trigger before select/check operation\n      var onNodeClick = this.vcTree.onNodeClick;\n      onNodeClick(e, this);\n\n      if (this.isSelectable()) {\n        this.onSelect(e);\n      } else {\n        this.onCheck(e);\n      }\n    },\n    onSelectorDoubleClick: function onSelectorDoubleClick(e) {\n      var onNodeDoubleClick = this.vcTree.onNodeDoubleClick;\n      onNodeDoubleClick(e, this);\n    },\n    onSelect: function onSelect(e) {\n      if (this.isDisabled()) return;\n      var onNodeSelect = this.vcTree.onNodeSelect;\n      e.preventDefault();\n      onNodeSelect(e, this);\n    },\n    onCheck: function onCheck(e) {\n      if (this.isDisabled()) return;\n      var disableCheckbox = this.disableCheckbox,\n          checked = this.checked;\n      var onNodeCheck = this.vcTree.onNodeCheck;\n      if (!this.isCheckable() || disableCheckbox) return;\n      e.preventDefault();\n      var targetChecked = !checked;\n      onNodeCheck(e, this, targetChecked);\n    },\n    onMouseEnter: function onMouseEnter(e) {\n      var onNodeMouseEnter = this.vcTree.onNodeMouseEnter;\n      onNodeMouseEnter(e, this);\n    },\n    onMouseLeave: function onMouseLeave(e) {\n      var onNodeMouseLeave = this.vcTree.onNodeMouseLeave;\n      onNodeMouseLeave(e, this);\n    },\n    onContextMenu: function onContextMenu(e) {\n      var onNodeContextMenu = this.vcTree.onNodeContextMenu;\n      onNodeContextMenu(e, this);\n    },\n    onDragStart: function onDragStart(e) {\n      var onNodeDragStart = this.vcTree.onNodeDragStart;\n      e.stopPropagation();\n      this.setState({\n        dragNodeHighlight: true\n      });\n      onNodeDragStart(e, this);\n\n      try {\n        // ie throw error\n        // firefox-need-it\n        e.dataTransfer.setData('text/plain', '');\n      } catch (error) {// empty\n      }\n    },\n    onDragEnter: function onDragEnter(e) {\n      var onNodeDragEnter = this.vcTree.onNodeDragEnter;\n      e.preventDefault();\n      e.stopPropagation();\n      onNodeDragEnter(e, this);\n    },\n    onDragOver: function onDragOver(e) {\n      var onNodeDragOver = this.vcTree.onNodeDragOver;\n      e.preventDefault();\n      e.stopPropagation();\n      onNodeDragOver(e, this);\n    },\n    onDragLeave: function onDragLeave(e) {\n      var onNodeDragLeave = this.vcTree.onNodeDragLeave;\n      e.stopPropagation();\n      onNodeDragLeave(e, this);\n    },\n    onDragEnd: function onDragEnd(e) {\n      var onNodeDragEnd = this.vcTree.onNodeDragEnd;\n      e.stopPropagation();\n      this.setState({\n        dragNodeHighlight: false\n      });\n      onNodeDragEnd(e, this);\n    },\n    onDrop: function onDrop(e) {\n      var onNodeDrop = this.vcTree.onNodeDrop;\n      e.preventDefault();\n      e.stopPropagation();\n      this.setState({\n        dragNodeHighlight: false\n      });\n      onNodeDrop(e, this);\n    },\n    // Disabled item still can be switch\n    onExpand: function onExpand(e) {\n      var onNodeExpand = this.vcTree.onNodeExpand;\n      onNodeExpand(e, this);\n    },\n    // Drag usage\n    setSelectHandle: function setSelectHandle(node) {\n      this.selectHandle = node;\n    },\n    getNodeChildren: function getNodeChildren() {\n      var originList = this.children;\n\n      var targetList = _getNodeChildren(originList);\n\n      if (originList.length !== targetList.length) {\n        warnOnlyTreeNode();\n      }\n\n      return targetList;\n    },\n    getNodeState: function getNodeState() {\n      var expanded = this.expanded;\n\n      if (this.isLeaf2()) {\n        return null;\n      }\n\n      return expanded ? ICON_OPEN : ICON_CLOSE;\n    },\n    isLeaf2: function isLeaf2() {\n      var isLeaf = this.isLeaf,\n          loaded = this.loaded;\n      var loadData = this.vcTree.loadData;\n      var hasChildren = this.getNodeChildren().length !== 0;\n\n      if (isLeaf === false) {\n        return false;\n      }\n\n      return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n    },\n    isDisabled: function isDisabled() {\n      var disabled = this.disabled;\n      var treeDisabled = this.vcTree.disabled; // Follow the logic of Selectable\n\n      if (disabled === false) {\n        return false;\n      }\n\n      return !!(treeDisabled || disabled);\n    },\n    isCheckable: function isCheckable() {\n      var checkable = this.$props.checkable;\n      var treeCheckable = this.vcTree.checkable; // Return false if tree or treeNode is not checkable\n\n      if (!treeCheckable || checkable === false) return false;\n      return treeCheckable;\n    },\n    // Load data to avoid default expanded tree without data\n    syncLoadData: function syncLoadData(props) {\n      var expanded = props.expanded,\n          loading = props.loading,\n          loaded = props.loaded;\n      var _this$vcTree = this.vcTree,\n          loadData = _this$vcTree.loadData,\n          onNodeLoad = _this$vcTree.onNodeLoad;\n      if (loading) return; // read from state to avoid loadData at same time\n\n      if (loadData && expanded && !this.isLeaf2()) {\n        // We needn't reload data when has children in sync logic\n        // It's only needed in node expanded\n        var hasChildren = this.getNodeChildren().length !== 0;\n\n        if (!hasChildren && !loaded) {\n          onNodeLoad(this);\n        }\n      }\n    },\n    isSelectable: function isSelectable() {\n      var selectable = this.selectable;\n      var treeSelectable = this.vcTree.selectable; // Ignore when selectable is undefined or null\n\n      if (typeof selectable === 'boolean') {\n        return selectable;\n      }\n\n      return treeSelectable;\n    },\n    // Switcher\n    renderSwitcher: function renderSwitcher() {\n      var expanded = this.expanded;\n      var prefixCls = this.vcTree.prefixCls;\n      var switcherIcon = getComponent(this, 'switcherIcon', {}, false) || getComponent(this.vcTree, 'switcherIcon', {}, false);\n\n      if (this.isLeaf2()) {\n        return _createVNode(\"span\", {\n          \"key\": \"switcher\",\n          \"class\": classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n        }, [typeof switcherIcon === 'function' ? switcherIcon(_extends(_extends(_extends({}, this.$props), this.$props.dataRef), {\n          isLeaf: true\n        })) : switcherIcon]);\n      }\n\n      var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n      return _createVNode(\"span\", {\n        \"key\": \"switcher\",\n        \"onClick\": this.onExpand,\n        \"class\": switcherCls\n      }, [typeof switcherIcon === 'function' ? switcherIcon(_extends(_extends(_extends({}, this.$props), this.$props.dataRef), {\n        isLeaf: false\n      })) : switcherIcon]);\n    },\n    // Checkbox\n    renderCheckbox: function renderCheckbox() {\n      var checked = this.checked,\n          halfChecked = this.halfChecked,\n          disableCheckbox = this.disableCheckbox;\n      var prefixCls = this.vcTree.prefixCls;\n      var disabled = this.isDisabled();\n      var checkable = this.isCheckable();\n      if (!checkable) return null; // [Legacy] Custom element should be separate with `checkable` in future\n\n      var $custom = typeof checkable !== 'boolean' ? checkable : null;\n      return _createVNode(\"span\", {\n        \"key\": \"checkbox\",\n        \"class\": classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n        \"onClick\": this.onCheck\n      }, [$custom]);\n    },\n    renderIcon: function renderIcon() {\n      var loading = this.loading;\n      var prefixCls = this.vcTree.prefixCls;\n      return _createVNode(\"span\", {\n        \"key\": \"icon\",\n        \"class\": classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n      }, null);\n    },\n    // Icon + Title\n    renderSelector: function renderSelector() {\n      var selected = this.selected,\n          loading = this.loading,\n          dragNodeHighlight = this.dragNodeHighlight;\n      var icon = getComponent(this, 'icon', {}, false);\n      var _this$vcTree2 = this.vcTree,\n          prefixCls = _this$vcTree2.prefixCls,\n          showIcon = _this$vcTree2.showIcon,\n          treeIcon = _this$vcTree2.icon,\n          draggable = _this$vcTree2.draggable,\n          loadData = _this$vcTree2.loadData;\n      var disabled = this.isDisabled();\n      var title = getComponent(this, 'title', {}, false);\n      var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\"); // Icon - Still show loading icon when loading without showIcon\n\n      var $icon;\n\n      if (showIcon) {\n        var currentIcon = icon || treeIcon;\n        $icon = currentIcon ? _createVNode(\"span\", {\n          \"class\": classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n        }, [typeof currentIcon === 'function' ? currentIcon(_extends(_extends({}, this.$props), this.$props.dataRef)) : currentIcon]) : this.renderIcon();\n      } else if (loadData && loading) {\n        $icon = this.renderIcon();\n      }\n\n      var currentTitle = title;\n      var $title = currentTitle ? _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-title\")\n      }, [typeof currentTitle === 'function' ? currentTitle(_extends(_extends({}, this.$props), this.$props.dataRef)) : currentTitle]) : _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-title\")\n      }, [defaultTitle]);\n      return _createVNode(\"span\", {\n        \"key\": \"selector\",\n        \"ref\": this.setSelectHandle,\n        \"title\": typeof title === 'string' ? title : '',\n        \"class\": classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\"), !disabled && draggable && 'draggable'),\n        \"draggable\": !disabled && draggable || undefined,\n        \"aria-grabbed\": !disabled && draggable || undefined,\n        \"onMouseenter\": this.onMouseEnter,\n        \"onMouseleave\": this.onMouseLeave,\n        \"onContextmenu\": this.onContextMenu,\n        \"onClick\": this.onSelectorClick,\n        \"onDblclick\": this.onSelectorDoubleClick,\n        \"onDragstart\": draggable ? this.onDragStart : noop\n      }, [$icon, $title]);\n    },\n    // Children list wrapped with `Animation`\n    renderChildren: function renderChildren() {\n      var expanded = this.expanded,\n          pos = this.pos;\n      var _this$vcTree3 = this.vcTree,\n          prefixCls = _this$vcTree3.prefixCls,\n          openTransitionName = _this$vcTree3.openTransitionName,\n          openAnimation = _this$vcTree3.openAnimation,\n          renderTreeNode = _this$vcTree3.renderTreeNode;\n      var animProps = {};\n\n      if (openTransitionName) {\n        animProps = getTransitionProps(openTransitionName);\n      } else if (_typeof(openAnimation) === 'object') {\n        animProps = _extends(_extends(_extends({}, openAnimation), {\n          css: false\n        }), animProps);\n      } // Children TreeNode\n\n\n      var nodeList = this.getNodeChildren();\n\n      if (nodeList.length === 0) {\n        return null;\n      }\n\n      var $children;\n\n      if (expanded) {\n        $children = _createVNode(\"ul\", {\n          \"class\": classNames(\"\".concat(prefixCls, \"-child-tree\"), expanded && \"\".concat(prefixCls, \"-child-tree-open\")),\n          \"data-expanded\": expanded,\n          \"role\": \"group\"\n        }, [mapChildren(nodeList, function (node, index) {\n          return renderTreeNode(node, index, pos);\n        })]);\n      }\n\n      return _createVNode(Transition, animProps, {\n        default: function _default() {\n          return [$children];\n        }\n      });\n    }\n  },\n  render: function render() {\n    var _ref;\n\n    this.children = getSlot(this);\n    var _this$$props = this.$props,\n        dragOver = _this$$props.dragOver,\n        dragOverGapTop = _this$$props.dragOverGapTop,\n        dragOverGapBottom = _this$$props.dragOverGapBottom,\n        isLeaf = _this$$props.isLeaf,\n        expanded = _this$$props.expanded,\n        selected = _this$$props.selected,\n        checked = _this$$props.checked,\n        halfChecked = _this$$props.halfChecked,\n        loading = _this$$props.loading;\n    var _this$vcTree4 = this.vcTree,\n        prefixCls = _this$vcTree4.prefixCls,\n        filterTreeNode = _this$vcTree4.filterTreeNode,\n        draggable = _this$vcTree4.draggable;\n    var disabled = this.isDisabled();\n    var dataOrAriaAttributeProps = getDataAndAria(_extends(_extends({}, this.$props), this.$attrs));\n    var _this$$attrs = this.$attrs,\n        className = _this$$attrs.class,\n        style = _this$$attrs.style;\n    return _createVNode(\"li\", _objectSpread({\n      \"class\": (_ref = {}, _defineProperty(_ref, className, className), _defineProperty(_ref, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_ref, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_ref, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_ref, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_ref, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_ref, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_ref, 'drag-over', !disabled && dragOver), _defineProperty(_ref, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_ref, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_ref, 'filter-node', filterTreeNode && filterTreeNode(this)), _ref),\n      \"style\": style,\n      \"role\": \"treeitem\",\n      \"onDragenter\": draggable ? this.onDragEnter : noop,\n      \"onDragover\": draggable ? this.onDragOver : noop,\n      \"onDragleave\": draggable ? this.onDragLeave : noop,\n      \"onDrop\": draggable ? this.onDrop : noop,\n      \"onDragend\": draggable ? this.onDragEnd : noop\n    }, dataOrAriaAttributeProps), [this.renderSwitcher(), this.renderCheckbox(), this.renderSelector(), this.renderChildren()]);\n  }\n});\nTreeNode.isTreeNode = 1;\nexport default TreeNode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n/* eslint no-loop-func: 0*/\n\n\nimport warning from 'warning';\nimport TreeNode from './TreeNode';\nimport { getOptionProps, getSlot } from '../../_util/props-util';\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\nvar onlyTreeNodeWarned = false;\nexport function warnOnlyTreeNode() {\n  if (onlyTreeNodeWarned) return;\n  onlyTreeNodeWarned = true;\n  warning(false, 'Tree only accept TreeNode as children.');\n}\nexport function arrDel(list, value) {\n  var clone = list.slice();\n  var index = clone.indexOf(value);\n\n  if (index >= 0) {\n    clone.splice(index, 1);\n  }\n\n  return clone;\n}\nexport function arrAdd(list, value) {\n  var clone = list.slice();\n\n  if (clone.indexOf(value) === -1) {\n    clone.push(value);\n  }\n\n  return clone;\n}\nexport function posToArr(pos) {\n  return pos.split('-');\n}\nexport function getPosition(level, index) {\n  return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n  return node.type && node.type.isTreeNode;\n}\nexport function getNodeChildren() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return children.filter(isTreeNode);\n}\nexport function isCheckDisabled(node) {\n  var _ref = getOptionProps(node) || {},\n      disabled = _ref.disabled,\n      disableCheckbox = _ref.disableCheckbox,\n      checkable = _ref.checkable;\n\n  return !!(disabled || disableCheckbox) || checkable === false;\n}\nexport function traverseTreeNodes(treeNodes, callback) {\n  function processNode(node, index, parent) {\n    var children = node ? getSlot(node) : treeNodes;\n    var pos = node ? getPosition(parent.pos, index) : 0; // Filter children\n\n    var childList = getNodeChildren(children); // Process node if is not root\n\n    if (node) {\n      var key = node.key;\n\n      if (!key && (key === undefined || key === null)) {\n        key = pos;\n      }\n\n      var data = {\n        node: node,\n        index: index,\n        pos: pos,\n        key: key,\n        parentPos: parent.node ? parent.pos : null\n      };\n      callback(data);\n    } // Process children node\n\n\n    childList.forEach(function (subNode, subIndex) {\n      processNode(subNode, subIndex, {\n        node: node,\n        pos: pos\n      });\n    });\n  }\n\n  processNode(null);\n}\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\n\nexport function mapChildren() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var func = arguments.length > 1 ? arguments[1] : undefined;\n  var list = children.map(func);\n\n  if (list.length === 1) {\n    return list[0];\n  }\n\n  return list;\n}\nexport function getDragNodesKeys(treeNodes, node) {\n  var _getOptionProps = getOptionProps(node),\n      eventKey = _getOptionProps.eventKey,\n      pos = _getOptionProps.pos;\n\n  var dragNodesKeys = [];\n  traverseTreeNodes(treeNodes, function (_ref2) {\n    var key = _ref2.key;\n    dragNodesKeys.push(key);\n  });\n  dragNodesKeys.push(eventKey || pos);\n  return dragNodesKeys;\n}\nexport function calcDropPosition(event, treeNode) {\n  var clientY = event.clientY;\n\n  var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(),\n      top = _treeNode$selectHandl.top,\n      bottom = _treeNode$selectHandl.bottom,\n      height = _treeNode$selectHandl.height;\n\n  var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n  if (clientY <= top + des) {\n    return -1;\n  }\n\n  if (clientY >= bottom - des) {\n    return 1;\n  }\n\n  return 0;\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n  if (!selectedKeys) {\n    return undefined;\n  }\n\n  var multiple = props.multiple;\n\n  if (multiple) {\n    return selectedKeys.slice();\n  }\n\n  if (selectedKeys.length) {\n    return [selectedKeys[0]];\n  }\n\n  return selectedKeys;\n}\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\n// function keyListToString (keyList) {\n//   if (!keyList) return keyList\n//   return keyList.map(key => String(key))\n// }\n\nvar internalProcessProps = function internalProcessProps() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return _extends(_extends({}, props), {\n    class: props.class || props.className,\n    style: props.style,\n    key: props.key\n  });\n};\n\nexport function convertDataToTree(treeData, processor) {\n  if (!treeData) return [];\n\n  var _ref3 = processor || {},\n      _ref3$processProps = _ref3.processProps,\n      processProps = _ref3$processProps === void 0 ? internalProcessProps : _ref3$processProps;\n\n  var list = Array.isArray(treeData) ? treeData : [treeData];\n  return list.map(function (_a) {\n    var children = _a.children,\n        props = __rest(_a, [\"children\"]);\n\n    var childrenNodes = convertDataToTree(children, processor);\n    return _createVNode(TreeNode, processProps(props), {\n      default: function _default() {\n        return [childrenNodes];\n      }\n    });\n  });\n} // TODO: ========================= NEW LOGIC =========================\n\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity  User can customize the entity\n */\n\nexport function convertTreeToEntities(treeNodes) {\n  var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      initWrapper = _ref4.initWrapper,\n      processEntity = _ref4.processEntity,\n      onProcessFinished = _ref4.onProcessFinished;\n\n  var posEntities = new Map();\n  var keyEntities = new Map();\n  var wrapper = {\n    posEntities: posEntities,\n    keyEntities: keyEntities\n  };\n\n  if (initWrapper) {\n    wrapper = initWrapper(wrapper) || wrapper;\n  }\n\n  traverseTreeNodes(treeNodes, function (item) {\n    var node = item.node,\n        index = item.index,\n        pos = item.pos,\n        key = item.key,\n        parentPos = item.parentPos;\n    var entity = {\n      node: node,\n      index: index,\n      key: key,\n      pos: pos\n    };\n    posEntities.set(pos, entity);\n    keyEntities.set(key, entity); // Fill children\n\n    entity.parent = posEntities.get(parentPos);\n\n    if (entity.parent) {\n      entity.parent.children = entity.parent.children || [];\n      entity.parent.children.push(entity);\n    }\n\n    if (processEntity) {\n      processEntity(entity, wrapper);\n    }\n  });\n\n  if (onProcessFinished) {\n    onProcessFinished(wrapper);\n  }\n\n  return wrapper;\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n  if (!keys) {\n    return null;\n  } // Convert keys to object format\n\n\n  var keyProps;\n\n  if (Array.isArray(keys)) {\n    // [Legacy] Follow the api doc\n    keyProps = {\n      checkedKeys: keys,\n      halfCheckedKeys: undefined\n    };\n  } else if (_typeof(keys) === 'object') {\n    keyProps = {\n      checkedKeys: keys.checked || undefined,\n      halfCheckedKeys: keys.halfChecked || undefined\n    };\n  } else {\n    warning(false, '`checkedKeys` is not an array or an object');\n    return null;\n  } // keyProps.checkedKeys = keyListToString(keyProps.checkedKeys)\n  // keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys)\n\n\n  return keyProps;\n}\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList       list of keys\n * @param isCheck       is check the node or not\n * @param keyEntities   parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus   Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\n\nexport function conductCheck(keyList, isCheck, keyEntities) {\n  var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var checkedKeys = new Map();\n  var halfCheckedKeys = new Map(); // Record the key has some child checked (include child half checked)\n\n  (checkStatus.checkedKeys || []).forEach(function (key) {\n    checkedKeys.set(key, true);\n  });\n  (checkStatus.halfCheckedKeys || []).forEach(function (key) {\n    halfCheckedKeys.set(key, true);\n  }); // Conduct up\n\n  function conductUp(key) {\n    if (checkedKeys.get(key) === isCheck) return;\n    var entity = keyEntities.get(key);\n    if (!entity) return;\n    var children = entity.children,\n        parent = entity.parent,\n        node = entity.node;\n    if (isCheckDisabled(node)) return; // Check child node checked status\n\n    var everyChildChecked = true;\n    var someChildChecked = false; // Child checked or half checked\n\n    (children || []).filter(function (child) {\n      return !isCheckDisabled(child.node);\n    }).forEach(function (_ref5) {\n      var childKey = _ref5.key;\n      var childChecked = checkedKeys.get(childKey);\n      var childHalfChecked = halfCheckedKeys.get(childKey);\n      if (childChecked || childHalfChecked) someChildChecked = true;\n      if (!childChecked) everyChildChecked = false;\n    }); // Update checked status\n\n    if (isCheck) {\n      checkedKeys.set(key, everyChildChecked);\n    } else {\n      checkedKeys.set(key, false);\n    }\n\n    halfCheckedKeys.set(key, someChildChecked);\n\n    if (parent) {\n      conductUp(parent.key);\n    }\n  } // Conduct down\n\n\n  function conductDown(key) {\n    if (checkedKeys.get(key) === isCheck) return;\n    var entity = keyEntities.get(key);\n    if (!entity) return;\n    var children = entity.children,\n        node = entity.node;\n    if (isCheckDisabled(node)) return;\n    checkedKeys.set(key, isCheck);\n    (children || []).forEach(function (child) {\n      conductDown(child.key);\n    });\n  }\n\n  function conduct(key) {\n    var entity = keyEntities.get(key);\n\n    if (!entity) {\n      warning(false, \"'\".concat(key, \"' does not exist in the tree.\"));\n      return;\n    }\n\n    var children = entity.children,\n        parent = entity.parent,\n        node = entity.node;\n    checkedKeys.set(key, isCheck);\n    if (isCheckDisabled(node)) return; // Conduct down\n\n    (children || []).filter(function (child) {\n      return !isCheckDisabled(child.node);\n    }).forEach(function (child) {\n      conductDown(child.key);\n    }); // Conduct up\n\n    if (parent) {\n      conductUp(parent.key);\n    }\n  }\n\n  (keyList || []).forEach(function (key) {\n    conduct(key);\n  });\n  var checkedKeyList = [];\n  var halfCheckedKeyList = []; // Fill checked list\n\n  var _iterator = _createForOfIteratorHelper(checkedKeys),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var _step$value = _slicedToArray(_step.value, 2),\n          key = _step$value[0],\n          value = _step$value[1];\n\n      if (value) {\n        checkedKeyList.push(key);\n      }\n    } // Fill half checked list\n\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  var _iterator2 = _createForOfIteratorHelper(halfCheckedKeys),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var _step2$value = _slicedToArray(_step2.value, 2),\n          _key = _step2$value[0],\n          _value = _step2$value[1];\n\n      if (!checkedKeys.get(_key) && _value) {\n        halfCheckedKeyList.push(_key);\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n\n  return {\n    checkedKeys: checkedKeyList,\n    halfCheckedKeys: halfCheckedKeyList\n  };\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n  var expandedKeys = new Map();\n\n  function conductUp(key) {\n    if (expandedKeys.get(key)) return;\n    var entity = keyEntities.get(key);\n    if (!entity) return;\n    expandedKeys.set(key, true);\n    var parent = entity.parent,\n        node = entity.node;\n    var props = getOptionProps(node);\n    if (props && props.disabled) return;\n\n    if (parent) {\n      conductUp(parent.key);\n    }\n  }\n\n  (keyList || []).forEach(function (key) {\n    conductUp(key);\n  });\n  return _toConsumableArray(expandedKeys.keys());\n}\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props\n */\n\nexport function getDataAndAria(props) {\n  return Object.keys(props).reduce(function (prev, key) {\n    if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n      prev[key] = props[key];\n    }\n\n    return prev;\n  }, {});\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport PropTypes, { withUndefined } from '../../_util/vue-types';\nimport classNames from '../../_util/classNames';\nimport warning from 'warning';\nimport { hasProp, initDefaultProps, getOptionProps, getSlot } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { convertTreeToEntities, convertDataToTree, getPosition, getDragNodesKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr, mapChildren, conductCheck, warnOnlyTreeNode, getDataAndAria } from './util';\nimport { defineComponent } from 'vue';\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\n\nfunction getWatch() {\n  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var watch = {};\n  keys.forEach(function (k) {\n    watch[k] = {\n      handler: function handler() {\n        this.needSyncKeys[k] = true;\n      },\n      flush: 'sync'\n    };\n  });\n  return watch;\n}\n\nvar Tree = defineComponent({\n  name: 'Tree',\n  mixins: [BaseMixin],\n  provide: function provide() {\n    return {\n      vcTree: this\n    };\n  },\n  inheritAttrs: false,\n  props: initDefaultProps({\n    prefixCls: PropTypes.string,\n    tabindex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n    children: PropTypes.any,\n    treeData: PropTypes.array,\n    showLine: PropTypes.looseBool,\n    showIcon: PropTypes.looseBool,\n    icon: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n    focusable: PropTypes.looseBool,\n    selectable: PropTypes.looseBool,\n    disabled: PropTypes.looseBool,\n    multiple: PropTypes.looseBool,\n    checkable: withUndefined(PropTypes.oneOfType([PropTypes.object, PropTypes.looseBool])),\n    checkStrictly: PropTypes.looseBool,\n    draggable: PropTypes.looseBool,\n    defaultExpandParent: PropTypes.looseBool,\n    autoExpandParent: PropTypes.looseBool,\n    defaultExpandAll: PropTypes.looseBool,\n    defaultExpandedKeys: PropTypes.array,\n    expandedKeys: PropTypes.array,\n    defaultCheckedKeys: PropTypes.array,\n    checkedKeys: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n    defaultSelectedKeys: PropTypes.array,\n    selectedKeys: PropTypes.array,\n    // onClick: PropTypes.func,\n    // onDoubleClick: PropTypes.func,\n    // onExpand: PropTypes.func,\n    // onCheck: PropTypes.func,\n    // onSelect: PropTypes.func,\n    loadData: PropTypes.func,\n    loadedKeys: PropTypes.array,\n    // onMouseEnter: PropTypes.func,\n    // onMouseLeave: PropTypes.func,\n    // onRightClick: PropTypes.func,\n    // onDragStart: PropTypes.func,\n    // onDragEnter: PropTypes.func,\n    // onDragOver: PropTypes.func,\n    // onDragLeave: PropTypes.func,\n    // onDragEnd: PropTypes.func,\n    // onDrop: PropTypes.func,\n    filterTreeNode: PropTypes.func,\n    openTransitionName: PropTypes.string,\n    openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n    switcherIcon: PropTypes.any,\n    __propsSymbol__: PropTypes.any\n  }, {\n    prefixCls: 'rc-tree',\n    showLine: false,\n    showIcon: true,\n    selectable: true,\n    multiple: false,\n    checkable: false,\n    disabled: false,\n    checkStrictly: false,\n    draggable: false,\n    defaultExpandParent: true,\n    autoExpandParent: false,\n    defaultExpandAll: false,\n    defaultExpandedKeys: [],\n    defaultCheckedKeys: [],\n    defaultSelectedKeys: []\n  }),\n  data: function data() {\n    warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n    warning(this.$props.children, 'please use children prop replace slots.default');\n    this.needSyncKeys = {};\n    this.domTreeNodes = {};\n    var state = {\n      _posEntities: new Map(),\n      _keyEntities: new Map(),\n      _expandedKeys: [],\n      _selectedKeys: [],\n      _checkedKeys: [],\n      _halfCheckedKeys: [],\n      _loadedKeys: [],\n      _loadingKeys: [],\n      _treeNode: [],\n      _prevProps: null,\n      _dragOverNodeKey: '',\n      _dropPosition: null,\n      _dragNodesKeys: []\n    };\n    return _extends(_extends({}, state), this.getDerivedState(getOptionProps(this), state));\n  },\n  watch: _extends(_extends({}, getWatch(['treeData', 'children', 'expandedKeys', 'autoExpandParent', 'selectedKeys', 'checkedKeys', 'loadedKeys'])), {\n    __propsSymbol__: function __propsSymbol__() {\n      this.setState(this.getDerivedState(getOptionProps(this), this.$data));\n      this.needSyncKeys = {};\n    }\n  }),\n  methods: {\n    getDerivedState: function getDerivedState(props, prevState) {\n      var _prevProps = prevState._prevProps;\n      var newState = {\n        _prevProps: _extends({}, props)\n      };\n      var self = this;\n\n      function needSync(name) {\n        return !_prevProps && name in props || _prevProps && self.needSyncKeys[name];\n      } // ================== Tree Node ==================\n\n\n      var treeNode = null; // Check if `treeData` or `children` changed and save into the state.\n\n      if (needSync('treeData')) {\n        treeNode = convertDataToTree(props.treeData);\n      } else if (needSync('children')) {\n        treeNode = props.children;\n      } // Tree support filter function which will break the tree structure in the vdm.\n      // We cache the treeNodes in state so that we can return the treeNode in event trigger.\n\n\n      if (treeNode) {\n        newState._treeNode = treeNode; // Calculate the entities data for quick match\n\n        var entitiesMap = convertTreeToEntities(treeNode);\n        newState._keyEntities = entitiesMap.keyEntities;\n      }\n\n      var keyEntities = newState._keyEntities || prevState._keyEntities; // ================ expandedKeys =================\n\n      if (needSync('expandedKeys') || _prevProps && needSync('autoExpandParent')) {\n        newState._expandedKeys = props.autoExpandParent || !_prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n      } else if (!_prevProps && props.defaultExpandAll) {\n        newState._expandedKeys = _toConsumableArray(keyEntities.keys());\n      } else if (!_prevProps && props.defaultExpandedKeys) {\n        newState._expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n      } // ================ selectedKeys =================\n\n\n      if (props.selectable) {\n        if (needSync('selectedKeys')) {\n          newState._selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n        } else if (!_prevProps && props.defaultSelectedKeys) {\n          newState._selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n        }\n      } // ================= checkedKeys =================\n\n\n      if (props.checkable) {\n        var checkedKeyEntity;\n\n        if (needSync('checkedKeys')) {\n          checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n        } else if (!_prevProps && props.defaultCheckedKeys) {\n          checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n        } else if (treeNode) {\n          // If treeNode changed, we also need check it\n          checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n            checkedKeys: prevState._checkedKeys,\n            halfCheckedKeys: prevState._halfCheckedKeys\n          };\n        }\n\n        if (checkedKeyEntity) {\n          var _checkedKeyEntity = checkedKeyEntity,\n              _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n              checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n              _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n              halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n\n          if (!props.checkStrictly) {\n            var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n            checkedKeys = conductKeys.checkedKeys;\n            halfCheckedKeys = conductKeys.halfCheckedKeys;\n          }\n\n          newState._checkedKeys = checkedKeys;\n          newState._halfCheckedKeys = halfCheckedKeys;\n        }\n      } // ================= loadedKeys ==================\n\n\n      if (needSync('loadedKeys')) {\n        newState._loadedKeys = props.loadedKeys;\n      }\n\n      return newState;\n    },\n    onNodeDragStart: function onNodeDragStart(event, node) {\n      var _expandedKeys = this.$data._expandedKeys;\n      var eventKey = node.eventKey;\n      var children = getSlot(node);\n      this.dragNode = node;\n      this.setState({\n        _dragNodesKeys: getDragNodesKeys(typeof children === 'function' ? children() : children, node),\n        _expandedKeys: arrDel(_expandedKeys, eventKey)\n      });\n\n      this.__emit('dragstart', {\n        event: event,\n        node: node\n      });\n    },\n\n    /**\n     * [Legacy] Select handler is less small than node,\n     * so that this will trigger when drag enter node or select handler.\n     * This is a little tricky if customize css without padding.\n     * Better for use mouse move event to refresh drag state.\n     * But let's just keep it to avoid event trigger logic change.\n     */\n    onNodeDragEnter: function onNodeDragEnter(event, node) {\n      var _this = this;\n\n      var expandedKeys = this.$data._expandedKeys;\n      var pos = node.pos,\n          eventKey = node.eventKey;\n      if (!this.dragNode || !node.selectHandle) return;\n      var dropPosition = calcDropPosition(event, node); // Skip if drag node is self\n\n      if (this.dragNode.eventKey === eventKey && dropPosition === 0) {\n        this.setState({\n          _dragOverNodeKey: '',\n          _dropPosition: null\n        });\n        return;\n      } // Ref: https://github.com/react-component/tree/issues/132\n      // Add timeout to let onDragLevel fire before onDragEnter,\n      // so that we can clean drag props for onDragLeave node.\n      // Macro task for this:\n      // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n\n\n      setTimeout(function () {\n        // Update drag over node\n        _this.setState({\n          _dragOverNodeKey: eventKey,\n          _dropPosition: dropPosition\n        }); // Side effect for delay drag\n\n\n        if (!_this.delayedDragEnterLogic) {\n          _this.delayedDragEnterLogic = {};\n        }\n\n        Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n          clearTimeout(_this.delayedDragEnterLogic[key]);\n        });\n        _this.delayedDragEnterLogic[pos] = setTimeout(function () {\n          var newExpandedKeys = arrAdd(expandedKeys, eventKey);\n\n          if (!hasProp(_this, 'expandedKeys')) {\n            _this.setState({\n              _expandedKeys: newExpandedKeys\n            });\n          }\n\n          _this.__emit('dragenter', {\n            event: event,\n            node: node,\n            expandedKeys: newExpandedKeys\n          });\n        }, 400);\n      }, 0);\n    },\n    onNodeDragOver: function onNodeDragOver(event, node) {\n      var eventKey = node.eventKey;\n      var _this$$data = this.$data,\n          _dragOverNodeKey = _this$$data._dragOverNodeKey,\n          _dropPosition = _this$$data._dropPosition; // Update drag position\n\n      if (this.dragNode && eventKey === _dragOverNodeKey && node.selectHandle) {\n        var dropPosition = calcDropPosition(event, node);\n        if (dropPosition === _dropPosition) return;\n        this.setState({\n          _dropPosition: dropPosition\n        });\n      }\n\n      this.__emit('dragover', {\n        event: event,\n        node: node\n      });\n    },\n    onNodeDragLeave: function onNodeDragLeave(event, node) {\n      this.setState({\n        _dragOverNodeKey: ''\n      });\n\n      this.__emit('dragleave', {\n        event: event,\n        node: node\n      });\n    },\n    onNodeDragEnd: function onNodeDragEnd(event, node) {\n      this.setState({\n        _dragOverNodeKey: ''\n      });\n\n      this.__emit('dragend', {\n        event: event,\n        node: node\n      });\n\n      this.dragNode = null;\n    },\n    onNodeDrop: function onNodeDrop(event, node) {\n      var _this$$data2 = this.$data,\n          _this$$data2$_dragNod = _this$$data2._dragNodesKeys,\n          _dragNodesKeys = _this$$data2$_dragNod === void 0 ? [] : _this$$data2$_dragNod,\n          _dropPosition = _this$$data2._dropPosition;\n\n      var eventKey = node.eventKey,\n          pos = node.pos;\n      this.setState({\n        _dragOverNodeKey: ''\n      });\n\n      if (_dragNodesKeys.indexOf(eventKey) !== -1) {\n        warning(false, \"Can not drop to dragNode(include it's children node)\");\n        return;\n      }\n\n      var posArr = posToArr(pos);\n      var dropResult = {\n        event: event,\n        node: node,\n        dragNode: this.dragNode,\n        dragNodesKeys: _dragNodesKeys.slice(),\n        dropPosition: _dropPosition + Number(posArr[posArr.length - 1]),\n        dropToGap: false\n      };\n\n      if (_dropPosition !== 0) {\n        dropResult.dropToGap = true;\n      }\n\n      this.__emit('drop', dropResult);\n\n      this.dragNode = null;\n    },\n    onNodeClick: function onNodeClick(e, treeNode) {\n      this.__emit('click', e, treeNode);\n    },\n    onNodeDoubleClick: function onNodeDoubleClick(e, treeNode) {\n      this.__emit('dblclick', e, treeNode);\n    },\n    onNodeSelect: function onNodeSelect(e, treeNode) {\n      var selectedKeys = this.$data._selectedKeys;\n      var keyEntities = this.$data._keyEntities;\n      var multiple = this.$props.multiple;\n\n      var _getOptionProps = getOptionProps(treeNode),\n          selected = _getOptionProps.selected,\n          eventKey = _getOptionProps.eventKey;\n\n      var targetSelected = !selected; // Update selected keys\n\n      if (!targetSelected) {\n        selectedKeys = arrDel(selectedKeys, eventKey);\n      } else if (!multiple) {\n        selectedKeys = [eventKey];\n      } else {\n        selectedKeys = arrAdd(selectedKeys, eventKey);\n      } // [Legacy] Not found related usage in doc or upper libs\n\n\n      var selectedNodes = selectedKeys.map(function (key) {\n        var entity = keyEntities.get(key);\n        if (!entity) return null;\n        return entity.node;\n      }).filter(function (node) {\n        return node;\n      });\n      this.setUncontrolledState({\n        _selectedKeys: selectedKeys\n      });\n      var eventObj = {\n        event: 'select',\n        selected: targetSelected,\n        node: treeNode,\n        selectedNodes: selectedNodes,\n        nativeEvent: e\n      };\n\n      this.__emit('select', selectedKeys, eventObj);\n    },\n    onNodeCheck: function onNodeCheck(e, treeNode, checked) {\n      var _this$$data3 = this.$data,\n          keyEntities = _this$$data3._keyEntities,\n          oriCheckedKeys = _this$$data3._checkedKeys,\n          oriHalfCheckedKeys = _this$$data3._halfCheckedKeys;\n      var checkStrictly = this.$props.checkStrictly;\n\n      var _getOptionProps2 = getOptionProps(treeNode),\n          eventKey = _getOptionProps2.eventKey; // Prepare trigger arguments\n\n\n      var checkedObj;\n      var eventObj = {\n        event: 'check',\n        node: treeNode,\n        checked: checked,\n        nativeEvent: e\n      };\n\n      if (checkStrictly) {\n        var checkedKeys = checked ? arrAdd(oriCheckedKeys, eventKey) : arrDel(oriCheckedKeys, eventKey);\n        var halfCheckedKeys = arrDel(oriHalfCheckedKeys, eventKey);\n        checkedObj = {\n          checked: checkedKeys,\n          halfChecked: halfCheckedKeys\n        };\n        eventObj.checkedNodes = checkedKeys.map(function (key) {\n          return keyEntities.get(key);\n        }).filter(function (entity) {\n          return entity;\n        }).map(function (entity) {\n          return entity.node;\n        });\n        this.setUncontrolledState({\n          _checkedKeys: checkedKeys\n        });\n      } else {\n        var _conductCheck = conductCheck([eventKey], checked, keyEntities, {\n          checkedKeys: oriCheckedKeys,\n          halfCheckedKeys: oriHalfCheckedKeys\n        }),\n            _checkedKeys = _conductCheck.checkedKeys,\n            _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n        checkedObj = _checkedKeys; // [Legacy] This is used for `rc-tree-select`\n\n        eventObj.checkedNodes = [];\n        eventObj.checkedNodesPositions = [];\n        eventObj.halfCheckedKeys = _halfCheckedKeys;\n\n        _checkedKeys.forEach(function (key) {\n          var entity = keyEntities.get(key);\n          if (!entity) return;\n          var node = entity.node,\n              pos = entity.pos;\n          eventObj.checkedNodes.push(node);\n          eventObj.checkedNodesPositions.push({\n            node: node,\n            pos: pos\n          });\n        });\n\n        this.setUncontrolledState({\n          _checkedKeys: _checkedKeys,\n          _halfCheckedKeys: _halfCheckedKeys\n        });\n      }\n\n      this.__emit('check', checkedObj, eventObj);\n    },\n    onNodeLoad: function onNodeLoad(treeNode) {\n      var _this2 = this;\n\n      return new Promise(function (resolve) {\n        // We need to get the latest state of loading/loaded keys\n        _this2.setState(function (_ref) {\n          var _ref$_loadedKeys = _ref._loadedKeys,\n              loadedKeys = _ref$_loadedKeys === void 0 ? [] : _ref$_loadedKeys,\n              _ref$_loadingKeys = _ref._loadingKeys,\n              loadingKeys = _ref$_loadingKeys === void 0 ? [] : _ref$_loadingKeys;\n          var loadData = _this2.$props.loadData;\n\n          var _getOptionProps3 = getOptionProps(treeNode),\n              eventKey = _getOptionProps3.eventKey;\n\n          if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) {\n            return {};\n          } // Process load data\n\n\n          var promise = loadData(treeNode);\n          promise.then(function () {\n            var _this2$$data = _this2.$data,\n                currentLoadedKeys = _this2$$data._loadedKeys,\n                currentLoadingKeys = _this2$$data._loadingKeys;\n            var newLoadedKeys = arrAdd(currentLoadedKeys, eventKey);\n            var newLoadingKeys = arrDel(currentLoadingKeys, eventKey); // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n            // https://github.com/ant-design/ant-design/issues/12464\n\n            _this2.__emit('load', newLoadedKeys, {\n              event: 'load',\n              node: treeNode\n            });\n\n            _this2.setUncontrolledState({\n              _loadedKeys: newLoadedKeys\n            });\n\n            _this2.setState({\n              _loadingKeys: newLoadingKeys\n            });\n\n            resolve();\n          });\n          return {\n            _loadingKeys: arrAdd(loadingKeys, eventKey)\n          };\n        });\n      });\n    },\n    onNodeExpand: function onNodeExpand(e, treeNode) {\n      var _this3 = this;\n\n      var expandedKeys = this.$data._expandedKeys;\n      var loadData = this.$props.loadData;\n\n      var _getOptionProps4 = getOptionProps(treeNode),\n          eventKey = _getOptionProps4.eventKey,\n          expanded = _getOptionProps4.expanded; // Update selected keys\n\n\n      var index = expandedKeys.indexOf(eventKey);\n      var targetExpanded = !expanded;\n      warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n\n      if (targetExpanded) {\n        expandedKeys = arrAdd(expandedKeys, eventKey);\n      } else {\n        expandedKeys = arrDel(expandedKeys, eventKey);\n      }\n\n      this.setUncontrolledState({\n        _expandedKeys: expandedKeys\n      });\n\n      this.__emit('expand', expandedKeys, {\n        node: treeNode,\n        expanded: targetExpanded,\n        nativeEvent: e\n      }); // Async Load data\n\n\n      if (targetExpanded && loadData) {\n        var loadPromise = this.onNodeLoad(treeNode);\n        return loadPromise ? loadPromise.then(function () {\n          // [Legacy] Refresh logic\n          _this3.setUncontrolledState({\n            _expandedKeys: expandedKeys\n          });\n        }) : null;\n      }\n\n      return null;\n    },\n    onNodeMouseEnter: function onNodeMouseEnter(event, node) {\n      this.__emit('mouseenter', {\n        event: event,\n        node: node\n      });\n    },\n    onNodeMouseLeave: function onNodeMouseLeave(event, node) {\n      this.__emit('mouseleave', {\n        event: event,\n        node: node\n      });\n    },\n    onNodeContextMenu: function onNodeContextMenu(event, node) {\n      event.preventDefault();\n\n      this.__emit('rightClick', {\n        event: event,\n        node: node\n      });\n    },\n\n    /**\n     * Only update the value which is not in props\n     */\n    setUncontrolledState: function setUncontrolledState(state) {\n      var needSync = false;\n      var newState = {};\n      var props = getOptionProps(this);\n      Object.keys(state).forEach(function (name) {\n        if (name.replace('_', '') in props) return;\n        needSync = true;\n        newState[name] = state[name];\n      });\n\n      if (needSync) {\n        this.setState(newState);\n      }\n    },\n    registerTreeNode: function registerTreeNode(key, node) {\n      if (node) {\n        this.domTreeNodes[key] = node;\n      } else {\n        delete this.domTreeNodes[key];\n      }\n    },\n    isKeyChecked: function isKeyChecked(key) {\n      var _this$$data$_checkedK = this.$data._checkedKeys,\n          checkedKeys = _this$$data$_checkedK === void 0 ? [] : _this$$data$_checkedK;\n      return checkedKeys.indexOf(key) !== -1;\n    },\n\n    /**\n     * [Legacy] Original logic use `key` as tracking clue.\n     * We have to use `cloneElement` to pass `key`.\n     */\n    renderTreeNode: function renderTreeNode(child, index) {\n      var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n      var _this$$data4 = this.$data,\n          keyEntities = _this$$data4._keyEntities,\n          _this$$data4$_expande = _this$$data4._expandedKeys,\n          expandedKeys = _this$$data4$_expande === void 0 ? [] : _this$$data4$_expande,\n          _this$$data4$_selecte = _this$$data4._selectedKeys,\n          selectedKeys = _this$$data4$_selecte === void 0 ? [] : _this$$data4$_selecte,\n          _this$$data4$_halfChe = _this$$data4._halfCheckedKeys,\n          halfCheckedKeys = _this$$data4$_halfChe === void 0 ? [] : _this$$data4$_halfChe,\n          _this$$data4$_loadedK = _this$$data4._loadedKeys,\n          loadedKeys = _this$$data4$_loadedK === void 0 ? [] : _this$$data4$_loadedK,\n          _this$$data4$_loading = _this$$data4._loadingKeys,\n          loadingKeys = _this$$data4$_loading === void 0 ? [] : _this$$data4$_loading,\n          dragOverNodeKey = _this$$data4._dragOverNodeKey,\n          dropPosition = _this$$data4._dropPosition;\n      var pos = getPosition(level, index);\n      var key = child.key;\n\n      if (!key && (key === undefined || key === null)) {\n        key = pos;\n      }\n\n      if (!keyEntities.get(key)) {\n        warnOnlyTreeNode();\n        return null;\n      }\n\n      return cloneElement(child, {\n        eventKey: key,\n        expanded: expandedKeys.indexOf(key) !== -1,\n        selected: selectedKeys.indexOf(key) !== -1,\n        loaded: loadedKeys.indexOf(key) !== -1,\n        loading: loadingKeys.indexOf(key) !== -1,\n        checked: this.isKeyChecked(key),\n        halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n        pos: pos,\n        // [Legacy] Drag props\n        dragOver: dragOverNodeKey === key && dropPosition === 0,\n        dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n        dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n        key: key\n      });\n    }\n  },\n  render: function render() {\n    var _this4 = this;\n\n    var treeNode = this.$data._treeNode;\n    var _this$$props = this.$props,\n        prefixCls = _this$$props.prefixCls,\n        focusable = _this$$props.focusable,\n        showLine = _this$$props.showLine,\n        _this$$props$tabindex = _this$$props.tabindex,\n        tabindex = _this$$props$tabindex === void 0 ? 0 : _this$$props$tabindex;\n    var domProps = getDataAndAria(_extends(_extends({}, this.$props), this.$attrs));\n    var _this$$attrs = this.$attrs,\n        className = _this$$attrs.class,\n        style = _this$$attrs.style;\n    return _createVNode(\"ul\", _objectSpread(_objectSpread({}, domProps), {}, {\n      \"class\": classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-show-line\"), showLine)),\n      \"style\": style,\n      \"role\": \"tree\",\n      \"unselectable\": \"on\",\n      \"tabindex\": focusable ? tabindex : null\n    }), [mapChildren(treeNode, function (node, index) {\n      return _this4.renderTreeNode(node, index);\n    })]);\n  }\n});\nexport { Tree };\nexport default Tree;","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nTree.TreeNode = TreeNode;\nexport default Tree;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { defineComponent, inject } from 'vue';\nimport classNames from '../_util/classNames';\nimport LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined';\nimport FileOutlined from '@ant-design/icons-vue/FileOutlined';\nimport CaretDownFilled from '@ant-design/icons-vue/CaretDownFilled';\nimport MinusSquareOutlined from '@ant-design/icons-vue/MinusSquareOutlined';\nimport PlusSquareOutlined from '@ant-design/icons-vue/PlusSquareOutlined';\nimport VcTree from '../vc-tree';\nimport animation from '../_util/openAnimation';\nimport PropTypes from '../_util/vue-types';\nimport { getOptionProps, getComponent, getSlot } from '../_util/props-util';\nimport initDefaultProps from '../_util/props-util/initDefaultProps';\nimport { cloneElement } from '../_util/vnode';\nimport { defaultConfigProvider } from '../config-provider';\nvar TreeNode = VcTree.TreeNode;\n\nfunction TreeProps() {\n  return {\n    showLine: PropTypes.looseBool,\n\n    /** 是否支持多选 */\n    multiple: PropTypes.looseBool,\n\n    /** 是否自动展开父节点 */\n    autoExpandParent: PropTypes.looseBool,\n\n    /** checkable状态下节点选择完全受控（父子节点选中状态不再关联）*/\n    checkStrictly: PropTypes.looseBool,\n\n    /** 是否支持选中 */\n    checkable: PropTypes.looseBool,\n\n    /** 是否禁用树 */\n    disabled: PropTypes.looseBool,\n\n    /** 默认展开所有树节点 */\n    defaultExpandAll: PropTypes.looseBool,\n\n    /** 默认展开对应树节点 */\n    defaultExpandParent: PropTypes.looseBool,\n\n    /** 默认展开指定的树节点 */\n    defaultExpandedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n\n    /** （受控）展开指定的树节点 */\n    expandedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n\n    /** （受控）选中复选框的树节点 */\n    checkedKeys: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.shape({\n      checked: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n      halfChecked: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n    }).loose]),\n\n    /** 默认选中复选框的树节点 */\n    defaultCheckedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n\n    /** （受控）设置选中的树节点 */\n    selectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n\n    /** 默认选中的树节点 */\n    defaultSelectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n    selectable: PropTypes.looseBool,\n\n    /** filter some AntTreeNodes as you need. it should return true */\n    filterAntTreeNode: PropTypes.func,\n\n    /** 异步加载数据 */\n    loadData: PropTypes.func,\n    loadedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n    // onLoaded: (loadedKeys: string[], info: { event: 'load', node: AntTreeNode; }) => void,\n\n    /** 响应右键点击 */\n    // onRightClick: (options: AntTreeNodeMouseEvent) => void,\n\n    /** 设置节点可拖拽（IE>8）*/\n    draggable: PropTypes.looseBool,\n    // /** 开始拖拽时调用 */\n    // onDragStart: (options: AntTreeNodeMouseEvent) => void,\n    // /** dragenter 触发时调用 */\n    // onDragEnter: (options: AntTreeNodeMouseEvent) => void,\n    // /** dragover 触发时调用 */\n    // onDragOver: (options: AntTreeNodeMouseEvent) => void,\n    // /** dragleave 触发时调用 */\n    // onDragLeave: (options: AntTreeNodeMouseEvent) => void,\n    // /** drop 触发时调用 */\n    // onDrop: (options: AntTreeNodeMouseEvent) => void,\n    showIcon: PropTypes.looseBool,\n    icon: PropTypes.func,\n    switcherIcon: PropTypes.any,\n    prefixCls: PropTypes.string,\n    filterTreeNode: PropTypes.func,\n    openAnimation: PropTypes.any,\n    treeData: {\n      type: Array\n    },\n\n    /**\n     * @default{title,key,children}\n     * 替换treeNode中 title,key,children字段为treeData中对应的字段\n     */\n    replaceFields: PropTypes.object,\n    blockNode: PropTypes.looseBool,\n\n    /** 展开/收起节点时触发 */\n    onExpand: PropTypes.func,\n\n    /** 点击复选框触发 */\n    onCheck: PropTypes.func,\n\n    /** 点击树节点触发 */\n    onSelect: PropTypes.func,\n\n    /** 单击树节点触发 */\n    onClick: PropTypes.func,\n\n    /** 双击树节点触发 */\n    onDoubleclick: PropTypes.func,\n    onDblclick: PropTypes.func,\n    'onUpdate:selectedKeys': PropTypes.func,\n    'onUpdate:checkedKeys': PropTypes.func,\n    'onUpdate:expandedKeys': PropTypes.func\n  };\n}\n\nexport { TreeProps };\nexport default defineComponent({\n  name: 'ATree',\n  inheritAttrs: false,\n  props: initDefaultProps(TreeProps(), {\n    checkable: false,\n    showIcon: false,\n    openAnimation: _extends(_extends({}, animation), {\n      appear: null\n    }),\n    blockNode: false\n  }),\n  setup: function setup() {\n    return {\n      tree: null,\n      configProvider: inject('configProvider', defaultConfigProvider)\n    };\n  },\n  TreeNode: TreeNode,\n  methods: {\n    renderSwitcherIcon: function renderSwitcherIcon(prefixCls, switcherIcon, _ref) {\n      var isLeaf = _ref.isLeaf,\n          loading = _ref.loading,\n          expanded = _ref.expanded;\n      var showLine = this.$props.showLine;\n\n      if (loading) {\n        return _createVNode(LoadingOutlined, {\n          \"class\": \"\".concat(prefixCls, \"-switcher-loading-icon\")\n        }, null);\n      }\n\n      if (isLeaf) {\n        return showLine ? _createVNode(FileOutlined, {\n          \"class\": \"\".concat(prefixCls, \"-switcher-line-icon\")\n        }, null) : null;\n      }\n\n      var switcherCls = \"\".concat(prefixCls, \"-switcher-icon\");\n\n      if (switcherIcon) {\n        return cloneElement(switcherIcon, {\n          class: switcherCls\n        });\n      }\n\n      return showLine ? expanded ? _createVNode(MinusSquareOutlined, {\n        \"class\": \"\".concat(prefixCls, \"-switcher-line-icon\")\n      }, null) : _createVNode(PlusSquareOutlined, {\n        \"class\": \"\".concat(prefixCls, \"-switcher-line-icon\")\n      }, null) : _createVNode(CaretDownFilled, {\n        \"class\": switcherCls\n      }, null);\n    },\n    updateTreeData: function updateTreeData(treeData) {\n      var _this = this;\n\n      var $slots = this.$slots;\n      var defaultFields = {\n        children: 'children',\n        title: 'title',\n        key: 'key'\n      };\n\n      var replaceFields = _extends(_extends({}, defaultFields), this.$props.replaceFields);\n\n      return treeData.map(function (item) {\n        var key = item[replaceFields.key];\n        var children = item[replaceFields.children];\n\n        var _item$slots = item.slots,\n            slots = _item$slots === void 0 ? {} : _item$slots,\n            cls = item.class,\n            style = item.style,\n            restProps = __rest(item, [\"slots\", \"class\", \"style\"]);\n\n        var treeNodeProps = _extends(_extends({}, restProps), {\n          icon: $slots[slots.icon] || restProps.icon,\n          switcherIcon: $slots[slots.switcherIcon] || restProps.switcherIcon,\n          title: $slots[slots.title] || $slots.title || restProps[replaceFields.title],\n          dataRef: item,\n          key: key,\n          class: cls,\n          style: style\n        });\n\n        if (children) {\n          return _extends(_extends({}, treeNodeProps), {\n            children: _this.updateTreeData(children)\n          });\n        }\n\n        return treeNodeProps;\n      });\n    },\n    setTreeRef: function setTreeRef(node) {\n      this.tree = node;\n    },\n    handleCheck: function handleCheck(checkedObj, eventObj) {\n      this.$emit('update:checkedKeys', checkedObj);\n      this.$emit('check', checkedObj, eventObj);\n    },\n    handleExpand: function handleExpand(expandedKeys, eventObj) {\n      this.$emit('update:expandedKeys', expandedKeys);\n      this.$emit('expand', expandedKeys, eventObj);\n    },\n    handleSelect: function handleSelect(selectedKeys, eventObj) {\n      this.$emit('update:selectedKeys', selectedKeys);\n      this.$emit('select', selectedKeys, eventObj);\n    }\n  },\n  render: function render() {\n    var _this2 = this,\n        _classNames;\n\n    var props = getOptionProps(this);\n    var customizePrefixCls = props.prefixCls,\n        showIcon = props.showIcon,\n        treeNodes = props.treeNodes,\n        blockNode = props.blockNode;\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var prefixCls = getPrefixCls('tree', customizePrefixCls);\n\n    var _switcherIcon = getComponent(this, 'switcherIcon');\n\n    var checkable = props.checkable;\n    var treeData = props.treeData || treeNodes;\n\n    if (treeData) {\n      treeData = this.updateTreeData(treeData);\n    }\n\n    var _a = this.$attrs,\n        className = _a.class,\n        restAttrs = __rest(_a, [\"class\"]);\n\n    var vcTreeProps = _extends(_extends(_extends(_extends({}, props), {\n      prefixCls: prefixCls,\n      checkable: checkable ? _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-checkbox-inner\")\n      }, null) : checkable,\n      children: getSlot(this),\n      switcherIcon: function switcherIcon(nodeProps) {\n        return _this2.renderSwitcherIcon(prefixCls, _switcherIcon, nodeProps);\n      },\n      ref: this.setTreeRef\n    }), restAttrs), {\n      class: classNames(className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-hide\"), !showIcon), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block-node\"), blockNode), _classNames)),\n      onCheck: this.handleCheck,\n      onExpand: this.handleExpand,\n      onSelect: this.handleSelect\n    });\n\n    if (treeData) {\n      vcTreeProps.treeData = treeData;\n    }\n\n    return _createVNode(VcTree, _objectSpread(_objectSpread({}, vcTreeProps), {}, {\n      \"__propsSymbol__\": []\n    }), null);\n  }\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { getNodeChildren, convertTreeToEntities } from '../vc-tree/src/util';\nimport { getSlot } from '../_util/props-util';\nvar Record;\n\n(function (Record) {\n  Record[Record[\"None\"] = 0] = \"None\";\n  Record[Record[\"Start\"] = 1] = \"Start\";\n  Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {})); // TODO: Move this logic into `rc-tree`\n\n\nfunction traverseNodesKey(rootChildren, callback) {\n  var nodeList = getNodeChildren(rootChildren) || [];\n\n  function processNode(node) {\n    var key = node.key;\n    var children = getSlot(node);\n\n    if (callback(key, node) !== false) {\n      traverseNodesKey(children, callback);\n    }\n  }\n\n  nodeList.forEach(processNode);\n}\n\nexport function getFullKeyList(children) {\n  var _convertTreeToEntitie = convertTreeToEntities(children),\n      keyEntities = _convertTreeToEntitie.keyEntities;\n\n  return _toConsumableArray(keyEntities.keys());\n}\n/** 计算选中范围，只考虑expanded情况以优化性能 */\n\nexport function calcRangeKeys(rootChildren, expandedKeys, startKey, endKey) {\n  var keys = [];\n  var record = Record.None;\n\n  if (startKey && startKey === endKey) {\n    return [startKey];\n  }\n\n  if (!startKey || !endKey) {\n    return [];\n  }\n\n  function matchKey(key) {\n    return key === startKey || key === endKey;\n  }\n\n  traverseNodesKey(rootChildren, function (key) {\n    if (record === Record.End) {\n      return false;\n    }\n\n    if (matchKey(key)) {\n      // Match test\n      keys.push(key);\n\n      if (record === Record.None) {\n        record = Record.Start;\n      } else if (record === Record.Start) {\n        record = Record.End;\n        return false;\n      }\n    } else if (record === Record.Start) {\n      // Append selection\n      keys.push(key);\n    }\n\n    if (expandedKeys.indexOf(key) === -1) {\n      return false;\n    }\n\n    return true;\n  });\n  return keys;\n}\nexport function convertDirectoryKeysToNodes(rootChildren, keys) {\n  var restKeys = _toConsumableArray(keys);\n\n  var nodes = [];\n  traverseNodesKey(rootChildren, function (key, node) {\n    var index = restKeys.indexOf(key);\n\n    if (index !== -1) {\n      nodes.push(node);\n      restKeys.splice(index, 1);\n    }\n\n    return !!restKeys.length;\n  });\n  return nodes;\n}\nexport function getFullKeyListByTreeData(treeData) {\n  var replaceFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var keys = [];\n  var _replaceFields$key = replaceFields.key,\n      key = _replaceFields$key === void 0 ? 'key' : _replaceFields$key,\n      _replaceFields$childr = replaceFields.children,\n      children = _replaceFields$childr === void 0 ? 'children' : _replaceFields$childr;\n  (treeData || []).forEach(function (item) {\n    keys.push(item[key]);\n\n    if (item[children]) {\n      keys = [].concat(_toConsumableArray(keys), _toConsumableArray(getFullKeyListByTreeData(item[children], replaceFields)));\n    }\n  });\n  return keys;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { defineComponent, inject } from 'vue';\nimport omit from 'omit.js';\nimport debounce from 'lodash-es/debounce';\nimport FolderOpenOutlined from '@ant-design/icons-vue/FolderOpenOutlined';\nimport FolderOutlined from '@ant-design/icons-vue/FolderOutlined';\nimport FileOutlined from '@ant-design/icons-vue/FileOutlined';\nimport PropTypes from '../_util/vue-types';\nimport classNames from '../_util/classNames';\nimport { conductExpandParent, convertTreeToEntities } from '../vc-tree/src/util';\nimport Tree, { TreeProps } from './Tree';\nimport { calcRangeKeys, getFullKeyList, convertDirectoryKeysToNodes, getFullKeyListByTreeData } from './util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getOptionProps, getComponent, getSlot } from '../_util/props-util';\nimport initDefaultProps from '../_util/props-util/initDefaultProps';\nimport { defaultConfigProvider } from '../config-provider';\n\nfunction getIcon(props) {\n  var isLeaf = props.isLeaf,\n      expanded = props.expanded;\n\n  if (isLeaf) {\n    return _createVNode(FileOutlined, null, null);\n  }\n\n  return expanded ? _createVNode(FolderOpenOutlined, null, null) : _createVNode(FolderOutlined, null, null);\n}\n\nexport default defineComponent({\n  name: 'ADirectoryTree',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: initDefaultProps(_extends(_extends({}, TreeProps()), {\n    expandAction: PropTypes.oneOf([false, 'click', 'doubleclick', 'dblclick'])\n  }), {\n    showIcon: true,\n    expandAction: 'click'\n  }),\n  setup: function setup() {\n    return {\n      children: null,\n      onDebounceExpand: null,\n      tree: null,\n      lastSelectedKey: '',\n      cachedSelectedKeys: [],\n      configProvider: inject('configProvider', defaultConfigProvider)\n    };\n  },\n  data: function data() {\n    var props = getOptionProps(this);\n    var defaultExpandAll = props.defaultExpandAll,\n        defaultExpandParent = props.defaultExpandParent,\n        expandedKeys = props.expandedKeys,\n        defaultExpandedKeys = props.defaultExpandedKeys;\n    var children = getSlot(this);\n\n    var _convertTreeToEntitie = convertTreeToEntities(children),\n        keyEntities = _convertTreeToEntitie.keyEntities;\n\n    var state = {}; // Selected keys\n\n    state._selectedKeys = props.selectedKeys || props.defaultSelectedKeys || []; // Expanded keys\n\n    if (defaultExpandAll) {\n      if (props.treeData) {\n        state._expandedKeys = getFullKeyListByTreeData(props.treeData, props.replaceFields);\n      } else {\n        state._expandedKeys = getFullKeyList(children);\n      }\n    } else if (defaultExpandParent) {\n      state._expandedKeys = conductExpandParent(expandedKeys || defaultExpandedKeys, keyEntities);\n    } else {\n      state._expandedKeys = expandedKeys || defaultExpandedKeys;\n    }\n\n    return _extends({\n      _selectedKeys: [],\n      _expandedKeys: []\n    }, state);\n  },\n  watch: {\n    expandedKeys: function expandedKeys(val) {\n      this.setState({\n        _expandedKeys: val\n      });\n    },\n    selectedKeys: function selectedKeys(val) {\n      this.setState({\n        _selectedKeys: val\n      });\n    }\n  },\n  created: function created() {\n    this.onDebounceExpand = debounce(this.expandFolderNode, 200, {\n      leading: true\n    });\n  },\n  methods: {\n    handleExpand: function handleExpand(expandedKeys, info) {\n      this.setUncontrolledState({\n        _expandedKeys: expandedKeys\n      });\n      this.$emit('update:expandedKeys', expandedKeys);\n      this.$emit('expand', expandedKeys, info);\n      return undefined;\n    },\n    handleClick: function handleClick(event, node) {\n      var expandAction = this.$props.expandAction; // Expand the tree\n\n      if (expandAction === 'click') {\n        this.onDebounceExpand(event, node);\n      }\n\n      this.$emit('click', event, node);\n    },\n    handleDoubleClick: function handleDoubleClick(event, node) {\n      var expandAction = this.$props.expandAction; // Expand the tree\n\n      if (expandAction === 'dblclick' || expandAction === 'doubleclick') {\n        this.onDebounceExpand(event, node);\n      }\n\n      this.$emit('doubleclick', event, node);\n      this.$emit('dblclick', event, node);\n    },\n    hanldeSelect: function hanldeSelect(keys, event) {\n      var multiple = this.$props.multiple;\n      var children = this.children || [];\n      var _this$$data$_expanded = this.$data._expandedKeys,\n          expandedKeys = _this$$data$_expanded === void 0 ? [] : _this$$data$_expanded;\n      var node = event.node,\n          nativeEvent = event.nativeEvent;\n      var _node$eventKey = node.eventKey,\n          eventKey = _node$eventKey === void 0 ? '' : _node$eventKey;\n      var newState = {}; // We need wrap this event since some value is not same\n\n      var newEvent = _extends(_extends({}, event), {\n        selected: true\n      }); // Windows / Mac single pick\n\n\n      var ctrlPick = nativeEvent.ctrlKey || nativeEvent.metaKey;\n      var shiftPick = nativeEvent.shiftKey; // Generate new selected keys\n\n      var newSelectedKeys;\n\n      if (multiple && ctrlPick) {\n        // Control click\n        newSelectedKeys = keys;\n        this.lastSelectedKey = eventKey;\n        this.cachedSelectedKeys = newSelectedKeys;\n        newEvent.selectedNodes = convertDirectoryKeysToNodes(children, newSelectedKeys);\n      } else if (multiple && shiftPick) {\n        // Shift click\n        newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(this.cachedSelectedKeys || []), _toConsumableArray(calcRangeKeys(children, expandedKeys, eventKey, this.lastSelectedKey)))));\n        newEvent.selectedNodes = convertDirectoryKeysToNodes(children, newSelectedKeys);\n      } else {\n        // Single click\n        newSelectedKeys = [eventKey];\n        this.lastSelectedKey = eventKey;\n        this.cachedSelectedKeys = newSelectedKeys;\n        newEvent.selectedNodes = [event.node];\n      }\n\n      newState._selectedKeys = newSelectedKeys;\n      this.$emit('update:selectedKeys', newSelectedKeys);\n      this.$emit('select', newSelectedKeys, newEvent);\n      this.setUncontrolledState(newState);\n    },\n    setTreeRef: function setTreeRef(node) {\n      this.tree = node;\n    },\n    expandFolderNode: function expandFolderNode(event, node) {\n      var isLeaf = node.isLeaf;\n\n      if (isLeaf || event.shiftKey || event.metaKey || event.ctrlKey) {\n        return;\n      }\n\n      if (this.tree.tree) {\n        // Get internal vc-tree\n        var internalTree = this.tree.tree; // Call internal rc-tree expand function\n        // https://github.com/ant-design/ant-design/issues/12567\n\n        internalTree.onNodeExpand(event, node);\n      }\n    },\n    setUncontrolledState: function setUncontrolledState(state) {\n      var newState = omit(state, Object.keys(getOptionProps(this)).map(function (p) {\n        return \"_\".concat(p);\n      }));\n\n      if (Object.keys(newState).length) {\n        this.setState(newState);\n      }\n    },\n    handleCheck: function handleCheck(checkedObj, eventObj) {\n      this.$emit('update:checkedKeys', checkedObj);\n      this.$emit('check', checkedObj, eventObj);\n    }\n  },\n  render: function render() {\n    var _this = this;\n\n    this.children = getSlot(this);\n\n    var _a = getOptionProps(this),\n        customizePrefixCls = _a.prefixCls,\n        props = __rest(_a, [\"prefixCls\"]);\n\n    var getPrefixCls = this.configProvider.getPrefixCls;\n    var prefixCls = getPrefixCls('tree', customizePrefixCls);\n    var _this$$data = this.$data,\n        expandedKeys = _this$$data._expandedKeys,\n        selectedKeys = _this$$data._selectedKeys;\n\n    var _b = this.$attrs,\n        className = _b.class,\n        restAttrs = __rest(_b, [\"class\"]);\n\n    var connectClassName = classNames(\"\".concat(prefixCls, \"-directory\"), className);\n\n    var treeProps = _extends(_extends(_extends({\n      icon: getIcon\n    }, restAttrs), omit(props, ['onUpdate:selectedKeys', 'onUpdate:checkedKeys', 'onUpdate:expandedKeys'])), {\n      prefixCls: prefixCls,\n      expandedKeys: expandedKeys,\n      selectedKeys: selectedKeys,\n      switcherIcon: getComponent(this, 'switcherIcon'),\n      ref: this.setTreeRef,\n      class: connectClassName,\n      onSelect: this.hanldeSelect,\n      onClick: this.handleClick,\n      onDblclick: this.handleDoubleClick,\n      onExpand: this.handleExpand,\n      onCheck: this.handleCheck\n    });\n\n    return _createVNode(Tree, treeProps, _objectSpread({\n      default: function _default() {\n        return [_this.children];\n      }\n    }, omit(this.$slots, ['default'])));\n  }\n});","import Tree from './Tree';\nimport DirectoryTree from './DirectoryTree';\nTree.TreeNode.name = 'ATreeNode';\nTree.DirectoryTree = DirectoryTree;\n/* istanbul ignore next */\n\nTree.install = function (app) {\n  app.component(Tree.name, Tree);\n  app.component(Tree.TreeNode.name, Tree.TreeNode);\n  app.component(DirectoryTree.name, DirectoryTree);\n  return app;\n};\n\nexport var TreeNode = Tree.TreeNode;\nexport { DirectoryTree };\nexport default Tree;","function _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(source, true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(source).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n  var box;\n  var x;\n  var y;\n  var doc = elem.ownerDocument;\n  var body = doc.body;\n  var docElem = doc && doc.documentElement; // 根据 GBS 最新数据，A-Grade Browsers 都已支持 getBoundingClientRect 方法，不用再考虑传统的实现方式\n\n  box = elem.getBoundingClientRect(); // 注：jQuery 还考虑减去 docElem.clientLeft/clientTop\n  // 但测试发现，这样反而会导致当 html 和 body 有边距/边框样式时，获取的值不正确\n  // 此外，ie6 会忽略 html 的 margin 值，幸运地是没有谁会去设置 html 的 margin\n\n  x = box.left;\n  y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and\n  // IE6 standards mode, this border can be overridden by setting the\n  // document element's border to zero -- thus, we cannot rely on the\n  // offset always being 2 pixels.\n  // In quirks mode, the offset can be determined by querying the body's\n  // clientLeft/clientTop, but in standards mode, it is found by querying\n  // the document element's clientLeft/clientTop.  Since we already called\n  // getClientBoundingRect we have already forced a reflow, so it is not\n  // too expensive just to query them all.\n  // ie 下应该减去窗口的边框吧，毕竟默认 absolute 都是相对窗口定位的\n  // 窗口边框标准是设 documentElement ,quirks 时设置 body\n  // 最好禁止在 body 和 html 上边框 ，但 ie < 9 html 默认有 2px ，减去\n  // 但是非 ie 不可能设置窗口边框，body html 也不是窗口 ,ie 可以通过 html,body 设置\n  // 标准 ie 下 docElem.clientTop 就是 border-top\n  // ie7 html 即窗口边框改变不了。永远为 2\n  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框，即使设了 border-top 也为 0\n\n  x -= docElem.clientLeft || body.clientLeft || 0;\n  y -= docElem.clientTop || body.clientTop || 0;\n  return {\n    left: x,\n    top: y\n  };\n}\n\nfunction getScroll(w, top) {\n  var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n  var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n  if (typeof ret !== 'number') {\n    var d = w.document; // ie6,7,8 standard mode\n\n    ret = d.documentElement[method];\n\n    if (typeof ret !== 'number') {\n      // quirks mode\n      ret = d.body[method];\n    }\n  }\n\n  return ret;\n}\n\nfunction getScrollLeft(w) {\n  return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n  return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n  var pos = getClientPosition(el);\n  var doc = el.ownerDocument;\n  var w = doc.defaultView || doc.parentWindow;\n  pos.left += getScrollLeft(w);\n  pos.top += getScrollTop(w);\n  return pos;\n}\n\nfunction _getComputedStyle(elem, name, computedStyle_) {\n  var val = '';\n  var d = elem.ownerDocument;\n  var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n  if (computedStyle) {\n    val = computedStyle.getPropertyValue(name) || computedStyle[name];\n  }\n\n  return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n  // currentStyle maybe null\n  // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时，通过 pixelLeft 方式转换的 width/height 值\n  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n  // 在 ie 下不对，需要直接用 offset 方式\n  // borderWidth 等值也有问题，但考虑到 borderWidth 设为百分比的概率很小，这里就不考虑了\n  // From the awesome hack by Dean Edwards\n  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n  // If we're not dealing with a regular pixel number\n  // but a number that has a weird ending, we need to convert it to pixels\n  // exclude left right for relativity\n\n  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n    // Remember the original values\n    var style = elem.style;\n    var left = style[LEFT];\n    var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n    ret = style.pixelLeft + PX; // Revert the changed values\n\n    style[LEFT] = left;\n    elem[RUNTIME_STYLE][LEFT] = rsLeft;\n  }\n\n  return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX;\n\nif (typeof window !== 'undefined') {\n  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n  for (var i = 0; i < arr.length; i++) {\n    fn(arr[i]);\n  }\n}\n\nfunction isBorderBoxFn(elem) {\n  return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n  var old = {};\n  var style = elem.style;\n  var name; // Remember the old values, and insert the new ones\n\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      old[name] = style[name];\n      style[name] = options[name];\n    }\n  }\n\n  callback.call(elem); // Revert the old values\n\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      style[name] = old[name];\n    }\n  }\n}\n\nfunction getPBMWidth(elem, props, which) {\n  var value = 0;\n  var prop;\n  var j;\n  var i;\n\n  for (j = 0; j < props.length; j++) {\n    prop = props[j];\n\n    if (prop) {\n      for (i = 0; i < which.length; i++) {\n        var cssProp = void 0;\n\n        if (prop === 'border') {\n          cssProp = \"\".concat(prop + which[i], \"Width\");\n        } else {\n          cssProp = prop + which[i];\n        }\n\n        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n      }\n    }\n  }\n\n  return value;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n  // must use == for ie8\n\n  /* eslint eqeqeq:0 */\n  return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\neach(['Width', 'Height'], function (name) {\n  domUtils[\"doc\".concat(name)] = function (refWin) {\n    var d = refWin.document;\n    return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n    // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n    d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点？\n    d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n  };\n\n  domUtils[\"viewport\".concat(name)] = function (win) {\n    // pc browser includes scrollbar in window.innerWidth\n    var prop = \"client\".concat(name);\n    var doc = win.document;\n    var body = doc.body;\n    var documentElement = doc.documentElement;\n    var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n    // backcompat 取 body\n\n    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n  };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra]  'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, extra) {\n  if (isWindow(elem)) {\n    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n  } else if (elem.nodeType === 9) {\n    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n  }\n\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n  var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n  var computedStyle = getComputedStyleX(elem);\n  var isBorderBox = isBorderBoxFn(elem);\n  var cssBoxValue = 0;\n\n  if (borderBoxValue == null || borderBoxValue <= 0) {\n    borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n    cssBoxValue = getComputedStyleX(elem, name);\n\n    if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n      cssBoxValue = elem.style[name] || 0;\n    } // Normalize '', auto, and prepare for extra\n\n\n    cssBoxValue = parseFloat(cssBoxValue) || 0;\n  }\n\n  if (extra === undefined) {\n    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n  }\n\n  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n  var val = borderBoxValue || cssBoxValue;\n\n  if (extra === CONTENT_INDEX) {\n    if (borderBoxValueOrIsBorderBox) {\n      return val - getPBMWidth(elem, ['border', 'padding'], which);\n    }\n\n    return cssBoxValue;\n  }\n\n  if (borderBoxValueOrIsBorderBox) {\n    var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which);\n    return val + (extra === BORDER_INDEX ? 0 : padding);\n  }\n\n  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n  position: 'absolute',\n  visibility: 'hidden',\n  display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay(elem) {\n  var val;\n  var args = arguments; // in case elem is window\n  // elem.offsetWidth === undefined\n\n  if (elem.offsetWidth !== 0) {\n    val = getWH.apply(undefined, args);\n  } else {\n    swap(elem, cssShow, function () {\n      val = getWH.apply(undefined, args);\n    });\n  }\n\n  return val;\n}\n\nfunction css(el, name, v) {\n  var value = v;\n\n  if (_typeof(name) === 'object') {\n    for (var i in name) {\n      if (name.hasOwnProperty(i)) {\n        css(el, i, name[i]);\n      }\n    }\n\n    return undefined;\n  }\n\n  if (typeof value !== 'undefined') {\n    if (typeof value === 'number') {\n      value += 'px';\n    }\n\n    el.style[name] = value;\n    return undefined;\n  }\n\n  return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n  var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n  domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n  };\n\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n  domUtils[name] = function (elem, val) {\n    if (val !== undefined) {\n      if (elem) {\n        var computedStyle = getComputedStyleX(elem);\n        var isBorderBox = isBorderBoxFn(elem);\n\n        if (isBorderBox) {\n          val += getPBMWidth(elem, ['padding', 'border'], which);\n        }\n\n        return css(elem, name, val);\n      }\n\n      return undefined;\n    }\n\n    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n  };\n}); // 设置 elem 相对 elem.ownerDocument 的坐标\n\nfunction setOffset(elem, offset) {\n  // set position first, in-case top/left are set even on static elem\n  if (css(elem, 'position') === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  var old = getOffset(elem);\n  var ret = {};\n  var current;\n  var key;\n\n  for (key in offset) {\n    if (offset.hasOwnProperty(key)) {\n      current = parseFloat(css(elem, key)) || 0;\n      ret[key] = current + offset[key] - old[key];\n    }\n  }\n\n  css(elem, ret);\n}\n\nvar util = _objectSpread2({\n  getWindow: function getWindow(node) {\n    var doc = node.ownerDocument || node;\n    return doc.defaultView || doc.parentWindow;\n  },\n  offset: function offset(el, value) {\n    if (typeof value !== 'undefined') {\n      setOffset(el, value);\n    } else {\n      return getOffset(el);\n    }\n  },\n  isWindow: isWindow,\n  each: each,\n  css: css,\n  clone: function clone(obj) {\n    var ret = {};\n\n    for (var i in obj) {\n      if (obj.hasOwnProperty(i)) {\n        ret[i] = obj[i];\n      }\n    }\n\n    var overflow = obj.overflow;\n\n    if (overflow) {\n      for (var _i in obj) {\n        if (obj.hasOwnProperty(_i)) {\n          ret.overflow[_i] = obj.overflow[_i];\n        }\n      }\n    }\n\n    return ret;\n  },\n  scrollLeft: function scrollLeft(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollLeft(w);\n      }\n\n      window.scrollTo(v, getScrollTop(w));\n    } else {\n      if (v === undefined) {\n        return w.scrollLeft;\n      }\n\n      w.scrollLeft = v;\n    }\n  },\n  scrollTop: function scrollTop(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollTop(w);\n      }\n\n      window.scrollTo(getScrollLeft(w), v);\n    } else {\n      if (v === undefined) {\n        return w.scrollTop;\n      }\n\n      w.scrollTop = v;\n    }\n  },\n  viewportWidth: 0,\n  viewportHeight: 0\n}, domUtils);\n\nfunction scrollIntoView(elem, container, config) {\n  config = config || {}; // document 归一化到 window\n\n  if (container.nodeType === 9) {\n    container = util.getWindow(container);\n  }\n\n  var allowHorizontalScroll = config.allowHorizontalScroll;\n  var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n  var alignWithTop = config.alignWithTop;\n  var alignWithLeft = config.alignWithLeft;\n  var offsetTop = config.offsetTop || 0;\n  var offsetLeft = config.offsetLeft || 0;\n  var offsetBottom = config.offsetBottom || 0;\n  var offsetRight = config.offsetRight || 0;\n  allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n  var isWin = util.isWindow(container);\n  var elemOffset = util.offset(elem);\n  var eh = util.outerHeight(elem);\n  var ew = util.outerWidth(elem);\n  var containerOffset;\n  var ch;\n  var cw;\n  var containerScroll;\n  var diffTop;\n  var diffBottom;\n  var win;\n  var winScroll;\n  var ww;\n  var wh;\n\n  if (isWin) {\n    win = container;\n    wh = util.height(win);\n    ww = util.width(win);\n    winScroll = {\n      left: util.scrollLeft(win),\n      top: util.scrollTop(win)\n    }; // elem 相对 container 可视视窗的距离\n\n    diffTop = {\n      left: elemOffset.left - winScroll.left - offsetLeft,\n      top: elemOffset.top - winScroll.top - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n      top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n    };\n    containerScroll = winScroll;\n  } else {\n    containerOffset = util.offset(container);\n    ch = container.clientHeight;\n    cw = container.clientWidth;\n    containerScroll = {\n      left: container.scrollLeft,\n      top: container.scrollTop\n    }; // elem 相对 container 可视视窗的距离\n    // 注意边框, offset 是边框到根节点\n\n    diffTop = {\n      left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n      top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n      top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n    };\n  }\n\n  if (diffTop.top < 0 || diffBottom.top > 0) {\n    // 强制向上\n    if (alignWithTop === true) {\n      util.scrollTop(container, containerScroll.top + diffTop.top);\n    } else if (alignWithTop === false) {\n      util.scrollTop(container, containerScroll.top + diffBottom.top);\n    } else {\n      // 自动调整\n      if (diffTop.top < 0) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  } else {\n    if (!onlyScrollIfNeeded) {\n      alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n\n      if (alignWithTop) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  }\n\n  if (allowHorizontalScroll) {\n    if (diffTop.left < 0 || diffBottom.left > 0) {\n      // 强制向上\n      if (alignWithLeft === true) {\n        util.scrollLeft(container, containerScroll.left + diffTop.left);\n      } else if (alignWithLeft === false) {\n        util.scrollLeft(container, containerScroll.left + diffBottom.left);\n      } else {\n        // 自动调整\n        if (diffTop.left < 0) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    } else {\n      if (!onlyScrollIfNeeded) {\n        alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n\n        if (alignWithLeft) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    }\n  }\n}\n\nexport default scrollIntoView;\n//# sourceMappingURL=index.js.map\n","export function hasClass(node, className) {\n  if (node.classList) {\n    return node.classList.contains(className);\n  }\n\n  var originClass = node.className;\n  return \" \".concat(originClass, \" \").indexOf(\" \".concat(className, \" \")) > -1;\n}\nexport function addClass(node, className) {\n  if (node.classList) {\n    node.classList.add(className);\n  } else {\n    if (!hasClass(node, className)) {\n      node.className = \"\".concat(node.className, \" \").concat(className);\n    }\n  }\n}\nexport function removeClass(node, className) {\n  if (node.classList) {\n    node.classList.remove(className);\n  } else {\n    if (hasClass(node, className)) {\n      var originClass = node.className;\n      node.className = \" \".concat(originClass, \" \").replace(\" \".concat(className, \" \"), ' ');\n    }\n  }\n}","export var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport warning from 'warning';\nimport { convertDataToTree as vcConvertDataToTree, convertTreeToEntities as vcConvertTreeToEntities, conductCheck as rcConductCheck } from '../../vc-tree/src/util';\nimport { hasClass } from '../../vc-util/Dom/class';\nimport { SHOW_CHILD, SHOW_PARENT } from './strategies';\nimport { getSlot, getPropsData, isEmptyElement } from '../../_util/props-util';\nvar warnDeprecatedLabel = false; // =================== DOM =====================\n\nexport function findPopupContainer(node, prefixClass) {\n  var current = node;\n\n  while (current) {\n    if (hasClass(current, prefixClass)) {\n      return current;\n    }\n\n    current = current.parentNode;\n  }\n\n  return null;\n} // =================== MISC ====================\n\nexport function toTitle(title) {\n  if (typeof title === 'string') {\n    return title;\n  }\n\n  return null;\n}\nexport function toArray(data) {\n  if (data === undefined || data === null) return [];\n  return Array.isArray(data) ? data : [data];\n}\nexport function createRef() {\n  var func = function setRef(node) {\n    func.current = node;\n  };\n\n  return func;\n} // =============== Legacy ===============\n\nexport var UNSELECTABLE_STYLE = {\n  userSelect: 'none',\n  WebkitUserSelect: 'none'\n};\nexport var UNSELECTABLE_ATTRIBUTE = {\n  unselectable: 'unselectable'\n};\n/**\n * Convert position list to hierarchy structure.\n * This is little hack since use '-' to split the position.\n */\n\nexport function flatToHierarchy(positionList) {\n  if (!positionList.length) {\n    return [];\n  }\n\n  var entrances = {}; // Prepare the position map\n\n  var posMap = {};\n  var parsedList = positionList.slice().map(function (entity) {\n    var clone = _extends(_extends({}, entity), {\n      fields: entity.pos.split('-')\n    });\n\n    delete clone.children;\n    return clone;\n  });\n  parsedList.forEach(function (entity) {\n    posMap[entity.pos] = entity;\n  });\n  parsedList.sort(function (a, b) {\n    return a.fields.length - b.fields.length;\n  }); // Create the hierarchy\n\n  parsedList.forEach(function (entity) {\n    var parentPos = entity.fields.slice(0, -1).join('-');\n    var parentEntity = posMap[parentPos];\n\n    if (!parentEntity) {\n      entrances[entity.pos] = entity;\n    } else {\n      parentEntity.children = parentEntity.children || [];\n      parentEntity.children.push(entity);\n    } // Some time position list provide `key`, we don't need it\n\n\n    delete entity.key;\n    delete entity.fields;\n  });\n  return Object.keys(entrances).map(function (key) {\n    return entrances[key];\n  });\n} // =============== Accessibility ===============\n\nvar ariaId = 0;\nexport function resetAriaId() {\n  ariaId = 0;\n}\nexport function generateAriaId(prefix) {\n  ariaId += 1;\n  return \"\".concat(prefix, \"_\").concat(ariaId);\n}\nexport function isLabelInValue(props) {\n  var treeCheckable = props.treeCheckable,\n      treeCheckStrictly = props.treeCheckStrictly,\n      labelInValue = props.labelInValue;\n\n  if (treeCheckable && treeCheckStrictly) {\n    return true;\n  }\n\n  return labelInValue || false;\n} // =================== Tree ====================\n\nexport function parseSimpleTreeData(treeData, _ref) {\n  var id = _ref.id,\n      pId = _ref.pId,\n      rootPId = _ref.rootPId;\n  var keyNodes = {};\n  var rootNodeList = []; // Fill in the map\n\n  var nodeList = treeData.map(function (node) {\n    var clone = _extends({}, node);\n\n    var key = clone[id];\n    keyNodes[key] = clone;\n    clone.key = clone.key || key;\n    return clone;\n  }); // Connect tree\n\n  nodeList.forEach(function (node) {\n    var parentKey = node[pId];\n    var parent = keyNodes[parentKey]; // Fill parent\n\n    if (parent) {\n      parent.children = parent.children || [];\n      parent.children.push(node);\n    } // Fill root tree node\n\n\n    if (parentKey === rootPId || !parent && rootPId === null) {\n      rootNodeList.push(node);\n    }\n  });\n  return rootNodeList;\n}\n/**\n * Detect if position has relation.\n * e.g. 1-2 related with 1-2-3\n * e.g. 1-3-2 related with 1\n * e.g. 1-2 not related with 1-21\n */\n\nexport function isPosRelated(pos1, pos2) {\n  var fields1 = pos1.split('-');\n  var fields2 = pos2.split('-');\n  var minLen = Math.min(fields1.length, fields2.length);\n\n  for (var i = 0; i < minLen; i += 1) {\n    if (fields1[i] !== fields2[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * This function is only used on treeNode check (none treeCheckStrictly but has searchInput).\n * We convert entity to { node, pos, children } format.\n * This is legacy bug but we still need to do with it.\n * @param entity\n */\n\nexport function cleanEntity(_ref2) {\n  var node = _ref2.node,\n      pos = _ref2.pos,\n      children = _ref2.children;\n  var instance = {\n    node: node,\n    pos: pos\n  };\n\n  if (children) {\n    instance.children = children.map(cleanEntity);\n  }\n\n  return instance;\n}\n/**\n * Get a filtered TreeNode list by provided treeNodes.\n * [Legacy] Since `Tree` use `key` as map but `key` will changed by React,\n * we have to convert `treeNodes > data > treeNodes` to keep the key.\n * Such performance hungry!\n */\n\nexport function getFilterTree(treeNodes, searchValue, filterFunc, valueEntities, Component) {\n  if (!searchValue) {\n    return null;\n  }\n\n  function mapFilteredNodeToData(node) {\n    if (!node || isEmptyElement(node)) return null;\n    var match = false;\n\n    if (filterFunc(searchValue, node)) {\n      match = true;\n    }\n\n    var children = getSlot(node);\n    children = ((typeof children === 'function' ? children() : children) || []).map(mapFilteredNodeToData).filter(function (n) {\n      return n;\n    });\n\n    if (children.length || match) {\n      return _createVNode(Component, _objectSpread(_objectSpread({}, node.props), {}, {\n        \"key\": valueEntities[getPropsData(node).value].key\n      }), {\n        default: function _default() {\n          return [children];\n        }\n      });\n    }\n\n    return null;\n  }\n\n  return treeNodes.map(mapFilteredNodeToData).filter(function (node) {\n    return node;\n  });\n} // =================== Value ===================\n\n/**\n * Convert value to array format to make logic simplify.\n */\n\nexport function formatInternalValue(value, props) {\n  var valueList = toArray(value); // Parse label in value\n\n  if (isLabelInValue(props)) {\n    return valueList.map(function (val) {\n      if (_typeof(val) !== 'object' || !val) {\n        return {\n          value: '',\n          label: ''\n        };\n      }\n\n      return val;\n    });\n  }\n\n  return valueList.map(function (val) {\n    return {\n      value: val\n    };\n  });\n}\nexport function getLabel(wrappedValue, entity, treeNodeLabelProp) {\n  if (wrappedValue.label) {\n    return wrappedValue.label;\n  }\n\n  if (entity) {\n    var props = getPropsData(entity.node);\n\n    if (Object.keys(props).length) {\n      return props[treeNodeLabelProp];\n    }\n  } // Since value without entity will be in missValueList.\n  // This code will never reached, but we still need this in case.\n\n\n  return wrappedValue.value;\n}\n/**\n * Convert internal state `valueList` to user needed value list.\n * This will return an array list. You need check if is not multiple when return.\n *\n * `allCheckedNodes` is used for `treeCheckStrictly`\n */\n\nexport function formatSelectorValue(valueList, props, valueEntities) {\n  var treeNodeLabelProp = props.treeNodeLabelProp,\n      treeCheckable = props.treeCheckable,\n      treeCheckStrictly = props.treeCheckStrictly,\n      showCheckedStrategy = props.showCheckedStrategy; // Will hide some value if `showCheckedStrategy` is set\n\n  if (treeCheckable && !treeCheckStrictly) {\n    var values = {};\n    valueList.forEach(function (wrappedValue) {\n      values[wrappedValue.value] = wrappedValue;\n    });\n    var hierarchyList = flatToHierarchy(valueList.map(function (_ref3) {\n      var value = _ref3.value;\n      return valueEntities[value];\n    }));\n\n    if (showCheckedStrategy === SHOW_PARENT) {\n      // Only get the parent checked value\n      return hierarchyList.map(function (_ref4) {\n        var node = _ref4.node;\n        var value = getPropsData(node).value;\n        return {\n          label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n          value: value\n        };\n      });\n    }\n\n    if (showCheckedStrategy === SHOW_CHILD) {\n      // Only get the children checked value\n      var targetValueList = []; // Find the leaf children\n\n      var traverse = function traverse(_ref5) {\n        var node = _ref5.node,\n            children = _ref5.children;\n        var value = getPropsData(node).value;\n\n        if (!children || children.length === 0) {\n          targetValueList.push({\n            label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n            value: value\n          });\n          return;\n        }\n\n        children.forEach(function (entity) {\n          traverse(entity);\n        });\n      };\n\n      hierarchyList.forEach(function (entity) {\n        traverse(entity);\n      });\n      return targetValueList;\n    }\n  }\n\n  return valueList.map(function (wrappedValue) {\n    return {\n      label: getLabel(wrappedValue, valueEntities[wrappedValue.value], treeNodeLabelProp),\n      value: wrappedValue.value\n    };\n  });\n}\n/**\n * Use `rc-tree` convertDataToTree to convert treeData to TreeNodes.\n * This will change the label to title value\n */\n\nfunction processProps(props) {\n  var title = props.title,\n      label = props.label,\n      key = props.key,\n      value = props.value;\n\n  var cloneProps = _extends({}, props); // Warning user not to use deprecated label prop.\n\n\n  if (label && !title) {\n    if (!warnDeprecatedLabel) {\n      warning(false, \"'label' in treeData is deprecated. Please use 'title' instead.\");\n      warnDeprecatedLabel = true;\n    }\n\n    cloneProps.title = label;\n  }\n\n  if (!key && (key === undefined || key === null)) {\n    cloneProps.key = value;\n  }\n\n  return cloneProps;\n}\n\nexport function convertDataToTree(treeData) {\n  return vcConvertDataToTree(treeData, {\n    processProps: processProps\n  });\n}\n/**\n * Use `rc-tree` convertTreeToEntities for entities calculation.\n * We have additional entities of `valueEntities`\n */\n\nfunction initWrapper(wrapper) {\n  return _extends(_extends({}, wrapper), {\n    valueEntities: {}\n  });\n}\n\nfunction processEntity(entity, wrapper) {\n  var value = getPropsData(entity.node).value;\n  entity.value = value; // This should be empty, or will get error message.\n\n  var currentEntity = wrapper.valueEntities[value];\n\n  if (currentEntity) {\n    warning(false, \"Conflict! value of node '\".concat(entity.key, \"' (\").concat(value, \") has already used by node '\").concat(currentEntity.key, \"'.\"));\n  }\n\n  wrapper.valueEntities[value] = entity;\n}\n\nexport function convertTreeToEntities(treeNodes) {\n  return vcConvertTreeToEntities(treeNodes, {\n    initWrapper: initWrapper,\n    processEntity: processEntity\n  });\n}\n/**\n * https://github.com/ant-design/ant-design/issues/13328\n * We need calculate the half check key when searchValue is set.\n */\n// TODO: This logic may better move to rc-tree\n\nexport function getHalfCheckedKeys(valueList, valueEntities) {\n  var values = {}; // Fill checked keys\n\n  valueList.forEach(function (_ref6) {\n    var value = _ref6.value;\n    values[value] = false;\n  }); // Fill half checked keys\n\n  valueList.forEach(function (_ref7) {\n    var value = _ref7.value;\n    var current = valueEntities[value];\n\n    while (current && current.parent) {\n      var parentValue = current.parent.value;\n      if (parentValue in values) break;\n      values[parentValue] = true;\n      current = current.parent;\n    }\n  }); // Get half keys\n\n  return Object.keys(values).filter(function (value) {\n    return values[value];\n  }).map(function (value) {\n    return valueEntities[value].key;\n  });\n}\nexport var conductCheck = rcConductCheck;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createVNode as _createVNode } from \"vue\";\nimport PropTypes from '../../_util/vue-types';\nimport Trigger from '../../vc-trigger';\nimport { createRef } from './util';\nimport classNames from '../../_util/classNames';\nimport { getSlot } from '../../_util/props-util';\nvar BUILT_IN_PLACEMENTS = {\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1\n    },\n    ignoreShake: true\n  },\n  topLeft: {\n    points: ['bl', 'tl'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1\n    },\n    ignoreShake: true\n  }\n};\nvar SelectTrigger = {\n  name: 'SelectTrigger',\n  inheritAttrs: false,\n  props: {\n    // Pass by outside user props\n    disabled: PropTypes.looseBool,\n    showSearch: PropTypes.looseBool,\n    prefixCls: PropTypes.string,\n    dropdownPopupAlign: PropTypes.object,\n    dropdownClassName: PropTypes.string,\n    dropdownStyle: PropTypes.object,\n    transitionName: PropTypes.string,\n    animation: PropTypes.string,\n    getPopupContainer: PropTypes.func,\n    dropdownMatchSelectWidth: PropTypes.looseBool,\n    // Pass by Select\n    isMultiple: PropTypes.looseBool,\n    dropdownPrefixCls: PropTypes.string,\n    dropdownVisibleChange: PropTypes.func,\n    popupElement: PropTypes.any,\n    open: PropTypes.looseBool\n  },\n  created: function created() {\n    this.triggerRef = createRef();\n  },\n  methods: {\n    getDropdownTransitionName: function getDropdownTransitionName() {\n      var _this$$props = this.$props,\n          transitionName = _this$$props.transitionName,\n          animation = _this$$props.animation,\n          dropdownPrefixCls = _this$$props.dropdownPrefixCls;\n\n      if (!transitionName && animation) {\n        return \"\".concat(dropdownPrefixCls, \"-\").concat(animation);\n      }\n\n      return transitionName;\n    },\n    forcePopupAlign: function forcePopupAlign() {\n      var $trigger = this.triggerRef.current;\n\n      if ($trigger) {\n        $trigger.forcePopupAlign();\n      }\n    }\n  },\n  render: function render() {\n    var _classNames,\n        _this = this;\n\n    var _this$$props2 = this.$props,\n        disabled = _this$$props2.disabled,\n        isMultiple = _this$$props2.isMultiple,\n        dropdownPopupAlign = _this$$props2.dropdownPopupAlign,\n        dropdownMatchSelectWidth = _this$$props2.dropdownMatchSelectWidth,\n        dropdownClassName = _this$$props2.dropdownClassName,\n        dropdownStyle = _this$$props2.dropdownStyle,\n        dropdownVisibleChange = _this$$props2.dropdownVisibleChange,\n        getPopupContainer = _this$$props2.getPopupContainer,\n        dropdownPrefixCls = _this$$props2.dropdownPrefixCls,\n        popupElement = _this$$props2.popupElement,\n        open = _this$$props2.open; // TODO: [Legacy] Use new action when trigger fixed: https://github.com/react-component/trigger/pull/86\n    // When false do nothing with the width\n    // ref: https://github.com/ant-design/ant-design/issues/10927\n\n    var stretch;\n\n    if (dropdownMatchSelectWidth !== false) {\n      stretch = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n    }\n\n    return _createVNode(Trigger, {\n      \"ref\": this.triggerRef,\n      \"action\": disabled ? [] : ['click'],\n      \"popupPlacement\": \"bottomLeft\",\n      \"builtinPlacements\": BUILT_IN_PLACEMENTS,\n      \"popupAlign\": dropdownPopupAlign,\n      \"prefixCls\": dropdownPrefixCls,\n      \"popupTransitionName\": this.getDropdownTransitionName(),\n      \"onPopupVisibleChange\": dropdownVisibleChange,\n      \"popup\": popupElement,\n      \"popupVisible\": open,\n      \"getPopupContainer\": getPopupContainer,\n      \"stretch\": stretch,\n      \"popupClassName\": classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"--multiple\"), isMultiple), _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"--single\"), !isMultiple), _classNames)),\n      \"popupStyle\": dropdownStyle\n    }, {\n      default: function _default() {\n        return [getSlot(_this)];\n      }\n    });\n  }\n};\nexport default SelectTrigger;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\n/**\n * Input Box is in different position for different mode.\n * This not the same design as `Select` cause it's followed by antd 0.x `Select`.\n * We will not follow the new design immediately since antd 3.x is already released.\n *\n * So this file named as Selector to avoid confuse.\n */\nimport { inject } from 'vue';\nimport { createRef } from '../util';\nimport PropTypes from '../../../_util/vue-types';\nimport classNames from '../../../_util/classNames';\nimport { initDefaultProps, getComponent } from '../../../_util/props-util';\nimport BaseMixin from '../../../_util/BaseMixin';\nexport var selectorPropTypes = function selectorPropTypes() {\n  return {\n    prefixCls: PropTypes.string,\n    open: PropTypes.looseBool,\n    selectorValueList: PropTypes.array,\n    allowClear: PropTypes.looseBool,\n    showArrow: PropTypes.looseBool,\n    // onClick: PropTypes.func,\n    // onBlur: PropTypes.func,\n    // onFocus: PropTypes.func,\n    removeSelected: PropTypes.func,\n    choiceTransitionName: PropTypes.string,\n    // Pass by component\n    ariaId: PropTypes.string,\n    inputIcon: PropTypes.any,\n    clearIcon: PropTypes.any,\n    removeIcon: PropTypes.any,\n    placeholder: PropTypes.any,\n    disabled: PropTypes.looseBool,\n    focused: PropTypes.looseBool,\n    isMultiple: PropTypes.looseBool,\n    showSearch: PropTypes.looseBool,\n    searchValue: PropTypes.string\n  };\n};\n\nfunction noop() {}\n\nexport default function () {\n  var BaseSelector = {\n    name: 'BaseSelector',\n    inheritAttrs: false,\n    mixins: [BaseMixin],\n    props: initDefaultProps(_extends(_extends({}, selectorPropTypes()), {\n      // Pass by HOC\n      renderSelection: PropTypes.func.isRequired,\n      renderPlaceholder: PropTypes.func,\n      tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n    }), {\n      tabindex: 0\n    }),\n    setup: function setup() {\n      return {\n        vcTreeSelect: inject('vcTreeSelect', {})\n      };\n    },\n    created: function created() {\n      this.domRef = createRef();\n    },\n    methods: {\n      onFocus: function onFocus(e) {\n        var focused = this.$props.focused;\n        var onSelectorFocus = this.vcTreeSelect.onSelectorFocus;\n\n        if (!focused) {\n          onSelectorFocus();\n        }\n\n        this.__emit('focus', e);\n      },\n      onBlur: function onBlur(e) {\n        var onSelectorBlur = this.vcTreeSelect.onSelectorBlur; // TODO: Not trigger when is inner component get focused\n\n        onSelectorBlur();\n\n        this.__emit('blur', e);\n      },\n      focus: function focus() {\n        this.domRef.current.focus();\n      },\n      blur: function blur() {\n        this.domRef.current.blur();\n      },\n      renderClear: function renderClear() {\n        var _this$$props = this.$props,\n            prefixCls = _this$$props.prefixCls,\n            allowClear = _this$$props.allowClear,\n            selectorValueList = _this$$props.selectorValueList;\n        var onSelectorClear = this.vcTreeSelect.onSelectorClear;\n\n        if (!allowClear || !selectorValueList.length) {\n          return null;\n        }\n\n        var clearIcon = getComponent(this, 'clearIcon');\n        return _createVNode(\"span\", {\n          \"key\": \"clear\",\n          \"unselectable\": \"on\",\n          \"aria-hidden\": \"true\",\n          \"style\": \"user-select: none;\",\n          \"class\": \"\".concat(prefixCls, \"-clear\"),\n          \"onClick\": onSelectorClear\n        }, [clearIcon]);\n      },\n      renderArrow: function renderArrow() {\n        var _this$$props2 = this.$props,\n            prefixCls = _this$$props2.prefixCls,\n            showArrow = _this$$props2.showArrow;\n\n        if (!showArrow) {\n          return null;\n        }\n\n        var inputIcon = getComponent(this, 'inputIcon');\n        return _createVNode(\"span\", {\n          \"key\": \"arrow\",\n          \"class\": \"\".concat(prefixCls, \"-arrow\"),\n          \"style\": {\n            outline: 'none',\n            userSelect: 'none'\n          }\n        }, [inputIcon]);\n      }\n    },\n    render: function render() {\n      var _classNames;\n\n      var _this$$props3 = this.$props,\n          prefixCls = _this$$props3.prefixCls,\n          open = _this$$props3.open,\n          focused = _this$$props3.focused,\n          disabled = _this$$props3.disabled,\n          allowClear = _this$$props3.allowClear,\n          ariaId = _this$$props3.ariaId,\n          renderSelection = _this$$props3.renderSelection,\n          renderPlaceholder = _this$$props3.renderPlaceholder,\n          tabindex = _this$$props3.tabindex,\n          isMultiple = _this$$props3.isMultiple,\n          showArrow = _this$$props3.showArrow,\n          showSearch = _this$$props3.showSearch;\n      var _this$$attrs = this.$attrs,\n          className = _this$$attrs.class,\n          style = _this$$attrs.style,\n          _this$$attrs$onClick = _this$$attrs.onClick,\n          onClick = _this$$attrs$onClick === void 0 ? noop : _this$$attrs$onClick;\n      var onSelectorKeyDown = this.vcTreeSelect.onSelectorKeyDown;\n      var myTabIndex = tabindex;\n\n      if (disabled) {\n        myTabIndex = null;\n      }\n\n      var mergedClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), open || focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-multiple\"), isMultiple), _defineProperty(_classNames, \"\".concat(prefixCls, \"-single\"), !isMultiple), _defineProperty(_classNames, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-arrow\"), showArrow), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-search\"), showSearch), _classNames));\n      return _createVNode(\"div\", {\n        \"style\": style,\n        \"onClick\": onClick,\n        \"class\": mergedClassName,\n        \"ref\": this.domRef,\n        \"role\": \"combobox\",\n        \"aria-expanded\": open,\n        \"aria-owns\": open ? ariaId : undefined,\n        \"aria-controls\": open ? ariaId : undefined,\n        \"aria-haspopup\": \"listbox\",\n        \"aria-disabled\": disabled,\n        \"tabindex\": myTabIndex,\n        \"onFocus\": this.onFocus,\n        \"onBlur\": this.onBlur,\n        \"onKeydown\": onSelectorKeyDown\n      }, [_createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-selector\")\n      }, [renderSelection(), renderPlaceholder && renderPlaceholder()]), this.renderArrow(), this.renderClear()]);\n    }\n  };\n  return BaseSelector;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, ref, withDirectives } from 'vue';\nimport antInput from './antInputDirective';\nimport PropTypes from './vue-types';\nvar BaseInput = defineComponent({\n  props: {\n    value: PropTypes.string.def('')\n  },\n  emits: ['change', 'input'],\n  setup: function setup(_p, _ref) {\n    var emit = _ref.emit;\n    var inputRef = ref(null);\n\n    var handleChange = function handleChange(e) {\n      var composing = e.target.composing;\n\n      if (e.isComposing || composing) {\n        emit('input', e);\n      } else {\n        emit('input', e);\n        emit('change', e);\n      }\n    };\n\n    return {\n      inputRef: inputRef,\n      focus: function focus() {\n        if (inputRef.value) {\n          inputRef.value.focus();\n        }\n      },\n      blur: function blur() {\n        if (inputRef.value) {\n          inputRef.value.blur();\n        }\n      },\n      handleChange: handleChange\n    };\n  },\n  render: function render() {\n    return withDirectives(_createVNode(\"input\", _objectSpread(_objectSpread(_objectSpread({}, this.$props), this.$attrs), {}, {\n      \"onInput\": this.handleChange,\n      \"onChange\": this.handleChange,\n      \"ref\": \"inputRef\"\n    }), null), [[antInput]]);\n  }\n});\nexport default BaseInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createTextVNode as _createTextVNode, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n\n/**\n * Since search box is in different position with different mode.\n * - Single: in the popup box\n * - multiple: in the selector\n * Move the code as a SearchInput for easy management.\n */\nimport BaseInput from '../../_util/BaseInput';\nimport { inject, ref, onMounted, computed, watch } from 'vue';\nimport PropTypes from '../../_util/vue-types';\nimport { createRef } from './util';\nvar SearchInput = {\n  name: 'SearchInput',\n  inheritAttrs: false,\n  props: {\n    open: PropTypes.looseBool,\n    searchValue: PropTypes.string,\n    prefixCls: PropTypes.string,\n    disabled: PropTypes.looseBool,\n    renderPlaceholder: PropTypes.func,\n    needAlign: PropTypes.looseBool,\n    ariaId: PropTypes.string,\n    isMultiple: PropTypes.looseBool.def(true),\n    showSearch: PropTypes.looseBool\n  },\n  emits: ['mirrorSearchValueChange'],\n  setup: function setup(props, _ref) {\n    var emit = _ref.emit;\n    var measureRef = ref();\n    var inputWidth = ref(0);\n    var mirrorSearchValue = ref(props.searchValue);\n    watch(computed(function () {\n      return props.searchValue;\n    }), function () {\n      mirrorSearchValue.value = props.searchValue;\n    });\n    watch(mirrorSearchValue, function () {\n      emit('mirrorSearchValueChange', mirrorSearchValue.value);\n    }, {\n      immediate: true\n    }); // We measure width and set to the input immediately\n\n    onMounted(function () {\n      if (props.isMultiple) {\n        watch(mirrorSearchValue, function () {\n          inputWidth.value = measureRef.value.scrollWidth;\n        }, {\n          flush: 'post',\n          immediate: true\n        });\n      }\n    });\n    return {\n      measureRef: measureRef,\n      inputWidth: inputWidth,\n      vcTreeSelect: inject('vcTreeSelect', {}),\n      mirrorSearchValue: mirrorSearchValue\n    };\n  },\n  created: function created() {\n    this.inputRef = createRef();\n    this.prevProps = _extends({}, this.$props);\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      var open = _this.$props.open;\n\n      if (open) {\n        _this.focus(true);\n      }\n    });\n  },\n  updated: function updated() {\n    var _this2 = this;\n\n    var open = this.$props.open;\n    var prevProps = this.prevProps;\n    this.$nextTick(function () {\n      if (open && prevProps.open !== open) {\n        _this2.focus();\n      }\n\n      _this2.prevProps = _extends({}, _this2.$props);\n    });\n  },\n  methods: {\n    /**\n     * Need additional timeout for focus cause parent dom is not ready when didMount trigger\n     */\n    focus: function focus(isDidMount) {\n      var _this3 = this;\n\n      if (this.inputRef.current) {\n        if (isDidMount) {\n          setTimeout(function () {\n            _this3.inputRef.current.focus();\n          }, 0);\n        } else {\n          // set it into else, Avoid scrolling when focus\n          this.inputRef.current.focus();\n        }\n      }\n    },\n    blur: function blur() {\n      if (this.inputRef.current) {\n        this.inputRef.current.blur();\n      }\n    },\n    handleInputChange: function handleInputChange(e) {\n      var _e$target = e.target,\n          value = _e$target.value,\n          composing = _e$target.composing;\n      var _this$searchValue = this.searchValue,\n          searchValue = _this$searchValue === void 0 ? '' : _this$searchValue;\n\n      if (e.isComposing || composing || searchValue === value) {\n        this.mirrorSearchValue = value;\n        return;\n      }\n\n      this.vcTreeSelect.onSearchInputChange(e);\n    }\n  },\n  render: function render() {\n    var _this$$props = this.$props,\n        searchValue = _this$$props.searchValue,\n        prefixCls = _this$$props.prefixCls,\n        disabled = _this$$props.disabled,\n        renderPlaceholder = _this$$props.renderPlaceholder,\n        open = _this$$props.open,\n        ariaId = _this$$props.ariaId,\n        isMultiple = _this$$props.isMultiple,\n        showSearch = _this$$props.showSearch;\n    var onSearchInputKeyDown = this.vcTreeSelect.onSearchInputKeyDown,\n        handleInputChange = this.handleInputChange,\n        mirrorSearchValue = this.mirrorSearchValue,\n        inputWidth = this.inputWidth;\n    return _createVNode(_Fragment, null, [_createVNode(\"span\", {\n      \"class\": \"\".concat(prefixCls, \"-selection-search\"),\n      \"style\": isMultiple ? {\n        width: inputWidth + 'px'\n      } : {}\n    }, [_createVNode(BaseInput, {\n      \"type\": \"text\",\n      \"ref\": this.inputRef,\n      \"onChange\": handleInputChange,\n      \"onKeydown\": onSearchInputKeyDown,\n      \"value\": searchValue,\n      \"disabled\": disabled,\n      \"readonly\": !showSearch,\n      \"class\": \"\".concat(prefixCls, \"-selection-search-input\"),\n      \"aria-label\": \"filter select\",\n      \"aria-autocomplete\": \"list\",\n      \"aria-controls\": open ? ariaId : undefined,\n      \"aria-multiline\": \"false\"\n    }, null), isMultiple ? _createVNode(\"span\", {\n      \"ref\": \"measureRef\",\n      \"class\": \"\".concat(prefixCls, \"-selection-search-mirror\"),\n      \"aria-hidden\": true\n    }, [mirrorSearchValue, _createTextVNode(\"\\xA0\")]) : null]), renderPlaceholder && !mirrorSearchValue ? renderPlaceholder() : null]);\n  }\n};\nexport default SearchInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { createVNode as _createVNode } from \"vue\";\nimport generateSelector, { selectorPropTypes } from '../Base/BaseSelector';\nimport { toTitle } from '../util';\nimport { getOptionProps } from '../../../_util/props-util';\nimport { createRef } from '../util';\nimport SearchInput from '../SearchInput';\nvar Selector = generateSelector('single');\nvar SingleSelector = {\n  name: 'SingleSelector',\n  inheritAttrs: false,\n  props: selectorPropTypes(),\n  created: function created() {\n    this.selectorRef = createRef();\n    this.inputRef = createRef();\n  },\n  data: function data() {\n    return {\n      mirrorSearchValue: this.searchValue\n    };\n  },\n  watch: {\n    searchValue: function searchValue(val) {\n      this.mirrorSearchValue = val;\n    }\n  },\n  methods: {\n    onPlaceholderClick: function onPlaceholderClick() {\n      this.inputRef.current.focus();\n    },\n    focus: function focus() {\n      this.selectorRef.current.focus();\n    },\n    blur: function blur() {\n      this.selectorRef.current.blur();\n    },\n    _renderPlaceholder: function _renderPlaceholder() {\n      var _this$$props = this.$props,\n          prefixCls = _this$$props.prefixCls,\n          placeholder = _this$$props.placeholder,\n          searchPlaceholder = _this$$props.searchPlaceholder,\n          selectorValueList = _this$$props.selectorValueList;\n      var currentPlaceholder = placeholder || searchPlaceholder;\n      if (!currentPlaceholder) return null;\n      var hidden = this.mirrorSearchValue || selectorValueList.length; // [Legacy] Not remove the placeholder\n\n      return _createVNode(\"span\", {\n        \"style\": {\n          display: hidden ? 'none' : 'block'\n        },\n        \"onClick\": this.onPlaceholderClick,\n        \"class\": \"\".concat(prefixCls, \"-selection-placeholder\")\n      }, [currentPlaceholder]);\n    },\n    onMirrorSearchValueChange: function onMirrorSearchValueChange(value) {\n      this.mirrorSearchValue = value;\n    },\n    renderSelection: function renderSelection() {\n      var _this$$props2 = this.$props,\n          selectorValueList = _this$$props2.selectorValueList,\n          prefixCls = _this$$props2.prefixCls;\n      var selectedValueNodes = [];\n\n      if (selectorValueList.length && !this.mirrorSearchValue) {\n        var _selectorValueList$ = selectorValueList[0],\n            label = _selectorValueList$.label,\n            value = _selectorValueList$.value;\n        selectedValueNodes.push(_createVNode(\"span\", {\n          \"key\": value,\n          \"title\": toTitle(label),\n          \"class\": \"\".concat(prefixCls, \"-selection-item\")\n        }, [label || value]));\n      }\n\n      selectedValueNodes.push(_createVNode(SearchInput, _objectSpread(_objectSpread(_objectSpread({}, this.$props), this.$attrs), {}, {\n        \"ref\": this.inputRef,\n        \"isMultiple\": false,\n        \"onMirrorSearchValueChange\": this.onMirrorSearchValueChange\n      }), null));\n      return selectedValueNodes;\n    }\n  },\n  render: function render() {\n    var props = _extends(_extends(_extends({}, getOptionProps(this)), this.$attrs), {\n      renderSelection: this.renderSelection,\n      renderPlaceholder: this._renderPlaceholder,\n      ref: this.selectorRef\n    });\n\n    return _createVNode(Selector, props, null);\n  }\n};\nexport default SingleSelector;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport classNames from '../../../../_util/classNames';\nimport PropTypes from '../../../../_util/vue-types';\nimport { toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE } from '../../util';\nimport { getComponent } from '../../../../_util/props-util';\nimport BaseMixin from '../../../../_util/BaseMixin';\nvar Selection = {\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: {\n    prefixCls: PropTypes.string,\n    maxTagTextLength: PropTypes.number,\n    // onRemove: PropTypes.func,\n    label: PropTypes.any,\n    value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n    removeIcon: PropTypes.any\n  },\n  methods: {\n    onRemove: function onRemove(event) {\n      var value = this.$props.value;\n\n      this.__emit('remove', event, value);\n\n      event.stopPropagation();\n    }\n  },\n  render: function render() {\n    var _this$$props = this.$props,\n        prefixCls = _this$$props.prefixCls,\n        maxTagTextLength = _this$$props.maxTagTextLength,\n        label = _this$$props.label,\n        value = _this$$props.value;\n    var content = label || value;\n\n    if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n      content = \"\".concat(content.slice(0, maxTagTextLength), \"...\");\n    }\n\n    var _this$$attrs = this.$attrs,\n        className = _this$$attrs.class,\n        style = _this$$attrs.style,\n        onRemove = _this$$attrs.onRemove;\n    return _createVNode(\"span\", _objectSpread(_objectSpread({\n      \"style\": _extends(_extends({}, UNSELECTABLE_STYLE), style)\n    }, UNSELECTABLE_ATTRIBUTE), {}, {\n      \"role\": \"menuitem\",\n      \"class\": classNames(\"\".concat(prefixCls, \"-selection-item\"), className),\n      \"title\": toTitle(label)\n    }), [_createVNode(\"span\", {\n      \"class\": \"\".concat(prefixCls, \"-selection-item-content\")\n    }, [content]), onRemove && _createVNode(\"span\", {\n      \"class\": \"\".concat(prefixCls, \"-selection-item-remove\"),\n      \"onClick\": this.onRemove\n    }, [getComponent(this, 'removeIcon')])]);\n  }\n};\nexport default Selection;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport PropTypes from '../../../../_util/vue-types';\nimport { createRef } from '../../util';\nimport generateSelector, { selectorPropTypes } from '../../Base/BaseSelector';\nimport SearchInput from '../../SearchInput';\nimport Selection from './Selection';\nimport { getComponent, getSlot } from '../../../../_util/props-util';\nimport BaseMixin from '../../../../_util/BaseMixin';\nvar TREE_SELECT_EMPTY_VALUE_KEY = 'RC_TREE_SELECT_EMPTY_VALUE_KEY';\nvar Selector = generateSelector('multiple'); // export const multipleSelectorContextTypes = {\n//   onMultipleSelectorRemove: PropTypes.func.isRequired,\n// }\n\nvar MultipleSelector = {\n  name: 'MultipleSelector',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: _extends(_extends(_extends({}, selectorPropTypes()), SearchInput.props), {\n    selectorValueList: PropTypes.array,\n    disabled: PropTypes.looseBool,\n    labelInValue: PropTypes.looseBool,\n    maxTagCount: PropTypes.number,\n    maxTagPlaceholder: PropTypes.any\n  }),\n  setup: function setup() {\n    return {\n      vcTreeSelect: inject('vcTreeSelect', {})\n    };\n  },\n  created: function created() {\n    this.inputRef = createRef();\n  },\n  methods: {\n    onPlaceholderClick: function onPlaceholderClick() {\n      this.inputRef.current.focus();\n    },\n    focus: function focus() {\n      this.inputRef.current.focus();\n    },\n    blur: function blur() {\n      this.inputRef.current.blur();\n    },\n    _renderPlaceholder: function _renderPlaceholder() {\n      var _this$$props = this.$props,\n          prefixCls = _this$$props.prefixCls,\n          placeholder = _this$$props.placeholder,\n          searchPlaceholder = _this$$props.searchPlaceholder,\n          searchValue = _this$$props.searchValue,\n          selectorValueList = _this$$props.selectorValueList;\n      var currentPlaceholder = placeholder || searchPlaceholder;\n      if (!currentPlaceholder) return null;\n      var hidden = searchValue || selectorValueList.length; // [Legacy] Not remove the placeholder\n\n      return _createVNode(\"span\", {\n        \"style\": {\n          display: hidden ? 'none' : 'block'\n        },\n        \"onClick\": this.onPlaceholderClick,\n        \"class\": \"\".concat(prefixCls, \"-selection-placeholder\")\n      }, [currentPlaceholder]);\n    },\n    onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      this.__emit.apply(this, ['choiceAnimationLeave'].concat(args));\n    },\n    renderSelection: function renderSelection() {\n      var _this = this;\n\n      var _this$$props2 = this.$props,\n          selectorValueList = _this$$props2.selectorValueList,\n          labelInValue = _this$$props2.labelInValue,\n          maxTagCount = _this$$props2.maxTagCount;\n      var children = getSlot(this);\n      var onMultipleSelectorRemove = this.vcTreeSelect.onMultipleSelectorRemove; // Check if `maxTagCount` is set\n\n      var myValueList = selectorValueList;\n\n      if (maxTagCount >= 0) {\n        myValueList = selectorValueList.slice(0, maxTagCount);\n      } // Selector node list\n\n\n      var selectedValueNodes = myValueList.map(function (_ref) {\n        var label = _ref.label,\n            value = _ref.value;\n        return _createVNode(Selection, _objectSpread(_objectSpread({}, _extends(_extends({}, _this.$props), {\n          label: label,\n          value: value,\n          onRemove: onMultipleSelectorRemove\n        })), {}, {\n          \"key\": value || TREE_SELECT_EMPTY_VALUE_KEY\n        }), {\n          default: function _default() {\n            return [children];\n          }\n        });\n      }); // Rest node count\n\n      if (maxTagCount >= 0 && maxTagCount < selectorValueList.length) {\n        var content = \"+ \".concat(selectorValueList.length - maxTagCount, \" ...\");\n        var maxTagPlaceholder = getComponent(this, 'maxTagPlaceholder', {}, false);\n\n        if (typeof maxTagPlaceholder === 'string') {\n          content = maxTagPlaceholder;\n        } else if (typeof maxTagPlaceholder === 'function') {\n          var restValueList = selectorValueList.slice(maxTagCount);\n          content = maxTagPlaceholder(labelInValue ? restValueList : restValueList.map(function (_ref2) {\n            var value = _ref2.value;\n            return value;\n          }));\n        }\n\n        var restNodeSelect = _createVNode(Selection, _objectSpread(_objectSpread({}, _extends(_extends({}, this.$props), {\n          label: content,\n          value: null\n        })), {}, {\n          \"key\": \"rc-tree-select-internal-max-tag-counter\"\n        }), {\n          default: function _default() {\n            return [children];\n          }\n        });\n\n        selectedValueNodes.push(restNodeSelect);\n      }\n\n      selectedValueNodes.push(_createVNode(SearchInput, _objectSpread(_objectSpread(_objectSpread({\n        \"key\": \"SearchInput\"\n      }, this.$props), this.$attrs), {}, {\n        \"ref\": this.inputRef\n      }), {\n        default: function _default() {\n          return [children];\n        }\n      }));\n      return selectedValueNodes;\n    }\n  },\n  render: function render() {\n    var _this2 = this;\n\n    return _createVNode(Selector, _extends(_extends(_extends({}, this.$props), this.$attrs), {\n      tabindex: -1,\n      showArrow: false,\n      renderSelection: this.renderSelection,\n      renderPlaceholder: this._renderPlaceholder\n    }), {\n      default: function _default() {\n        return [getSlot(_this2)];\n      }\n    });\n  }\n};\nexport default MultipleSelector;","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\nimport VcTree from '../../vc-tree';\n/**\n * SelectNode wrapped the tree node.\n * Let's use SelectNode instead of TreeNode\n * since TreeNode is so confuse here.\n */\n\nvar TreeNode = VcTree.TreeNode;\n\nfunction SelectNode(_, _ref) {\n  var attrs = _ref.attrs,\n      slots = _ref.slots;\n  return _createVNode(TreeNode, attrs, slots);\n}\n\nSelectNode.isTreeNode = true;\nSelectNode.inheritAttrs = false;\nSelectNode.displayName = 'ATreeSelectNode';\nexport default SelectNode;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\nimport { inject } from 'vue';\nimport warning from 'warning';\nimport PropTypes from '../../../_util/vue-types';\nimport Tree from '../../../vc-tree';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { createRef } from '../util'; // export const popupContextTypes = {\n//   onPopupKeyDown: PropTypes.func.isRequired,\n//   onTreeNodeSelect: PropTypes.func.isRequired,\n//   onTreeNodeCheck: PropTypes.func.isRequired,\n// }\n\nfunction getDerivedState(nextProps, prevState) {\n  var _ref = prevState || {},\n      _ref$_prevProps = _ref._prevProps,\n      prevProps = _ref$_prevProps === void 0 ? {} : _ref$_prevProps,\n      loadedKeys = _ref._loadedKeys,\n      expandedKeyList = _ref._expandedKeyList,\n      cachedExpandedKeyList = _ref._cachedExpandedKeyList;\n\n  var valueList = nextProps.valueList,\n      valueEntities = nextProps.valueEntities,\n      keyEntities = nextProps.keyEntities,\n      treeExpandedKeys = nextProps.treeExpandedKeys,\n      filteredTreeNodes = nextProps.filteredTreeNodes,\n      upperSearchValue = nextProps.upperSearchValue;\n  var newState = {\n    _prevProps: _extends({}, nextProps)\n  }; // Check value update\n\n  if (valueList !== prevProps.valueList) {\n    newState._keyList = valueList.map(function (_ref2) {\n      var value = _ref2.value;\n      return valueEntities[value];\n    }).filter(function (entity) {\n      return entity;\n    }).map(function (_ref3) {\n      var key = _ref3.key;\n      return key;\n    });\n  } // Show all when tree is in filter mode\n\n\n  if (!treeExpandedKeys && filteredTreeNodes && filteredTreeNodes.length && filteredTreeNodes !== prevProps.filteredTreeNodes) {\n    newState._expandedKeyList = _toConsumableArray(keyEntities.keys());\n  } // Cache `expandedKeyList` when filter set\n\n\n  if (upperSearchValue && !prevProps.upperSearchValue) {\n    newState._cachedExpandedKeyList = expandedKeyList;\n  } else if (!upperSearchValue && prevProps.upperSearchValue && !treeExpandedKeys) {\n    newState._expandedKeyList = cachedExpandedKeyList || [];\n    newState._cachedExpandedKeyList = [];\n  } // Use expandedKeys if provided\n\n\n  if (prevProps.treeExpandedKeys !== treeExpandedKeys) {\n    newState._expandedKeyList = treeExpandedKeys;\n  } // Clean loadedKeys if key not exist in keyEntities anymore\n\n\n  if (nextProps.loadData) {\n    newState._loadedKeys = loadedKeys.filter(function (key) {\n      return keyEntities.has(key);\n    });\n  }\n\n  return newState;\n}\n\nvar BasePopup = {\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  name: 'BasePopup',\n  props: {\n    prefixCls: PropTypes.string,\n    upperSearchValue: PropTypes.string,\n    valueList: PropTypes.array,\n    searchHalfCheckedKeys: PropTypes.array,\n    valueEntities: PropTypes.object,\n    keyEntities: Map,\n    treeIcon: PropTypes.looseBool,\n    treeLine: PropTypes.looseBool,\n    treeNodeFilterProp: PropTypes.string,\n    treeCheckable: PropTypes.any,\n    treeCheckStrictly: PropTypes.looseBool,\n    treeDefaultExpandAll: PropTypes.looseBool,\n    treeDefaultExpandedKeys: PropTypes.array,\n    treeExpandedKeys: PropTypes.array,\n    loadData: PropTypes.func,\n    multiple: PropTypes.looseBool,\n    // onTreeExpand: PropTypes.func,\n    searchValue: PropTypes.string,\n    treeNodes: PropTypes.any,\n    filteredTreeNodes: PropTypes.any,\n    notFoundContent: PropTypes.any,\n    ariaId: PropTypes.string,\n    switcherIcon: PropTypes.any,\n    // HOC\n    renderSearch: PropTypes.func,\n    // onTreeExpanded: PropTypes.func,\n    __propsSymbol__: PropTypes.any\n  },\n  setup: function setup() {\n    return {\n      vcTreeSelect: inject('vcTreeSelect', {})\n    };\n  },\n  watch: {\n    __propsSymbol__: function __propsSymbol__() {\n      var state = getDerivedState(this.$props, this.$data);\n      this.setState(state);\n    }\n  },\n  data: function data() {\n    this.treeRef = createRef();\n    warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n    var _this$$props = this.$props,\n        treeDefaultExpandAll = _this$$props.treeDefaultExpandAll,\n        treeDefaultExpandedKeys = _this$$props.treeDefaultExpandedKeys,\n        keyEntities = _this$$props.keyEntities; // TODO: make `expandedKeyList` control\n\n    var expandedKeyList = treeDefaultExpandedKeys;\n\n    if (treeDefaultExpandAll) {\n      expandedKeyList = _toConsumableArray(keyEntities.keys());\n    }\n\n    var state = {\n      _keyList: [],\n      _expandedKeyList: expandedKeyList,\n      // Cache `expandedKeyList` when tree is in filter. This is used in `getDerivedState`\n      _cachedExpandedKeyList: [],\n      _loadedKeys: [],\n      _prevProps: {}\n    };\n    return _extends(_extends({}, state), getDerivedState(this.$props, state));\n  },\n  methods: {\n    onTreeExpand: function onTreeExpand(expandedKeyList) {\n      var _this = this;\n\n      var treeExpandedKeys = this.$props.treeExpandedKeys; // Set uncontrolled state\n\n      if (!treeExpandedKeys) {\n        this.setState({\n          _expandedKeyList: expandedKeyList\n        }, function () {\n          _this.__emit('treeExpanded');\n        });\n      }\n\n      this.__emit('treeExpand', expandedKeyList);\n    },\n    onLoad: function onLoad(loadedKeys) {\n      this.setState({\n        _loadedKeys: loadedKeys\n      });\n    },\n    getTree: function getTree() {\n      return this.treeRef.current;\n    },\n\n    /**\n     * Not pass `loadData` when searching. To avoid loop ajax call makes browser crash.\n     */\n    getLoadData: function getLoadData() {\n      var _this$$props2 = this.$props,\n          loadData = _this$$props2.loadData,\n          upperSearchValue = _this$$props2.upperSearchValue;\n      if (upperSearchValue) return null;\n      return loadData;\n    },\n\n    /**\n     * This method pass to Tree component which is used for add filtered class\n     * in TreeNode > li\n     */\n    filterTreeNode: function filterTreeNode(treeNode) {\n      var _this$$props3 = this.$props,\n          upperSearchValue = _this$$props3.upperSearchValue,\n          treeNodeFilterProp = _this$$props3.treeNodeFilterProp;\n      var filterVal = treeNode[treeNodeFilterProp];\n\n      if (typeof filterVal === 'string') {\n        return upperSearchValue && filterVal.toUpperCase().indexOf(upperSearchValue) !== -1;\n      }\n\n      return false;\n    },\n    renderNotFound: function renderNotFound() {\n      var _this$$props4 = this.$props,\n          prefixCls = _this$$props4.prefixCls,\n          notFoundContent = _this$$props4.notFoundContent;\n      return _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-not-found\")\n      }, [notFoundContent]);\n    }\n  },\n  render: function render() {\n    var _this$$data = this.$data,\n        keyList = _this$$data._keyList,\n        expandedKeyList = _this$$data._expandedKeyList,\n        loadedKeys = _this$$data._loadedKeys;\n    var _this$$props5 = this.$props,\n        prefixCls = _this$$props5.prefixCls,\n        treeNodes = _this$$props5.treeNodes,\n        filteredTreeNodes = _this$$props5.filteredTreeNodes,\n        treeIcon = _this$$props5.treeIcon,\n        treeLine = _this$$props5.treeLine,\n        treeCheckable = _this$$props5.treeCheckable,\n        treeCheckStrictly = _this$$props5.treeCheckStrictly,\n        multiple = _this$$props5.multiple,\n        ariaId = _this$$props5.ariaId,\n        renderSearch = _this$$props5.renderSearch,\n        switcherIcon = _this$$props5.switcherIcon,\n        searchHalfCheckedKeys = _this$$props5.searchHalfCheckedKeys;\n    var _this$vcTreeSelect = this.vcTreeSelect,\n        onPopupKeyDown = _this$vcTreeSelect.onPopupKeyDown,\n        onTreeNodeSelect = _this$vcTreeSelect.onTreeNodeSelect,\n        onTreeNodeCheck = _this$vcTreeSelect.onTreeNodeCheck;\n    var loadData = this.getLoadData();\n    var treeProps = {};\n\n    if (treeCheckable) {\n      treeProps.checkedKeys = keyList;\n    } else {\n      treeProps.selectedKeys = keyList;\n    }\n\n    var $notFound;\n    var $treeNodes;\n\n    if (filteredTreeNodes) {\n      if (filteredTreeNodes.length) {\n        treeProps.checkStrictly = true;\n        $treeNodes = filteredTreeNodes; // Fill halfCheckedKeys\n\n        if (treeCheckable && !treeCheckStrictly) {\n          treeProps.checkedKeys = {\n            checked: keyList,\n            halfChecked: searchHalfCheckedKeys\n          };\n        }\n      } else {\n        $notFound = this.renderNotFound();\n      }\n    } else if (!treeNodes || !treeNodes.length) {\n      $notFound = this.renderNotFound();\n    } else {\n      $treeNodes = treeNodes;\n    }\n\n    var $tree;\n\n    if ($notFound) {\n      $tree = $notFound;\n    } else {\n      var treeAllProps = _extends(_extends({\n        prefixCls: \"\".concat(prefixCls, \"-tree\"),\n        showIcon: treeIcon,\n        showLine: treeLine,\n        selectable: !treeCheckable,\n        checkable: treeCheckable,\n        checkStrictly: treeCheckStrictly,\n        multiple: multiple,\n        loadData: loadData,\n        loadedKeys: loadedKeys,\n        expandedKeys: expandedKeyList,\n        filterTreeNode: this.filterTreeNode,\n        switcherIcon: switcherIcon\n      }, treeProps), {\n        children: $treeNodes,\n        onSelect: onTreeNodeSelect,\n        onCheck: onTreeNodeCheck,\n        onExpand: this.onTreeExpand,\n        onLoad: this.onLoad\n      });\n\n      $tree = _createVNode(Tree, _objectSpread(_objectSpread({}, treeAllProps), {}, {\n        \"ref\": this.treeRef,\n        \"__propsSymbol__\": []\n      }), null);\n    }\n\n    return _createVNode(\"div\", {\n      \"role\": \"listbox\",\n      \"id\": ariaId,\n      \"onKeydown\": onPopupKeyDown,\n      \"tabindex\": -1\n    }, [renderSearch ? renderSearch() : null, $tree]);\n  }\n};\nexport default BasePopup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode } from \"vue\";\n\n/**\n * ARIA: https://www.w3.org/TR/wai-aria/#combobox\n * Sample 1: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/combobox/aria1.1pattern/listbox-combo.html\n * Sample 2: https://www.w3.org/blog/wai-components-gallery/widget/combobox-with-aria-autocompleteinline/\n *\n * Tab logic:\n * Popup is close\n * 1. Focus input (mark component as focused)\n * 2. Press enter to show the popup\n * 3. If popup has input, focus it\n *\n * Popup is open\n * 1. press tab to close the popup\n * 2. Focus back to the selection input box\n * 3. Let the native tab going on\n *\n * TreeSelect use 2 design type.\n * In single mode, we should focus on the `span`\n * In multiple mode, we should focus on the `input`\n */\nimport { defineComponent, provide } from 'vue';\nimport shallowEqual from '../../_util/shallowequal';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport warning from 'warning';\nimport PropTypes, { withUndefined } from '../../_util/vue-types';\nimport KeyCode from '../../_util/KeyCode';\nimport SelectTrigger from './SelectTrigger';\nimport SingleSelector from './Selector/SingleSelector';\nimport MultipleSelector from './Selector/MultipleSelector';\nimport { SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './strategies';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { createRef, generateAriaId, formatInternalValue, formatSelectorValue, parseSimpleTreeData, convertDataToTree, convertTreeToEntities, conductCheck, getHalfCheckedKeys, flatToHierarchy, isPosRelated, isLabelInValue as _isLabelInValue, getFilterTree, cleanEntity, findPopupContainer } from './util';\nimport SelectNode from './SelectNode';\nimport { initDefaultProps, getOptionProps, getPropsData, findDOMNode } from '../../_util/props-util';\nimport BasePopup from './Popup/MultiplePopup';\n\nfunction getWatch() {\n  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var watch = {};\n  keys.forEach(function (k) {\n    watch[k] = function () {\n      this.needSyncKeys[k] = true;\n    };\n  });\n  return watch;\n}\n\nvar Select = defineComponent({\n  name: 'Select',\n  mixins: [BaseMixin],\n  inheritAttrs: false,\n  props: initDefaultProps({\n    prefixCls: PropTypes.string,\n    prefixAria: PropTypes.string,\n    multiple: PropTypes.looseBool,\n    showArrow: PropTypes.looseBool,\n    open: PropTypes.looseBool,\n    value: PropTypes.any,\n    autofocus: PropTypes.looseBool,\n    defaultOpen: PropTypes.looseBool,\n    defaultValue: PropTypes.any,\n    showSearch: PropTypes.looseBool,\n    placeholder: PropTypes.any,\n    inputValue: PropTypes.string,\n    searchValue: PropTypes.string,\n    autoClearSearchValue: PropTypes.looseBool,\n    searchPlaceholder: PropTypes.any,\n    disabled: PropTypes.looseBool,\n    children: PropTypes.any,\n    labelInValue: PropTypes.looseBool,\n    maxTagCount: PropTypes.number,\n    maxTagPlaceholder: PropTypes.any,\n    maxTagTextLength: PropTypes.number,\n    showCheckedStrategy: PropTypes.oneOf([SHOW_ALL, SHOW_PARENT, SHOW_CHILD]),\n    dropdownClassName: PropTypes.string,\n    dropdownStyle: PropTypes.object,\n    dropdownVisibleChange: PropTypes.func,\n    dropdownMatchSelectWidth: PropTypes.looseBool,\n    treeData: PropTypes.array,\n    treeDataSimpleMode: withUndefined(PropTypes.oneOfType([PropTypes.looseBool, PropTypes.object])),\n    treeNodeFilterProp: PropTypes.string,\n    treeNodeLabelProp: PropTypes.string,\n    treeCheckable: PropTypes.any,\n    // treeCheckable: PropTypes.any,\n    treeCheckStrictly: PropTypes.looseBool,\n    treeIcon: PropTypes.looseBool,\n    treeLine: PropTypes.looseBool,\n    treeDefaultExpandAll: PropTypes.looseBool,\n    treeDefaultExpandedKeys: PropTypes.array,\n    treeExpandedKeys: PropTypes.array,\n    loadData: PropTypes.func,\n    filterTreeNode: withUndefined(PropTypes.oneOfType([PropTypes.func, PropTypes.looseBool])),\n    notFoundContent: PropTypes.any,\n    getPopupContainer: PropTypes.func,\n    // onSearch: PropTypes.func,\n    // onSelect: PropTypes.func,\n    // onDeselect: PropTypes.func,\n    // onChange: PropTypes.func,\n    // onDropdownVisibleChange: PropTypes.func,\n    // onTreeExpand: PropTypes.func,\n    allowClear: PropTypes.looseBool,\n    transitionName: PropTypes.string,\n    animation: PropTypes.string,\n    choiceTransitionName: PropTypes.string,\n    inputIcon: PropTypes.any,\n    clearIcon: PropTypes.any,\n    removeIcon: PropTypes.any,\n    switcherIcon: PropTypes.any,\n    __propsSymbol__: PropTypes.any\n  }, {\n    prefixCls: 'rc-tree-select',\n    prefixAria: 'rc-tree-select',\n    showArrow: true,\n    showSearch: true,\n    autoClearSearchValue: true,\n    showCheckedStrategy: SHOW_CHILD,\n    // dropdownMatchSelectWidth change the origin design, set to false now\n    // ref: https://github.com/react-component/select/blob/4cad95e098a341a09de239ad6981067188842020/src/Select.jsx#L344\n    // ref: https://github.com/react-component/select/pull/71\n    treeNodeFilterProp: 'value',\n    treeNodeLabelProp: 'title',\n    treeIcon: false,\n    notFoundContent: 'Not Found',\n    dropdownStyle: {},\n    dropdownVisibleChange: function dropdownVisibleChange() {\n      return true;\n    }\n  }),\n  data: function data() {\n    warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n    var _this$$props = this.$props,\n        prefixAria = _this$$props.prefixAria,\n        defaultOpen = _this$$props.defaultOpen,\n        open = _this$$props.open;\n    this.needSyncKeys = {};\n    this.selectorRef = createRef();\n    this.selectTriggerRef = createRef(); // ARIA need `aria-controls` props mapping\n    // Since this need user input. Let's generate ourselves\n\n    this.ariaId = generateAriaId(\"\".concat(prefixAria, \"-list\"));\n    var state = {\n      _open: open || defaultOpen,\n      _valueList: [],\n      _searchHalfCheckedKeys: [],\n      _missValueList: [],\n      _selectorValueList: [],\n      _valueEntities: {},\n      _posEntities: new Map(),\n      _keyEntities: new Map(),\n      _searchValue: '',\n      _prevProps: {},\n      _init: true,\n      _focused: undefined,\n      _treeNodes: undefined,\n      _filteredTreeNodes: undefined\n    };\n    var newState = this.getDerivedState(this.$props, state);\n    return _extends(_extends({}, state), newState);\n  },\n  watch: _extends(_extends({}, getWatch(['treeData', 'defaultValue', 'value'])), {\n    __propsSymbol__: function __propsSymbol__() {\n      var state = this.getDerivedState(this.$props, this.$data);\n      this.setState(state);\n      this.needSyncKeys = {};\n    },\n    _valueList: function _valueList() {\n      var _this = this;\n\n      this.$nextTick(function () {\n        _this.forcePopupAlign();\n      });\n    },\n    _open: function _open(open) {\n      var _this2 = this;\n\n      this.$nextTick(function () {\n        if (!open && !_this2.isSearchValueControlled()) {\n          _this2.setState({\n            _searchValue: ''\n          });\n        }\n\n        if (open && !_this2.$data._searchValue) {\n          _this2.setState({\n            _filteredTreeNodes: null\n          });\n        }\n\n        var prefixCls = _this2.$props.prefixCls;\n        var _this2$$data = _this2.$data,\n            selectorValueList = _this2$$data._selectorValueList,\n            valueEntities = _this2$$data._valueEntities;\n\n        var isMultiple = _this2.isMultiple(); // Scroll to value position, only need sync on single mode\n\n\n        if (!isMultiple && selectorValueList.length && open && _this2.popup) {\n          var value = selectorValueList[0].value;\n\n          var _this2$popup$getTree = _this2.popup.getTree(),\n              domTreeNodes = _this2$popup$getTree.domTreeNodes;\n\n          var _ref = valueEntities[value] || {},\n              key = _ref.key;\n\n          var treeNode = domTreeNodes[key];\n\n          if (treeNode) {\n            var domNode = findDOMNode(treeNode);\n            requestAnimationFrame(function () {\n              var popupNode = findDOMNode(_this2.popup);\n              var triggerContainer = findPopupContainer(popupNode, \"\".concat(prefixCls, \"-dropdown\"));\n\n              if (domNode && triggerContainer) {\n                scrollIntoView(domNode, triggerContainer, {\n                  onlyScrollIfNeeded: true,\n                  offsetTop: 0\n                });\n              }\n            });\n          }\n        }\n      });\n    }\n  }),\n  created: function created() {\n    provide('vcTreeSelect', {\n      onSelectorFocus: this.onSelectorFocus,\n      onSelectorBlur: this.onSelectorBlur,\n      onSelectorKeyDown: this.onComponentKeyDown,\n      onSelectorClear: this.onSelectorClear,\n      onMultipleSelectorRemove: this.onMultipleSelectorRemove,\n      onTreeNodeSelect: this.onTreeNodeSelect,\n      onTreeNodeCheck: this.onTreeNodeCheck,\n      onPopupKeyDown: this.onComponentKeyDown,\n      onSearchInputChange: this.onSearchInputChange,\n      onSearchInputKeyDown: this.onSearchInputKeyDown\n    });\n  },\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.$nextTick(function () {\n      var _this3$$props = _this3.$props,\n          autofocus = _this3$$props.autofocus,\n          disabled = _this3$$props.disabled;\n\n      if (autofocus && !disabled) {\n        _this3.focus();\n      }\n    });\n  },\n  methods: {\n    getDerivedState: function getDerivedState(nextProps, prevState) {\n      var _prevState$_prevProps = prevState._prevProps,\n          prevProps = _prevState$_prevProps === void 0 ? {} : _prevState$_prevProps;\n      var treeCheckable = nextProps.treeCheckable,\n          treeCheckStrictly = nextProps.treeCheckStrictly,\n          filterTreeNode = nextProps.filterTreeNode,\n          treeNodeFilterProp = nextProps.treeNodeFilterProp,\n          treeDataSimpleMode = nextProps.treeDataSimpleMode;\n      var newState = {\n        _prevProps: _extends({}, nextProps),\n        _init: false\n      };\n      var self = this; // Process the state when props updated\n\n      function processState(propName, updater) {\n        if (prevProps[propName] !== nextProps[propName] || self.needSyncKeys[propName]) {\n          updater(nextProps[propName], prevProps[propName]);\n          return true;\n        }\n\n        return false;\n      }\n\n      var valueRefresh = false; // Open\n\n      processState('open', function (propValue) {\n        newState._open = propValue;\n      }); // Tree Nodes\n\n      var treeNodes;\n      var treeDataChanged = false;\n      var treeDataModeChanged = false;\n      processState('treeData', function (propValue) {\n        treeNodes = convertDataToTree(propValue);\n        treeDataChanged = true;\n      });\n      processState('treeDataSimpleMode', function (propValue, prevValue) {\n        if (!propValue) return;\n        var prev = !prevValue || prevValue === true ? {} : prevValue; // Shallow equal to avoid dynamic prop object\n\n        if (!shallowEqual(propValue, prev)) {\n          treeDataModeChanged = true;\n        }\n      }); // Parse by `treeDataSimpleMode`\n\n      if (treeDataSimpleMode && (treeDataChanged || treeDataModeChanged)) {\n        var simpleMapper = _extends({\n          id: 'id',\n          pId: 'pId',\n          rootPId: null\n        }, treeDataSimpleMode !== true ? treeDataSimpleMode : {});\n\n        treeNodes = convertDataToTree(parseSimpleTreeData(nextProps.treeData, simpleMapper));\n      } // If `treeData` not provide, use children TreeNodes\n\n\n      if (!nextProps.treeData) {\n        // processState('children', (propValue) => {\n        //   treeNodes = Array.isArray(propValue) ? propValue : [propValue]\n        // })\n        treeNodes = this.children || [];\n      } // Convert `treeData` to entities\n\n\n      if (treeNodes) {\n        var entitiesMap = convertTreeToEntities(treeNodes);\n        newState._treeNodes = treeNodes;\n        newState._posEntities = entitiesMap.posEntities;\n        newState._valueEntities = entitiesMap.valueEntities;\n        newState._keyEntities = entitiesMap.keyEntities;\n        valueRefresh = true;\n      } // Value List\n\n\n      if (prevState._init) {\n        processState('defaultValue', function (propValue) {\n          newState._valueList = formatInternalValue(propValue, nextProps);\n          valueRefresh = true;\n        });\n      }\n\n      processState('value', function (propValue) {\n        newState._valueList = formatInternalValue(propValue, nextProps);\n        valueRefresh = true;\n      }); // Selector Value List\n\n      if (valueRefresh) {\n        // Find out that value not exist in the tree\n        var missValueList = [];\n        var filteredValueList = [];\n        var keyList = []; // Get latest value list\n\n        var latestValueList = newState._valueList;\n\n        if (!latestValueList) {\n          // Also need add prev missValueList to avoid new treeNodes contains the value\n          latestValueList = [].concat(_toConsumableArray(prevState._valueList), _toConsumableArray(prevState._missValueList));\n        } // Get key by value\n\n\n        var valueLabels = {};\n        latestValueList.forEach(function (wrapperValue) {\n          var value = wrapperValue.value,\n              label = wrapperValue.label;\n          var entity = (newState._valueEntities || prevState._valueEntities)[value];\n          valueLabels[value] = label;\n\n          if (entity) {\n            keyList.push(entity.key);\n            filteredValueList.push(wrapperValue);\n            return;\n          } // If not match, it may caused by ajax load. We need keep this\n\n\n          missValueList.push(wrapperValue);\n        }); // We need calculate the value when tree is checked tree\n\n        if (treeCheckable && !treeCheckStrictly) {\n          // Calculate the keys need to be checked\n          var _conductCheck = conductCheck(keyList, true, newState._keyEntities || prevState._keyEntities),\n              checkedKeys = _conductCheck.checkedKeys; // Format value list again for internal usage\n\n\n          newState._valueList = checkedKeys.map(function (key) {\n            var val = (newState._keyEntities || prevState._keyEntities).get(key).value;\n\n            var wrappedValue = {\n              value: val\n            };\n\n            if (valueLabels[val] !== undefined) {\n              wrappedValue.label = valueLabels[val];\n            }\n\n            return wrappedValue;\n          });\n        } else {\n          newState._valueList = filteredValueList;\n        } // Fill the missValueList, we still need display in the selector\n\n\n        newState._missValueList = missValueList; // Calculate the value list for `Selector` usage\n\n        newState._selectorValueList = formatSelectorValue(newState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n      } // [Legacy] To align with `Select` component,\n      // We use `searchValue` instead of `inputValue` but still keep the api\n      // `inputValue` support `null` to work as `autoClearSearchValue`\n\n\n      processState('inputValue', function (propValue) {\n        if (propValue !== null) {\n          newState._searchValue = propValue;\n        }\n      }); // Search value\n\n      processState('searchValue', function (propValue) {\n        newState._searchValue = propValue;\n      }); // Do the search logic\n\n      if (newState._searchValue !== undefined || prevState._searchValue && treeNodes) {\n        var searchValue = newState._searchValue !== undefined ? newState._searchValue : prevState._searchValue;\n        var upperSearchValue = String(searchValue).toUpperCase();\n        var filterTreeNodeFn = filterTreeNode;\n\n        if (filterTreeNode === false) {\n          // Don't filter if is false\n          filterTreeNodeFn = function filterTreeNodeFn() {\n            return true;\n          };\n        } else if (typeof filterTreeNodeFn !== 'function') {\n          // When is not function (true or undefined), use inner filter\n          filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n            var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n            return nodeValue.indexOf(upperSearchValue) !== -1;\n          };\n        }\n\n        newState._filteredTreeNodes = getFilterTree(newState._treeNodes || prevState._treeNodes, searchValue, filterTreeNodeFn, newState._valueEntities || prevState._valueEntities, SelectNode);\n      } // We should re-calculate the halfCheckedKeys when in search mode\n\n\n      if (valueRefresh && treeCheckable && !treeCheckStrictly && (newState._searchValue || prevState._searchValue)) {\n        newState._searchHalfCheckedKeys = getHalfCheckedKeys(newState._valueList, newState._valueEntities || prevState._valueEntities);\n      } // Checked Strategy\n\n\n      processState('showCheckedStrategy', function () {\n        newState._selectorValueList = newState._selectorValueList || formatSelectorValue(newState._valueList || prevState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n      });\n      return newState;\n    },\n    // ==================== Selector ====================\n    onSelectorFocus: function onSelectorFocus() {\n      this.setState({\n        _focused: true\n      });\n    },\n    onSelectorBlur: function onSelectorBlur() {\n      this.setState({\n        _focused: false\n      }); // TODO: Close when Popup is also not focused\n      // this.setState({ open: false });\n    },\n    // Handle key board event in both Selector and Popup\n    onComponentKeyDown: function onComponentKeyDown(event) {\n      var open = this.$data._open;\n      var keyCode = event.keyCode;\n\n      if (!open) {\n        if ([KeyCode.ENTER, KeyCode.DOWN].indexOf(keyCode) !== -1) {\n          this.setOpenState(true);\n        }\n      } else if (KeyCode.ESC === keyCode) {\n        this.setOpenState(false);\n      } else if ([KeyCode.UP, KeyCode.DOWN, KeyCode.LEFT, KeyCode.RIGHT].indexOf(keyCode) !== -1) {\n        // TODO: Handle `open` state\n        event.stopPropagation();\n      }\n    },\n    onDeselect: function onDeselect(wrappedValue, node, nodeEventInfo) {\n      this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n    },\n    onSelectorClear: function onSelectorClear(event) {\n      var disabled = this.$props.disabled;\n      if (disabled) return;\n      this.triggerChange([], []);\n\n      if (!this.isSearchValueControlled()) {\n        this.setUncontrolledState({\n          _searchValue: '',\n          _filteredTreeNodes: null\n        });\n      }\n\n      event.stopPropagation();\n    },\n    onMultipleSelectorRemove: function onMultipleSelectorRemove(event, removeValue) {\n      event.stopPropagation();\n      var _this$$data = this.$data,\n          valueList = _this$$data._valueList,\n          missValueList = _this$$data._missValueList,\n          valueEntities = _this$$data._valueEntities;\n      var _this$$props2 = this.$props,\n          treeCheckable = _this$$props2.treeCheckable,\n          treeCheckStrictly = _this$$props2.treeCheckStrictly,\n          treeNodeLabelProp = _this$$props2.treeNodeLabelProp,\n          disabled = _this$$props2.disabled;\n      if (disabled) return; // Find trigger entity\n\n      var triggerEntity = valueEntities[removeValue]; // Clean up value\n\n      var newValueList = valueList;\n\n      if (triggerEntity) {\n        // If value is in tree\n        if (treeCheckable && !treeCheckStrictly) {\n          newValueList = valueList.filter(function (_ref2) {\n            var value = _ref2.value;\n            var entity = valueEntities[value];\n            return !isPosRelated(entity.pos, triggerEntity.pos);\n          });\n        } else {\n          newValueList = valueList.filter(function (_ref3) {\n            var value = _ref3.value;\n            return value !== removeValue;\n          });\n        }\n      }\n\n      var triggerNode = triggerEntity ? triggerEntity.node : null;\n      var extraInfo = {\n        triggerValue: removeValue,\n        triggerNode: triggerNode\n      };\n      var deselectInfo = {\n        node: triggerNode\n      }; // [Legacy] Little hack on this to make same action as `onCheck` event.\n\n      if (treeCheckable) {\n        var filteredEntityList = newValueList.map(function (_ref4) {\n          var value = _ref4.value;\n          return valueEntities[value];\n        });\n        deselectInfo.event = 'check';\n        deselectInfo.checked = false;\n        deselectInfo.checkedNodes = filteredEntityList.map(function (_ref5) {\n          var node = _ref5.node;\n          return node;\n        });\n        deselectInfo.checkedNodesPositions = filteredEntityList.map(function (_ref6) {\n          var node = _ref6.node,\n              pos = _ref6.pos;\n          return {\n            node: node,\n            pos: pos\n          };\n        });\n\n        if (treeCheckStrictly) {\n          extraInfo.allCheckedNodes = deselectInfo.checkedNodes;\n        } else {\n          // TODO: It's too expansive to get `halfCheckedKeys` in onDeselect. Not pass this.\n          extraInfo.allCheckedNodes = flatToHierarchy(filteredEntityList).map(function (_ref7) {\n            var node = _ref7.node;\n            return node;\n          });\n        }\n      } else {\n        deselectInfo.event = 'select';\n        deselectInfo.selected = false;\n        deselectInfo.selectedNodes = newValueList.map(function (_ref8) {\n          var value = _ref8.value;\n          return (valueEntities[value] || {}).node;\n        });\n      } // Some value user pass prop is not in the tree, we also need clean it\n\n\n      var newMissValueList = missValueList.filter(function (_ref9) {\n        var value = _ref9.value;\n        return value !== removeValue;\n      });\n      var wrappedValue;\n\n      if (this.isLabelInValue()) {\n        wrappedValue = {\n          label: triggerNode ? getPropsData(triggerNode)[treeNodeLabelProp] : null,\n          value: removeValue\n        };\n      } else {\n        wrappedValue = removeValue;\n      }\n\n      this.onDeselect(wrappedValue, triggerNode, deselectInfo);\n      this.triggerChange(newMissValueList, newValueList, extraInfo);\n    },\n    // ===================== Popup ======================\n    onValueTrigger: function onValueTrigger(isAdd, nodeList, nodeEventInfo, nodeExtraInfo) {\n      var node = nodeEventInfo.node;\n      var value = node.$props.value;\n      var _this$$data2 = this.$data,\n          missValueList = _this$$data2._missValueList,\n          valueEntities = _this$$data2._valueEntities,\n          keyEntities = _this$$data2._keyEntities,\n          searchValue = _this$$data2._searchValue;\n      var _this$$props3 = this.$props,\n          disabled = _this$$props3.disabled,\n          inputValue = _this$$props3.inputValue,\n          treeNodeLabelProp = _this$$props3.treeNodeLabelProp,\n          treeCheckable = _this$$props3.treeCheckable,\n          treeCheckStrictly = _this$$props3.treeCheckStrictly,\n          autoClearSearchValue = _this$$props3.autoClearSearchValue;\n      var label = node.$props[treeNodeLabelProp];\n      if (disabled) return; // Wrap the return value for user\n\n      var wrappedValue;\n\n      if (this.isLabelInValue()) {\n        wrappedValue = {\n          value: value,\n          label: label\n        };\n      } else {\n        wrappedValue = value;\n      } // [Legacy] Origin code not trigger `onDeselect` every time. Let's align the behaviour.\n\n\n      if (isAdd) {\n        this.__emit('select', wrappedValue, node, nodeEventInfo);\n      } else {\n        this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n      } // Get wrapped value list.\n      // This is a bit hack cause we use key to match the value.\n\n\n      var newValueList = nodeList.map(function (node) {\n        var props = getPropsData(node);\n        return {\n          value: props.value,\n          label: props[treeNodeLabelProp]\n        };\n      }); // When is `treeCheckable` and with `searchValue`, `valueList` is not full filled.\n      // We need calculate the missing nodes.\n\n      if (treeCheckable && !treeCheckStrictly) {\n        var keyList = newValueList.map(function (_ref10) {\n          var val = _ref10.value;\n          return valueEntities[val].key;\n        });\n\n        if (isAdd) {\n          keyList = conductCheck(keyList, true, keyEntities).checkedKeys;\n        } else {\n          keyList = conductCheck([valueEntities[value].key], false, keyEntities, {\n            checkedKeys: keyList\n          }).checkedKeys;\n        }\n\n        newValueList = keyList.map(function (key) {\n          var props = getPropsData(keyEntities.get(key).node);\n          return {\n            value: props.value,\n            label: props[treeNodeLabelProp]\n          };\n        });\n      } // Clean up `searchValue` when this prop is set\n\n\n      if (autoClearSearchValue || inputValue === null) {\n        // Clean state `searchValue` if uncontrolled\n        if (!this.isSearchValueControlled()) {\n          this.setUncontrolledState({\n            _searchValue: '',\n            _filteredTreeNodes: null\n          });\n        } // Trigger onSearch if `searchValue` to be empty.\n        // We should also trigger onSearch with empty string here\n        // since if user use `treeExpandedKeys`, it need user have the ability to reset it.\n\n\n        if (searchValue && searchValue.length) {\n          this.__emit('search', '');\n        }\n      } // [Legacy] Provide extra info\n\n\n      var extraInfo = _extends(_extends({}, nodeExtraInfo), {\n        triggerValue: value,\n        triggerNode: node\n      });\n\n      this.triggerChange(missValueList, newValueList, extraInfo);\n    },\n    onTreeNodeSelect: function onTreeNodeSelect(_, nodeEventInfo) {\n      var _this$$data3 = this.$data,\n          valueList = _this$$data3._valueList,\n          valueEntities = _this$$data3._valueEntities;\n      var _this$$props4 = this.$props,\n          treeCheckable = _this$$props4.treeCheckable,\n          multiple = _this$$props4.multiple;\n      if (treeCheckable) return;\n\n      if (!multiple) {\n        this.setOpenState(false);\n      }\n\n      var isAdd = nodeEventInfo.selected;\n      var selectedValue = nodeEventInfo.node.$props.value;\n      var newValueList;\n\n      if (!multiple) {\n        newValueList = [{\n          value: selectedValue\n        }];\n      } else {\n        newValueList = valueList.filter(function (_ref11) {\n          var value = _ref11.value;\n          return value !== selectedValue;\n        });\n\n        if (isAdd) {\n          newValueList.push({\n            value: selectedValue\n          });\n        }\n      }\n\n      var selectedNodes = newValueList.map(function (_ref12) {\n        var value = _ref12.value;\n        return valueEntities[value];\n      }).filter(function (entity) {\n        return entity;\n      }).map(function (_ref13) {\n        var node = _ref13.node;\n        return node;\n      });\n      this.onValueTrigger(isAdd, selectedNodes, nodeEventInfo, {\n        selected: isAdd\n      });\n    },\n    onTreeNodeCheck: function onTreeNodeCheck(_, nodeEventInfo) {\n      var _this$$data4 = this.$data,\n          searchValue = _this$$data4._searchValue,\n          keyEntities = _this$$data4._keyEntities,\n          valueEntities = _this$$data4._valueEntities,\n          valueList = _this$$data4._valueList;\n      var treeCheckStrictly = this.$props.treeCheckStrictly;\n      var checkedNodes = nodeEventInfo.checkedNodes,\n          checkedNodesPositions = nodeEventInfo.checkedNodesPositions;\n      var isAdd = nodeEventInfo.checked;\n      var extraInfo = {\n        checked: isAdd\n      };\n      var checkedNodeList = checkedNodes; // [Legacy] Check event provide `allCheckedNodes`.\n      // When `treeCheckStrictly` or internal `searchValue` is set, TreeNode will be unrelated:\n      // - Related: Show the top checked nodes and has children prop.\n      // - Unrelated: Show all the checked nodes.\n\n      if (searchValue) {\n        var oriKeyList = valueList.map(function (_ref14) {\n          var value = _ref14.value;\n          return valueEntities[value];\n        }).filter(function (entity) {\n          return entity;\n        }).map(function (_ref15) {\n          var key = _ref15.key;\n          return key;\n        });\n        var keyList;\n\n        if (isAdd) {\n          keyList = Array.from(new Set([].concat(_toConsumableArray(oriKeyList), _toConsumableArray(checkedNodeList.map(function (node) {\n            var _getPropsData = getPropsData(node),\n                value = _getPropsData.value;\n\n            return valueEntities[value].key;\n          })))));\n        } else {\n          keyList = conductCheck([getPropsData(nodeEventInfo.node).eventKey], false, keyEntities, {\n            checkedKeys: oriKeyList\n          }).checkedKeys;\n        }\n\n        checkedNodeList = keyList.map(function (key) {\n          return keyEntities.get(key).node;\n        }); // Let's follow as not `treeCheckStrictly` format\n\n        extraInfo.allCheckedNodes = keyList.map(function (key) {\n          return cleanEntity(keyEntities.get(key));\n        });\n      } else if (treeCheckStrictly) {\n        extraInfo.allCheckedNodes = nodeEventInfo.checkedNodes;\n      } else {\n        extraInfo.allCheckedNodes = flatToHierarchy(checkedNodesPositions);\n      }\n\n      this.onValueTrigger(isAdd, checkedNodeList, nodeEventInfo, extraInfo);\n    },\n    // ==================== Trigger =====================\n    onDropdownVisibleChange: function onDropdownVisibleChange(open) {\n      var _this$$props5 = this.$props,\n          multiple = _this$$props5.multiple,\n          treeCheckable = _this$$props5.treeCheckable;\n      var _searchValue = this.$data._searchValue; // When set open success and single mode,\n      // we will reset the input content.\n\n      if (open && !multiple && !treeCheckable && _searchValue) {\n        this.setUncontrolledState({\n          _searchValue: '',\n          _filteredTreeNodes: null\n        });\n      }\n\n      this.setOpenState(open, true);\n    },\n    onSearchInputChange: function onSearchInputChange(event) {\n      var value = event.target.value;\n      var _this$$data5 = this.$data,\n          treeNodes = _this$$data5._treeNodes,\n          valueEntities = _this$$data5._valueEntities;\n      var _this$$props6 = this.$props,\n          filterTreeNode = _this$$props6.filterTreeNode,\n          treeNodeFilterProp = _this$$props6.treeNodeFilterProp;\n\n      this.__emit('search', value);\n\n      var isSet = false;\n\n      if (!this.isSearchValueControlled()) {\n        isSet = this.setUncontrolledState({\n          _searchValue: value\n        });\n        this.setOpenState(true);\n      }\n\n      if (isSet) {\n        // Do the search logic\n        var upperSearchValue = String(value).toUpperCase();\n        var filterTreeNodeFn = filterTreeNode;\n\n        if (filterTreeNode === false) {\n          filterTreeNodeFn = function filterTreeNodeFn() {\n            return true;\n          };\n        } else if (!filterTreeNodeFn) {\n          filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n            var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n            return nodeValue.indexOf(upperSearchValue) !== -1;\n          };\n        }\n\n        this.setState({\n          _filteredTreeNodes: getFilterTree(treeNodes, value, filterTreeNodeFn, valueEntities, SelectNode)\n        });\n      }\n    },\n    onSearchInputKeyDown: function onSearchInputKeyDown(event) {\n      var _this$$data6 = this.$data,\n          searchValue = _this$$data6._searchValue,\n          valueList = _this$$data6._valueList,\n          valueEntities = _this$$data6._valueEntities;\n      var keyCode = event.keyCode;\n\n      if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) {\n        var lastValue = valueList[valueList.length - 1].value;\n        var treeCheckStrictly = this.$props.treeCheckStrictly;\n\n        if (!treeCheckStrictly) {\n          (function () {\n            var cur = valueEntities[lastValue];\n\n            while (cur) {\n              if (valueList.some(function (j) {\n                return j.value === cur.value;\n              })) {\n                lastValue = cur.value;\n                cur = cur.parent;\n              } else {\n                cur = null;\n              }\n            }\n          })();\n        }\n\n        this.onMultipleSelectorRemove(event, lastValue);\n      }\n    },\n    onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n      var _this4 = this;\n\n      requestAnimationFrame(function () {\n        _this4.forcePopupAlign();\n      });\n    },\n    setPopupRef: function setPopupRef(popup) {\n      this.popup = popup;\n    },\n\n    /**\n     * Only update the value which is not in props\n     */\n    setUncontrolledState: function setUncontrolledState(state) {\n      var needSync = false;\n      var newState = {};\n      var props = getOptionProps(this);\n      Object.keys(state).forEach(function (name) {\n        if (name.slice(1) in props) return;\n        needSync = true;\n        newState[name] = state[name];\n      });\n\n      if (needSync) {\n        this.setState(newState);\n      }\n\n      return needSync;\n    },\n    // [Legacy] Origin provide `documentClickClose` which triggered by `Trigger`\n    // Currently `TreeSelect` align the hide popup logic as `Select` which blur to hide.\n    // `documentClickClose` is not accurate anymore. Let's just keep the key word.\n    setOpenState: function setOpenState(open) {\n      var byTrigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var dropdownVisibleChange = this.$props.dropdownVisibleChange;\n\n      if (dropdownVisibleChange && dropdownVisibleChange(open, {\n        documentClickClose: !open && byTrigger\n      }) === false) {\n        return;\n      }\n\n      this.setUncontrolledState({\n        _open: open\n      });\n    },\n    // Tree checkable is also a multiple case\n    isMultiple: function isMultiple() {\n      var _this$$props7 = this.$props,\n          multiple = _this$$props7.multiple,\n          treeCheckable = _this$$props7.treeCheckable;\n      return !!(multiple || treeCheckable);\n    },\n    isLabelInValue: function isLabelInValue() {\n      return _isLabelInValue(this.$props);\n    },\n    // [Legacy] To align with `Select` component,\n    // We use `searchValue` instead of `inputValue`\n    // but currently still need support that.\n    // Add this method the check if is controlled\n    isSearchValueControlled: function isSearchValueControlled() {\n      var props = getOptionProps(this);\n      var inputValue = props.inputValue;\n      if ('searchValue' in props) return true;\n      return 'inputValue' in props && inputValue !== null;\n    },\n    forcePopupAlign: function forcePopupAlign() {\n      var $trigger = this.selectTriggerRef.current;\n\n      if ($trigger) {\n        $trigger.forcePopupAlign();\n      }\n    },\n    delayForcePopupAlign: function delayForcePopupAlign() {\n      var _this5 = this;\n\n      // Wait 2 frame to avoid dom update & dom algin in the same time\n      // https://github.com/ant-design/ant-design/issues/12031\n      requestAnimationFrame(function () {\n        requestAnimationFrame(_this5.forcePopupAlign);\n      });\n    },\n\n    /**\n     * 1. Update state valueList.\n     * 2. Fire `onChange` event to user.\n     */\n    triggerChange: function triggerChange(missValueList, valueList) {\n      var extraInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var _this$$data7 = this.$data,\n          valueEntities = _this$$data7._valueEntities,\n          searchValue = _this$$data7._searchValue,\n          prevSelectorValueList = _this$$data7._selectorValueList;\n      var props = getOptionProps(this);\n      var disabled = props.disabled,\n          treeCheckable = props.treeCheckable,\n          treeCheckStrictly = props.treeCheckStrictly;\n      if (disabled) return; // Trigger\n\n      var extra = _extends({\n        // [Legacy] Always return as array contains label & value\n        preValue: prevSelectorValueList.map(function (_ref16) {\n          var label = _ref16.label,\n              value = _ref16.value;\n          return {\n            label: label,\n            value: value\n          };\n        })\n      }, extraInfo); // Format value by `treeCheckStrictly`\n\n\n      var selectorValueList = formatSelectorValue(valueList, props, valueEntities);\n\n      if (!('value' in props)) {\n        var newState = {\n          _missValueList: missValueList,\n          _valueList: valueList,\n          _selectorValueList: selectorValueList\n        };\n\n        if (searchValue && treeCheckable && !treeCheckStrictly) {\n          newState._searchHalfCheckedKeys = getHalfCheckedKeys(valueList, valueEntities);\n        }\n\n        this.setState(newState);\n      } // Only do the logic when `onChange` function provided\n\n\n      if (this.$attrs.onChange) {\n        var connectValueList; // Get value by mode\n\n        if (this.isMultiple()) {\n          connectValueList = [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList));\n        } else {\n          connectValueList = selectorValueList.slice(0, 1);\n        }\n\n        var labelList = null;\n        var returnValue;\n\n        if (this.isLabelInValue()) {\n          returnValue = connectValueList.map(function (_ref17) {\n            var label = _ref17.label,\n                value = _ref17.value;\n            return {\n              label: label,\n              value: value\n            };\n          });\n        } else {\n          labelList = [];\n          returnValue = connectValueList.map(function (_ref18) {\n            var label = _ref18.label,\n                value = _ref18.value;\n            labelList.push(label);\n            return value;\n          });\n        }\n\n        if (!this.isMultiple()) {\n          returnValue = returnValue[0];\n        }\n\n        this.__emit('change', returnValue, labelList, extra);\n      }\n    },\n    focus: function focus() {\n      this.selectorRef.current.focus();\n    },\n    blur: function blur() {\n      this.selectorRef.current.blur();\n    }\n  },\n  // ===================== Render =====================\n  render: function render() {\n    var _this$$data8 = this.$data,\n        valueList = _this$$data8._valueList,\n        missValueList = _this$$data8._missValueList,\n        selectorValueList = _this$$data8._selectorValueList,\n        searchHalfCheckedKeys = _this$$data8._searchHalfCheckedKeys,\n        valueEntities = _this$$data8._valueEntities,\n        keyEntities = _this$$data8._keyEntities,\n        searchValue = _this$$data8._searchValue,\n        open = _this$$data8._open,\n        focused = _this$$data8._focused,\n        treeNodes = _this$$data8._treeNodes,\n        filteredTreeNodes = _this$$data8._filteredTreeNodes;\n    var props = getOptionProps(this);\n    var prefixCls = props.prefixCls,\n        treeExpandedKeys = props.treeExpandedKeys;\n    var isMultiple = this.isMultiple();\n\n    var passProps = _extends(_extends(_extends({}, props), this.$attrs), {\n      isMultiple: isMultiple,\n      valueList: valueList,\n      searchHalfCheckedKeys: searchHalfCheckedKeys,\n      selectorValueList: [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList)),\n      valueEntities: valueEntities,\n      keyEntities: keyEntities,\n      searchValue: searchValue,\n      upperSearchValue: (searchValue || '').toUpperCase(),\n      // Perf save\n      open: open,\n      focused: focused,\n      dropdownPrefixCls: \"\".concat(prefixCls, \"-dropdown\"),\n      ariaId: this.ariaId,\n      onChoiceAnimationLeave: this.onChoiceAnimationLeave,\n      vSlots: this.$slots\n    });\n\n    var popupProps = _extends(_extends({}, passProps), {\n      treeNodes: treeNodes,\n      filteredTreeNodes: filteredTreeNodes,\n      // Tree expanded control\n      treeExpandedKeys: treeExpandedKeys,\n      onTreeExpanded: this.delayForcePopupAlign,\n      ref: this.setPopupRef\n    });\n\n    var $popup = _createVNode(BasePopup, _objectSpread(_objectSpread({}, popupProps), {}, {\n      \"__propsSymbol__\": []\n    }), null);\n\n    var Selector = isMultiple ? MultipleSelector : SingleSelector;\n\n    var $selector = _createVNode(Selector, _objectSpread(_objectSpread({}, passProps), {}, {\n      \"isMultiple\": isMultiple,\n      \"ref\": this.selectorRef\n    }), null);\n\n    var selectTriggerProps = _extends(_extends({}, passProps), {\n      popupElement: $popup,\n      dropdownVisibleChange: this.onDropdownVisibleChange,\n      ref: this.selectTriggerRef\n    });\n\n    return _createVNode(SelectTrigger, selectTriggerProps, {\n      default: function _default() {\n        return [$selector];\n      }\n    });\n  }\n});\nSelect.TreeNode = SelectNode;\nSelect.SHOW_ALL = SHOW_ALL;\nSelect.SHOW_PARENT = SHOW_PARENT;\nSelect.SHOW_CHILD = SHOW_CHILD; // Let warning show correct component name\n\nSelect.name = 'TreeSelect';\nexport default Select;","import Select from './Select';\nimport SelectNode from './SelectNode';\nexport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from './strategies';\nexport var TreeNode = SelectNode;\nexport default Select;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes, { withUndefined } from '../_util/vue-types';\nimport { SelectProps } from '../select';\nimport { tuple } from '../_util/type';\nexport var TreeData = PropTypes.shape({\n  key: PropTypes.string,\n  value: PropTypes.string,\n  label: PropTypes.VNodeChild,\n  slots: PropTypes.object,\n  children: PropTypes.array\n}).loose;\nexport var TreeSelectProps = function TreeSelectProps() {\n  return _extends(_extends({}, SelectProps()), {\n    autofocus: PropTypes.looseBool,\n    dropdownStyle: PropTypes.object,\n    filterTreeNode: withUndefined(PropTypes.oneOfType([Function, Boolean])),\n    getPopupContainer: PropTypes.func,\n    labelInValue: PropTypes.looseBool,\n    loadData: PropTypes.func,\n    maxTagCount: PropTypes.number,\n    maxTagPlaceholder: PropTypes.VNodeChild,\n    value: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array, PropTypes.number]),\n    defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array, PropTypes.number]),\n    multiple: PropTypes.looseBool,\n    notFoundContent: PropTypes.VNodeChild,\n    searchPlaceholder: PropTypes.string,\n    searchValue: PropTypes.string,\n    showCheckedStrategy: PropTypes.oneOf(tuple('SHOW_ALL', 'SHOW_PARENT', 'SHOW_CHILD')),\n    suffixIcon: PropTypes.VNodeChild,\n    treeCheckable: PropTypes.looseBool,\n    treeCheckStrictly: PropTypes.looseBool,\n    treeData: PropTypes.arrayOf(Object),\n    treeDataSimpleMode: withUndefined(PropTypes.oneOfType([PropTypes.looseBool, Object])),\n    dropdownClassName: PropTypes.string,\n    dropdownMatchSelectWidth: PropTypes.looseBool,\n    treeDefaultExpandAll: PropTypes.looseBool,\n    treeExpandedKeys: PropTypes.array,\n    treeIcon: PropTypes.looseBool,\n    treeDefaultExpandedKeys: PropTypes.array,\n    treeNodeFilterProp: PropTypes.string,\n    treeNodeLabelProp: PropTypes.string,\n    replaceFields: PropTypes.object.def({}),\n    clearIcon: PropTypes.VNodeChild,\n    removeIcon: PropTypes.VNodeChild,\n    onSelect: PropTypes.func,\n    onChange: PropTypes.func,\n    onSearch: PropTypes.func,\n    onTreeExpand: PropTypes.func,\n    'onUpdate:treeExpandedKeys': PropTypes.func,\n    'onUpdate:searchValue': PropTypes.func,\n    'onUpdate:value': PropTypes.func\n  });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { flattenChildren, isValidElement } from '../_util/props-util';\nexport function convertChildrenToData(nodes) {\n  return flattenChildren(nodes).map(function (node) {\n    if (!isValidElement(node) || !node.type) {\n      return null;\n    }\n\n    var _a = node.children || {},\n        d = _a.default,\n        restSlot = __rest(_a, [\"default\"]);\n\n    var children = d ? d() : [];\n\n    var key = node.key,\n        _b = node.props,\n        value = _b.value,\n        restProps = __rest(_b, [\"value\"]);\n\n    var data = _extends({\n      key: key,\n      value: value\n    }, restProps);\n\n    Object.keys(restSlot).forEach(function (p) {\n      if (typeof restSlot[p] === 'function') {\n        data[p] = _createVNode(_Fragment, null, [restSlot[p]()]);\n      }\n    });\n    var childData = convertChildrenToData(children);\n\n    if (childData.length) {\n      data.children = childData;\n    }\n\n    return data;\n  }).filter(function (data) {\n    return data;\n  });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport { defineComponent, inject } from 'vue';\nimport VcTreeSelect, { TreeNode, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from '../vc-tree-select';\nimport classNames from '../_util/classNames';\nimport { TreeSelectProps } from './interface';\nimport warning from '../_util/warning';\nimport { getOptionProps, getComponent, getSlot } from '../_util/props-util';\nimport initDefaultProps from '../_util/props-util/initDefaultProps';\nimport { defaultConfigProvider } from '../config-provider';\nexport { TreeData, TreeSelectProps } from './interface';\nimport LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined';\nimport CaretDownOutlined from '@ant-design/icons-vue/CaretDownOutlined';\nimport DownOutlined from '@ant-design/icons-vue/DownOutlined';\nimport CloseOutlined from '@ant-design/icons-vue/CloseOutlined';\nimport CloseCircleFilled from '@ant-design/icons-vue/CloseCircleFilled';\nimport omit from 'omit.js';\nimport { convertChildrenToData } from './utils';\nvar TreeSelect = defineComponent({\n  TreeNode: TreeNode,\n  SHOW_ALL: SHOW_ALL,\n  SHOW_PARENT: SHOW_PARENT,\n  SHOW_CHILD: SHOW_CHILD,\n  name: 'ATreeSelect',\n  inheritAttrs: false,\n  props: initDefaultProps(TreeSelectProps(), {\n    transitionName: 'slide-up',\n    choiceTransitionName: ''\n  }),\n  setup: function setup() {\n    return {\n      vcTreeSelect: null,\n      configProvider: inject('configProvider', defaultConfigProvider)\n    };\n  },\n  created: function created() {\n    warning(this.multiple !== false || !this.treeCheckable, 'TreeSelect', '`multiple` will alway be `true` when `treeCheckable` is true');\n  },\n  methods: {\n    saveTreeSelect: function saveTreeSelect(node) {\n      this.vcTreeSelect = node;\n    },\n    focus: function focus() {\n      this.vcTreeSelect.focus();\n    },\n    blur: function blur() {\n      this.vcTreeSelect.blur();\n    },\n    renderSwitcherIcon: function renderSwitcherIcon(prefixCls, _ref) {\n      var isLeaf = _ref.isLeaf,\n          loading = _ref.loading;\n\n      if (loading) {\n        return _createVNode(LoadingOutlined, {\n          \"class\": \"\".concat(prefixCls, \"-switcher-loading-icon\")\n        }, null);\n      }\n\n      if (isLeaf) {\n        return null;\n      }\n\n      return _createVNode(CaretDownOutlined, {\n        \"class\": \"\".concat(prefixCls, \"-switcher-icon\")\n      }, null);\n    },\n    handleChange: function handleChange() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      this.$emit('update:value', args[0]);\n      this.$emit.apply(this, ['change'].concat(args));\n    },\n    handleTreeExpand: function handleTreeExpand() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      this.$emit('update:treeExpandedKeys', args[0]);\n      this.$emit.apply(this, ['treeExpand'].concat(args));\n    },\n    handleSearch: function handleSearch() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      this.$emit('update:searchValue', args[0]);\n      this.$emit.apply(this, ['search'].concat(args));\n    },\n    updateTreeData: function updateTreeData(treeData) {\n      var _this = this;\n\n      var $slots = this.$slots;\n      var defaultFields = {\n        children: 'children',\n        title: 'title',\n        key: 'key',\n        label: 'label',\n        value: 'value'\n      };\n\n      var replaceFields = _extends(_extends({}, defaultFields), this.$props.replaceFields);\n\n      return treeData.map(function (item) {\n        var _item$slots = item.slots,\n            slots = _item$slots === void 0 ? {} : _item$slots;\n        var label = item[replaceFields.label];\n        var title = item[replaceFields.title];\n        var value = item[replaceFields.value];\n        var key = item[replaceFields.key];\n        var children = item[replaceFields.children];\n        var newLabel = typeof label === 'function' ? label() : label;\n        var newTitle = typeof title === 'function' ? title() : title;\n\n        if (!newLabel && slots.label && $slots[slots.label]) {\n          newLabel = _createVNode(_Fragment, null, [$slots[slots.label](item)]);\n        }\n\n        if (!newTitle && slots.title && $slots[slots.title]) {\n          newTitle = _createVNode(_Fragment, null, [$slots[slots.title](item)]);\n        }\n\n        var treeNodeProps = _extends(_extends({}, item), {\n          title: newTitle || newLabel,\n          value: value,\n          dataRef: item,\n          key: key\n        });\n\n        if (children) {\n          return _extends(_extends({}, treeNodeProps), {\n            children: _this.updateTreeData(children)\n          });\n        }\n\n        return treeNodeProps;\n      });\n    }\n  },\n  render: function render() {\n    var _cls,\n        _this2 = this;\n\n    var props = getOptionProps(this);\n\n    var customizePrefixCls = props.prefixCls,\n        size = props.size,\n        dropdownStyle = props.dropdownStyle,\n        dropdownClassName = props.dropdownClassName,\n        getPopupContainer = props.getPopupContainer,\n        restProps = __rest(props, [\"prefixCls\", \"size\", \"dropdownStyle\", \"dropdownClassName\", \"getPopupContainer\"]);\n\n    var className = this.$attrs.class;\n    var _this$configProvider = this.configProvider,\n        renderEmpty = _this$configProvider.renderEmpty,\n        getPrefixCls = _this$configProvider.getPrefixCls;\n    var prefixCls = getPrefixCls('select', customizePrefixCls);\n    var notFoundContent = getComponent(this, 'notFoundContent');\n    var removeIcon = getComponent(this, 'removeIcon');\n    var clearIcon = getComponent(this, 'clearIcon');\n    var getContextPopupContainer = this.configProvider.getPopupContainer;\n    var rest = omit(restProps, ['inputIcon', 'removeIcon', 'clearIcon', 'switcherIcon', 'suffixIcon']);\n    var suffixIcon = getComponent(this, 'suffixIcon');\n    suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;\n    var treeData = props.treeData;\n\n    if (treeData) {\n      treeData = this.updateTreeData(treeData);\n    }\n\n    var cls = (_cls = {}, _defineProperty(_cls, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_cls, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_cls, className, className), _cls); // showSearch: single - false, multiple - true\n\n    var showSearch = restProps.showSearch;\n\n    if (!('showSearch' in restProps)) {\n      showSearch = !!(restProps.multiple || restProps.treeCheckable);\n    }\n\n    var checkable = getComponent(this, 'treeCheckable');\n\n    if (checkable) {\n      checkable = _createVNode(\"span\", {\n        \"class\": \"\".concat(prefixCls, \"-tree-checkbox-inner\")\n      }, null);\n    }\n\n    var inputIcon = suffixIcon || _createVNode(DownOutlined, {\n      \"class\": \"\".concat(prefixCls, \"-arrow-icon\")\n    }, null);\n\n    var finalRemoveIcon = removeIcon || _createVNode(CloseOutlined, {\n      \"class\": \"\".concat(prefixCls, \"-remove-icon\")\n    }, null);\n\n    var finalClearIcon = clearIcon || _createVNode(CloseCircleFilled, {\n      \"class\": \"\".concat(prefixCls, \"-clear-icon\")\n    }, null);\n\n    var VcTreeSelectProps = _extends(_extends(_extends(_extends({}, this.$attrs), {\n      switcherIcon: function switcherIcon(nodeProps) {\n        return _this2.renderSwitcherIcon(prefixCls, nodeProps);\n      },\n      inputIcon: inputIcon,\n      removeIcon: finalRemoveIcon,\n      clearIcon: finalClearIcon\n    }), rest), {\n      showSearch: showSearch,\n      getPopupContainer: getPopupContainer || getContextPopupContainer,\n      dropdownClassName: classNames(dropdownClassName, \"\".concat(prefixCls, \"-tree-dropdown\")),\n      prefixCls: prefixCls,\n      dropdownStyle: _extends({\n        maxHeight: '100vh',\n        overflow: 'auto'\n      }, dropdownStyle),\n      treeCheckable: checkable,\n      notFoundContent: notFoundContent || renderEmpty('Select'),\n      class: cls,\n      onChange: this.handleChange,\n      onSearch: this.handleSearch,\n      onTreeExpand: this.handleTreeExpand,\n      ref: this.saveTreeSelect,\n      treeData: treeData ? treeData : convertChildrenToData(getSlot(this))\n    });\n\n    return _createVNode(VcTreeSelect, _objectSpread(_objectSpread({}, VcTreeSelectProps), {}, {\n      \"__propsSymbol__\": []\n    }), omit(this.$slots, ['default']));\n  }\n});\n/* istanbul ignore next */\n\nTreeSelect.install = function (app) {\n  app.component(TreeSelect.name, TreeSelect);\n  app.component(TreeSelect.TreeNode.displayName, TreeSelect.TreeNode);\n  return app;\n};\n\nexport var TreeSelectNode = TreeSelect.TreeNode;\nexport default TreeSelect;","<template>\n  <a-tree v-bind=\"getAttrs\" @select=\"handleChange\">\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n    <template #suffixIcon v-if=\"loading\">\n      <LoadingOutlined spin />\n    </template>\n  </a-tree>\n</template>\n\n<script lang=\"ts\">\n  import { computed, defineComponent, watch, ref, onMounted, unref, PropType } from 'vue';\n  import { Tree } from 'ant-design-vue';\n  import { isArray, isFunction, PropTypes } from '../../../utils';\n  import lodash from 'lodash'\n  // import get from 'lodash/get'\n  import { LoadingOutlined } from '@ant-design/icons-vue';\n  const { get } = lodash\n  export default defineComponent({\n    name: 'ApiTree',\n    components: { ATree: Tree, LoadingOutlined },\n    props: {\n      api: { type: Function as PropType<(arg?: Recordable) => Promise<Recordable>> },\n      params: { type: Object },\n      immediate: { type: Boolean, default: true },\n      resultField: PropTypes.string.def(''),\n      afterFetch: { type: Function as PropType<Fn> },\n    },\n    emits: ['options-change', 'change'],\n    setup(props, { attrs, emit }) {\n      const treeData = ref<Recordable[]>([]);\n      const isFirstLoaded = ref<boolean>(false);\n      const loading = ref(false);\n      const getAttrs = computed(() => {\n        return {\n          ...(props.api ? { treeData: unref(treeData) } : {}),\n          ...attrs,\n        };\n      });\n\n      function handleChange(...args) {\n        emit('change', ...args);\n      }\n\n      watch(\n        () => props.params,\n        () => {\n          !unref(isFirstLoaded) && fetch();\n        },\n        { deep: true },\n      );\n\n      watch(\n        () => props.immediate,\n        (v) => {\n          v && !isFirstLoaded.value && fetch();\n        },\n      );\n\n      onMounted(() => {\n        props.immediate && fetch();\n      });\n\n      async function fetch() {\n        const { api, afterFetch } = props;\n        if (!api || !isFunction(api)) return;\n        loading.value = true;\n        treeData.value = [];\n        let result;\n        try {\n          result = await api(props.params);\n        } catch (e) {\n          console.error(e);\n        }\n        if (afterFetch && isFunction(afterFetch)) {\n          result = afterFetch(result);\n        }\n        loading.value = false;\n        if (!result) return;\n        if (!isArray(result)) {\n          result = get(result, props.resultField);\n        }\n        treeData.value = (result as Recordable[]) || [];\n        isFirstLoaded.value = true;\n        emit('options-change', treeData.value);\n      }\n      return { getAttrs, loading, handleChange };\n    },\n  });\n</script>\n","<template>\n  <a-tree-select v-bind=\"getAttrs\" @change=\"handleChange\">\n    <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n    <template #suffixIcon v-if=\"loading\">\n      <LoadingOutlined spin />\n    </template>\n  </a-tree-select>\n</template>\n\n<script lang=\"ts\">\n  import { computed, defineComponent, watch, ref, onMounted, unref, PropType } from 'vue';\n  import { TreeSelect } from 'ant-design-vue';\n  import { isArray, isFunction, PropTypes } from '../../../utils';\n  import lodash from 'lodash';\n  // import get from 'lodash/get';\n  import { LoadingOutlined } from '@ant-design/icons-vue';\n  const { get } = lodash\n  export default defineComponent({\n    name: 'ApiTreeSelect',\n    components: { ATreeSelect: TreeSelect, LoadingOutlined },\n    props: {\n      api: { type: Function as PropType<(arg?: Recordable) => Promise<Recordable>> },\n      params: { type: Object },\n      immediate: { type: Boolean, default: true },\n      resultField: PropTypes.string.def(''),\n    },\n    emits: ['options-change', 'change'],\n    setup(props, { attrs, emit }) {\n      const treeData = ref<Recordable[]>([]);\n      const isFirstLoaded = ref<boolean>(false);\n      const loading = ref(false);\n      const getAttrs = computed(() => {\n        return {\n          ...(props.api ? { treeData: unref(treeData) } : {}),\n          ...attrs,\n        };\n      });\n\n      function handleChange(...args) {\n        emit('change', ...args);\n      }\n\n      watch(\n        () => props.params,\n        () => {\n          !unref(isFirstLoaded) && fetch();\n        },\n        { deep: true },\n      );\n\n      watch(\n        () => props.immediate,\n        (v) => {\n          v && !isFirstLoaded.value && fetch();\n        },\n      );\n\n      onMounted(() => {\n        props.immediate && fetch();\n      });\n\n      async function fetch() {\n        const { api } = props;\n        if (!api || !isFunction(api)) return;\n        loading.value = true;\n        treeData.value = [];\n        let result;\n        try {\n          result = await api(props.params);\n        } catch (e) {\n          console.error(e);\n        }\n        loading.value = false;\n        if (!result) return;\n        if (!isArray(result)) {\n          result = get(result, props.resultField);\n        }\n        treeData.value = (result as Recordable[]) || [];\n        isFirstLoaded.value = true;\n        emit('options-change', treeData.value);\n      }\n      return { getAttrs, loading, handleChange };\n    },\n  });\n</script>\n","<template>\n  <a-cascader\n    v-model:value=\"state\"\n    :options=\"options\"\n    :load-data=\"loadData\"\n    change-on-select\n    @change=\"handleChange\"\n    :displayRender=\"handleRenderDisplay\"\n  >\n    <template #suffixIcon v-if=\"loading\">\n      <LoadingOutlined spin />\n    </template>\n    <template #notFoundContent v-if=\"loading\">\n      <span>\n        <LoadingOutlined spin class=\"mr-1\" />\n        请等待数据加载完成...\n      </span>\n    </template>\n  </a-cascader>\n</template>\n<script lang=\"ts\">\n  import { defineComponent, PropType, ref, unref, watch, watchEffect } from 'vue';\n  import { Cascader } from 'ant-design-vue';\n  import { PropTypes, isFunction } from '../../../utils';\n  // import get from 'lodash/get'\n  // import omit from 'lodash/omit'\n  import lodash from 'lodash'\n  import { useRuleFormItem } from '../hooks/useFormItem';\n  import { LoadingOutlined } from '@ant-design/icons-vue';\n  interface Option {\n    value: string;\n    label: string;\n    loading?: boolean;\n    isLeaf?: boolean;\n    children?: Option[];\n  }\n  const { get, omit } = lodash\n  export default defineComponent({\n    name: 'ApiCascader',\n    components: {\n      LoadingOutlined,\n      [Cascader.name]: Cascader,\n    },\n    props: {\n      value: {\n        type: Array,\n      },\n      api: {\n        type: Function as PropType<(arg?: Recordable) => Promise<Option[]>>,\n        default: null,\n      },\n      numberToString: PropTypes.bool,\n      resultField: PropTypes.string.def(''),\n      labelField: PropTypes.string.def('label'),\n      valueField: PropTypes.string.def('value'),\n      childrenField: PropTypes.string.def('children'),\n      asyncFetchParamKey: PropTypes.string.def('parentCode'),\n      immediate: PropTypes.bool.def(true),\n      // init fetch params\n      initFetchParams: {\n        type: Object as PropType<Recordable>,\n        default: () => ({}),\n      },\n      // 是否有下级，默认是\n      isLeaf: {\n        type: Function as PropType<(arg: Recordable) => boolean>,\n        default: null,\n      },\n      displayRenderArray: {\n        type: Array,\n      },\n    },\n    emits: ['change', 'defaultChange'],\n    setup(props, { emit }) {\n      const apiData = ref<any[]>([]);\n      const options = ref<Option[]>([]);\n      const loading = ref<boolean>(false);\n      const emitData = ref<any[]>([]);\n      const isFirstLoad = ref(true);\n\n      const [state] = useRuleFormItem(props, 'value', 'change', emitData);\n\n      watch(\n        apiData,\n        (data) => {\n          const opts = generatorOptions(data);\n          options.value = opts;\n        },\n        { deep: true },\n      );\n\n      function generatorOptions(options: any[]): Option[] {\n        const { labelField, valueField, numberToString, childrenField, isLeaf } = props;\n        return options.reduce((prev, next: Recordable) => {\n          if (next) {\n            const value = next[valueField];\n            const item = {\n              ...omit(next, [labelField, valueField]),\n              label: next[labelField],\n              value: numberToString ? `${value}` : value,\n              isLeaf: isLeaf && typeof isLeaf === 'function' ? isLeaf(next) : false,\n            };\n            const children = Reflect.get(next, childrenField);\n            if (children) {\n              Reflect.set(item, childrenField, generatorOptions(children));\n            }\n            prev.push(item);\n          }\n          return prev;\n        }, [] as Option[]);\n      }\n\n      async function initialFetch() {\n        const api = props.api;\n        if (!api || !isFunction(api)) return;\n        apiData.value = [];\n        loading.value = true;\n        try {\n          const res = await api(props.initFetchParams);\n          if (Array.isArray(res)) {\n            apiData.value = res;\n            return;\n          }\n          if (props.resultField) {\n            apiData.value = get(res, props.resultField) || [];\n          }\n        } catch (error) {\n          console.warn(error);\n        } finally {\n          loading.value = false;\n        }\n      }\n\n      async function loadData(selectedOptions: Option[]) {\n        const targetOption = selectedOptions[selectedOptions.length - 1];\n        targetOption.loading = true;\n\n        const api = props.api;\n        if (!api || !isFunction(api)) return;\n        try {\n          const res = await api({\n            [props.asyncFetchParamKey]: Reflect.get(targetOption, 'value'),\n          });\n          if (Array.isArray(res)) {\n            const children = generatorOptions(res);\n            targetOption.children = children;\n            return;\n          }\n          if (props.resultField) {\n            const children = generatorOptions(get(res, props.resultField) || []);\n            targetOption.children = children;\n          }\n        } catch (e) {\n          console.error(e);\n        } finally {\n          targetOption.loading = false;\n        }\n      }\n\n      watchEffect(() => {\n        props.immediate && initialFetch();\n      });\n\n      watch(\n        () => props.initFetchParams,\n        () => {\n          !unref(isFirstLoad) && initialFetch();\n        },\n        { deep: true },\n      );\n\n      function handleChange(keys: any, args: any) {\n        emitData.value = keys;\n        emit('defaultChange', keys, args);\n      }\n\n      function handleRenderDisplay({ labels, selectedOptions }) {\n        if (unref(emitData).length === selectedOptions.length) {\n          return labels.join(' / ');\n        }\n        if (props.displayRenderArray) {\n          return props.displayRenderArray.join(' / ');\n        }\n        return '';\n      }\n\n      return {\n        state,\n        options,\n        loading,\n        handleChange,\n        loadData,\n        handleRenderDisplay,\n      };\n    },\n  });\n</script>\n","import type { Component } from 'vue';\nimport type { ComponentType } from './types/index';\n\n/**\n * Component list, register here to setting it in the form\n */\nimport {\n  Input,\n  // Select,\n  Radio,\n  Checkbox,\n  AutoComplete,\n  Cascader,\n  // DatePicker,\n  // InputNumber,\n  Switch,\n  // TimePicker,\n  TreeSelect,\n  // Slider,\n  Rate,\n  Divider,\n} from 'ant-design-vue';\n\nimport { ScSelect } from '../select';\nimport { ScInput } from '../input';\nimport { ScSlider } from '../slider';\n\nimport ScDatePicker, { ScWeekPicker, ScMonthPicker, ScRangePicker, ScQuarterPicker, ScYearPicker } from '../datePicker';\nimport ScTimePicker, { ScTimeRangePicker } from '../timePicker';\nimport { ScInputNumber } from '../inputNumber';\n\nimport ApiRadioGroup from './component/ApiRadioGroup.vue';\nimport RadioButtonGroup from './component/RadioButtonGroup.vue';\nimport ApiSelect from './component/ApiSelect.vue';\nimport ApiTree from './component/ApiTree.vue';\nimport ApiTreeSelect from './component/ApiTreeSelect.vue';\nimport ApiCascader from './component/ApiCascader.vue';\n// import { BasicUpload } from '/@/components/Upload';\n// import { StrengthMeter } from '/@/components/StrengthMeter';\n// import { BzIconPicker } from '/@/components/BzIcon';\n// import { CountdownInput } from '/@/components/CountDown';\n\nconst componentMap = new Map<ComponentType, Component>();\n\ncomponentMap.set('Input', ScInput);\ncomponentMap.set('InputGroup', Input.Group);\ncomponentMap.set('InputPassword', Input.Password);\ncomponentMap.set('InputSearch', Input.Search);\ncomponentMap.set('InputTextArea', Input.TextArea);\ncomponentMap.set('InputNumber', ScInputNumber);\ncomponentMap.set('AutoComplete', AutoComplete);\n\ncomponentMap.set('Select', ScSelect);\ncomponentMap.set('ApiSelect', ApiSelect);\ncomponentMap.set('ApiTree', ApiTree);\ncomponentMap.set('TreeSelect', TreeSelect);\ncomponentMap.set('ApiTreeSelect', ApiTreeSelect);\ncomponentMap.set('ApiRadioGroup', ApiRadioGroup);\ncomponentMap.set('Switch', Switch);\ncomponentMap.set('RadioButtonGroup', RadioButtonGroup);\ncomponentMap.set('RadioGroup', Radio.Group);\ncomponentMap.set('Checkbox', Checkbox);\ncomponentMap.set('CheckboxGroup', Checkbox.Group);\ncomponentMap.set('ApiCascader', ApiCascader);\ncomponentMap.set('Cascader', Cascader);\ncomponentMap.set('Slider', ScSlider);\ncomponentMap.set('Rate', Rate);\n\n// componentMap.set('DatePicker', DatePicker);\n// componentMap.set('MonthPicker', DatePicker.MonthPicker);\n// componentMap.set('RangePicker', DatePicker.RangePicker);\n// componentMap.set('WeekPicker', DatePicker.WeekPicker);\n// componentMap.set('TimePicker', TimePicker);\n\ncomponentMap.set('DatePicker', ScDatePicker);\ncomponentMap.set('MonthPicker', ScMonthPicker);\ncomponentMap.set('RangePicker', ScRangePicker);\ncomponentMap.set('WeekPicker', ScWeekPicker);\ncomponentMap.set('YearPicker', ScYearPicker);\ncomponentMap.set('QuarterPicker', ScQuarterPicker);\ncomponentMap.set('TimePicker', ScTimePicker);\ncomponentMap.set('TimeRangePicker', ScTimeRangePicker);\n\n// componentMap.set('StrengthMeter', StrengthMeter);\n// componentMap.set('IconPicker', BzIconPicker);\n// componentMap.set('InputCountDown', CountdownInput);\n\n// componentMap.set('Upload', BasicUpload);\ncomponentMap.set('Divider', Divider);\n\nexport function add(compName: ComponentType, component: Component) {\n  componentMap.set(compName, component);\n}\n\nexport function del(compName: ComponentType) {\n  componentMap.delete(compName);\n}\n\nexport { componentMap };\n","import type { ValidationRule } from 'ant-design-vue/lib/form/Form';\nimport { Dayjs } from 'dayjs';\nimport type { ComponentType } from './types/index';\n\n// import { dateUtil } from '/@/utils/dateUtil';\nimport { isNumber, isObject, dateUtil } from '../../utils';\n\n/**\n * @description: 生成placeholder\n */\nexport function createPlaceholderMessage(component: ComponentType) {\n  if (component.includes('Input') || component.includes('Complete')) {\n    return '请输入';\n  }\n  if (component.includes('Picker')) {\n    return '请选择';\n  }\n  if (\n    component.includes('Select') ||\n    component.includes('Cascader') ||\n    component.includes('Checkbox') ||\n    component.includes('Radio') ||\n    component.includes('Switch')\n  ) {\n    // return `请选择${label}`;\n    return '请选择';\n  }\n  return '';\n}\n\nconst DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'];\n\nfunction genType() {\n  return [...DATE_TYPE, 'RangePicker'];\n}\n\nexport function setComponentRuleType(\n  rule: ValidationRule,\n  component: ComponentType,\n  valueFormat: string,\n) {\n  if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {\n    rule.type = valueFormat ? 'string' : 'object';\n  } else if (['RangePicker', 'Upload', 'CheckboxGroup', 'TimePicker'].includes(component)) {\n    rule.type = 'array';\n  } else if (['InputNumber'].includes(component)) {\n    rule.type = 'number';\n  }\n}\n\nexport function processDateValue(attr: Recordable, component: string) {\n  const { valueFormat, value } = attr;\n  if (valueFormat) {\n    attr.value = isObject(value) ? dateUtil(value as Dayjs).format(valueFormat) : value;\n  } else if (DATE_TYPE.includes(component) && value) {\n    attr.value = dateUtil(attr.value);\n  }\n}\n\nexport function handleInputNumberValue(component?: ComponentType, val?: any) {\n  if (!component) return val;\n  if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) {\n    return val && isNumber(val) ? `${val}` : val;\n  }\n  return val;\n}\n\n/**\n * 时间字段\n */\nexport const dateItemType = genType();\n\nexport const defaultValueComponents = ['Input', 'InputPassword', 'InputSearch', 'InputTextArea'];\n","import type { Ref } from 'vue';\nimport { computed, unref } from 'vue';\nimport type { FormProps, FormSchema } from '../types/form';\nimport { isNumber, pxToRem } from '../../../utils';\n\nexport function useItemLabelWidth(schemaItemRef: Ref<FormSchema>, propsRef: Ref<FormProps>) {\n  return computed(() => {\n    const schemaItem = unref(schemaItemRef);\n    const { labelCol = {}, wrapperCol = {} } = schemaItem.itemProps || {};\n    const { labelWidth, disabledLabelWidth } = schemaItem;\n\n    const {\n      labelWidth: globalLabelWidth,\n      labelCol: globalLabelCol,\n      wrapperCol: globWrapperCol,\n      layout,\n    } = unref(propsRef);\n\n    // If labelWidth is set globally, all items setting\n    if ((!globalLabelWidth && !labelWidth && !globalLabelCol) || disabledLabelWidth) {\n      labelCol.style = {\n        textAlign: 'left',\n      };\n      return { labelCol, wrapperCol };\n    }\n    let width = labelWidth || globalLabelWidth;\n    const col = { ...globalLabelCol, ...labelCol };\n    const wrapCol = { ...globWrapperCol, ...wrapperCol };\n\n    if (width) {\n      width = isNumber(width) ? `${pxToRem(width)}` : width;\n    }\n\n    return {\n      labelCol: { style: { width }, ...col },\n      wrapperCol: {\n        style: { width: layout === 'vertical' ? '100%' : `calc(100% - ${width})` },\n        ...wrapCol,\n      },\n    };\n  });\n}\n","<script lang=\"tsx\">\n  import type { PropType, Ref } from 'vue';\n  import { computed, defineComponent, toRefs, unref } from 'vue';\n  import type { FormActionType, FormProps, FormSchema } from '../types/form';\n  import type { ValidationRule } from 'ant-design-vue/lib/form/Form';\n  import type { TableActionType } from '../../table';\n  import { Col, Divider, Form } from 'ant-design-vue';\n  import { componentMap } from '../componentMap';\n  // import { BzHelp } from '/@/components/Basic';\n  import { ScHelp } from '../../other'\n  // import { isBoolean, isFunction, isNull } from '/@/utils/is';\n  import { isBoolean, isFunction, isNull, getSlot } from '../../../utils';\n  import { createPlaceholderMessage, setComponentRuleType } from '../helper';\n  import lodash from 'lodash';\n  // import cloneDeep from 'lodash/cloneDeep';\n  // import upperFirst from 'lodash/upperFirst';\n  import { useItemLabelWidth } from '../hooks/useLabelWidth';\n  const { cloneDeep, upperFirst } = lodash\n  export default defineComponent({\n    name: 'BasicFormItem',\n    inheritAttrs: false,\n    props: {\n      schema: {\n        type: Object as PropType<FormSchema>,\n        default: () => ({}),\n      },\n      formProps: {\n        type: Object as PropType<FormProps>,\n        default: () => ({}),\n      },\n      allDefaultValues: {\n        type: Object as PropType<Recordable>,\n        default: () => ({}),\n      },\n      formModel: {\n        type: Object as PropType<Recordable>,\n        default: () => ({}),\n      },\n      setFormModel: {\n        type: Function as PropType<(key: string, value: any) => void>,\n        default: null,\n      },\n      tableAction: {\n        type: Object as PropType<TableActionType>,\n      },\n      formActionType: {\n        type: Object as PropType<FormActionType>,\n      },\n    },\n    setup(props, { slots }) {\n      const { schema, formProps } = toRefs(props) as {\n        schema: Ref<FormSchema>;\n        formProps: Ref<FormProps>;\n      };\n\n      const itemLabelWidthProp = useItemLabelWidth(schema, formProps);\n\n      const getValues = computed(() => {\n        const { allDefaultValues, formModel, schema } = props;\n        const { mergeDynamicData } = props.formProps;\n        return {\n          field: schema.field,\n          model: formModel,\n          values: {\n            ...mergeDynamicData,\n            ...allDefaultValues,\n            ...formModel,\n          } as Recordable,\n          schema: schema,\n        };\n      });\n\n      const getComponentsProps = computed(() => {\n        const { schema, tableAction, formModel, formActionType } = props;\n        let { componentProps = {} } = schema;\n        if (isFunction(componentProps)) {\n          componentProps = componentProps({ schema, tableAction, formModel, formActionType }) ?? {};\n        }\n        if (schema.component === 'Divider') {\n          componentProps = Object.assign({ type: 'horizontal' }, componentProps, {\n            orientation: 'left',\n            plain: true,\n          });\n        }\n        return componentProps as Recordable;\n      });\n\n      const getDisable = computed(() => {\n        const { disabled: globDisabled } = props.formProps;\n        const { dynamicDisabled } = props.schema;\n        const { disabled: itemDisabled = false } = unref(getComponentsProps);\n        let disabled = !!globDisabled || itemDisabled;\n        if (isBoolean(dynamicDisabled)) {\n          disabled = dynamicDisabled;\n        }\n        if (isFunction(dynamicDisabled)) {\n          disabled = dynamicDisabled(unref(getValues));\n        }\n        return disabled;\n      });\n\n      function getShow(): { isShow: boolean; isIfShow: boolean } {\n        const { show, ifShow } = props.schema;\n        const { showAdvancedButton } = props.formProps;\n        const itemIsAdvanced = showAdvancedButton\n          ? isBoolean(props.schema.isAdvanced)\n            ? props.schema.isAdvanced\n            : true\n          : true;\n\n        let isShow = true;\n        let isIfShow = true;\n\n        if (isBoolean(show)) {\n          isShow = show;\n        }\n        if (isBoolean(ifShow)) {\n          isIfShow = ifShow;\n        }\n        if (isFunction(show)) {\n          isShow = show(unref(getValues));\n        }\n        if (isFunction(ifShow)) {\n          isIfShow = ifShow(unref(getValues));\n        }\n        isShow = isShow && itemIsAdvanced;\n        return { isShow, isIfShow };\n      }\n\n      function handleRules(): ValidationRule[] {\n        const {\n          rules: defRules = [],\n          component,\n          rulesMessageJoinLabel,\n          label,\n          dynamicRules,\n          required,\n        } = props.schema;\n\n        if (isFunction(dynamicRules)) {\n          return dynamicRules(unref(getValues)) as ValidationRule[];\n        }\n\n        let rules: ValidationRule[] = cloneDeep(defRules) as ValidationRule[];\n        const { rulesMessageJoinLabel: globalRulesMessageJoinLabel } = props.formProps;\n\n        const joinLabel = Reflect.has(props.schema, 'rulesMessageJoinLabel')\n          ? rulesMessageJoinLabel\n          : globalRulesMessageJoinLabel;\n        const defaultMsg = createPlaceholderMessage(component) + `${joinLabel ? label : ''}`;\n\n        function validator(rule: any, value: any) {\n          const msg = rule.message || defaultMsg;\n          if (value === undefined || isNull(value)) {\n            // 空值\n            return Promise.reject(msg);\n          } else if (Array.isArray(value) && value.length === 0) {\n            // 数组类型\n            return Promise.reject(msg);\n          } else if (typeof value === 'string' && value.trim() === '') {\n            // 空字符串\n            return Promise.reject(msg);\n          } else if (\n            typeof value === 'object' &&\n            Reflect.has(value, 'checked') &&\n            Reflect.has(value, 'halfChecked') &&\n            Array.isArray(value.checked) &&\n            Array.isArray(value.halfChecked) &&\n            value.checked.length === 0 &&\n            value.halfChecked.length === 0\n          ) {\n            // 非关联选择的tree组件\n            return Promise.reject(msg);\n          }\n          return Promise.resolve();\n        }\n\n        const getRequired = isFunction(required) ? required(unref(getValues)) : required;\n\n        /*\n         * 1、若设置了required属性，又没有其他的rules，就创建一个验证规则；\n         * 2、若设置了required属性，又存在其他的rules，则只rules中不存在required属性时，才添加验证required的规则\n         *     也就是说rules中的required，优先级大于required\n         */\n        if (getRequired) {\n          if (!rules || rules.length === 0) {\n            rules = [{ required: getRequired, validator }];\n          } else {\n            const requiredIndex: number = rules.findIndex((rule) => Reflect.has(rule, 'required'));\n\n            if (requiredIndex === -1) {\n              rules.push({ required: getRequired, validator });\n            }\n          }\n        }\n\n        const requiredRuleIndex: number = rules.findIndex(\n          (rule) => Reflect.has(rule, 'required') && !Reflect.has(rule, 'validator'),\n        );\n\n        if (requiredRuleIndex !== -1) {\n          const rule = rules[requiredRuleIndex];\n          const { isShow } = getShow();\n          if (!isShow) {\n            rule.required = false;\n          }\n          if (component) {\n            if (!Reflect.has(rule, 'type')) {\n              rule.type = component === 'InputNumber' ? 'number' : 'string';\n            }\n\n            rule.message = rule.message || defaultMsg;\n\n            if (component.includes('Input') || component.includes('Textarea')) {\n              rule.whitespace = true;\n            }\n            const valueFormat = unref(getComponentsProps)?.valueFormat;\n            setComponentRuleType(rule, component, valueFormat);\n          }\n        }\n\n        // 最大输入长度规则检查\n        const characterInx = rules.findIndex((val) => val.max);\n        if (characterInx !== -1 && !rules[characterInx].validator) {\n          rules[characterInx].message =\n            rules[characterInx].message || `字符数应小于${rules[characterInx].max}位`;\n        }\n        return rules;\n      }\n\n      function renderComponent() {\n        const {\n          renderComponentContent,\n          component,\n          field,\n          changeEvent = 'change',\n          valueField,\n        } = props.schema;\n\n        const isCheck = component && ['Switch', 'Checkbox'].includes(component);\n\n        const eventKey = `on${upperFirst(changeEvent)}`;\n\n        const on = {\n          [eventKey]: (...args: Nullable<Recordable>[]) => {\n            const [e] = args;\n            if (propsData[eventKey]) {\n              propsData[eventKey](...args);\n            }\n            const target = e ? e.target : null;\n            const value = target ? (isCheck ? target.checked : target.value) : e;\n            props.setFormModel(field, value);\n          },\n        };\n        const Comp = componentMap.get(component) as ReturnType<typeof defineComponent>;\n\n        const { autoSetPlaceHolder, size } = props.formProps;\n        const propsData: Recordable = {\n          allowClear: true,\n          getPopupContainer: (trigger: Element) => trigger.parentNode,\n          size,\n          ...unref(getComponentsProps),\n          disabled: unref(getDisable),\n        };\n\n        const isCreatePlaceholder = !propsData.disabled && autoSetPlaceHolder;\n        // RangePicker place is an array\n        if (isCreatePlaceholder && component !== 'RangePicker' && component) {\n          propsData.placeholder =\n            unref(getComponentsProps)?.placeholder || createPlaceholderMessage(component);\n        }\n        propsData.codeField = field;\n        propsData.formValues = unref(getValues);\n\n        const bindValue: Recordable = {\n          [valueField || (isCheck ? 'checked' : 'value')]: props.formModel[field],\n        };\n\n        const compAttr: Recordable = {\n          ...propsData,\n          ...on,\n          ...bindValue,\n          formItem: true\n        };\n\n        if (!renderComponentContent) {\n          return <Comp {...compAttr} />;\n        }\n        const compSlot = isFunction(renderComponentContent)\n          ? { ...renderComponentContent(unref(getValues)) }\n          : {\n              default: () => renderComponentContent,\n            };\n        return <Comp {...compAttr}>{compSlot}</Comp>;\n      }\n\n      function renderLabelHelpMessage() {\n        const { label, helpMessage, helpComponentProps, subLabel } = props.schema;\n        const getHelpMessage = isFunction(helpMessage)\n          ? helpMessage(unref(getValues))\n          : helpMessage;\n        const renderLabel = subLabel ? (\n          <span class=\"text-label\">\n            {label} <span class=\"text-secondary\">{subLabel}</span>\n            {\n              !getHelpMessage || (Array.isArray(getHelpMessage) && getHelpMessage.length === 0) ? '' : <ScHelp placement=\"top\" class=\"mx-1\" text={getHelpMessage} {...helpComponentProps} />\n            }\n          </span>\n        ) : (\n          <span class=\"text-label\">\n            {label}\n            {\n              !getHelpMessage || (Array.isArray(getHelpMessage) && getHelpMessage.length === 0) ? '' : <ScHelp placement=\"top\" class=\"mx-1\" text={getHelpMessage} {...helpComponentProps} />\n            }\n          </span>\n        );\n        return renderLabel\n        // if (!getHelpMessage || (Array.isArray(getHelpMessage) && getHelpMessage.length === 0)) {\n        //   return renderLabel;\n        // }\n        // return (\n        //   <span>\n        //     {renderLabel}\n            \n        //   </span>\n        // );\n      }\n\n      function renderItem() {\n        const { itemProps, slot, render, field, suffix, component, className, componentProps } = props.schema;\n        const { labelCol, wrapperCol } = unref(itemLabelWidthProp);\n        const { colon } = props.formProps;\n\n        if (component === 'Divider') {\n          return (\n            <Col span={24}>\n              <Divider {...unref(getComponentsProps)}>{renderLabelHelpMessage()}</Divider>\n            </Col>\n          );\n        } else {\n          const getContent = () => {\n            return slot\n              ? getSlot(slots, slot, unref(getValues))\n              : render\n              ? render(unref(getValues))\n              : renderComponent();\n          };\n\n          const showSuffix = !!suffix;\n          const getSuffix = isFunction(suffix) ? suffix(unref(getValues)) : suffix;\n\n          {/* class={{ 'suffix-item': showSuffix }} */}\n\n          let newClassName = className;\n\n          if (component === 'Input' && componentProps?.describe) {\n            newClassName = newClassName + ' ' + 'mrgb4'\n          } \n\n          return (\n            <Form.Item\n              name={field}\n              colon={colon}\n              class={[ showSuffix ? 'suffix-item' : '', newClassName ]}\n              {...(itemProps as Recordable)}\n              label={renderLabelHelpMessage()}\n              rules={handleRules()}\n              labelCol={labelCol}\n              wrapperCol={wrapperCol}\n            >\n              <div style=\"display:flex\">\n                <div style=\"flex:1;\">{getContent()}</div>\n                {showSuffix && <span class=\"suffix\">{getSuffix}</span>}\n              </div>\n            </Form.Item>\n          );\n        }\n      }\n\n      return () => {\n        const { colProps = {}, colSlot, renderColContent, component } = props.schema;\n        if (!componentMap.has(component)) {\n          return null;\n        }\n\n        const { baseColProps = {} } = props.formProps;\n        const realColProps = { ...baseColProps, ...colProps };\n        const { isIfShow, isShow } = getShow();\n        const values = unref(getValues);\n\n        const getContent = () => {\n          return colSlot\n            ? getSlot(slots, colSlot, values)\n            : renderColContent\n            ? renderColContent(values)\n            : renderItem();\n        };\n\n        return (\n          isIfShow && (\n            <Col {...realColProps} v-show={isShow}>\n              {getContent()}\n            </Col>\n          )\n        );\n      };\n    },\n  });\n</script>\n","import type { InjectionKey } from 'vue';\nimport { createContext, useContext } from '../../../hooks';\n\nexport interface FormContextProps {\n  resetAction: () => Promise<void>;\n  submitAction: () => Promise<void>;\n}\n\nconst key: InjectionKey<FormContextProps> = Symbol();\n\nexport function createFormContext(context: FormContextProps) {\n  return createContext<FormContextProps>(context, key);\n}\n\nexport function useFormContext() {\n  return useContext<FormContextProps>(key);\n}\n","<template>\n  <a-col v-bind=\"actionColOpt\" v-if=\"showActionButtonGroup\">\n    <div \n      :style=\"{ textAlign: actionColOpt.style.textAlign, width: '100%', paddingLeft: `${labelWidth}` }\"\n      :class=\"formAction\"\n    >\n      <!-- width: `calc(100% - ${pxToRem(labelWidth)})` -->\n      <FormItem>\n        <slot name=\"resetBefore\"></slot>\n        <ScButton\n          status=\"info\"\n          class=\"mr-4\"\n          v-bind=\"getResetBtnOptions\"\n          @click=\"resetAction\"\n          v-if=\"showResetButton\"\n        >\n          {{ getResetBtnOptions.text }}\n        </ScButton>\n        <slot name=\"submitBefore\"></slot>\n\n        <ScButton\n          type=\"primary\"\n          class=\"mr-4\"\n          v-bind=\"getSubmitBtnOptions\"\n          @click=\"submitAction\"\n          v-if=\"showSubmitButton\"\n        >\n          {{ getSubmitBtnOptions.text }}\n        </ScButton>\n\n        <slot name=\"advanceBefore\"></slot>\n        <ScButton\n          type=\"link\"\n          size=\"small\"\n          @click=\"toggleAdvanced\"\n          :class=\"[`${formAction}-collapse-btn`]\"\n          v-if=\"showAdvancedButton && !hideAdvanceBtn\"\n        >\n          {{ isAdvanced ? '收起' : '展开' }}\n          <!-- <BzArrow class=\"ml-1\" :expand=\"!isAdvanced\" up /> -->\n          <i :class=\"['sc-ui', 'sc-xiangxia', isAdvanced ? 'up' : 'down']\"></i>\n        </ScButton>\n        <slot name=\"advanceAfter\"></slot>\n      </FormItem>\n    </div>\n  </a-col>\n</template>\n<script lang=\"ts\">\n  import type { ColEx } from '../types/index';\n  //import type { ButtonProps } from 'ant-design-vue/es/button/buttonTypes';\n  import { defineComponent, computed, PropType } from 'vue';\n  import { Form, Col } from 'ant-design-vue';\n  import { ScButton, ButtonProps } from '../../button';\n  import { useFormContext } from '../hooks/useFormContext';\n  import { PropTypes, transformPxtoRem } from '../../../utils';\n  import { basePrefixCls } from '../../../constant';\n\n  type ButtonOptions = Partial<ButtonProps> & { text: string };\n\n  export default defineComponent({\n    name: 'BasicFormAction',\n    components: {\n      FormItem: Form.Item,\n      ScButton,\n      [Col.name]: Col,\n    },\n    props: {\n      labelWidth: {\n        type: [String, Number]\n      },\n      showActionButtonGroup: PropTypes.bool.def(true),\n      showResetButton: PropTypes.bool.def(true),\n      showSubmitButton: PropTypes.bool.def(true),\n      showAdvancedButton: PropTypes.bool.def(true),\n      resetButtonOptions: {\n        type: Object as PropType<ButtonOptions>,\n        default: () => ({}),\n      },\n      submitButtonOptions: {\n        type: Object as PropType<ButtonOptions>,\n        default: () => ({}),\n      },\n      actionColOptions: {\n        type: Object as PropType<Partial<ColEx>>,\n        default: () => ({}),\n      },\n      actionSpan: PropTypes.number.def(6),\n      isAdvanced: PropTypes.bool,\n      hideAdvanceBtn: PropTypes.bool,\n      layout: String as PropType<'horizontal'|'vertical'|'inline'>\n    },\n    emits: ['toggle-advanced'],\n    setup(props, { emit }) {\n      const formAction = [basePrefixCls + 'FormAction']\n      const actionColOpt = computed(() => {\n        const { showAdvancedButton, actionSpan: span, actionColOptions } = props;\n        const actionSpan = 24 - span;\n        const advancedSpanObj = showAdvancedButton\n          ? { span: actionSpan < 6 ? 24 : actionSpan }\n          : {};\n        const actionColOpt: Partial<ColEx> = {\n          style: { textAlign: 'left' },\n          span: showAdvancedButton ? 6 : 4,\n          ...advancedSpanObj,\n          ...actionColOptions\n        };\n        return actionColOpt;\n      });\n\n      const labelWidth = computed(() => {\n        return props.layout !== 'vertical' ? transformPxtoRem(props.labelWidth || '') : 0\n      })\n\n      const getResetBtnOptions = computed((): ButtonOptions => {\n        return Object.assign(\n          {\n            text: '重置',\n          },\n          props.resetButtonOptions,\n        );\n      });\n\n      const getSubmitBtnOptions = computed(() => {\n        return Object.assign(\n          {\n            text: '查询',\n          },\n          props.submitButtonOptions,\n        );\n      });\n\n      function toggleAdvanced() {\n        emit('toggle-advanced');\n      }\n\n      return {\n        formAction,\n        actionColOpt,\n        labelWidth,\n        getResetBtnOptions,\n        getSubmitBtnOptions,\n        toggleAdvanced,\n        ...useFormContext(),\n      };\n    },\n  });\n</script>\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { isArray, isFunction, isObject, isString, isNullOrUnDef, dateUtil } from '../../../utils';\nimport { unref } from 'vue';\nimport type { Ref, ComputedRef } from 'vue';\nimport type { FormProps, FormSchema } from '../types/form';\n// import cloneDeep from 'lodash/cloneDeep';\n// import set from 'lodash/set';\nimport lodash from 'lodash';\n\nconst { cloneDeep, set } = lodash\n\ninterface UseFormValuesContext {\n  defaultValueRef: Ref<any>;\n  getSchema: ComputedRef<FormSchema[]>;\n  getProps: ComputedRef<FormProps>;\n  formModel: Recordable;\n}\n\n/**\n * @desription 解构array-link key.\n */\nfunction tryDeconstructArray(key: string, value: any, target: Recordable) {\n  const pattern = /^\\[(.+)\\]$/;\n  if (pattern.test(key)) {\n    const match = key.match(pattern);\n    if (match && match[1]) {\n      const keys = match[1].split(',');\n      value = Array.isArray(value) ? value : [value];\n      keys.forEach((k, index) => {\n        set(target, k.trim(), value[index]);\n      });\n      return true;\n    }\n  }\n}\n\n/**\n * @desription 解构 object-link key. 此方法将改变目标.\n */\nfunction tryDeconstructObject(key: string, value: any, target: Recordable) {\n  const pattern = /^\\{(.+)\\}$/;\n  if (pattern.test(key)) {\n    const match = key.match(pattern);\n    if (match && match[1]) {\n      const keys = match[1].split(',');\n      value = isObject(value) ? value : {};\n      keys.forEach((k) => {\n        set(target, k.trim(), value[k.trim()]);\n      });\n      return true;\n    }\n  }\n}\n\nexport function useFormValues({\n  defaultValueRef,\n  getSchema,\n  formModel,\n  getProps,\n}: UseFormValuesContext) {\n  // 处理表单值\n  function handleFormValues(values: Recordable) {\n    if (!isObject(values)) {\n      return {};\n    }\n    const res: Recordable = {};\n    for (const item of Object.entries(values)) {\n      let [, value] = item;\n      const [key] = item;\n      if (!key || (isArray(value) && value.length === 0) || isFunction(value)) {\n        continue;\n      }\n      const transformDateFunc = unref(getProps).transformDateFunc;\n      if (isObject(value)) {\n        value = transformDateFunc?.(value);\n      }\n\n      if (isArray(value) && value[0]?.format && value[1]?.format) {\n        value = value.map((item) => transformDateFunc?.(item));\n      }\n      // 删除空格\n      if (isString(value)) {\n        value = value.trim();\n      }\n      if (!tryDeconstructArray(key, value, res) && !tryDeconstructObject(key, value, res)) {\n        // 没有解构成功的，按原样赋值\n        set(res, key, value);\n      }\n    }\n    return handleRangeTimeValue(res);\n  }\n\n  /**\n   * @description: 处理时间间隔参数\n   */\n  function handleRangeTimeValue(values: Recordable) {\n    const fieldMapToTime = unref(getProps).fieldMapToTime;\n\n    if (!fieldMapToTime || !Array.isArray(fieldMapToTime)) {\n      return values;\n    }\n\n    for (const [field, [startTimeKey, endTimeKey], format = 'YYYY-MM-DD'] of fieldMapToTime) {\n      if (!field || !startTimeKey || !endTimeKey) {\n        continue;\n      }\n      if (!values[field]) {\n        Reflect.deleteProperty(values, field);\n        continue;\n      }\n      const [startTime, endTime]: string[] = values[field];\n\n      values[startTimeKey] = dateUtil(startTime).format(format);\n      values[endTimeKey] = dateUtil(endTime).format(format);\n      Reflect.deleteProperty(values, field);\n    }\n\n    return values;\n  }\n\n  function initDefault() {\n    const schemas = unref(getSchema);\n    const obj: Recordable = {};\n    schemas.forEach((item) => {\n      const { defaultValue } = item;\n      if (!isNullOrUnDef(defaultValue)) {\n        obj[item.field] = defaultValue;\n\n        if (formModel[item.field] === undefined) {\n          formModel[item.field] = defaultValue;\n        }\n      }\n    });\n    defaultValueRef.value = cloneDeep(obj);\n  }\n\n  return { handleFormValues, initDefault };\n}\n","import type { ColEx } from '../types';\nimport type { AdvanceState } from '../types/hooks';\nimport { ComputedRef, getCurrentInstance, Ref, computed, unref, watch} from 'vue';\nimport type { FormProps, FormSchema } from '../types/form';\nimport { isBoolean, isFunction, isNumber, isObject } from '../../../utils';\nimport { useBreakpoint } from '../../../hooks';\nimport { useDebounceFn } from '@vueuse/core';\n\nconst BASIC_COL_LEN = 24;\n\ninterface UseAdvancedContext {\n  advanceState: AdvanceState;\n  emit: EmitType;\n  getProps: ComputedRef<FormProps>;\n  getSchema: ComputedRef<FormSchema[]>;\n  formModel: Recordable;\n  defaultValueRef: Ref<Recordable>;\n}\n\nexport default function ({\n  advanceState,\n  emit,\n  getProps,\n  getSchema,\n  formModel,\n  defaultValueRef,\n}: UseAdvancedContext) {\n  const vm = getCurrentInstance();\n\n  const { realWidthRef, screenEnum, screenRef } = useBreakpoint();\n\n  const getEmptySpan = computed((): number => {\n    if (!advanceState.isAdvanced) {\n      return 0;\n    }\n    // 对于某些特殊情况，需要手动指定额外的空行\n    const emptySpan = unref(getProps).emptySpan || 0;\n\n    if (isNumber(emptySpan)) {\n      return emptySpan;\n    }\n    if (isObject(emptySpan)) {\n      const { span = 0 } = emptySpan;\n      const screen = unref(screenRef) as string;\n\n      const screenSpan = (emptySpan as any)[screen.toLowerCase()];\n      return screenSpan || span || 0;\n    }\n    return 0;\n  });\n\n  const debounceUpdateAdvanced = useDebounceFn(updateAdvanced, 30);\n\n  watch(\n    [() => unref(getSchema), () => advanceState.isAdvanced, () => unref(realWidthRef)],\n    () => {\n      const { showAdvancedButton } = unref(getProps);\n      if (showAdvancedButton) {\n        debounceUpdateAdvanced();\n      }\n    },\n    { immediate: true },\n  );\n\n  function getAdvanced(itemCol: Partial<ColEx>, itemColSum = 0, isLastAction = false) {\n    const width = unref(realWidthRef);\n\n    const mdWidth =\n      parseInt(itemCol.md as string) ||\n      parseInt(itemCol.xs as string) ||\n      parseInt(itemCol.sm as string) ||\n      (itemCol.span as number) ||\n      BASIC_COL_LEN;\n\n    const lgWidth = parseInt(itemCol.lg as string) || mdWidth;\n    const xlWidth = parseInt(itemCol.xl as string) || lgWidth;\n    const xxlWidth = parseInt(itemCol.xxl as string) || xlWidth;\n    if (width <= screenEnum.LG) {\n      itemColSum += mdWidth;\n    } else if (width < screenEnum.XL) {\n      itemColSum += lgWidth;\n    } else if (width < screenEnum.XXL) {\n      itemColSum += xlWidth;\n    } else {\n      itemColSum += xxlWidth;\n    }\n\n    if (isLastAction) {\n      advanceState.hideAdvanceBtn = false;\n      if (itemColSum <= BASIC_COL_LEN * 2) {\n        // 小于等于2行时，不显示折叠和展开按钮\n        advanceState.hideAdvanceBtn = true;\n        advanceState.isAdvanced = true;\n      } else if (\n        itemColSum > BASIC_COL_LEN * 2 &&\n        itemColSum <= BASIC_COL_LEN * (unref(getProps).autoAdvancedLine || 3)\n      ) {\n        advanceState.hideAdvanceBtn = false;\n\n        // 超过 3 行默认折叠\n      } else if (!advanceState.isLoad) {\n        advanceState.isLoad = true;\n        advanceState.isAdvanced = !advanceState.isAdvanced;\n      }\n      return { isAdvanced: advanceState.isAdvanced, itemColSum };\n    }\n    if (itemColSum > BASIC_COL_LEN * (unref(getProps).alwaysShowLines || 1)) {\n      return { isAdvanced: advanceState.isAdvanced, itemColSum };\n    } else {\n      // 始终显示第一行\n      return { isAdvanced: true, itemColSum };\n    }\n  }\n\n  function updateAdvanced() {\n    let itemColSum = 0;\n    let realItemColSum = 0;\n    const { baseColProps = {} } = unref(getProps);\n\n    for (const schema of unref(getSchema)) {\n      const { show, colProps } = schema;\n      let isShow = true;\n\n      if (isBoolean(show)) {\n        isShow = show;\n      }\n\n      if (isFunction(show)) {\n        isShow = show({\n          schema: schema,\n          model: formModel,\n          field: schema.field,\n          values: {\n            ...unref(defaultValueRef),\n            ...formModel,\n          },\n        });\n      }\n\n      if (isShow && (colProps || baseColProps)) {\n        const { itemColSum: sum, isAdvanced } = getAdvanced(\n          { ...baseColProps, ...colProps },\n          itemColSum,\n        );\n\n        itemColSum = sum || 0;\n        if (isAdvanced) {\n          realItemColSum = itemColSum;\n        }\n        schema.isAdvanced = isAdvanced;\n      }\n    }\n    // 确保页面发送更新\n    vm?.proxy?.$forceUpdate();\n\n    advanceState.actionSpan = (realItemColSum % BASIC_COL_LEN) + unref(getEmptySpan);\n\n    getAdvanced(unref(getProps).actionColOptions || { span: BASIC_COL_LEN }, itemColSum, true);\n\n    emit('advanced-change');\n  }\n\n  function handleToggleAdvanced() {\n    advanceState.isAdvanced = !advanceState.isAdvanced;\n  }\n\n  return { handleToggleAdvanced };\n}\n","import type { ComputedRef, Ref } from 'vue';\nimport type { FormProps, FormSchema, FormActionType } from '../types/form';\nimport type { NamePath } from 'ant-design-vue/lib/form/interface';\nimport { unref, toRaw, nextTick } from 'vue';\nimport { isArray, isFunction, isObject, isString, isDef, isNullOrUnDef, dateUtil, error } from '../../../utils';\nimport deepMerge from 'deepmerge';\nimport { dateItemType, handleInputNumberValue, defaultValueComponents } from '../helper';\n// import cloneDeep from 'lodash/cloneDeep';\n// import uniqBy from 'lodash/uniqBy';\nimport lodash from 'lodash';\n\nconst { cloneDeep, uniqBy } = lodash\ninterface UseFormActionContext {\n  emit: EmitType;\n  getProps: ComputedRef<FormProps>;\n  getSchema: ComputedRef<FormSchema[]>;\n  formModel: Recordable;\n  defaultValueRef: Ref<Recordable>;\n  formElRef: Ref<FormActionType>;\n  schemaRef: Ref<FormSchema[]>;\n  handleFormValues: Fn;\n}\nexport function useFormEvents({\n  emit,\n  getProps,\n  formModel,\n  getSchema,\n  defaultValueRef,\n  formElRef,\n  schemaRef,\n  handleFormValues,\n}: UseFormActionContext) {\n  async function resetFields(): Promise<void> {\n    const { resetFunc, submitOnReset } = unref(getProps);\n    resetFunc && isFunction(resetFunc) && (await resetFunc());\n\n    const formEl = unref(formElRef);\n    if (!formEl) return;\n\n    Object.keys(formModel).forEach((key) => {\n      const schema = unref(getSchema).find((item) => item.field === key);\n      const isInput = schema?.component && defaultValueComponents.includes(schema.component);\n      const defaultValue = cloneDeep(defaultValueRef.value[key]);\n      formModel[key] = isInput ? defaultValue || '' : defaultValue;\n    });\n    nextTick(() => clearValidate());\n\n    emit('reset', toRaw(formModel));\n    submitOnReset && handleSubmit();\n  }\n\n  /**\n   * @description: 设置表单值\n   */\n  async function setFieldsValue(values: Recordable): Promise<void> {\n    const fields = unref(getSchema)\n      .map((item) => item.field)\n      .filter(Boolean);\n\n    // key 支持 a.b.c 的嵌套写法\n    const delimiter = '.';\n    const nestKeyArray = fields.filter((item) => item.indexOf(delimiter) >= 0);\n\n    const validKeys: string[] = [];\n    Object.keys(values).forEach((key) => {\n      const schema = unref(getSchema).find((item) => item.field === key);\n      let value = values[key];\n\n      const hasKey = Reflect.has(values, key);\n\n      value = handleInputNumberValue(schema?.component, value);\n      // 0| '' is allow\n      if (hasKey && fields.includes(key)) {\n        // time type\n        if (itemIsDateType(key)) {\n          if (Array.isArray(value)) {\n            const arr: any[] = [];\n            for (const ele of value) {\n              arr.push(ele ? dateUtil(ele) : null);\n            }\n            formModel[key] = arr;\n          } else {\n            const { componentProps } = schema || {};\n            let _props = componentProps as any;\n            if (typeof componentProps === 'function') {\n              _props = _props({ formModel });\n            }\n            formModel[key] = value ? (_props?.valueFormat ? value : dateUtil(value)) : null;\n          }\n        } else {\n          formModel[key] = value;\n        }\n        validKeys.push(key);\n      } else {\n        nestKeyArray.forEach((nestKey: string) => {\n          try {\n            const value = eval('values' + delimiter + nestKey);\n            if (isDef(value)) {\n              formModel[nestKey] = value;\n              validKeys.push(nestKey);\n            }\n          } catch (e) {\n            // key not exist\n            if (isDef(defaultValueRef.value[nestKey])) {\n              formModel[nestKey] = cloneDeep(defaultValueRef.value[nestKey]);\n            }\n          }\n        });\n      }\n    });\n    validateFields(validKeys).catch((_) => {});\n  }\n  /**\n   * @description: 根据字段名删除\n   */\n  async function removeSchemaByFiled(fields: string | string[]): Promise<void> {\n    const schemaList: FormSchema[] = cloneDeep(unref(getSchema));\n    if (!fields) {\n      return;\n    }\n\n    let fieldList: string[] = isString(fields) ? [fields] : fields;\n    if (isString(fields)) {\n      fieldList = [fields];\n    }\n    for (const field of fieldList) {\n      _removeSchemaByFiled(field, schemaList);\n    }\n    schemaRef.value = schemaList;\n  }\n\n  /**\n   * @description: 根据字段名删除\n   */\n  function _removeSchemaByFiled(field: string, schemaList: FormSchema[]): void {\n    if (isString(field)) {\n      const index = schemaList.findIndex((schema) => schema.field === field);\n      if (index !== -1) {\n        delete formModel[field];\n        schemaList.splice(index, 1);\n      }\n    }\n  }\n\n  /**\n   * @description: 在某个字段之后插入，如果不插入最后一个\n   */\n  async function appendSchemaByField(schema: FormSchema, prefixField?: string, first = false) {\n    const schemaList: FormSchema[] = cloneDeep(unref(getSchema));\n\n    const index = schemaList.findIndex((schema) => schema.field === prefixField);\n\n    if (!prefixField || index === -1 || first) {\n      first ? schemaList.unshift(schema) : schemaList.push(schema);\n      schemaRef.value = schemaList;\n      _setDefaultValue(schema);\n      return;\n    }\n    if (index !== -1) {\n      schemaList.splice(index + 1, 0, schema);\n    }\n    _setDefaultValue(schema);\n\n    schemaRef.value = schemaList;\n  }\n\n  async function resetSchema(data: Partial<FormSchema> | Partial<FormSchema>[]) {\n    let updateData: Partial<FormSchema>[] = [];\n    if (isObject(data)) {\n      updateData.push(data as FormSchema);\n    }\n    if (isArray(data)) {\n      updateData = [...data];\n    }\n\n    const hasField = updateData.every(\n      (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field),\n    );\n\n    if (!hasField) {\n      error('所有需要更新的 Schema 数组的子表单必须包含 `field` 字段');\n      return;\n    }\n    schemaRef.value = updateData as FormSchema[];\n  }\n\n  async function updateSchema(data: Partial<FormSchema> | Partial<FormSchema>[]) {\n    let updateData: Partial<FormSchema>[] = [];\n    if (isObject(data)) {\n      updateData.push(data as FormSchema);\n    }\n    if (isArray(data)) {\n      updateData = [...data];\n    }\n\n    const hasField = updateData.every(\n      (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field),\n    );\n\n    if (!hasField) {\n      error('所有需要更新的 Schema 数组的子表单必须包含 `field` 字段');\n      return;\n    }\n    const schema: FormSchema[] = [];\n    updateData.forEach((item) => {\n      unref(getSchema).forEach((val) => {\n        if (val.field === item.field) {\n          const newSchema = deepMerge(val, item);\n          schema.push(newSchema as FormSchema);\n        } else {\n          schema.push(val);\n        }\n      });\n    });\n    _setDefaultValue(schema);\n\n    schemaRef.value = uniqBy(schema, 'field');\n  }\n\n  function _setDefaultValue(data: FormSchema | FormSchema[]) {\n    let schemas: FormSchema[] = [];\n    if (isObject(data)) {\n      schemas.push(data as FormSchema);\n    }\n    if (isArray(data)) {\n      schemas = [...data];\n    }\n\n    const obj: Recordable = {};\n    const currentFieldsValue = getFieldsValue();\n    schemas.forEach((item) => {\n      if (\n        item.component != 'Divider' &&\n        Reflect.has(item, 'field') &&\n        item.field &&\n        !isNullOrUnDef(item.defaultValue) &&\n        !(item.field in currentFieldsValue)\n      ) {\n        obj[item.field] = item.defaultValue;\n      }\n    });\n    setFieldsValue(obj);\n  }\n\n  function getFieldsValue(): Recordable {\n    const formEl = unref(formElRef);\n    if (!formEl) return {};\n    return handleFormValues(toRaw(unref(formModel)));\n  }\n\n  /**\n   * @description: Is it time\n   */\n  function itemIsDateType(key: string) {\n    return unref(getSchema).some((item) => {\n      return item.field === key ? dateItemType.includes(item.component) : false;\n    });\n  }\n\n  async function validateFields(nameList?: NamePath[] | undefined) {\n    return unref(formElRef)?.validateFields(nameList);\n  }\n\n  async function validate(nameList?: NamePath[] | undefined) {\n    return await unref(formElRef)?.validate(nameList);\n  }\n\n  async function clearValidate(name?: string | string[]) {\n    await unref(formElRef)?.clearValidate(name);\n  }\n\n  async function scrollToField(name: NamePath, options?: ScrollOptions | undefined) {\n    await unref(formElRef)?.scrollToField(name, options);\n  }\n\n  /**\n   * @description: 表单提交\n   */\n  async function handleSubmit(e?: Event): Promise<void> {\n    e && e.preventDefault();\n\n    const { submitFunc } = unref(getProps);\n    if (submitFunc && isFunction(submitFunc)) {\n      await submitFunc();\n      return;\n    }\n    const formEl = unref(formElRef);\n    if (!formEl) return;\n    try {\n      const values = await validate();\n      const res = handleFormValues(values);\n      emit('submit', res);\n    } catch (error: any) {\n      throw new Error(error);\n    }\n  }\n\n  return {\n    handleSubmit,\n    clearValidate,\n    validate,\n    validateFields,\n    getFieldsValue,\n    updateSchema,\n    resetSchema,\n    appendSchemaByField,\n    removeSchemaByFiled,\n    resetFields,\n    setFieldsValue,\n    scrollToField,\n  };\n}\n","import type { ComputedRef, Ref } from 'vue';\nimport type { FormSchema, FormActionType, FormProps } from '../types/form';\n\nimport { unref, nextTick, watchEffect } from 'vue';\n\ninterface UseAutoFocusContext {\n  getSchema: ComputedRef<FormSchema[]>;\n  getProps: ComputedRef<FormProps>;\n  isInitedDefault: Ref<boolean>;\n  formElRef: Ref<FormActionType>;\n}\nexport async function useAutoFocus({\n  getSchema,\n  getProps,\n  formElRef,\n  isInitedDefault,\n}: UseAutoFocusContext) {\n  watchEffect(async () => {\n    if (unref(isInitedDefault) || !unref(getProps).autoFocusFirstItem) {\n      return;\n    }\n    await nextTick();\n    const schemas = unref(getSchema);\n    const formEl = unref(formElRef);\n    const el = (formEl as any)?.$el as HTMLElement;\n    if (!formEl || !el || !schemas || schemas.length === 0) {\n      return;\n    }\n\n    const firstItem = schemas[0];\n    //仅在第一个表单项为 input 类型时打开\n    if (!firstItem.component.includes('Input')) {\n      return;\n    }\n\n    const inputEl = el.querySelector('.ant-row:first-child input') as Nullable<HTMLInputElement>;\n    if (!inputEl) return;\n    inputEl?.focus();\n  });\n}\n","import type { FieldMapToTime, FormSchema } from './types/form';\nimport type { CSSProperties, PropType } from 'vue';\nimport type { ColEx } from './types';\nimport type { TableActionType } from '../table';\nimport type { ButtonProps } from 'ant-design-vue/es/button/buttonTypes';\nimport type { RowProps } from 'ant-design-vue/lib/grid/Row';\nimport { PropTypes } from '../../utils';\n\nexport const basicProps = {\n  model: {\n    type: Object as PropType<Recordable>,\n    default: {},\n  },\n  // 标签宽度  固定宽度\n  labelWidth: {\n    type: [Number, String] as PropType<number | string>,\n    default: 0,\n  },\n  // 用于将表单内时间区域的应设成 2 个字段\n  fieldMapToTime: {\n    type: Array as PropType<FieldMapToTime>,\n    default: () => [],\n  },\n  // 紧凑类型表单，减少 margin-bottom\n  compact: PropTypes.bool,\n  // 表单配置规则\n  schemas: {\n    type: [Array] as PropType<FormSchema[]>,\n    default: () => [],\n  },\n  // 额外传递到子组件的参数 values\n  mergeDynamicData: {\n    type: Object as PropType<Recordable>,\n    default: null,\n  },\n  baseRowStyle: {\n    type: Object as PropType<CSSProperties>,\n  },\n  baseColProps: {\n    type: Object as PropType<Partial<ColEx>>,\n  },\n  autoSetPlaceHolder: PropTypes.bool.def(true),\n  // 在INPUT组件上单击回车时，是否自动提交\n  autoSubmitOnEnter: PropTypes.bool.def(false),\n  submitOnReset: PropTypes.bool,\n  submitOnChange: PropTypes.bool,\n  size: PropTypes.oneOf(['default', 'small', 'large']).def('default'),\n  // 禁用表单\n  disabled: PropTypes.bool,\n  emptySpan: {\n    type: [Number, Object] as PropType<number>,\n    default: 0,\n  },\n  // 是否显示收起展开按钮\n  showAdvancedButton: PropTypes.bool,\n  // 转化时间\n  transformDateFunc: {\n    type: Function as PropType<Fn>,\n    default: (date: any) => {\n      return date?.format?.('YYYY-MM-DD HH:mm:ss') ?? date;\n    },\n  },\n  rulesMessageJoinLabel: PropTypes.bool.def(true),\n  // 超过3行自动折叠\n  autoAdvancedLine: PropTypes.number.def(3),\n  // 不受折叠影响的行数\n  alwaysShowLines: PropTypes.number.def(1),\n\n  // 是否显示操作按钮\n  showActionButtonGroup: PropTypes.bool.def(true),\n  // 操作列Col配置\n  actionColOptions: Object as PropType<Partial<ColEx>>,\n  // 显示重置按钮\n  showResetButton: PropTypes.bool.def(true),\n  // 是否聚焦第一个输入框，只在第一个表单项为input的时候作用\n  autoFocusFirstItem: PropTypes.bool,\n  // 重置按钮配置\n  resetButtonOptions: Object as PropType<Partial<ButtonProps>>,\n\n  // 显示确认按钮\n  showSubmitButton: PropTypes.bool.def(true),\n  // 确认按钮配置\n  submitButtonOptions: Object as PropType<Partial<ButtonProps>>,\n\n  // 自定义重置函数\n  resetFunc: Function as PropType<() => Promise<void>>,\n  submitFunc: Function as PropType<() => Promise<void>>,\n\n  // 以下为默认props\n  hideRequiredMark: PropTypes.bool,\n\n  labelCol: Object as PropType<Partial<ColEx>>,\n\n  layout: PropTypes.oneOf(['horizontal', 'vertical', 'inline']).def('horizontal'),\n  tableAction: {\n    type: Object as PropType<TableActionType>,\n  },\n\n  wrapperCol: Object as PropType<Partial<ColEx>>,\n\n  colon: PropTypes.bool,\n\n  labelAlign: PropTypes.string,\n\n  rowProps: Object as PropType<RowProps>,\n};\n","<template>\n  <Form\n    v-bind=\"getBindValue\"\n    :class=\"getFormClass\"\n    ref=\"formElRef\"\n    :model=\"formModel\"\n    @keypress.enter=\"handleEnterPress\"\n  >\n    <!-- :style=\"{ '--labelWidth':  getProps.labelWidth}\" -->\n    <Row v-bind=\"getRow\">\n      <slot name=\"formHeader\"></slot>\n      <template v-for=\"schema in getSchema\" :key=\"schema.field\">\n        <FormItem\n          :tableAction=\"tableAction\"\n          :formActionType=\"formActionType\"\n          :schema=\"schema\"\n          :formProps=\"getProps\"\n          :allDefaultValues=\"defaultValueRef\"\n          :formModel=\"formModel\"\n          :setFormModel=\"setFormModel\"\n        >\n          <template #[item]=\"data\" v-for=\"item in Object.keys($slots)\">\n            <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n          </template>\n        </FormItem>\n      </template>\n\n      <FormAction v-bind=\"getFormActionBindProps\" @toggle-advanced=\"handleToggleAdvanced\">\n        <template\n          #[item]=\"data\"\n          v-for=\"item in ['resetBefore', 'submitBefore', 'advanceBefore', 'advanceAfter']\"\n        >\n          <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n        </template>\n      </FormAction>\n      <slot name=\"formFooter\"></slot>\n    </Row>\n  </Form>\n</template>\n<script lang=\"ts\">\n  //type\n  import type { FormActionType, FormProps, FormSchema } from './types/form';\n  import type { AdvanceState } from './types/hooks';\n  import type { Ref } from 'vue';\n\n  import { defineComponent, reactive, ref, computed, unref, onMounted, watch, nextTick } from 'vue';\n  import { Form, Row } from 'ant-design-vue';\n  import FormItem from './component/FormItem.vue';\n  import FormAction from './component/FormAction.vue';\n\n  import { dateItemType } from './helper';\n  import { dateUtil } from '../../utils';\n\n  import deepMerge from 'deepmerge';\n  // import cloneDeep from 'lodash/cloneDeep';\n  import lodash from 'lodash';\n\n  import { useFormValues } from './hooks/useFormValues';\n  import useAdvanced from './hooks/useAdvanced';\n  import { useFormEvents } from './hooks/useFormEvents';\n  import { createFormContext } from './hooks/useFormContext';\n  import { useAutoFocus } from './hooks/useAutoFocus';\n  import { useModalContext } from '../modal';\n  import { useDebounceFn } from '@vueuse/core';\n\n  import { basePrefixCls } from '../../constant';\n\n  import { basicProps } from './props';\n  // import { useDesign } from '/@/hooks/web/useDesign';\n\n  const { cloneDeep } = lodash\n\n  export default defineComponent({\n    name: 'ScForm',\n    components: {\n      Form,\n      Row,\n      FormItem,\n      FormAction,\n    },\n    props: basicProps,\n    emits: ['advanced-change', 'reset', 'submit', 'register', 'field-value-change'],\n    setup(props, { emit, attrs }) {\n      const formModel = reactive<Recordable>({});\n      const modalFn = useModalContext();\n\n      //  展开\n      const advanceState = reactive<AdvanceState>({\n        isAdvanced: true,\n        hideAdvanceBtn: false,\n        isLoad: false,\n        actionSpan: 6,\n      });\n\n      const defaultValueRef = ref<Recordable>({});\n      const isInitedDefaultRef = ref(false);\n      const propsRef = ref<Partial<FormProps>>({});\n      const schemaRef = ref<Nullable<FormSchema[]>>(null);\n      const formElRef = ref<Nullable<FormActionType>>(null);\n      // const { prefixCls } = useDesign('basic-form');\n      const prefixCls = basePrefixCls + 'Basic-form'\n      // 获取表单的基本配置\n      const getProps = computed((): FormProps => {\n        // @ts-ignore\n        return { ...props, ...unref(propsRef) } as FormProps;\n      });\n\n      const isRequire = computed(() => {\n        const list = unref(getProps).schemas?.find(item => {\n          return item.required\n        })\n        return Boolean(list)\n      })\n\n      const getFormClass = computed(() => {\n        return [\n          prefixCls,\n          {\n            [`${prefixCls}--compact`]: unref(getProps).compact,\n            'isRequire': isRequire.value\n          },\n        ];\n      });\n      // 为整个表单获取统一的Row 样式和配置\n      const getRow = computed((): Recordable => {\n        const { baseRowStyle = {}, rowProps } = unref(getProps);\n        return {\n          style: baseRowStyle,\n          ...rowProps,\n        };\n      });\n      const getBindValue = computed(\n        () => ({ ...attrs, ...props, ...unref(getProps) } as Recordable),\n      );\n        \n      const getSchema = computed((): FormSchema[] => {\n        const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any);\n        for (const schema of schemas) {\n          const { defaultValue, component } = schema;\n          // 处理日期类型\n          if (defaultValue && dateItemType.includes(component)) {\n            if (!Array.isArray(defaultValue)) {\n              schema.defaultValue = dateUtil(defaultValue);\n            } else {\n              const def: any[] = [];\n              defaultValue.forEach((item) => {\n                def.push(dateUtil(item));\n              });\n              schema.defaultValue = def;\n            }\n          }\n        }\n        if (unref(getProps).showAdvancedButton) {\n          return cloneDeep(\n            schemas.filter((schema) => schema.component !== 'Divider') as FormSchema[],\n          );\n        } else {\n          return cloneDeep(schemas as FormSchema[]);\n        }\n      });\n\n      const { handleToggleAdvanced } = useAdvanced({\n        advanceState,\n        emit,\n        getProps,\n        getSchema,\n        formModel,\n        defaultValueRef,\n      });\n\n      const { handleFormValues, initDefault } = useFormValues({\n        getProps,\n        defaultValueRef,\n        getSchema,\n        formModel,\n      });\n\n      useAutoFocus({\n        getSchema,\n        getProps,\n        isInitedDefault: isInitedDefaultRef,\n        formElRef: formElRef as Ref<FormActionType>,\n      });\n\n      const {\n        handleSubmit,\n        setFieldsValue,\n        clearValidate,\n        validate,\n        validateFields,\n        getFieldsValue,\n        updateSchema,\n        resetSchema,\n        appendSchemaByField,\n        removeSchemaByFiled,\n        resetFields,\n        scrollToField,\n      } = useFormEvents({\n        emit,\n        getProps,\n        formModel,\n        getSchema,\n        defaultValueRef,\n        formElRef: formElRef as Ref<FormActionType>,\n        schemaRef: schemaRef as Ref<FormSchema[]>,\n        handleFormValues,\n      });\n\n      createFormContext({\n        resetAction: resetFields,\n        submitAction: handleSubmit,\n      });\n\n      watch(\n        () => unref(getProps).model,\n        () => {\n          const { model } = unref(getProps);\n          if (!model) return;\n          setFieldsValue(model);\n        },\n        {\n          immediate: true,\n        },\n      );\n\n      watch(\n        () => unref(getProps).schemas,\n        (schemas) => {\n          resetSchema(schemas ?? []);\n        },\n      );\n\n      watch(\n        () => getSchema.value,\n        (schema) => {\n          nextTick(() => {\n            //  解决模态自适应高度计算的问题，\n            modalFn?.redoModalHeight?.();\n          });\n          if (unref(isInitedDefaultRef)) {\n            return;\n          }\n          if (schema?.length) {\n            initDefault();\n            isInitedDefaultRef.value = true;\n          }\n        },\n      );\n\n      watch(\n        () => formModel,\n        useDebounceFn(() => {\n          unref(getProps).submitOnChange && handleSubmit();\n        }, 300),\n        { deep: true },\n      );\n\n      async function setProps(formProps: Partial<FormProps>): Promise<void> {\n        propsRef.value = deepMerge(unref(propsRef) || {}, formProps);\n      }\n\n      function setFormModel(key: string, value: any) {\n        formModel[key] = value;\n        const { validateTrigger } = unref(getBindValue);\n        if (!validateTrigger || validateTrigger === 'change') {\n          validateFields([key]).catch((_) => {});\n        }\n        emit('field-value-change', key, value);\n      }\n\n      function handleEnterPress(e: KeyboardEvent) {\n        const { autoSubmitOnEnter } = unref(getProps);\n        if (!autoSubmitOnEnter) return;\n        if (e.key === 'Enter' && e.target && e.target instanceof HTMLElement) {\n          const target: HTMLElement = e.target as HTMLElement;\n          if (target && target.tagName && target.tagName.toUpperCase() == 'INPUT') {\n            handleSubmit();\n          }\n        }\n      }\n\n      const formActionType: Partial<FormActionType> = {\n        getFieldsValue,\n        setFieldsValue,\n        resetFields,\n        updateSchema,\n        resetSchema,\n        setProps,\n        removeSchemaByFiled,\n        appendSchemaByField,\n        clearValidate,\n        validateFields,\n        validate,\n        submit: handleSubmit,\n        scrollToField: scrollToField,\n      };\n\n      onMounted(() => {\n        initDefault();\n        emit('register', formActionType);\n      });\n\n      return {\n        getBindValue,\n        handleToggleAdvanced,\n        handleEnterPress,\n        formModel,\n        defaultValueRef,\n        advanceState,\n        getRow,\n        getProps,\n        formElRef,\n        getSchema,\n        formActionType: formActionType as any,\n        setFormModel,\n        getFormClass,\n        getFormActionBindProps: computed(\n          (): Recordable => ({ ...getProps.value, ...advanceState, layout: getBindValue.value.layout }),\n        ),\n        ...formActionType,\n      };\n    },\n  });\n</script>\n","import type { FormProps, FormActionType, UseFormReturnType, FormSchema } from '../types/form';\nimport type { NamePath } from 'ant-design-vue/lib/form/interface';\nimport type { DynamicProps } from '../../../../types/utils';\nimport { ref, onUnmounted, unref, nextTick, watch } from 'vue';\nimport { error, getDynamicProps } from '../../..//utils';\n\nexport declare type ValidateFields = (nameList?: NamePath[]) => Promise<Recordable>;\n\ntype Props = Partial<DynamicProps<FormProps>>;\n\nexport function useForm(props?: Props): UseFormReturnType {\n  const formRef = ref<Nullable<FormActionType>>(null);\n  const loadedRef = ref<Nullable<boolean>>(false);\n\n  async function getForm() {\n    const form = unref(formRef);\n    if (!form) {\n      error('未获得表单实例，请确保在执行表单操作时表单已存在!');\n    }\n    await nextTick();\n    return form as FormActionType;\n  }\n\n  function register(instance: FormActionType) {\n    onUnmounted(() => {\n      formRef.value = null;\n      loadedRef.value = null;\n    });\n    if (unref(loadedRef) && instance === unref(formRef)) return;\n\n    formRef.value = instance;\n    loadedRef.value = true;\n\n    watch(\n      () => props,\n      () => {\n        props && instance.setProps(getDynamicProps(props));\n      },\n      {\n        immediate: true,\n        deep: true,\n      },\n    );\n  }\n\n  const methods: FormActionType = {\n    scrollToField: async (name: NamePath, options?: ScrollOptions | undefined) => {\n      const form = await getForm();\n      form.scrollToField(name, options);\n    },\n    setProps: async (formProps: Partial<FormProps>) => {\n      const form = await getForm();\n      form.setProps(formProps);\n    },\n\n    updateSchema: async (data: Partial<FormSchema> | Partial<FormSchema>[]) => {\n      const form = await getForm();\n      form.updateSchema(data);\n    },\n\n    resetSchema: async (data: Partial<FormSchema> | Partial<FormSchema>[]) => {\n      const form = await getForm();\n      form.resetSchema(data);\n    },\n\n    clearValidate: async (name?: string | string[]) => {\n      const form = await getForm();\n      form.clearValidate(name);\n    },\n\n    resetFields: async () => {\n      getForm().then(async (form) => {\n        await form.resetFields();\n      });\n    },\n\n    removeSchemaByFiled: async (field: string | string[]) => {\n      unref(formRef)?.removeSchemaByFiled(field);\n    },\n\n    // TODO promisify\n    getFieldsValue: <T>() => {\n      return unref(formRef)?.getFieldsValue() as T;\n    },\n\n    setFieldsValue: async <T>(values: T) => {\n      const form = await getForm();\n      form.setFieldsValue<T>(values);\n    },\n\n    appendSchemaByField: async (\n      schema: FormSchema,\n      prefixField: string | undefined,\n      first: boolean,\n    ) => {\n      const form = await getForm();\n      form.appendSchemaByField(schema, prefixField, first);\n    },\n\n    submit: async (): Promise<any> => {\n      const form = await getForm();\n      return form.submit();\n    },\n\n    validate: async (nameList?: NamePath[]): Promise<Recordable> => {\n      const form = await getForm();\n      return form.validate(nameList);\n    },\n\n    validateFields: async (nameList?: NamePath[]): Promise<Recordable> => {\n      const form = await getForm();\n      return form.validateFields(nameList);\n    },\n  };\n\n  return [register, methods];\n}\n","import { withInstall } from \"../../utils/index\"\nimport scForm from './ScForm.vue'\n\nexport { useForm } from './hooks/useForm'\n\nexport { default as ApiSelect } from './component/ApiSelect.vue'\nexport { default as RadioButtonGroup } from './component/RadioButtonGroup.vue'\nexport { default as ApiTreeSelect } from './component/ApiTreeSelect.vue'\nexport { default as ApiTree } from './component/ApiTree.vue'\nexport { default as ApiRadioGroup } from './component/ApiRadioGroup.vue'\nexport { default as ApiCascader } from './component/ApiCascader.vue'\n\nexport const ScForm = withInstall(scForm)","\nexport const scIpProps = () => ({\n  modalValue: [String, Array],\n  value: [String, Array],\n  disabled: Boolean,\n  disabledIndex: {\n    type: Array,\n    default () {\n      return []\n    }\n  },\n  type: {\n    type: String,\n    default () {\n      return 'number'\n    }\n  },\n  parseSeparator: {\n    type: String,\n    default () {\n      return '.'\n    }\n  },\n  joinSeparator: {\n    type: String,\n    default () {\n      return '.'\n    }\n  },\n  needDefault: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  copyDisabled: {\n    type: Boolean,\n    default () {\n      return false\n    }\n  },\n  inputNumberOptions: {\n    type: [Object, Array],\n    default () {\n      return {\n        max: 255,\n        min: 0,\n        precision: 0,\n        showControl: false\n      }\n    }\n  }\n})\n\nexport interface IpItemType {\n  value?: string | number,\n  max?: string | number,\n  min?: string | number,\n  autoFocus?: boolean,\n  [key:string]: any\n}","<template>\n  <div\n    :class=\"classNames\"\n  >\n    <template\n      v-for=\"(item, index) in ipListRec.list\"\n    >\n      <span\n        v-if=\"index !== 0\"\n        :class=\"[baseClass + '-separatorInner']\"\n      >\n        <span\n          v-if=\"!isLabelSeparatorSlot \"\n          :class=\"[baseClass + '-labelSeparator']\"\n        >\n        </span>\n        <slot v-else name=\"labelSeparator\"></slot>\n      </span>\n      <Tooltip\n        :trigger=\"item.tooltipTrigger || ['hover', 'focus']\"\n      >\n        <template #title v-if=\"newInputNumberOptions[index]?.tooltipDes\">\n          <component :is='item.tooltipDes' v-if=\"isVNode(newInputNumberOptions[index].tooltipDes)\"></component>\n          <span v-else class=\"formIp-tooltip\">{{ newInputNumberOptions[index].tooltipDes }}</span>\n        </template>\n        <input\n          :class=\"[baseClass + '-input', 'ant-input']\"\n          :ref=\"refList[index as number]\"\n          v-model=\"item.value\"\n          v-bind=\"{...item}\"\n          @input=\"($event) => checkIpVal(index as number)\"\n          @blur=\"($event) => setVal(index as number)\"\n          @keydown=\"($event) => handleKeyboardDelete(index as number, $event)\"\n          @keyup=\"($event) => turnIpPOS(index as number, $event)\"\n        >\n      </Tooltip>\n    </template>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watch, reactive, unref, onMounted, nextTick, isVNode } from 'vue'\nimport { message, Tooltip } from 'ant-design-vue'\n\nimport { scIpProps, IpItemType } from './type'\nimport { basePrefixCls } from '../../../constant'\nimport { isObject, isArray } from '../../../utils/is'\nimport { buildUUID } from '../../../utils'\n\nexport default defineComponent({\n  name: 'ScIp',\n  emits: ['update:value', 'change'],\n  props: scIpProps(),\n  components: {\n    Tooltip\n  },\n  setup (props, { slots, emit }) {\n    const ipListSourceRef = ref(props.modalValue)\n\n    const baseClass = basePrefixCls + 'Ips'\n\n    const ipv4Region = /^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/\n\n    const uuid = basePrefixCls + buildUUID()\n\n    const isProps = ref(false)\n\n    const keyDownSelectionStart = ref(0)\n\n    const refList = ref([])\n\n    const classNames = computed(() => {\n      return [\n        uuid,\n        baseClass\n      ]\n    })\n\n    const valueRef = ref(props.value || '...')\n    \n    const isLabelSeparatorSlot = computed(() => {\n      return Object.keys(slots).includes('labelSeparator')\n    })\n    \n\n    const ipListRec = reactive<{list: IpItemType}>({\n      list: [\n        {\n          value: '',\n          type: 'text',\n          max: 255, \n          min: 0\n        }, {\n          value: '',\n          type: 'text',\n          max: 255, \n          min: 0\n        }, {\n          value: '',\n          type: 'text',\n          max: 255, \n          min: 0\n        }, {\n          value: '',\n          type: 'text',\n          max: 255, \n          min: 0\n        }\n      ]\n    })\n\n    watch(() => props.disabledIndex, (val: number[]) => {\n      const { disabled } = props\n      ipListRec.list.forEach((item: any, index: number) => {\n        if (val.includes(index)) {\n          item.disabled = true || disabled\n        } else {\n          item.disabled = false || disabled\n        }\n        \n      })\n    }, {\n      immediate: true\n    })\n\n    const checkValue = (value: string, options: IpItemType) => {\n      const { needDefault } = props\n      const { max, min } = options as IpItemType\n      // 当输入的是空格时，值赋为空\n      let val = parseInt(value + '')\n      val = val < min ? min : val\n      val = val > max ? max : val\n      return !needDefault ? val || '' : val || 0\n      // return val || ''\n    }\n\n    watch(() => props.value, (val:any) => {\n      const { parseSeparator, inputNumberOptions, disabledIndex, disabled, joinSeparator } = props\n      const list = (val || '...')?.split(`${parseSeparator}`)\n      const newList = list?.map((item: string, index: number) => {\n        let newItem = {\n          // value: !needDefault ? parseInt(item) || '' : parseInt(item) || 0,\n          disabled: disabledIndex?.includes(index)  || disabled,\n          type: 'text'\n        }\n        if (isObject(inputNumberOptions)) {\n          newItem = {...newItem, ...inputNumberOptions}\n        }\n        if (isArray(inputNumberOptions)) {\n          newItem = {...{ max: 255, min: 0, precision: 0, showControl: false}, ...newItem, ...inputNumberOptions[index] }\n        }\n        newItem.value = checkValue(item, newItem)\n        isProps.value = true\n        return newItem\n      }) || []\n      ipListRec.list = newList\n      valueRef.value = newList.map((item: IpItemType) => item.value).join(joinSeparator)\n      refList.value = list.map((item:any) => {\n        return ref()\n      })\n    }, {\n      immediate: true\n    })\n\n    const newInputNumberOptions = computed(() => {\n      return props.inputNumberOptions || []\n    })\n\n    const jumpLeft = (index: number) => {\n      const { disabled, value } = ipListRec.list[index - 1] || {}\n      if (disabled) {\n        jumpLeft(index - 1)\n      } else {\n        const ipRef = unref(refList)[index - 1]\n        ipRef?.value[0]?.focus()\n        ipRef?.value[0].setSelectionRange((value + '').length, (value + '').length)\n      }\n    }\n\n    const jumpRight = (index: number) => {\n      const { disabled, value } = ipListRec.list[index + 1] || {}\n      if (disabled) {\n        jumpRight(index + 1)\n      } else {\n        const ipRef = unref(refList)[index + 1]\n        ipRef?.value[0].focus()\n        ipRef?.value[0].setSelectionRange((value + '').length, (value + '').length)\n      }\n    }\n\n    const emitValue = () => {\n      const { joinSeparator, disabled } = props\n      const curValue = ipListRec.list.map((item: IpItemType) => item.value)?.join(joinSeparator)\n        if (!disabled) {\n          emit('update:value', curValue)\n          emit('change', curValue)\n        }\n    }\n\n    const checkIpVal = (index: number) => {\n      const { value, min, max } = ipListRec.list[index]\n      const { joinSeparator, disabled, needDefault } = props\n      // 当输入的是空格时，值赋为空\n      let val = parseInt(value + '')\n      if (isNaN(val)) {\n        if (needDefault) {\n          ipListRec.list[index].value = 0\n        } else {\n          ipListRec.list[index].value = ''\n        }\n        emitValue()\n        return\n      }\n      val = val < min ? min : val\n      val = val > max ? max : val\n      ipListRec.list[index].value = val\n      if ((ipListRec.list[index].value + '').length === 3 && index !== 3) jumpRight(index)\n\n      const curValue = ipListRec.list.map((item: IpItemType) => item.value)?.join(joinSeparator)\n      if (!disabled) {\n        emit('update:value', curValue)\n        emit('change', curValue)\n      }\n    }\n\n    const setVal = (index: number) => {\n      const { needDefault } = props\n      if (needDefault && (ipListRec.list[index].value === '' || ipListRec.list[index].value === undefined)) {\n        ipListRec.list[index].value = 0\n      }\n    }\n\n    const handleKeyboardDelete = (index: number, event: any) => {\n      const e = event || window.event\n      keyDownSelectionStart.value = (unref(refList)[index]?.value[0] as HTMLInputElement).selectionStart || 0\n      if (e.keyCode === 190 || e.keyCode === 110) {\n        e.preventDefault()\n        return false\n      }\n    }\n\n    const turnIpPOS = (index: number, event: any) => {\n      const e = event\n      // 左箭头向左跳转，左一不做任何措施\n      if (e.keyCode === 37 && index && keyDownSelectionStart.value === 0) jumpLeft(index)\n      // 删除键把当前数据删除完毕后会跳转到前一个input，左一不做任何处理\n      if (e.keyCode === 8 && index && e.currentTarget.selectionStart === 0 && keyDownSelectionStart.value === 0) jumpLeft(index)\n      // 右箭头、回车键、小键盘.、字母键盘.，右一不做任何措施\n      if (\n        (e.keyCode === 39 || e.keyCode === 13 || e.keyCode === 110 || e.keyCode === 190) &&\n        index !== 3 &&\n        keyDownSelectionStart.value === ipListRec.list[index].value.toString().length\n        ) {\n          jumpRight(index)\n      }\n    }\n\n    onMounted(() => {\n      nextTick(() => {\n        const inputList = document.querySelectorAll(`.${uuid} .scIps-input`)\n        inputList?.forEach((item: HTMLInputElement, inputIndex: number) => {\n          item.addEventListener('paste', (event: Event) => {\n            const { disabledIndex, parseSeparator, copyDisabled } = props\n            const currList = String(valueRef.value || '...')?.split(parseSeparator)\n            event.preventDefault()\n            let pasteStr = (event?.clipboardData || window?.clipboardData).getData(\"text\");\n            const pasteList = ipv4Region.test(pasteStr.trim()) ? pasteStr.split(parseSeparator) : false\n            if (pasteList && pasteList.length === 4) {\n              const newList = currList.map((valueItem, _index) => {\n                if (!disabledIndex.includes(_index) || copyDisabled) {\n                  valueItem = pasteList[_index]\n                }\n                return valueItem\n              })\n              newList?.forEach((item: any, index: number) => {\n                ipListRec.list[index].value = item\n              })\n              emitValue()\n            } else if (!isNaN(pasteStr.trim())) {\n              currList?.forEach((item: any, index: number) => {\n                if (inputIndex === index) {\n                  ipListRec.list[index].value = checkValue(pasteStr.trim(), ipListRec.list[index])\n                }\n              })\n              emitValue()\n            } else {\n              message.warning('粘贴不符合ipv4格式')\n            }\n          })\n        })\n      })\n    }) \n\n    return {\n      baseClass,\n      classNames,\n      ipListRec,\n      ipListSourceRef,\n      isLabelSeparatorSlot,\n      refList,\n      newInputNumberOptions,\n\n      isVNode,\n      setVal,\n      checkIpVal,\n      handleKeyboardDelete,\n      turnIpPOS\n    }\n  }\n})\n</script>","import { ExtractPropTypes } from 'vue'\nimport { withInstall } from \"../../utils/index\"\nimport scIp from './component/ScIp.vue'\nimport { scIpProps } from './component/type'\n\nexport const ScIp = withInstall(scIp)\nexport declare type ScIpProps = Partial<ExtractPropTypes<typeof scIpProps>> ","import type { PropType } from 'vue';\nimport type { AlertProps } from '../../alert/index'\nimport type { ScrollbarProps } from '../../scrollbar/index'\n\nexport const footerProps = {\n  confirmLoading: { type: Boolean },\n  /**\n   * @description: Show close button\n   */\n  showCancelBtn: { type: Boolean, default: true },\n  cancelButtonProps: Object as PropType<Recordable>,\n  cancelText: { type: String, default: '取消' },\n  /**\n   * @description: Show confirmation button\n   */\n  showOkBtn: { type: Boolean, default: true },\n  okButtonProps: Object as PropType<Recordable>,\n  okText: { type: String, default: '确定' },\n  okType: { type: String, default: 'primary' },\n  showFooter: { type: Boolean, default: true },\n  footerHeight: {\n    type: [String, Number] as PropType<string | number>,\n    default: 60,\n  },\n  footerAlign: {\n    type: String,\n    validator: (v:string) => ['left', 'center', 'right'].includes(v)\n  }\n};\nexport const basicProps = {\n  transformTop: [Number, String],\n  title: { type: String, default: '' },\n  loadingText: { type: String },\n  helpInfo: { type: String },\n  showDetailBack: { type: Boolean, default: true },\n  visible: { type: Boolean },\n  alertOptions: {\n    type: Object as PropType<AlertProps>\n  },\n  drawerStyle: Object,\n  minusDefaultMaxHeight: {\n    type: Number,\n    default () {\n      return 0\n    }\n  },\n\n  onOk: Function as PropType<(e:MouseEvent) => void>,\n  onCancel: Function as PropType<(e:MouseEvent) => void>,\n\n  scrollbarOptions: {\n    type: Object as PropType<ScrollbarProps>\n  },\n  closable: { type: Boolean, default: true },\n  loading: { type: Boolean },\n  width: {\n    type: [Number, String]\n  },\n  widthSize: {\n    type: String,\n    validator: (v:string) => ['mini', 'middle', 'large'].includes(v)\n  },\n  maskClosable: { type: Boolean, default: true },\n  getContainer: {\n    type: [Object, String] as PropType<any>,\n  },\n  closeFunc: Function as PropType<() => Promise<boolean>>,\n  destroyOnClose: { type: Boolean },\n  ...footerProps,\n};\n","<template>\n  <Drawer\n    v-bind=\"vBind\"\n    v-model:visible=\"visibleRef\"\n    :class=\"className\"\n    :style=\"drawerStyle\"\n    ref=\"drawerRef\"\n  >\n    <!-- <template template #[item]=\"data\" v-for=\"item in Object.keys($slots)\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template> -->\n\n    <template #title>\n      <header\n        v-if=\"curProps.title || $slots.title\"\n        :class=\"[baseClass + '-header']\"\n      >\n        <div :class=\"[baseClass + '-title']\"  v-if=\"!$slots.title\">\n          <span :class=\"[baseClass + '-txt']\">\n            {{ curProps.title }}\n            <Tooltip placement=\"bottomRight\" trigger=\"hover\" v-if=\"curProps.helpInfo\">\n              <i class=\"sc-ui sc-question-circle\"></i>\n              <template #title>\n                {{ curProps.helpInfo }}\n              </template>\n            </Tooltip>\n          </span>\n          <span v-if=\"$slots.titleToolbar\" :class=\"[baseClass + '-toolbar']\">\n            <slot name=\"titleToolbar\"></slot>\n          </span>\n        </div>\n        <slot name=\"title\" v-else></slot>\n      </header>\n    </template>\n    <template #default>\n      <span \n        v-if=\"curProps.closable && curProps.visible\" \n        :class=\"[baseClass + '-close', curProps.confirmLoading || loadingRef ? 'not-allow' : '']\"\n        @click=\"handleClose\"\n      >\n        <span :class=\"[baseClass + '-close__btn']\">\n          <i class=\"sc-ui sc-a-Union11\"></i>\n        </span>\n      </span>\n      <ScAlert\n        v-if=\"!$slots.info && curProps.alertOptions\"\n        v-bind=\"curProps.alertOptions\"\n        ref=\"alertRef\"\n        size=\"mini\"\n        :class=\"[baseClass + '-alert']\"\n      >\n      </ScAlert>\n      <div\n        v-if=\"$slots.info\"\n        :class=\"[baseClass + '-alert']\"\n      >\n      <slot name=\"info\"></slot>\n      </div>\n      <ScScrollbar\n        v-loading=\"vBind.loading\"\n        ref=\"scrollBarRef\"\n        v-bind=\"scrollbarProps\"\n        :wrapClass=\"baseClass + '-scrollbar'\"\n        :fullscreen=\"false\"\n        :loading-tip=\"curProps.loadingText || '加载中...'\"\n      >\n        <slot name=\"default\"></slot>\n      </ScScrollbar>\n      <footer\n        v-if=\"curProps.showFooter || $slots.footer || $slots.insertFooter || $slots.afterFooter\"\n        :class=\"[baseClass + '-footer', curProps.footerAlign ? 'text-' + curProps.footerAlign : '']\"\n      >\n        <template v-if=\"curProps.showFooter && !$slots.footer\">\n          <slot name=\"insertFooter\"></slot>\n          <ScButton\n            v-if=\"curProps.showCancelBtn\"\n            v-bind=\"curProps.cancelButtonProps\"\n            status=\"info\"\n            :loading=\"cancelLoadingRef\"\n            :disabled=\"curProps.confirmLoading || loadingRef\"\n            @click=\"handleClose\"\n          > \n            {{ curProps.cancelText || '取消' }}\n          </ScButton>\n          <ScButton \n            v-if=\"curProps.showOkBtn\"\n            type=\"primary\"\n            v-bind=\"curProps.okButtonProps\"\n            :loading=\"curProps.confirmLoading || loadingRef\"\n            @click=\"$event => handleOk()\"\n          >\n            {{ curProps.okText || '确定' }}\n          </ScButton>\n          <slot name=\"afterFooter\"></slot>\n        </template>\n        <slot name=\"footer\" v-else=\"$slots.footer\"></slot>\n      </footer>\n    </template>\n  </Drawer>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, onMounted, ref, unref, watch, watchEffect, getCurrentInstance } from 'vue'\nimport { Drawer, Tooltip } from 'ant-design-vue'\n\nimport { ScAlert } from '../../alert'\nimport { ScScrollbar } from '../../scrollbar'\nimport { ScButton } from '../../button'\nimport { basePrefixCls } from '../../../constant'\nimport { optimizedResize } from '../../../utils/dom/addEventListener'\nimport { buildUUID, isFunction, deepMerge, pxToRem } from '../../../utils'\nimport { basicProps } from './props'\nimport { DrawerMethods, DrawerProps } from './typing'\nimport LoadingDirective from '../../../directives/loading'\n\nexport default defineComponent({\n  name: 'ScDrawer',\n  inheritAttrs: false,\n  components: { Drawer, Tooltip, ScAlert, ScScrollbar, ScButton },\n  props: basicProps,\n  emits: ['update:visible', 'close', 'register', 'ok', 'cancel'],\n  directives: {\n    loading: LoadingDirective\n  },\n  setup (props, { attrs, emit, expose }) {\n    const baseClass = basePrefixCls + 'Drawer'\n    const uuid = baseClass + buildUUID()\n    const maxHeight = ref()\n    const drawerRef = ref()\n    const loadingRef = ref(false)\n    const visibleRef = ref(false)\n    const propsRef = ref()\n    const cancelLoadingRef = ref(false)\n    const scrollbarRef = ref()\n    const alertRef = ref()\n\n    const curProps = computed(() => {\n      return {\n        ...props,\n        ...attrs,\n      }\n    })\n    const vBind = computed(() => {\n      const { widthSize, width, confirmLoading, maskClosable } = props\n      return {\n        ...props,\n        ...attrs,\n        ...propsRef.value,\n        title: undefined,\n        width: width ? width : (widthSize === 'middle' ? 500 : widthSize === 'large' ? 760 : 300),\n        closable: false,\n        maskClosable: confirmLoading ? false : maskClosable,\n      }\n    })\n    \n    const drawerStyle = computed(() => {\n      // @ts-ignore\n      const transformTop = props.transformTop ?  { height: `calc(100% - ${pxToRem(props.transformTop)})`, top: pxToRem(props.transformTop) } : {}\n      return transformTop\n    })\n    const className = computed(() => {\n      const classNames = [baseClass, uuid]\n      return classNames\n    })\n\n    const scrollbarProps = computed(() => {\n      const { scrollbarOptions } = unref(curProps)\n      // const bbb = {\n      //   ...scrollbarOptions,\n      //   // @ts-ignore\n      //   maxHeight: scrollbarOptions?.maxHeight ? scrollbarOptions?.maxHeight :  maxHeight.value,\n      //   // @ts-ignore\n      //   height: scrollbarOptions?.maxHeight ? scrollbarOptions?.maxHeight :  maxHeight.value\n      // }\n      return {\n        ...scrollbarOptions,\n        // @ts-ignore\n        maxHeight: scrollbarOptions?.maxHeight ? scrollbarOptions?.maxHeight :  maxHeight.value,\n        // @ts-ignore\n        height: scrollbarOptions?.maxHeight ? scrollbarOptions?.maxHeight :  maxHeight.value\n      }\n    })\n    const updateMaxHeight = () => {\n      const { minusDefaultMaxHeight } = curProps.value\n      if (window && visibleRef.value) {\n        const contentHeight:number = document.querySelector('.' + uuid)?.scrollHeight || 0\n        const headerHeight:number = document.querySelector('.' + uuid + ' .ant-drawer-header')?.scrollHeight || 0\n        const footerHeight:number = document.querySelector('.' + uuid + ' .scDrawer-footer')?.scrollHeight || 0\n        const alertHeight:number = (document.querySelector('.' + uuid + ' .scDrawer-alert')?.scrollHeight || 0) + 4\n        const innerHeightView:number = (window && window?.innerHeight) || 0\n        maxHeight.value = (contentHeight || innerHeightView) - minusDefaultMaxHeight - headerHeight - footerHeight - alertHeight + 'px'\n      }\n    }\n    onMounted(() => {\n      updateMaxHeight()\n      optimizedResize.add(updateMaxHeight)\n    })\n\n    watch(() => visibleRef.value, (val) => {\n      emit('update:visible', val)\n      if (val) {\n        const timer = setTimeout(() => {\n          updateMaxHeight()\n          clearTimeout(timer)\n        }, 150)\n      }\n    })\n\n    watchEffect(() => {\n      visibleRef.value = !!(unref(vBind).visible)\n    })\n\n    /**\n     * @description: 设置modal参数\n    */\n    function setDrawerProps(props: Partial<DrawerProps>): void {\n      // Keep the last setModalProps\n      propsRef.value = deepMerge(unref(propsRef) || ({} as any), props);\n      if (Reflect.has(props, 'visible')) {\n        // @ts-ignore\n        visibleRef.value = !!props?.visible;\n      }\n    }\n\n    const handleClose = async(e:Event) => {\n      e?.stopPropagation();\n      const { confirmLoading } = curProps.value\n      if (confirmLoading || loadingRef.value) {\n        return false\n      }\n      if (unref(vBind).closeFunc && isFunction(unref(vBind).closeFunc)) {\n        cancelLoadingRef.value = true\n        // @ts-ignore\n        const isClose: boolean = await unref(vBind).closeFunc()\n        visibleRef.value = isClose\n        cancelLoadingRef.value = false\n        emit('close', false)\n        emit('cancel', false)\n        return;\n      } else {\n        visibleRef.value = false\n        emit('close', false)\n        emit('cancel', false)\n      }\n    }\n\n    const handleOk = async () => {\n      const { onOk } = curProps.value\n      try {\n        if (onOk && isFunction(onOk)) {\n          const ret = onOk(false)\n          // @ts-ignore\n          if(ret && ret.then) {\n            loadingRef.value = true\n            // @ts-ignore\n            ret.then((res:any) => {\n              loadingRef.value = false\n            }).catch((error: any) => {\n              console.log('error: ', error);\n              loadingRef.value = false\n            })\n          } \n        }\n      } catch (error) {\n        loadingRef.value = false\n        console.log('error: ', error);\n      }\n    }\n\n    const modalMethods: DrawerMethods = {\n      setDrawerProps,\n      emitVisible: undefined\n    };\n\n    const instance = getCurrentInstance();\n    if (instance) {\n      emit('register', modalMethods, instance.uid)\n    }\n\n    expose({\n      setDrawerProps,\n      updateMaxHeight,\n      scrollbarRef,\n      alertRef\n    })\n\n    return {\n      vBind,\n      curProps,\n      className,\n      baseClass,\n      maxHeight,\n      scrollbarProps,\n      drawerRef,\n      uuid,\n      loadingRef,\n      visibleRef,\n      cancelLoadingRef,\n      scrollbarRef,\n      alertRef,\n      drawerStyle,\n      \n      handleClose,\n      handleOk\n    }\n  }\n})\n</script>","import type {\n  UseDrawerReturnType,\n  DrawerInstance,\n  ReturnMethods,\n  DrawerProps,\n  UseDrawerInnerReturnType,\n} from './typing'\nimport {\n  ref,\n  getCurrentInstance,\n  unref,\n  reactive,\n  watchEffect,\n  nextTick,\n  toRaw,\n  computed,\n} from 'vue'\nimport { isFunction } from '../../../utils/is'\nimport { tryOnUnmounted } from '@vueuse/core'\nimport lodash from 'lodash'\nimport { error } from '../../../utils/log'\n\nconst { isEqual }  = lodash\n\nconst dataTransferRef = reactive<any>({});\n\nconst visibleData = reactive<{ [key: number]: boolean }>({});\n\n/**\n * @description: Applicable to separate drawer and call outside\n */\nexport function useDrawer(): UseDrawerReturnType {\n  if (!getCurrentInstance()) {\n    throw new Error('useDrawer() can only be used inside setup() or functional components!');\n  }\n  const drawer = ref<DrawerInstance | null>(null);\n  const loaded = ref<Nullable<boolean>>(false);\n  const uid = ref<string>('');\n\n  function register(drawerInstance: DrawerInstance, uuid: string) {\n    tryOnUnmounted(() => {\n      drawer.value = null;\n      loaded.value = null;\n      dataTransferRef[unref(uid)] = null;\n    });\n\n    if (unref(loaded) && drawerInstance === unref(drawer)) {\n      return;\n    }\n    uid.value = uuid;\n    drawer.value = drawerInstance;\n    loaded.value = true;\n\n    drawerInstance.emitVisible = (visible: boolean, uid: number) => {\n      visibleData[uid] = visible;\n    };\n  }\n\n  const getInstance = () => {\n    const instance = unref(drawer);\n    if (!instance) {\n      error('useDrawer instance is undefined!');\n    }\n    return instance;\n  };\n\n  const methods: ReturnMethods = {\n    setDrawerProps: (props: Partial<DrawerProps>): void => {\n      getInstance()?.setDrawerProps(props);\n    },\n\n    getVisible: computed((): boolean => {\n      return visibleData[~~unref(uid)];\n    }),\n\n    openDrawer: <T = any>(visible = true, data?: T, openOnSet = true): void => {\n      getInstance()?.setDrawerProps({\n        visible: visible,\n      });\n      if (!data) return;\n\n      if (openOnSet) {\n        dataTransferRef[unref(uid)] = null;\n        dataTransferRef[unref(uid)] = toRaw(data);\n        return;\n      }\n      const equal = isEqual(toRaw(dataTransferRef[unref(uid)]), toRaw(data));\n      if (!equal) {\n        dataTransferRef[unref(uid)] = toRaw(data);\n      }\n    },\n    closeDrawer: () => {\n      getInstance()?.setDrawerProps({ visible: false });\n    },\n  };\n\n  return [register, methods];\n}\n\nexport const useDrawerInner = (callbackFn?: Fn): UseDrawerInnerReturnType => {\n  const drawerInstanceRef = ref<Nullable<DrawerInstance>>(null);\n  const currentInstance = getCurrentInstance();\n  const uidRef = ref<string>('');\n\n  if (!getCurrentInstance()) {\n    throw new Error('useDrawerInner() can only be used inside setup() or functional components!');\n  }\n\n  const getInstance = () => {\n    const instance = unref(drawerInstanceRef);\n    if (!instance) {\n      error('useDrawerInner instance is undefined!');\n      return;\n    }\n    return instance;\n  };\n\n  const register = (modalInstance: DrawerInstance, uuid: string) => {\n    tryOnUnmounted(() => {\n      drawerInstanceRef.value = null;\n    });\n\n    uidRef.value = uuid;\n    drawerInstanceRef.value = modalInstance;\n    currentInstance?.emit('register', modalInstance, uuid);\n  };\n\n  watchEffect(() => {\n    const data = dataTransferRef[unref(uidRef)];\n    if (!data) return;\n    if (!callbackFn || !isFunction(callbackFn)) return;\n    nextTick(() => {\n      callbackFn(data);\n    });\n  });\n\n  return [\n    register,\n    {\n      changeLoading: (loading = true) => {\n        getInstance()?.setDrawerProps({ loading });\n      },\n\n      changeOkLoading: (loading = true) => {\n        getInstance()?.setDrawerProps({ confirmLoading: loading });\n      },\n      getVisible: computed((): boolean => {\n        return visibleData[~~unref(uidRef)];\n      }),\n\n      closeDrawer: () => {\n        getInstance()?.setDrawerProps({ visible: false });\n      },\n\n      setDrawerProps: (props: Partial<DrawerProps>) => {\n        getInstance()?.setDrawerProps(props);\n      },\n    },\n  ];\n};\n","\nimport { withInstall } from \"../../utils/index\"\nimport scDrawer from './component/ScDrawer.vue'\n\nexport const ScDrawer = withInstall(scDrawer)\nexport * from './component/typing';\nexport { useDrawer, useDrawerInner } from './component/useDrawer';\n","import { CSSProperties, PropType } from 'vue'\n\nexport interface AutoCompleteOptionsItem {\n  value: string;\n  text?: string;\n  [key:string]: any;\n}\n\nexport const props = () => ({\n  allowClear: Boolean,\n  autofocus: Boolean,\n  backfill: Boolean,\n  options: Array,\n  optionsSource: Array,\n  dropdownMenuStyle: Object as PropType<CSSProperties>,\n  defaultActiveFirstOption: {\n    type: Boolean,\n    default () {\n      return true\n    }\n  },\n  disabled: Boolean,\n  filterOption: [Boolean, Function],\n  optionLabelProp: {\n    type: String,\n    default () {\n      return 'children'\n    }\n  },\n  placeholder: String,\n  defaultOpen: Boolean,\n  open: Boolean,\n  value: [String, Array, Object],\n  isGroup: Boolean,\n  dropdownClassName: String\n})\n","<template>\n  <AutoComplete\n    v-bind=\"newProps\"\n    v-model:value=\"value\"\n    :allowClear=\"false\"\n    @dropdownVisibleChange=\"handleDropdownVisibleChange\"\n  >\n    <!-- @focus=\"handleFocus\" -->\n    <template #[item]=\"data\" v-for=\"item in slotsKeys\" :key=\"item\">\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n    </template>\n    <template #options v-if=\"!$slots.options\">\n      <template\n        v-if=\"!newProps.isGroup\"\n        v-for=\"item in optionsComp\"\n        :key=\"item.value\"\n      >\n        <SelectOption\n          v-if=\"item.parseHightHtml\"\n          :label=\"item.label\"\n          :value=\"item.value\"\n        >\n          <span v-html=\"item.parseHightHtml\" v-if=\"searchText\">\n          </span>\n          <span v-else>\n            {{ item.value }}\n          </span>\n        </SelectOption>\n      </template>\n      <template v-else>\n        <SelectOptGroup\n          v-for=\"item in optionsComp\"\n          :key=\"item.value\"\n        >\n            <template #label>\n              <Divider orientation=\"left\" class=\"scAutoComplete-divider\">\n                {{ item.label }}\n              </Divider>\n            </template>\n            <template\n            v-for=\"selectItem in item.children\"\n            :key=\"item.value\"\n          >\n            <SelectOption\n              :label=\"selectItem.label\"\n              :value=\"selectItem.value\"\n            >\n              <span v-html=\"selectItem.parseHightHtml\" v-if=\"searchText\">\n              </span>\n              <span v-else>\n                {{ selectItem.value }}\n              </span>\n            </SelectOption>\n          </template>\n        </SelectOptGroup>\n      </template>\n    </template>\n    <template #options v-else>\n      <slot name=\"options\"></slot>\n    </template>\n    <slot name=\"default\" v-if=\"!$slots.default\">\n      <InputSearch\n        :allowClear=\"newProps.allowClear\"\n      >\n      </InputSearch>\n    </slot>\n    <slot name=\"default\" v-if=\"$slots.default\"></slot>\n  </AutoComplete>\n</template> \n\n<script lang='ts'>\nimport { defineComponent, ref, computed, nextTick, onBeforeUnmount, onMounted } from 'vue'\nimport { AutoComplete, InputSearch, SelectOption, SelectOptGroup, Divider } from 'ant-design-vue'\nimport { SearchOutlined } from '@ant-design/icons-vue'\nimport { props, AutoCompleteOptionsItem } from './type'\nimport { isFunction, buildUUID } from '../../../utils'\nimport { treeToList, filter } from '../../../utils/treeHelper'\n\nexport default defineComponent({\n  name: 'ScAutoComplete',\n  inheritAttrs: false,\n  components: {\n    AutoComplete,\n    InputSearch,\n    SearchOutlined,\n    SelectOption,\n    SelectOptGroup,\n    Divider\n  },\n  emits: ['update:value', 'dropdownVisibleChange', 'focus'],\n  props: props(),\n  setup (props, { slots, attrs, emit }) {\n\n    const uuid = buildUUID()\n\n    const uuidClass = 'sc' + uuid\n\n    const openRef = ref(false)\n\n    const searchText = ref()\n\n    let frameId = 0;\n\n    const newProps = computed(() => {\n      return {\n        ...props,\n        ...attrs,\n        open: openRef.value || props.open,\n        optionsSource: null,\n        dropdownClassName: uuidClass + ' scAutoComplete-dropdown ' + props.dropdownClassName,\n        onSearch: (val: string) => {\n          if (isFunction(attrs.onSearch)) {\n            attrs?.onSearch?.(val)\n          }\n          onSearch(val)\n        },\n        onSelect: (val: string) => {\n          if (isFunction(attrs.onSelect)) {\n            attrs?.onSelect?.(val)\n          }\n          onSelect(val)\n        }\n      }\n    })\n\n    const value = computed({\n      get: () => {\n        return props.value\n      },\n      set: (val) => {\n        openRef.value = true\n        emit('update:value', val)\n      }\n    })\n    \n    const slotsKeys = computed(() => {\n      if (!slots.default) {\n        return Object.keys(slots).filter(item => item === 'default')\n      }\n      return Object.keys(slots).filter(item => ['options', 'dataSource'].includes(item))\n    })\n\n    const optionsComp = computed(() => {\n      const { isGroup } = props\n      const val = searchText.value\n      const regExp = new RegExp(val, 'g')\n      if (isGroup) {\n        const listOptions = treeToList(props.optionsSource).filter((item:any) => !item.children)\n        const newOptions = listOptions?.filter((item: any) => item?.value?.includes(val)).map((item: any) => item.value)\n        const newOptionsRef = filter(props.optionsSource || [], (item: any) => {\n          if (newOptions.includes(item.value)) {\n            item.parseHightHtml = item.value.replace(regExp, `<span style=\"color: #008CD3;\">${val}</span>`)\n          }\n          return newOptions.includes(item.value)\n        })\n        return newOptionsRef\n      } else {\n        return props.optionsSource?.filter((item: AutoCompleteOptionsItem) => item?.value?.includes(val))?.map((item: AutoCompleteOptionsItem) => {\n          item.parseHightHtml = item.value.replace(regExp, `<span style=\"color: #008CD3;\">${val}</span>`)\n          return item\n        }) || []\n      }\n    })\n\n    const onSearch = (val:string) => {\n      searchText.value = val\n      frameId = window?.requestAnimationFrame(() => {\n        nextTick(() => {\n          const virtualListDom = document.querySelector(`.${uuidClass} .rc-virtual-list-holder div`) as HTMLElement\n          if (virtualListDom?.style?.height) {\n            virtualListDom.style.marginRight = '4px'\n          } else {\n            virtualListDom && (virtualListDom.style.marginRight = '0')\n          }\n        })\n      })\n    }\n\n    const onSelect = (val:string) => {\n      searchText.value = val\n    }\n\n    const handleDropdownVisibleChange = (val:boolean) => {\n      openRef.value = val\n      emit('dropdownVisibleChange', val)\n    }\n    onMounted(() => {\n      searchText.value = ''\n    })\n    onBeforeUnmount(() => {\n      window.cancelAnimationFrame(frameId)\n    })\n    \n    return {\n      newProps,\n      value,\n      openRef,\n      slotsKeys,\n      searchText,\n      optionsComp,\n      uuidClass,\n      // filterOptions,\n\n      handleDropdownVisibleChange,\n      onSearch\n    }\n  }\n})\n</script>\n","import { ExtractPropTypes } from \"vue\"\nimport { withInstall } from \"../../utils/index\"\nimport scAutoComplete from \"./component/index.vue\"\nimport { props } from \"./component/type\"\n\nconst ScAutoCompleteProps = props()\n\nexport const ScAutoComplete = withInstall(scAutoComplete)\n\nexport declare type AlertProps = Partial<ExtractPropTypes<typeof ScAutoCompleteProps>> \n","import { notification } from \"ant-design-vue\"\nimport { h } from 'vue'\nimport type { NotificationArgsProps } from \"ant-design-vue/lib/notification\"\nimport {\n  InfoCircleFilled,\n  ExclamationCircleFilled,\n  CloseCircleFilled,\n  CheckCircleFilled\n} from '@ant-design/icons-vue'\n\nimport { ScButton } from '../../button'\nimport { isFunction } from \"../../../utils\"\n\nexport interface ScNotificationProps extends NotificationArgsProps {\n  closeBtn?: boolean;\n  edit?: boolean;\n  cancelText?: string;\n  cancelProps?: any;\n  confirmProps?: any;\n  confirmText?: string;\n  cancelCb?: (e:Event) => any;\n  confirmCb?: (e:Event) => any;\n}\n\n\nconst getEditContent = (config: ScNotificationProps, current: any) => {\n  // console.log('current: ', current);\n  return h('div', \n    {\n      class: 'ant-notification-notice-description__edit' \n    },\n    [\n      h(ScButton, \n        { \n          type: \"text\", \n          onClick: (event: Event) => {\n            current?.destroy()\n            if(isFunction(config.cancelCb)) {\n              config.cancelCb(event)\n            }\n          },\n          ...config.cancelProps\n        }, \n        () => config.cancelText || '取消'\n      ),\n      h(ScButton, \n        { \n          type: \"link\", \n          onClick: (event: Event) => {\n            if(isFunction(config.confirmCb)) {\n              config.confirmCb(event)\n            }\n          },\n          ...config.confirmProps\n        }, \n        () => config.confirmText || '确认'\n      )\n    ]\n  )\n}\n\nconst getIconVnode = (type: string) => {\n  let iconVnode = null  \n  switch (type) {\n    case 'success':\n      iconVnode = h(CheckCircleFilled, {\n        style: {\n          color: '#2BA471'\n        }\n      })\n      break;\n    case 'error':\n      iconVnode = h(CloseCircleFilled, {\n        style: {\n          color: '#D54941'\n        }\n      })\n      break;\n    case 'warning':\n      iconVnode = h(ExclamationCircleFilled, {\n        style: {\n          color: '#E37318'\n        }\n      })\n      break;\n    case 'warn':\n      iconVnode = h(ExclamationCircleFilled, {\n        style: {\n          color: '#E37318'\n        }\n      })\n      break;\n    case 'info':\n      iconVnode = h(InfoCircleFilled, {\n        style: {\n          color: '#008CD3'\n        }\n      })\n      break;\n  }\n  return iconVnode\n} \n\nclass scNotification {\n  defaultConfig (config: ScNotificationProps, type?: string) {\n    //@ts-ignore\n    const newDescription = h('div', [ h('p', { class: 'ant-notification-notice-description__text' }, config.description), getEditContent(config, this)])\n    const newConfig:ScNotificationProps  = {\n      ...config,\n      class: `\n        scNotification \n        ${config.class ? config.class : ''} \n        ${config.closeBtn === false ? 'notCloseBtn' : ''}\n      `,\n      description: config.edit ? newDescription : config.description,\n      // @ts-ignore\n      icon: config.icon || getIconVnode(type || config.type)\n    }\n    return newConfig\n  }\n  /**\n   * 用于打开notification\n   * @param NotificationArgsProps 参数\n   */\n  open (config: ScNotificationProps) {\n    notification.open(this.defaultConfig(config))\n  }\n  /**\n   * 打开success信息通知\n   * @param NotificationArgsProps 参数\n   */\n  success (config: ScNotificationProps) {\n    notification.success(this.defaultConfig(config, 'success'))\n  }\n  /**\n   * 打开error信息通知\n   * @param NotificationArgsProps 参数\n   */\n  error (config: ScNotificationProps) {\n    notification.error(this.defaultConfig(config, 'error'))\n  }\n  /**\n   * 打开info信息通知\n   * @param NotificationArgsProps 参数\n   */\n  info (config: ScNotificationProps) {\n    notification.info(this.defaultConfig(config, 'info'))\n  }\n  /**\n   * 打开warning信息通知\n   * @param NotificationArgsProps 参数\n   */\n  warning (config: ScNotificationProps) {\n    notification.warning(this.defaultConfig(config, 'warning'))\n  }\n  /**\n   * 打开warn信息通知\n   * @param NotificationArgsProps 参数\n   */\n  warn (config: ScNotificationProps) {\n    notification.warn(this.defaultConfig(config, 'warn'))\n  }\n  /**\n   * 关闭信息通知\n   * @param key 参数\n   */\n  close (key: string) {\n    notification.close(key)\n  }\n  /**\n   * 关闭信息通知\n   */\n  destroy () {\n    notification.destroy()\n  }\n}\n\n\nexport default scNotification\n","import scNotification, { ScNotificationProps as scNotificationProps } from './component/ScNotification'\nexport const ScNotification = new scNotification()\n\nexport type ScNotificationProps = scNotificationProps\n\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      target[key] = source[key];\n    }\n  }\n  return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n  read: function (value) {\n    if (value[0] === '\"') {\n      value = value.slice(1, -1);\n    }\n    return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n  },\n  write: function (value) {\n    return encodeURIComponent(value).replace(\n      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n      decodeURIComponent\n    )\n  }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n  function set (name, value, attributes) {\n    if (typeof document === 'undefined') {\n      return\n    }\n\n    attributes = assign({}, defaultAttributes, attributes);\n\n    if (typeof attributes.expires === 'number') {\n      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n    }\n    if (attributes.expires) {\n      attributes.expires = attributes.expires.toUTCString();\n    }\n\n    name = encodeURIComponent(name)\n      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n      .replace(/[()]/g, escape);\n\n    var stringifiedAttributes = '';\n    for (var attributeName in attributes) {\n      if (!attributes[attributeName]) {\n        continue\n      }\n\n      stringifiedAttributes += '; ' + attributeName;\n\n      if (attributes[attributeName] === true) {\n        continue\n      }\n\n      // Considers RFC 6265 section 5.2:\n      // ...\n      // 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n      //     character:\n      // Consume the characters of the unparsed-attributes up to,\n      // not including, the first %x3B (\";\") character.\n      // ...\n      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n    }\n\n    return (document.cookie =\n      name + '=' + converter.write(value, name) + stringifiedAttributes)\n  }\n\n  function get (name) {\n    if (typeof document === 'undefined' || (arguments.length && !name)) {\n      return\n    }\n\n    // To prevent the for loop in the first place assign an empty array\n    // in case there are no cookies at all.\n    var cookies = document.cookie ? document.cookie.split('; ') : [];\n    var jar = {};\n    for (var i = 0; i < cookies.length; i++) {\n      var parts = cookies[i].split('=');\n      var value = parts.slice(1).join('=');\n\n      try {\n        var found = decodeURIComponent(parts[0]);\n        jar[found] = converter.read(value, found);\n\n        if (name === found) {\n          break\n        }\n      } catch (e) {}\n    }\n\n    return name ? jar[name] : jar\n  }\n\n  return Object.create(\n    {\n      set,\n      get,\n      remove: function (name, attributes) {\n        set(\n          name,\n          '',\n          assign({}, attributes, {\n            expires: -1\n          })\n        );\n      },\n      withAttributes: function (attributes) {\n        return init(this.converter, assign({}, this.attributes, attributes))\n      },\n      withConverter: function (converter) {\n        return init(assign({}, this.converter, converter), this.attributes)\n      }\n    },\n    {\n      attributes: { value: Object.freeze(defaultAttributes) },\n      converter: { value: Object.freeze(converter) }\n    }\n  )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import axios from 'axios';\nimport Cookie from 'js-cookie';\nimport { message } from 'ant-design-vue';\n\nclass StorageServer {\n    constructor(config) {\n        this._config = {\n            type: 'localStorage',\n            prefix: '',\n        };\n        this.autoAddPrefix = (key) => {\n            const prefix = this._config.prefix ? this._config.prefix + '_' : '';\n            return prefix + key;\n        };\n        // 获取全部 getAllStorage\n        this.getStorageAll = () => {\n            let len = window[this._config.type].length; // 获取长度\n            let arr = new Array(); // 定义数据集\n            for (let i = 0; i < len; i++) {\n                // 获取key 索引从0开始\n                let getKey = window[this._config.type].key(i);\n                // 获取key对应的值\n                let getVal = window[this._config.type].getItem(getKey);\n                // 放进数组\n                arr[i] = { key: getKey, val: getVal };\n            }\n            return arr;\n        };\n        if (typeof Storage !== 'undefined') {\n            this._config = config;\n        }\n        else {\n            console.log('not support storage');\n        }\n    }\n    setStorage(key, value, expire = 0) {\n        if (value === '' || value === null || value === undefined) {\n            value = null;\n        }\n        if (this.getStorage(key)) {\n            console.warn(`${this._config.type} 内 已存在 ${key} 的值, 请确认业务逻辑`);\n        }\n        if (isNaN(expire) || expire < 0)\n            throw new Error('Expire must be a number');\n        let data = {\n            value: value,\n            time: Date.now(),\n            expire: '', // 过期时间\n        };\n        const encryptString = JSON.stringify(data);\n        window[this._config.type].setItem(this.autoAddPrefix(key), encryptString);\n    }\n    getStorage(key) {\n        key = this.autoAddPrefix(key);\n        // key 不存在判断\n        const type = this._config.type;\n        if (!window[type].getItem(key) ||\n            JSON.stringify(window[type].getItem(key)) === 'null') {\n            return null;\n        }\n        const storage = JSON.parse(window[type].getItem(key));\n        return storage ? storage.value : null;\n    }\n    getStorageKeys() {\n        let items = this.getStorageAll();\n        let keys = [];\n        for (let index = 0; index < items.length; index++) {\n            keys.push(items[index].key);\n        }\n        return keys;\n    }\n    hasStorage(key) {\n        key = this.autoAddPrefix(key);\n        let arr = this.getStorageAll().filter((item) => {\n            return item.key === key;\n        });\n        return arr.length ? true : false;\n    }\n    removeStorage(key) {\n        window[this._config.type].removeItem(this.autoAddPrefix(key));\n    }\n    // 清空 clearStorage\n    clearStorage() {\n        window[this._config.type].clear();\n    }\n}\nconst storageInstance = (config) => new StorageServer(config);\n\nclass CookieServer {\n    constructor(options) {\n        this.TokenKey = 'Token';\n        this.Language = 'lang';\n        this.LanguageObj = new Map([\n            ['en-US', 'en-US,en;q=0.5'],\n            ['zh-CN', 'zh-CN,zh;q=0.8'],\n        ]);\n        this.storage = storageInstance({\n            type: 'localStorage',\n            prefix: 'Sin_Cook',\n        });\n        this._options = options;\n    }\n    getCookie(key) {\n        try {\n            return Cookie.get(key);\n        }\n        catch (e) {\n            console.error(`get ${key} cookie error`, e);\n            return null;\n        }\n    }\n    setCookie(key, value, option) {\n        try {\n            Cookie.set(key, value, Object.assign(Object.assign({}, this._options), option));\n        }\n        catch (e) {\n            console.error('cookie set error', e);\n        }\n    }\n    removeCookie(key, option) {\n        try {\n            Cookie.remove(key, Object.assign(Object.assign({}, this._options), option));\n        }\n        catch (e) {\n            console.error(`${key} cookie remove error`, e);\n        }\n    }\n    /**\n     * @description 获取缓存方法的 options\n     * @return {\n     *  expires\n     *  path\n     *  domain\n     *  secure\n     *  sameSite\n     * }\n     */\n    getCookieOptions() {\n        return this._options;\n    }\n    setToken(token) {\n        this.storage.setStorage(this.TokenKey, token);\n        return this.setCookie(this.TokenKey, token);\n    }\n    getToken() {\n        const token = this.getCookie(this.TokenKey) || this.storage.getStorage(this.TokenKey);\n        return token ? token : null;\n    }\n    removeToken(option) {\n        this.removeCookie(this.TokenKey, option);\n        this.storage.removeStorage(this.TokenKey);\n    }\n    setLang(lang) {\n        const a = this.LanguageObj.has(lang);\n        if (a) {\n            this.setCookie(this.Language, lang);\n        }\n        else {\n            console.warn(`${lang} 不在允许范围内`);\n        }\n    }\n    getLang() {\n        const lang = this.getAcceptLanguage();\n        if (lang) {\n            for (const [k, v] of this.LanguageObj.entries()) {\n                if (v === lang) {\n                    return k;\n                }\n                else {\n                    return 'zh-CN';\n                }\n            }\n        }\n        else {\n            return 'zh-CN';\n        }\n        return 'zh-CN';\n    }\n    getAcceptLanguage() {\n        const cookieLang = this.getCookie(this.Language) || 'zh-CN';\n        const lang = this.LanguageObj.get(cookieLang);\n        return lang;\n    }\n    removeLang() {\n        this.removeCookie(this.Language);\n    }\n}\nconst cookie = (options) => new CookieServer(options);\n\nconst httpCodeMessage = {};\n\nconst actionsMessage$1 = {\n    caoZuoTaiPinFan: '操作太频繁！',\n    lianJieChaoShi: '连接超时',\n    caoZuoShiBai: '操作失败',\n    quanXianBuZu: '10401: 权限不足',\n    dengLuPingZhengYi: '登录凭证已失效',\n    miYaoChuangJianShi: '密钥创建失败',\n    wenJianXiaZaiShiBai: '文件下载失败',\n};\n\nconst codeMessage = {\n    httpCodeMessage,\n    actionsMessage: actionsMessage$1\n};\n\n/**\n * @class axios二次封装类\n * @constructor\n * @param {params<Object>}\n *        @property {baseURL=''}  服务端地址\n *        @property {timeout=60000}  超时时间\n *        @property {errorCallback=()=>{}}  错误回调\n *        @property {request=()=>{}}  拦截器-请求-成功\n *        @property {requestError=()=>{})}  拦截器-请求-失败\n *        @property {response=()=>{})}  拦截器-返回-成功\n *        @property {responseError=()=>{})}  拦截器-返回-失败\n */\nclass HighAxios {\n    constructor(params) {\n        this.cookie = cookie({});\n        this.baseURL = params.baseURL || '';\n        this.timeout = params.timeout || 60000;\n        this._errorCallback = params.errorCallback;\n        this._request = params.request;\n        this._requestError = params.requestError;\n        this._response = params.response;\n        this._responseError = params.responseError;\n        this.debounceConfig = params.debounceConfig || {\n            millisec: 1500,\n            time: 500,\n        };\n        this.init();\n    }\n    init() {\n        const lang = this.cookie.getAcceptLanguage();\n        this.server = axios.create({\n            baseURL: this.baseURL,\n            timeout: this.timeout,\n            headers: {\n                common: {\n                    'Accept-Language': lang,\n                },\n                token: this.cookie.getToken(),\n            },\n        });\n        this.server.interceptors.request.use(this.request.bind(this), this.requestError.bind(this));\n        this.server.interceptors.response.use(this.response.bind(this), this.responseError.bind(this));\n    }\n    request(config) {\n        const self = this;\n        config.cancelToken = new axios.CancelToken(function executor(c) {\n            self.cancel = c;\n        });\n        return this._request ? this._request(config) : config;\n    }\n    requestError(error) {\n        if (this._requestError) {\n            this._requestError(error);\n        }\n        else {\n            this.errorCallback(error);\n            Promise.reject(error);\n        }\n    }\n    response(response) {\n        if (this._response) {\n            return this._response(response);\n        }\n        else {\n            const code = '' + response.data.code;\n            if (Object.hasOwnProperty.call(codeMessage, code)) {\n                return this.errorCallback(code + '：' + codeMessage[code]);\n            }\n            return response;\n        }\n    }\n    responseError(error) {\n        if (this._responseError) {\n            this.errorCallback(error);\n            return this._responseError(error);\n        }\n    }\n    errorCallback(msg) {\n        this._errorCallback ? this._errorCallback(msg) : console.error(msg);\n    }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nconst toString = Object.prototype.toString;\n/**\n * @param {Object} obj 对象\n * @param {String} prototype 属性名\n * @returns Boolean\n */\nconst hasOwn = (obj, prototype) => {\n    return Object.hasOwnProperty.call(obj, prototype);\n};\n/**\n * 深度获取对象的值\n * @param collection Data source\n * @param keyPath Key path array\n * @param notSetValue Default value for not found\n */\nconst getObjectIn = (collection, keyPath, notSetValue = null) => {\n    return keyPath.reduce((rlt, keyIndex) => {\n        return (rlt && rlt[keyIndex] ? rlt[keyIndex] : null);\n    }, collection) || notSetValue;\n};\n/**\n * 基础方法\n*/\nfunction is(val, type) {\n    return toString.call(val) === `[object ${type}]`;\n}\nfunction isEmptyText(text) {\n    if (text === null || text === undefined || text === '') {\n        return false;\n    }\n    return true;\n}\nfunction isDef(val) {\n    return typeof val !== 'undefined';\n}\nfunction isUnDef(val) {\n    return !isDef(val);\n}\nfunction isObject(val) {\n    return val !== null && is(val, 'Object');\n}\nfunction isEmpty(val) {\n    if (isArray(val) || isString(val)) {\n        return val.length === 0;\n    }\n    if (val instanceof Map || val instanceof Set) {\n        return val.size === 0;\n    }\n    if (isObject(val)) {\n        return Object.keys(val).length === 0;\n    }\n    return false;\n}\nfunction isDate(val) {\n    return is(val, 'Date');\n}\nfunction isNull(val) {\n    return val === null;\n}\nfunction isNullAndUnDef(val) {\n    return isUnDef(val) && isNull(val);\n}\nfunction isNullOrUnDef(val) {\n    return isUnDef(val) || isNull(val);\n}\nfunction isNumber(val) {\n    return is(val, 'Number');\n}\nfunction isPromise(val) {\n    return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\nfunction isString(val) {\n    return is(val, 'String');\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isFunction(val) {\n    return typeof val === 'function';\n}\nfunction isBoolean(val) {\n    return is(val, 'Boolean');\n}\nfunction isRegExp(val) {\n    return is(val, 'RegExp');\n}\nfunction isArray(val) {\n    return val && Array.isArray(val);\n}\nfunction isWindow(val) {\n    return typeof window !== 'undefined' && is(val, 'Window');\n}\nfunction isElement(val) {\n    return isObject(val) && !!val.tagName;\n}\nfunction isMap(val) {\n    return is(val, 'Map');\n}\nconst isServer = typeof window === 'undefined';\nconst isClient = !isServer;\nfunction isUrl(path) {\n    // eslint-disable-next-line no-useless-escape\n    const reg = /^http(s)?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- .\\/?%&=]*)?/;\n    return reg.test(path);\n}\nconst isStringNumber = (val) => {\n    if (!isString(val)) {\n        return false;\n    }\n    return !Number.isNaN(Number(val));\n};\n\n/**\n * 下载文件\n * @param resp 接口请求返回resp 内容\n * @param fileName 文件名；如果没设置优先从接口中取\n * @param successCb 接口请求成功毁掉函数\n */\nconst downloadFile = (downloadConfig) => {\n    var _a, _b;\n    const { resp, fileName, successCb, errorCb, finallyCb } = downloadConfig;\n    // 获取文件名称\n    function getFileName(resp, fileName) {\n        // 优先取服务器定义的名称\n        if (resp.headers['content-disposition']) {\n            const match = resp.headers['content-disposition'].split(\"*=utf-8''\");\n            if ((match === null || match === void 0 ? void 0 : match.length) > 1) {\n                fileName = match[1];\n            }\n        }\n        return fileName;\n    }\n    // 下载文件\n    function getFile(resp, fileName) {\n        const blob = new Blob([resp === null || resp === void 0 ? void 0 : resp.data]);\n        const url = window.URL.createObjectURL(blob);\n        const link = document.createElement('a');\n        link.style.display = 'none';\n        link.href = url;\n        link.setAttribute('download', getFileName(resp, fileName));\n        document.body.appendChild(link);\n        link.click();\n        document.body.removeChild(link);\n    }\n    // 二进制文件流下载\n    if (((_a = resp === null || resp === void 0 ? void 0 : resp.request) === null || _a === void 0 ? void 0 : _a.responseType) === 'arraybuffer') {\n        try {\n            const enc = new TextDecoder('utf-8');\n            const errorRes = JSON.parse(enc.decode(new Uint8Array(resp.data))); // 转化成json对象\n            errorCb && errorCb();\n            if (isFunction(finallyCb)) {\n                finallyCb === null || finallyCb === void 0 ? void 0 : finallyCb();\n            }\n            return message.error(errorRes.msg);\n        }\n        catch (err) {\n            successCb && successCb();\n            if (isFunction(finallyCb)) {\n                finallyCb === null || finallyCb === void 0 ? void 0 : finallyCb();\n            }\n            return getFile(resp, fileName);\n        }\n    }\n    // 数据流文件下载\n    if (((_b = resp === null || resp === void 0 ? void 0 : resp.request) === null || _b === void 0 ? void 0 : _b.responseType) === 'blob') {\n        const r = new FileReader();\n        r.onload = function (event) {\n            const errorText = event.target.result;\n            try {\n                //@ts-ignore\n                const errorRes = JSON.parse(errorText);\n                errorCb && errorCb();\n                if (isFunction(finallyCb)) {\n                    finallyCb === null || finallyCb === void 0 ? void 0 : finallyCb();\n                }\n                return message.error(errorRes.msg);\n            }\n            catch (err) {\n                successCb && successCb();\n                if (isFunction(finallyCb)) {\n                    finallyCb === null || finallyCb === void 0 ? void 0 : finallyCb();\n                }\n                return getFile(resp, fileName);\n            }\n        };\n        r.readAsText(resp.data); // FileReader的API\n    }\n};\n\nconst keys = {};\nconst { actionsMessage } = codeMessage;\n/**\n * 用于检测是否在防抖事件内\n * @param url 唯一地址路径\n * @param debounceConfig 防抖配置\n *   @property millisec 间隔时间\n */\nconst checkDebounce = (url, debounceConfig) => {\n    if (hasOwn(keys, url)) {\n        if (keys[url] === true) {\n            keys[url] = false;\n            setTimeout(() => {\n                keys[url] = true;\n            }, debounceConfig.millisec);\n        }\n    }\n};\n/**\n * 未知错误信息\n * @param error 提示信息\n */\nconst errorCallback = (error) => {\n    const { response } = error;\n    const { data, status } = response;\n    if (status !== 200) {\n        if ([429].includes(status))\n            return;\n        if (data && data.message) {\n            message.open({\n                content: data.message,\n                type: 'error',\n                duration: 1.5\n            });\n        }\n        else {\n            if ([429].includes(status))\n                return;\n            message.open({\n                content: actionsMessage.lianJieChaoShi,\n                type: 'error',\n                duration: 1.5\n            });\n        }\n    }\n};\n/**\n * 用于初始化基础请求方法；设定请求baseUrl、拦截器、报错信息方\n * @param config 基础配置文件 @ConfigType\n */\nconst getAxios = (config) => {\n    const newConfig = Object.assign(Object.assign({}, config), { request: (_config) => {\n            var _a;\n            _config.headers['client'] = 'web' ;\n            if (_config.method === 'post') {\n                if (!_config.data || _config.data.length === 0) {\n                    _config.data = {};\n                }\n            }\n            checkDebounce(_config.url, config.debounceConfig || { millisec: 1500, time: 500 });\n            return (config === null || config === void 0 ? void 0 : config.request) ? (_a = config.request) === null || _a === void 0 ? void 0 : _a.call(config, _config) : _config;\n        }, errorCallback: config.errorCallback || errorCallback });\n    const { debounceConfig } = config;\n    const highAxios = new HighAxios(newConfig);\n    /**\n     * 定义请求接口\n     * @param config 请求接口参数、地址、请求方式\n     * @param debounce 是否开启防抖\n     * @param downloadConfig 是否使用默认下载配置 @DownloadConfig\n     */\n    return (config, debounce, downloadConfig) => __awaiter(void 0, void 0, void 0, function* () {\n        debounce = debounce || false;\n        if (hasOwn(keys, config.url) && keys[config.url] === false) {\n            return Promise.reject(`${actionsMessage.caoZuoTaiPinFan}`);\n        }\n        if (debounce && isBoolean(debounce)) {\n            keys[config.url] = true;\n        }\n        if (debounce && isObject(debounce)) {\n            keys[config.url] = true;\n            debounceConfig.time = debounce.time || debounceConfig.time;\n            debounceConfig.millisec = debounce.millisec || debounceConfig.millisec;\n        }\n        if (downloadConfig) {\n            return yield highAxios.server(config).then((resp) => {\n                if (downloadConfig.defaultDownload) {\n                    if (downloadConfig.downloadFile && isFunction(downloadConfig.downloadFile)) {\n                        //@ts-ignore\n                        downloadConfig.downloadFile(Object.assign({ resp }, downloadConfig));\n                    }\n                    else {\n                        downloadFile(Object.assign({ resp }, downloadConfig));\n                    }\n                }\n                return resp;\n            });\n        }\n        else {\n            return highAxios.server(config);\n        }\n    });\n};\n\nvar LangEnums;\n(function (LangEnums) {\n    LangEnums[\"en-US\"] = \"\\u82F1\\u6587\";\n    LangEnums[\"zh-CN\"] = \"\\u4E2D\\u6587\";\n})(LangEnums || (LangEnums = {}));\nconst allLang = Object.assign({}, LangEnums);\n\nclass TransformLang {\n    constructor(params) {\n        this._config = params;\n        this._sourceLang = this.getLangSource(params.moduleName);\n        this.cookie = cookie({});\n    }\n    /**\n     * 获取sourceLang 对象；从全局对象中获取\n     * @param moduleName 当前模块；如果存在模块字段，优先从模块中获取\n     * @returns sourceLang 当前存储源文件\n     */\n    getLangSource(module) {\n        var _a;\n        const { moduleName } = this._config;\n        const _module = module || moduleName;\n        if (_module) {\n            // @ts-ignore\n            return window[_module] || (window === null || window === void 0 ? void 0 : window.proxy[_module]) || {};\n        }\n        // @ts-ignore\n        return (window === null || window === void 0 ? void 0 : window.sourceLang) || ((_a = window === null || window === void 0 ? void 0 : window.proxy) === null || _a === void 0 ? void 0 : _a.sourceLang) || {};\n    }\n    /**\n     * 转换函数\n     * @param value 要转换的值\n     * @param key  要转换的key\n     * @param model 属于那条业务线\n     * @returns 返回转换后的文本\n     */\n    transformLangFunc(value, key, model) {\n        try {\n            const sourceLang = this.getLangSource(model);\n            if (Object.keys(sourceLang).length > 0) {\n                return sourceLang[key] || sourceLang[value] || value;\n            }\n            return value;\n        }\n        catch (error) {\n            console.log('error: transformLang error', error);\n            return value;\n        }\n    }\n    /**\n     * 获取所有语言类型\n     */\n    getAllLangType() {\n        return Object.entries(allLang).map((item) => {\n            return {\n                key: item[0],\n                value: item[1]\n            };\n        });\n    }\n    /**\n     * 获取当前语言类型\n     */\n    getCurrentLangType() {\n        return this.cookie.get('lang') || 'zh-CN';\n    }\n}\nconst transformLang = (config) => new TransformLang(config);\n\n// 数字\nconst number = /^[0-9]+$/;\n// 正整数\nconst positiveInteger = /^[1-9]\\d*$/;\n// 正整数 1-5位\nconst positiveIntegerLen1to5 = /^[1-9]\\d{0,4}$/;\n// 876000内的整数 （24 * 60 * 60 一天秒数）\nconst positiveIntegerMaxHour = /(^\\d{0,5}$)|(^[0-7]\\d{5}$)|(^8[0-6]\\d{4}$)|(^87[0-5]\\d{3}$)|(^876000$)/;\n// 非负整数\nconst nonNegativeInteger = /^[1-9]\\d*$|0$/;\n// 正数\nconst positiveNumber = /^[1-9]\\d*(\\.\\d*)?|0\\.\\d*[1-9]\\d*$/;\n// 非负数\nconst nonNegativeNumber = /^\\d+(\\.\\d+)?$/;\n\nconst max2DecimalNot0start = /^(0|[1-9][0-9]*)(.[0-9]{1,2})?$/;\n\n// 文本 包含 (数字、字母、下划线) 1-32位\nconst codeLen1to32 = /^[a-zA-Z0-9_]{1,32}$/;\n// 文本 包含(数字、字母) 4-16位\nconst usernameLen4to16 = /^[a-zA-Z0-9]{4,16}$/;\n// 文本 以字母开始4-17位\nconst usernameLen4to17 = /^[a-zA-Z][a-zA-Z0-9_]{4,17}/;\n// 至少1个大写字母，1个小写字母和1个数字，长度为8-32位\nconst passwordLen8to32 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{8,32}$/;\n// 请输入由数字或数字+大写字母组成的纳税人识别号，至少需要输入8位\nconst creditCode8to32 = /^(?=.{8,32})[A-Z0-9]+$/;\n// 至少1个大写字母，1个小写字母和1个数字，可包含特殊符号，长度为8-32位\nconst passwordLen8to32WithSymbol = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d!@#$%^&*(){}[\\]/?.>,<'\";:]{8,32}$/;\n//至少1个大写字母，1个小写字母和1个数字，可包含特殊符号，长度为8-16位\nconst passwordLen8to16WithSymbol = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d!@#$%^&*(){}[\\]/?.>,<'\";:]{8,16}$/;\n\n// 手机号\nconst phone = /^1[3456789]\\d{9}$/;\n// 严格模式 手机号\nconst strictPhone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$/;\n// 邮箱\nconst email = /^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\n// 至少1个大写字母，1个小写字母和1个数字，可包含特殊符号（非空格），长度为8-32位\nconst passwordLen8to32WithSymbolNoWhitespace = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?!.*\\s).{8,32}$/;\n// 至少1个大写字母，1个小写字母和1个数字，可包含特殊符号（非空格）\nconst passwordWithSymbolNoWhitespace = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?!.*\\s).*/;\n// export const idCard =\n\n// 手机号脱敏\nconst mobilFormat = (str) => {\n    const mobil = String(str).replace(/(\\d{3})\\d{4}(\\d{4})/, '$1****$2');\n    return mobil;\n};\n// 邮箱脱敏前后各两位*\nconst emailFormat = (email) => {\n    const arr = email.split('@');\n    let star = '';\n    if (arr[0].length <= 2) {\n        star = '*';\n        arr[0] = arr[0].substr(0, arr[0].length) + star;\n    }\n    else {\n        star = '****';\n        arr[0] = arr[0].substr(0, 1) + star + arr[0].charAt(arr[0].length - 1);\n    }\n    return (email = arr[0] + '@' + arr[1]);\n};\n\nexport { CookieServer, HighAxios, allLang, codeLen1to32, cookie, creditCode8to32, email, emailFormat, getAxios, getObjectIn, hasOwn, is, isArray, isBoolean, isClient, isDate, isDef, isElement, isEmpty, isEmptyText, isFunction, isMap, isNull, isNullAndUnDef, isNullOrUnDef, isNumber, isObject, isPromise, isRegExp, isServer, isString, isStringNumber, isUnDef, isUrl, isWindow, max2DecimalNot0start, mobilFormat, nonNegativeInteger, nonNegativeNumber, number, passwordLen8to16WithSymbol, passwordLen8to32, passwordLen8to32WithSymbol, passwordLen8to32WithSymbolNoWhitespace, passwordWithSymbolNoWhitespace, phone, positiveInteger, positiveIntegerLen1to5, positiveIntegerMaxHour, positiveNumber, storageInstance, strictPhone, transformLang, usernameLen4to16, usernameLen4to17 };\n//# sourceMappingURL=index.js.map\n","// import { PropType } from \"vue\"\nimport type { ModalProps } from \"../../modal\"\nimport { modalProps } from '../../modal'\n\nexport interface SensitiveOperationProps extends ModalProps {\n  title?: string;\n  visible?: boolean;\n  callbackOk?: () => any;\n  sensitiveOperationId?: string;\n  close?: () => any;\n  verificationWays?: <T>(config:T) => Promise<T>;\n  verificationCodeSend?: <T>(config:T) => Promise<T>;\n  verificationCodeCheck?: <T>(config:T) => Promise<T>;\n  verificationCodeEmailSend?: <T>(config:T) => Promise<T>;\n  verificationCodeEmailCheck?: <T>(config:T) => Promise<T>;\n  verificationValid?: <T>(config:T) => Promise<T>;\n  loadingFun?: (loading: boolean) => any;\n  catchFun?: (error?: any) => any;\n  finallyFun?: (error?: any) => any;\n  forcePass?: boolean;\n  langConfig?: {\n    [key:string]: any\n  },\n  userInfo?: {\n    [key:string]: any\n  }\n}\n\nexport const baseProps = () => ({\n  ...modalProps(),\n  verificationWays: {\n    type: Function,\n    require: true\n  },\n  verificationCodeSend: {\n    type: Function,\n    require: true\n  },\n  verificationCodeCheck: {\n    type: Function,\n    require: true\n  },\n  verificationCodeEmailSend: {\n    type: Function,\n    require: true\n  },\n  verificationCodeEmailCheck: {\n    type: Function,\n    require: true\n  },\n  userInfo: {\n    type: Object,\n    require: true\n  },\n  langConfig: {\n    type: Object,\n    default: () => {\n      return {\n        yanZhengMa: '验证码',\n        houChongChi: '后重试',\n        faSongYanZhengMa: '发送验证码',\n        qingXianShuRuYanZhengMa: '请先输入验证码',\n        qingFaSongYanZhengMa: '请发送验证码',\n        yanZhengFangShi: '验证方式',\n        shouJiYanZheng: '手机验证',\n        youXiangYanZheng: '邮箱验证',\n        ninYiKaiQiCaoZuoBaohu: '您已开启操作保护，为了保障您的账号和资源安全，请进行身份验证。如需关闭操作保护，请在“安全设置>操作保护”中关闭。',\n        shenFenYanZhengWeiQueBaoBenCi: '身份验证：为确保本次操作安全，请完成身份验证',\n        phone: '手机号',\n        youXiang: '邮箱',\n        shouJi: '手机',\n        ramFangWenKongZhi: 'RAM访问控制',\n        anQuanSheZhi: '安全设置',\n        ninShangWeiBangDingQianWang: '您尚未绑定{type}，可前往{page}进行绑定'\n      }\n    }\n  },\n  visible: {\n    type: Boolean,\n    default: false\n  },\n  // 成功校验后回调\n  callbackOk: {\n    type: Function\n  },\n  // 敏感操作id\n  sensitiveOperationId: {\n    type: String,\n    default: ''\n  },\n  // 关闭弹框\n  close: {\n    type: Function\n  },\n  // 是否弹出校验框\n  forcePass: Boolean\n})\n\nexport interface CommonConfig {\n  verificationWays?: <T>(config:T) => Promise<T>;\n  verificationCodeSend?: <T>(config:T) => Promise<T>;\n  verificationCodeCheck?: <T>(config:T) => Promise<T>;\n  verificationCodeEmailSend?: <T>(config:T) => Promise<T>;\n  verificationCodeEmailCheck?: <T>(config:T) => Promise<T>;\n  verificationValid?: <T>(config:T) => Promise<T>;\n  userInfo?: {\n    [key:string]: any\n  };\n  langConfig?: {\n    [key:string]: any\n  }\n}","<template>\n  <ScModal\n    :visible=\"visible\"\n    :width=\"486\"\n    :title=\"title\"\n    type=\"warning\"\n    @ok=\"onVerificationModalOk\"\n    :maskClosable=\"false\"\n    :centered=\"true\"\n    :confirmLoading=\"confirmLoading\"\n    :infoDes=\"infoDes\"\n    :onOkDisable=\"!showVerifyNum\"\n    @cancel=\"close\"\n  >\n    <Spin :spinning=\"loading\">\n      <Form\n        ref=\"formRef\"\n        labelAlign=\"left\"\n        :colon=\"false\"\n        class=\"user-form\"\n        :label-col=\"{ span: 6 }\"\n        :model=\"form\"\n      >\n        <FormItem :label=\"langConfig.yanZhengFangShi\">\n          <ScRadioGroup\n            v-model:value=\"verifyType\"\n            class=\"w100\"\n            @change=\"doVerifyTypeChange\"\n          >\n            <Radio\n              v-for=\"item in verifyTypeList\"\n              :value=\"item.value\"\n              :key=\"item.value\"\n              >{{ item.text }}</Radio\n            >\n          </ScRadioGroup>\n        </FormItem>\n        <FormItem :label=\"verifyTypeLabel\">\n          <template v-if=\"showVerifyNum\">\n            <Input\n              v-if=\"verifyType === 'phone'\"\n              v-model:value=\"form.showPhoneNumber\"\n              disabled\n              style=\"width: 300px\"\n            />\n            <Input\n              v-else\n              v-model:value=\"form.showEmail\"\n              disabled\n              style=\"width: 300px\"\n            />\n          </template>\n          <span\n            class=\"color-warning\"\n            v-else\n            >{{ unBindHintText }}</span\n          >\n        </FormItem>\n        <FormItem\n          :label=\"'验证码'\"\n          name=\"code\"\n          :validateFirst=\"true\"\n          :rules=\"[codeCustomValidate, { pattern: /^[0-9]+$/, message: '请输入数字'}, { min: 6, message: '至少输入6字符', trigger: 'change' }]\"\n        >\n          <Input\n            v-model:value=\"typeObj[verifyType].code\"\n            :maxlength=\"6\"\n            style=\"width: 300px\"\n            :disabled=\"!showVerifyNum\"\n            @change=\"doCodeChange\"\n          >\n            <template #suffix>\n              <ScButton\n                size=\"small\"\n                :disabled=\"currentVerify.isCounting || !showVerifyNum\"\n                :loading=\"currentVerify.countLoading\"\n                type=\"primary\"\n                @click=\"sendCode\"\n                >{{\n                  currentVerify.isCounting\n                    ? `${currentVerify.count}S${langConfig.houChongChi}`\n                    : `${langConfig.faSongYanZhengMa}`\n                }}</ScButton\n              >\n            </template>\n          </Input>\n        </FormItem>\n      </Form>\n    </Spin>\n  </ScModal>\n</template>\n\n<script lang='ts'>\nimport { defineComponent, ref, computed, reactive, onMounted } from 'vue'\nimport { Spin, Form, FormItem, Radio, Input } from 'ant-design-vue'\nimport { mobilFormat, emailFormat } from '@sincerecloud/sc-utils'\n\nimport { ScModal } from '../../modal'\nimport { ScRadioGroup } from '../../radio'\nimport { ScButton } from '../../button'\nimport { baseProps } from './type'\nimport { isFunction } from '../../../utils'\n\nexport default defineComponent({\n  name: 'SensitiveOperationsModal',\n  components: {\n    ScModal,\n    Spin,\n    ScRadioGroup,\n    Form,\n    FormItem,\n    Radio,\n    Input,\n    ScButton\n  },\n  props: baseProps(),\n  setup(props) {\n    const { \n      verificationWays, \n      verificationCodeSend, \n      verificationCodeCheck, \n      verificationCodeEmailSend, \n      verificationCodeEmailCheck,\n      close,\n      langConfig\n    } = props\n    const form = ref<{\n      showPhoneNumber: string\n      phoneNumber: string\n      email: string\n      showEmail: string\n      code: string\n      sensitiveOperationId: string,\n      builtin: number\n    }>({\n      showPhoneNumber: '',\n      phoneNumber: '',\n      email: '',\n      showEmail: '',\n      code: '',\n      sensitiveOperationId: '',\n      builtin: 0\n    })\n    const loading = ref(false)\n    const confirmLoading = ref(false)\n    const verifyType = ref('phone') // 验证类型\n\n    const title = computed(() => props.title || '敏感操作验证')\n\n    // const langConfig = computed(() => props.langConfig)\n\n    // 短信验证码自定义校验\n    const codeCustomValidate = {\n      validator: async (rule: any, value: boolean) => {\n        const sent = Boolean(currentVerify.value.sequenceNumber) // 是否已经发送过验证码\n        if (sent) {\n          if (value) {\n            return Promise.resolve()\n          } else {\n            return Promise.reject(`${langConfig.qingXianShuRuYanZhengMa}`)\n          }\n        } else {\n          return Promise.reject(`${langConfig.qingFaSongYanZhengMa}`)\n        }\n      },\n      trigger: 'change'\n    }\n\n    // 公共数据\n    const commonObj = {\n      isCounting: false, // 倒计时中\n      countLoading: false, // 发送验证码loading\n      count: 60, // 倒计时秒数\n      code: '', // 验证码\n      sequenceNumber: '' // 操作序号\n    }\n\n    // 不同校验类型维护的数据\n    const typeObj = reactive({\n      phone: { ...commonObj },\n      email: { ...commonObj }\n    } as { [key:string]: any })\n\n    // 验证类型集合\n    const verifyTypeList = [\n      {\n        value: 'phone',\n        text: langConfig.shouJiYanZheng\n      },\n      {\n        value: 'email',\n        text: langConfig.youXiangYanZheng\n      }\n    ]\n\n    const infoDes = computed(() => {\n      // 1:内置，0:非内置\n      if (form.value?.builtin === 0) {\n        return langConfig.ninYiKaiQiCaoZuoBaohu\n      } else {\n        return langConfig.shenFenYanZhengWeiQueBaoBenCi\n      }\n    })\n\n    // 存在验证类型号码（手机号/邮箱）\n    const showVerifyNum = computed(() => {\n      return (\n        (verifyType.value === 'phone' && !!form.value?.phoneNumber) || (verifyType.value === 'email' && !!form.value?.email)\n      )\n    })\n\n    // 验证类型label\n    const verifyTypeLabel = computed(() => {\n      if (verifyType.value === 'phone') {\n        return langConfig.shouJi\n      } else {\n        return langConfig.youXiang\n      }\n    })\n\n    // 验证类型文案\n    const verifyTypeText = computed(() => {\n      if (verifyType.value === 'phone') {\n        return langConfig.shouJi\n      } else {\n        return langConfig.youXiang\n      }\n    })\n\n    // 不同验证类型的接口及入参\n    const currentVerify = computed(() => {\n      const obj = {\n        phone: {\n          sendCodeData: {\n            phoneNumber: form.value?.phoneNumber,\n            sensitiveOperationId: form.value?.sensitiveOperationId\n          },\n          sendCodeFun: verificationCodeSend,\n          checkCodeFun: verificationCodeCheck,\n          ...typeObj.phone\n        },\n        email: {\n          sendCodeData: {\n            email: form.value.email,\n            sensitiveOperationId: form.value.sensitiveOperationId\n          },\n          sendCodeFun: verificationCodeEmailSend,\n          checkCodeFun: verificationCodeEmailCheck,\n          ...typeObj.email\n        }\n      }\n      return obj[verifyType.value]\n    })\n\n    // 未绑定相关验证方式文案\n    const unBindHintText = computed(() => {\n      const page = isChildUser.value\n        ? langConfig.ramFangWenKongZhi\n        : langConfig.anQuanSheZhi\n      return `您尚未绑定${verifyTypeText.value}，可前往${page}进行绑定`\n    })\n\n    // 是否是子用户\n    const isChildUser = computed(() => {\n      return userInfo.value.type !== 1\n    })\n\n    // 用户信息\n    const userInfo = computed(() => {\n      return props.userInfo || {}\n    })\n\n    onMounted(() => {\n      init()\n    })\n\n    const init = async () => {\n      loading.value = true\n      try {\n        form.value = await verificationWays({ sensitiveOperationId: props.sensitiveOperationId })\n        form.value.showPhoneNumber = mobilFormat(form.value.phoneNumber || '')\n        form.value.showEmail = emailFormat(form.value.email || '')\n      } finally {\n        loading.value = false\n      }\n    }\n\n    // 校验类型选项变化\n    const doVerifyTypeChange = (e: { target: HTMLInputElement }) => {\n      // 短信验证码自定义校验\n      formRef.value.clearValidate()\n      form.value.code = typeObj[e.target.value].code\n    }\n\n    // 输入验证码变化\n    const doCodeChange = (e: { target: HTMLInputElement }) => {\n      form.value.code = e.target.value\n    }\n\n    // 获取验证码\n    const sendCode = async () => {\n      const type = verifyType.value\n      typeObj[type].countLoading = true\n      try {\n        const res = await currentVerify.value.sendCodeFun(currentVerify.value.sendCodeData)\n        typeObj[type].sequenceNumber = res.sequenceNumber\n        sendSuccess(type)\n      } finally {\n        typeObj[type].countLoading = false\n      }\n    }\n\n    /**\n     * 发送验证码倒计时\n     * @param type 校验类型\n     */\n    const sendSuccess = (type: string) => {\n      typeObj[type].isCounting = true\n      typeObj[type].count = 60\n      let timer = setInterval(() => {\n        typeObj[type].count -= 1\n        if (typeObj[type].count === 0) {\n          typeObj[type].isCounting = false\n          clearInterval(timer)\n          timer = null\n        }\n      }, 1000)\n    }\n\n    const formRef = ref()\n\n    // 表单校验\n    const onVerificationModalOk = async () => {\n      // 短信验证码自定义校验\n      await formRef.value.validate()\n      confirmLoading.value = true\n      try {\n        const data = {\n          sensitiveOperationId: form.value.sensitiveOperationId,\n          sequenceNumber: typeObj[verifyType.value].sequenceNumber,\n          verificationCode: typeObj[verifyType.value].code\n        }\n        await currentVerify.value.checkCodeFun(data)\n        // 校验完成，执行成功回调\n        if (isFunction(close)) {\n          close()\n        }\n        props.callbackOk && props.callbackOk()\n      } finally {\n        confirmLoading.value = false\n      }\n    }\n    return {\n      loading,\n      codeCustomValidate,\n      verifyType,\n      verifyTypeLabel,\n      verifyTypeList,\n      infoDes,\n      showVerifyNum,\n      unBindHintText,\n      form,\n      typeObj,\n      currentVerify,\n      formRef,\n      title,\n      langConfig,\n\n      onVerificationModalOk,\n      sendSuccess,\n      doVerifyTypeChange,\n      doCodeChange,\n      sendCode\n    }\n  }\n})\n</script>\n","import { createApp } from \"vue\"\nimport lodash from 'lodash'\n\nimport { isFunction } from \"../../utils\"\nimport { SensitiveOperationProps, CommonConfig } from './component/type'\nimport sensitiveOperationsModal from \"./component/sensitiveOperations.vue\"\n\nconst { debounce } = lodash\n\nexport const createSensitiveOperationsModal = debounce(async (option:SensitiveOperationProps) => {\n  const { loadingFun, verificationValid, catchFun, finallyFun, sensitiveOperationId, forcePass } = option\n  try {\n    isFunction(loadingFun) && loadingFun(true)\n    const pass = isFunction(verificationValid) ?  await verificationValid({ sensitiveOperationId: sensitiveOperationId }) : undefined\n    isFunction(loadingFun) && loadingFun(false)\n    if (pass && forcePass !== true) {\n      // 不需要校验\n      option.callbackOk && option.callbackOk()\n    } else {\n      // 需要校验\n      const mountNode = document.createElement('div')\n      const Instance = createApp(sensitiveOperationsModal, {\n        visible: true,\n        ...option,\n        close: () => {\n          Instance.unmount(mountNode)\n          document.body.removeChild(mountNode)\n        }\n      })\n      document.body.appendChild(mountNode)\n      Instance.mount(mountNode)\n      // const handleDestroy = () => {\n      //   render(null, document.body)\n      // }\n      // // 使用 h 函数创建 vnode\n      // const vnode = h(sensitiveOperationsModal, {\n      //   ...option,\n      //   destroy: handleDestroy\n      // })\n      // // 使用 render 函数将 vnode 渲染为真实DOM并挂载到 body 上\n      // render(vnode, document.body)\n    }\n  } catch {\n    isFunction(loadingFun) && loadingFun(false)\n    isFunction(catchFun) && catchFun()\n  } finally {\n    isFunction(finallyFun) && finallyFun()\n  }\n}, 300)\n\n\nexport const useSensitiveOperationsModal = (commonConfig:CommonConfig) => {\n  return (option:SensitiveOperationProps) => createSensitiveOperationsModal({...option, ...commonConfig})\n}","import { DirectiveBinding, ObjectDirective } from \"vue\"\n\n\ntype DocumentHandler = <T extends MouseEvent>(mouseup: T, mousedown: T) => void\ntype FlushList = Map<\n  HTMLElement,\n  {\n    documentHandler: DocumentHandler\n    bindingFn: (...args: unknown[]) => unknown\n  }[]\n>\n\nconst nodeList: FlushList = new Map()\n\nconst TextCollapse: ObjectDirective = {\n  mounted (el: HTMLElement, binding: DirectiveBinding) {\n    const divDom = document.createElement('div')\n    const spanDom = document.createElement('span')\n    spanDom.innerText = '收起'\n    el.style.height = 'auto'\n    divDom.className = 'scTextCollapse'\n    divDom.appendChild(spanDom)\n    let isCollapse = false\n    divDom.addEventListener('click', () => {\n      if (!isCollapse) {\n        spanDom.innerText = '展开更多'\n        el.style.height = '20px'\n        el.style.overflow = 'hidden'\n      } else {\n        spanDom.innerText = '收起'\n        el.style.height = 'auto'\n        el.style.overflow = 'none'\n      }\n      isCollapse = !isCollapse\n    })\n    el?.parentNode?.appendChild(divDom)\n    if (binding.value === 'close') {\n      divDom.click()\n    }\n  },\n  unmounted (el) {\n    nodeList.delete(el.parentNode)\n  }\n}\n\nexport default TextCollapse","import type { Directive, DirectiveBinding } from \"vue\"\nimport { isString, isArray } from \"../utils/is\"\n\nconst StopEvent: Directive = {\n  mounted (el: HTMLElement, binding: DirectiveBinding) {\n    let keyCode = [13]\n    const { modifiers } = binding\n\n    if (isString(binding.value)) {\n      keyCode = [parseInt(binding.value)]\n    } else if (isArray(binding.value)) {\n      keyCode = binding.value\n    }\n    \n    el?.addEventListener('keydown', (event: Event) => {\n      if (keyCode.includes(event?.keyCode)) {\n        if (modifiers.all) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n        if (Object.keys(modifiers).length === 0) {\n          event.preventDefault();\n        }\n        if (modifiers.stop) {\n          event.stopPropagation();\n        }\n      }\n    }, { capture: true })\n  }\n}\n\nexport default StopEvent","import type { App } from \"vue\"\n\nimport ClickOutside from './clickOutside'\nimport TextCollapse from \"./textCollapse\"\nimport LoadingDirective from './loading'\nimport StopEvent from \"./stopEvent\"\n\nexport function installGlobalDirectives (app: App) {\n  app.directive('clickOutside', ClickOutside);\n  app.directive('textCollapse', TextCollapse);\n  app.directive('loading', LoadingDirective);\n  app.directive('stopEvent', StopEvent);\n}","import type { App } from 'vue'\nimport { message } from 'ant-design-vue'\n// import './style/index'\n\nimport { ScHelp } from './package/other'\nimport { ScSteps, ScStep } from \"./package/steps\"\nimport { ScTabs } from './package/tabs'\nimport { ScRadioGroup, ScRadioTooltipGroup } from './package/radio'\nimport { ScAlert } from './package/alert'\nimport { ScModal, useModalContext, useModal, useModalInner } from './package/modal'\nimport { ScTable, useTable, Copy, TableAction, ColumnDialog, Empty, FilterTags, FilterDropDown } from './package/table'\nimport { ScLoading, useLoading } from './package/loading'\nimport { ScButton } from './package/button'\nimport { ScInputNumber } from './package/inputNumber'\nimport { ScSelect } from './package/select'\nimport { ScSwitch } from './package/switch'\nimport { useContextMenu } from './package/contextMenu'\nimport { ScDropDown } from './package/dropdown'\nimport { ScInput } from './package/input'\nimport { ScScrollbar } from './package/scrollbar'\nimport { ScPopconfirm } from './package/popconfirm'\nimport { ScCascader } from './package/cascader'\nimport { ScCascaderPanel } from './package/cascaderPanel'\nimport { ScCascaderNew } from './package/scCascader'\nimport { ScBreadcrumb, ScBreadcrumbItem } from './package/breadcrumb'\nimport { useMessage } from './hooks'\nimport { ScSlider } from './package/slider'\nimport { ScIcon } from './package/icon'\nimport { ScLink } from './package/link'\nimport { ScTag } from './package/tag'\nimport { ScBadge } from './package/badge'\nimport { ScImage } from './package/image'\nimport useIcon from './hooks/useIcon'\nimport ScDatePicker, {\n  ScMonthPicker,\n  ScWeekPicker,\n  ScRangePicker,\n  ScQuarterPicker,\n} from './package/datePicker/index'\nimport ScTimePicker, {\n  ScTimeRangePicker\n} from './package/timePicker'\nimport { ScDescription, useDescription } from './package/description'\nimport { \n  ScForm,\n  ApiSelect,\n  RadioButtonGroup,\n  ApiTreeSelect,\n  ApiTree,\n  ApiRadioGroup,\n  ApiCascader,\n  useForm\n} from './package/form'\nimport { ScIp } from './package/formIp'\nimport { ScDrawer, useDrawer, useDrawerInner } from './package/drawer'\nimport { ScEllipsis } from './package/ellipsis'\nimport { ScAutoComplete } from './package/autoComplete'\nimport { ScNotification } from './package/notification'\nimport { createSensitiveOperationsModal, useSensitiveOperationsModal } from './package/sensitiveOperations'\n\n// 指令\nimport { installGlobalDirectives } from './directives'\nimport ClickOutside from './directives/clickOutside'\nimport TextCollapse from './directives/textCollapse'\nimport LoadingDirective from './directives/loading'\nimport StopEvent from './directives/stopEvent'\n\nimport './style/index.less';\n\nmessage.config({\n  duration: 2, // 持续时间\n  maxCount: 1, // 最大显示数, 超过限制时，最早的消息会被自动关闭\n});\n\nconst components = [\n  ScHelp,\n  ScSteps,\n  ScStep,\n  ScTabs,\n  ScRadioGroup,\n  ScRadioTooltipGroup,\n  ScAlert,\n  ScModal,\n  ScDrawer,\n  ScEllipsis,\n  ScAutoComplete,\n\n  ScTable,\n  FilterTags,\n  FilterDropDown,\n  Copy,\n  TableAction,\n  ColumnDialog,\n  Empty,\n  ScIcon,\n  ScLink,\n  ScTag,\n  ScBadge,\n  ScImage,\n  ScIp,\n\n  ScLoading,\n  ScButton,\n  ScInputNumber,\n  ScSelect,\n  ScSwitch,\n  ScDropDown,\n  ScInput,\n  ScScrollbar,\n  ScPopconfirm,\n  ScCascader,\n  ScCascaderPanel,\n  ScCascaderNew,\n\n  ScBreadcrumb,\n  ScBreadcrumbItem,\n\n  ScSlider,\n  ScDescription,\n  ScForm,\n  \n  ScDatePicker,\n  ScMonthPicker,\n  ScWeekPicker,\n  ScRangePicker,\n  ScQuarterPicker,\n\n  ScTimePicker,\n  ScTimeRangePicker,\n\n  ApiSelect,\n  RadioButtonGroup,\n  ApiTreeSelect,\n  ApiTree,\n  ApiRadioGroup,\n  ApiCascader,\n  ScNotification,\n\n  // 未修改的组件\n  message\n]\n\nconst install = (app: App) => {\n  components.forEach((i: any) => {\n    app.use(i);\n  });\n};\n\nconst ScUi = {\n  version: '0.0.211',\n  install,\n};\n\nexport {\n  install,\n  ScHelp,\n  ScSteps,\n  ScStep,\n  ScTabs,\n  ScRadioGroup,\n  ScRadioTooltipGroup,\n  ScAlert,\n  ScModal,\n  ScDrawer,\n  ScEllipsis,\n  ScAutoComplete,\n\n  ScTable,\n  FilterTags,\n  FilterDropDown,\n  \n  Copy,\n  TableAction,\n  ColumnDialog,\n  Empty,\n  ScIcon,\n  ScLink,\n  ScTag,\n  ScBadge,\n  ScImage,\n  ScIp,\n\n  ScLoading,\n  ScButton,\n  ScInputNumber,\n  ScSelect,\n  ScSwitch,\n  ScDropDown,\n  ScInput,\n  ScScrollbar,\n  ScPopconfirm,\n  ScCascader,\n  ScCascaderPanel,\n  ScCascaderNew,\n\n  ScBreadcrumb,\n  ScBreadcrumbItem,\n  \n  ScSlider,\n  ScDescription,\n  ScForm,\n\n  ScDatePicker,\n  ScMonthPicker,\n  ScWeekPicker,\n  ScRangePicker,\n  ScQuarterPicker,\n\n  ScTimePicker,\n  ScTimeRangePicker,\n  \n  ApiSelect,\n  RadioButtonGroup,\n  ApiTreeSelect,\n  ApiTree,\n  ApiRadioGroup,\n  ApiCascader,\n  ScNotification,\n\n  // 未修改的组件\n  message\n}\n\nexport * from './types'\n\nexport { installGlobalDirectives as installGlobalDirectives, ClickOutside, TextCollapse, LoadingDirective, StopEvent }\n\nexport { \n  useTable, \n  useLoading,\n  useContextMenu,\n  useModal, \n  useModalInner,\n  useModalContext,\n  useMessage,\n  useDescription,\n  useForm,\n  useIcon,\n  useDrawer, \n  useDrawerInner,\n  useSensitiveOperationsModal,\n  createSensitiveOperationsModal\n}\n\nexport default ScUi;"],"names":["isFunction","toString","type","isObject","isNumber","isString","isBoolean","isArray","isClient","m","message","error","e","o","isPlainObject","t","r","n","i","a","s","u","l","c","f","d","p","y","v","h","b","g","O","j","_","T","$","w","P","x","E","N","q","A","V","S","D","L","F","Y","B","I","J","M","R","z","C","PropTypes","createTypes","definePropType","value","list","data","uuid","getSlot","slots","slot","Reflect","has","console","slotFn","isEmptyElement","Comment","Fragment","children","length","Text","trim","isValid","undefined","isValidElement","element","Array","__v_isVNode","flattenChildren","filterEmpty","temp","res","forEach","child","push","isVNode","_a","hasClass","classes","scrollLeft","scrollTop","key","index","entries","isBrowser","ResizeObserverController","observers","props","ResizeObservation","ResizeObserverEntry","ResizeObserverSPI","ResizeObserver","cloneDeep","withInstall","tuple","CHANGE_EVENT","ROW_KEY","maxWidth","default","showIndex","color","fontSize","placement","text","name","components","Tooltip","prefixCls","_createVNode","_Fragment","scHelp","noop","filter","options","identity","useTimeoutFn","cleanup","navigator","window","_a2","__default__","emit","parent","classNames","handleClick","scSteps","scStep","props2","k","camelize","handleChange","scTabs","scRadioGroup","scRadioTooltipGroup","_withCtx","buttonProps","Button","_openBlock","_createBlock","_mergeProps","_createSlots","_createElementVNode","_hoisted_1","COMPONENT_NAME","visible","offset","scrollTo","scScrollbar","supportsPassive","opts","addEventListenerWrap","en_US","localeData","SizeEnum","_resolveComponent","_withDirectives","_createElementBlock","_normalizeClass","_normalizeStyle","Loading","close","open","target","scrollbarProps","_resolveDirective","_createTextVNode","_toDisplayString","_renderList","_renderSlot","locale","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","localeValues","DatePicker","global","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","remove","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","description","Icon","icon","edit","copy","copied","PageHeader","back","Form","optional","defaultValidateMessages","required","enum","whitespace","date","format","parse","invalid","types","string","method","array","object","number","boolean","integer","float","regexp","email","url","hex","len","min","max","range","pattern","mismatch","Image","preview","runtimeLocale","defaultLocale","changeConfirmLocale","renderSomeContent","_name","someContent","ConfirmDialog","footerAlign","onOk","onCancel","closeFunc","closable","zIndex","keyboard","centered","getContainer","maskStyle","okButtonProps","cancelButtonProps","showCancelBtn","showOkBtn","tooltipDes","footer","okType","contentPrefixCls","width","style","mask","buildUUID","classString","class","join","maskClosable","getConfirmLocale","autoFocusButton","transitionName","maskTransitionName","timer","setTimeout","docCur","document","querySelectorAll","item","className","includes","focus","clearTimeout","ScModal","Object","assign","title","content","omit","fields","confirm","config","div","createElement","body","appendChild","currentConfig","Omit","confirmDialogInstance","args","afterClose","destroy","bind","update","newConfig","component","parentNode","vIf","removeChild","triggerCancel","some","param","destroyFns","fn","splice","Wrapper","render","vm","createVNode","appContext","parentContext","vueRender","readonly","defineReadonly","isEqual","visibleData","uid","id","info","okCancel","modalConfirm","success","warning","warn","confirmFn","newIcon","scModal","destroyAll","destroyAllFn","pop","raf","wrapperRaf","waitElementReady","isVisible","Select","_createCommentVNode","_hoisted_2","keys","columnList","initChecked","enUSLocale","zhCNLocale","getProps","handleCheck","debounce","ColumnDialogVue","searchOptions","multipleActionOptions","searchOptions2","_hoisted_3","useLoading","Input","getPopupContainer","_d","_c","_b","selectedKeys","_sfc_render","_hoisted_4","_resolveDynamicComponent","preFixClass","getAllKeys","onExpand","get","pagination","sorter","values","handler","mounted","ScTableAction","FilterDropDownVue","ConfigProvider","EmptyVue","FilterTagsVue","enUS","_hoisted_5","_hoisted_7","tableProps","tableAction","empty","_isSlot","_isVNode","customEvent","styles","showIcon","axis","items","position","left","top","onMounted","nextTick","onUnmounted","disabled","divider","contextMenuVue","Cascader","cacheStringFunction","capitalize","toCapitalize","isLeaf","focusNode","getSibling","scrollIntoView","isDisabled","handleExpand","_withModifiers","isEmpty","root","node","handleKeyDown","tagProps","nodeList","genTag","_withKeys","Props","screenEnum","ScIconComponent","warned","note","call","warningOnce","noteOnce","devWarning","module","require$$0","this","getIcon","src","useIcon","ScIcon","defineComponent","String","require","setup","attrs","newProps","computed","unref","ScImage","scImage","clone","PickerButton","PickerTag","useAttrs","PanelContextKey","Symbol","useProvidePanel","provide","useInjectPanel","inject","HIDDEN_STYLE","visibility","Header","_props","useMergeProps","prevIcon","nextIcon","superPrevIcon","superNextIcon","onSuperPrev","onSuperNext","onPrev","onNext","hideNextBtn","hidePrevBtn","displayName","inheritAttrs","DecadeHeader","generateConfig","viewDate","onPrevDecades","onNextDecades","hideHeader","headerPrefixCls","yearNumber","getYear","startYear","Math","floor","DECADE_DISTANCE_COUNT","endYear","PanelBody","disabledDate","onSelect","picker","rowNum","colNum","prefixColumn","rowClassName","baseDate","getCellClassName","getCellText","getCellNode","getCellDate","titleCell","headerCells","onDateMouseenter","onDateMouseleave","mode","cellPrefixCls","rows","row","rowStartDate","currentDate","getCellDateDisabled","cellDate","Number","getLastDay","DECADE_COL_COUNT","DECADE_ROW_COUNT","DecadeBody","DECADE_UNIT_DIFF_DES","DECADE_UNIT_DIFF","decadeYearNumber","startDecadeYear","endDecadeYear","baseDecadeYear","setYear","ceil","startDecadeNumber","endDecadeNumber","addYear","KeyCode","onEnter","DecadePanel","onViewDateChange","operationRef","onPanelChange","panelPrefixCls","onKeydown","event","createKeydownHandler","onLeftRight","diff","onCtrlLeftRight","onUpDown","onDecadesChange","newDate","onInternalSelect","value2","TimeHeader","formatValue","lodash","ulRef","ref","liRefs","Map","scrollRef","notScroll","isDefault","watch","li","offsetTop","onBeforeUnmount","scrollUrl","ulRefOffsetTop","keyValue","oldKeyValue","lastValue","ulHeight","scrollHeight","liRef","liRefOffsetTop","parseInt","textContent","addEventListener","immediate","flush","units","active","hideDisabledOptions","map","unit","set","label","toArray","getValue","onRE","isOn","camelizeRE","hyphenateRE","hyphenate","hasOwnProperty","hasOwn","resolvePropValue","splitAttrs","hasProp","self","findDOMNode","getOptionProps","getComponent","getEvents","cloneElement","generateUnits","start","end","step","disabledUnits","leftPad","TimeBody","originHour","getHour","isPM","use12Hours","hour","minute","getMinute","second","getSecond","now","getNow","mergedDisabledHours","mergedDisabledMinutes","mergedDisabledSeconds","onBeforeUpdate","watchEffect","disabledTime","disabledConfig","disabledHours","disabledMinutes","disabledSeconds","setTime","isNewPM","newHour","newMinute","newSecond","mergedHour","mergedMinute","mergedSecond","utilSetTime","rawHours","hourStep","AMPMDisabled","hourValue","hours","hourMeta","hourLabel","minutes","minuteStep","seconds","secondStep","activeColumnIndex","showHour","showMinute","showSecond","columns","maskPrefixCls","columnPrefixCls","column","valueIndex","findIndex","unitLen","nextUnit","addColumnNode","condition","columnValue","onColumnSelect","num","PMIndex","countBoolean","boolList","bool","TimePanel","bodyOperationRef","columnsCount","onBlur","getClassName","RangeContextKey","useProvideRange","useInjectRange","rangedValue","hoverRangedValue","inRange","panelPosition","RangeContextProvider","DateBody","rowCount","dateRender","getWeekStartDate","weekFirstDay","getWeekFirstDay","today","weekDaysLocale","shortWeekDays","getShortWeekDays","WEEK_DAY_COUNT","useCellClassName","isSameCell","current","isSameDate","isInView","isSameMonth","offsetCell","addDate","getDate","DateHeader","onNextMonth","onPrevMonth","onNextYear","onPrevYear","onYearClick","onMonthClick","monthsLocale","shortMonths","getShortMonths","month","getMonth","yearNode","yearFormat","monthNode","monthFormat","monthYearNodes","monthBeforeYear","DATE_ROW_COUNT","DatePanel","panelName","keyboardConfig","sourceProps","onPageUpDown","addMonth","onYearChange","onMonthChange","ACTIVE_PANEL","DatetimePanel","defaultValue","showTime","activePanel","dateOperationRef","timeOperationRef","timeProps","getNextActive","activeIndex","indexOf","nextActivePanel","which","TAB","shiftKey","preventDefault","LEFT","RIGHT","UP","DOWN","onClose","source","selectedDate","setHour","setMinute","setSecond","setMonth","setDate","disabledTimes","WeekPanel","getWeek","rowPrefixCls","isSameWeek","MonthHeader","MONTH_COL_COUNT","MONTH_ROW_COUNT","MonthBody","monthCellRender","baseMonth","MonthPanel","QuarterHeader","QUARTER_COL_COUNT","QUARTER_ROW_COUNT","QuarterBody","isSameQuarter","baseQuarter","quarterFormat","QuarterPanel","YearHeader","onPrevDecade","onNextDecade","onDecadeClick","YEAR_DECADE_COUNT","YEAR_COL_COUNT","YEAR_ROW_COUNT","YearBody","yearPrefixCls","baseYear","currentYearNumber","isSameYear","YearPanel","sourceMode","onDecadeChange","getExtraFooter","renderExtraFooter","getRanges","rangeList","needConfirmButton","onNow","okDisabled","showNow","presetNode","okNode","Item","rangeItem","onClick","onMouseenter","onMouseleave","button","ok","triggerChange","PickerPanel","pickerType","pickerValue","defaultPickerValue","Function","tabindex","Boolean","showToday","onChange","onMousedown","onPickerValueChange","direction","isHourStepValid","isMinuteStepValid","isSecondStepValid","process","env","NODE_ENV","isValidate","panelContext","panelRef","panelDivRef","onContextSelect","hideRanges","defaultOpenValue","mergedValue","setInnerValue","useMergedState","toRef","postState","val","setInnerViewDate","setDateTime","setViewDate","getInternalNextMode","nextMode","getNextMode","PickerModeMap","mergedMode","setInnerMode","setSourceMode","onInternalPanelChange","newMode","viewValue","triggerSelect","forceTriggerSelect","onInternalKeydown","PAGE_UP","PAGE_DOWN","ENTER","onInternalBlur","lowerBoundTime","getLowerBoundTime","adjustedNow","panelNode","pickerProps","extraFooter","rangesNode","todayNode","todayCls","InterPickerPanel","contains","availablePrefixs","requestAnimationFramePolyfill","getRequestAnimationFrame","cancelRequestAnimationFrame","cancelAnimationTimeout","caf","requestAnimationTimeout","animation","Mask","maskAnimation","motion","getMotion","Transition","mobileProps","emits","expose","elementRef","forceAlign","getElement","mobile","popupClassName","popupStyle","popupMotion","popupRender","mergedStyle","childNode","mergedClassName","ownKeys","_objectSpread2","_defineProperty","_typeof","obj","RE_NUM","getComputedStyleX","css","getClientPosition","getScroll","getScrollLeft","getScrollTop","getOffset","isWindow","_getComputedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","PX","_getComputedStyleIE","setOffset","each","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","getPBMWidth","domUtils","getParent","getWH","cssShow","getWHIgnoreDisplay","merge","isSamePoint","restoreFocus","monitorResize","callback","buffer","called","timeout","cancelTrigger","trigger","force","alignProps","align","onAlign","monitorBufferTime","monitorWindowResize","func","getPoint","point","cacheRef","nodeRef","cancelForceAlign","useBuffer","latestDisabled","latestTarget","latestAlign","latestOnAlign","result","activeElement","alignElement","alignPoint","resizeMonitor","cancel","sourceResizeMonitor","goAlign","onUpdated","winResizeRef","getTransitionProps","opt","transitionProps","appear","enterFromClass","enterActiveClass","enterToClass","leaveFromClass","leaveActiveClass","leaveToClass","instance","getCurrentInstance","subTree","dirs","oldValue","onAfterLeave","vnode","el","tag","Tag","rest","innerProps","alignRef","alignedClassName","stretchStyle","measureStretchStyle","useStretchStyle","doMeasure","stretch","getRootDomNode","timeoutId","status","goNextStatus","useVisibleStatus","prepareResolveRef","getAlignTarget","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","getClassNameFromAlign","preAlignedClassName","Promise","resolve","then","eventName","originFn","onShowPrepare","$el","alignDisabled","points","destroyPopupOnHide","onTouchstart","statusValue","opacity","pointerEvents","hasAnimate","Align","withModifiers","popupProps","innerVisible","inMobile","popupRef","cloneProps","popupNode","isPointsEq","getAlignFromPlacement","getAlignPopupClassName","isRequired","didUpdate","isSSR","container","shouldRender","useInjectPortal","onBeforeMount","stopWatch","returnEmptyString","returnDocument","ownerDocument","ALL_HANDLERS","mixins","BaseMixin","action","oneOfType","arrayOf","def","showAction","any","hideAction","getPopupClassNameFromAlign","onPopupVisibleChange","afterPopupVisibleChange","popup","popupPlacement","builtinPlacements","popupTransitionName","popupAnimation","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","getDocument","forceRender","popupAlign","popupVisible","defaultPopupVisible","autoDestroy","getTriggerDOMNode","setPortal","popPortal","useInjectTrigger","setPopupRef","vcTriggerContext","triggerRef","focusTime","clickOutsideHandler","contextmenuOutsideHandler1","contextmenuOutsideHandler2","touchOutsideHandler","attachId","delayTimer","hasPopupMouseDown","preClickTime","preTouchTime","mouseDownTimeout","childOriginEvents","$props","fireEvents","Portal","handlePortalUpdate","prevPopupVisible","sPopupVisible","created","onPopupMouseDown","useProvidePortal","deactivated","setPopupVisible","$nextTick","updatedCal","updated","beforeUnmount","clearDelayTimer","clearOutsideHandler","methods","state","$data","currentDocument","isClickToHide","isContextmenuToShow","onDocumentClick","passive","onContextmenuClose","delaySetPopupVisible","onMouseMove","setPoint","onPopupMouseenter","onPopupMouseleave","relatedTarget","onFocus","isFocusToShow","Date","isBlurToHide","onContextmenu","preTime","abs","isClickToShow","domEvent","nextVisible","getPopupDomNode","isContextMenuOnly","domNode","err","handleGetPopupClassFromAlign","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","$attrs","onPopupAlign","Popup","$slots","attachParent","popupContainer","mountNode","setState","pageX","pageY","delayS","delay","createTwoChains","events","forcePopupAlign","newChildProps","onMousemove","childrenClassName","portal","BUILT_IN_PLACEMENTS","bottomLeft","overflow","adjustX","adjustY","bottomRight","topLeft","topRight","PickerTrigger","dropdownClassName","dropdownAlign","dropdownPrefixCls","getPopupPlacement","Trigger","popupElement","inputProps","useMemo","shallowEqual","firstValueText","fullValueTexts","setValue","onLeave","Picker","inputRef","legacyPropsWarning","formatList","getDefaultFormat","inputDivRef","containerRef","selectedValue","setSelectedValue","mergedOpen","triggerInnerOpen","defaultOpen","postOpen","newOpen","onOpenChange","valueTexts","useValueTexts","triggerTextChange","resetText","useTextValueMapping","onTextChange","newText","inputDate","parseValue","newValue","triggerOpen","forwardKeydown","onInternalMouseup","onMouseup","focused","typing","usePickerInput","blurToCancel","isClickOutside","elementsContains","onSubmit","hoverValue","useHoverValue","blur","getPortal","useProviderTrigger","inputReadOnly","allowClear","autofocus","suffixIcon","prefixText","clearIcon","panelRender","autocomplete","panelProps","panel","suffixNode","prefixNode","clearNode","stopPropagation","mergedInputProps","onInput","size","getInputSize","getDataOrAriaProps","inputNode","inputRender","reorderValues","isAfter","canValueTrigger","allowEmpty","RangerPicker","openRecordsRef","startInputDivRef","endInputDivRef","separatorRef","startInputRef","endInputRef","arrowRef","mergedActivePickerIndex","setMergedActivePickerIndex","mergedDisabled","order","startViewDate","endViewDate","useRangeViewDates","defaultDates","postValues","updateValues","mergedModes","setInnerModes","triggerModesChange","modes","disabledStartDate","disabledEndDate","useRangeDisabled","startOpen","endOpen","popupMinWidth","offsetWidth","openRecords","triggerOpenAndFocus","sourceIndex","startValue","endValue","onCalendarChange","startStr","endStr","canStartValueTrigger","canEndValueTrigger","canTrigger","nextOpenIndex","sharedTextHooksProps","startValueTexts","firstStartValueText","endValueTexts","firstEndValueText","disabledFunc","startText","triggerStartTextChange","resetStartText","endText","triggerEndTextChange","resetEndText","rangeHoverValue","setRangeHoverValue","useState","setHoverRangedValue","startHoverValue","onStartEnter","onStartLeave","endHoverValue","onEndEnter","onEndLeave","getSharedInputHookProps","startInputProps","startFocused","startTyping","endInputProps","endFocused","endTyping","onPickerClick","onPickerMousedown","ranges","newValues","panelHoverRangedValue","renderPanel","panelShowTime","timeDefaultValues","panelDateRender","getClosingViewDate","immediateCalendarChangeDateRangePicker","separator","arrowLeft","panelLeft","offsetLeft","arrowPositionStyle","right","renderPanels","panels","extraNode","nextViewDate","currentMode","showDoublePanel","leftPanel","newViewDate","rightPanel","mergedNodes","marginLeft","rangePanel","minWidth","inputSharedProps","activeBarLeft","activeBarWidth","activeBarPositionStyle","InterRangerPicker","componentName","defaultLocaleData","antLocale","localeFromContext","localeCode","exist","useLocaleReceiver","propsLocale","componentLocale","JSON","stringify","localeLang","localLangArr","split","toUpperCase","_extends","withUndefined","_default","defineProperty","util","require$$1","isSymbol","classNames_1","require$$2","require$$3","_default_1","require$$4","_default2","LocaleReceiver","getPrefixCls","Simple","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","isValid_1","exports","mergeProps","getPropsSlot","require$$6","require$$7","require$$8","require$$9","parseStyleText","slotHasProp","getScopedSlots","getSlots","getAllChildren","getSlotOptions","getComponentFromProp","getPropsData","getAllProps","getValueByProp","getAttrs","getKey","initDefaultProps","tupleNum","require$$5","require$$10","require$$11","require$$12","__rest","defaultEmptyImg","simpleEmptyImg","configProvider","renderEmpty_1","RenderEmpty","renderHtml","renderEmpty","interopDefault_1","interopDefault","warning_1","_getRequireWildcardCache","nodeInterop","ANT_MARK","setMomentLocale","LocaleProvider","configProviderProps","renderEmptyComponent","getPrefixClsWrapper","renderProvider","defaultConfigProvider","generateSinglePicker","extraProps","getPicker","comProps","commonProps","datePickerProps","formItemContext","useInjectFormItemContext","monthCellContentRender","getCalendarContainer","rootPrefixCls","useConfigInject","pickerRef","maybeToString","valueFormat","dateString","onFieldChange","onFieldBlur","contextLocale","toDate","bordered","restProps","additionalOverrideProps","mergedPicker","getTimeProps","pre","RCPicker","getPlaceholder","Components","WeekPicker","MonthPicker","YearPicker","TimePicker","QuarterPicker","generateRangePicker","RangePicker","rangePickerProps","maybeToStrings","dates","dateStrings","customizePrefixCls","VCRangePicker","getRangePlaceholder","firstFormat","showTimeObj","generatePicker","ScDatePicker","ScWeekPicker","ScMonthPicker","ScYearPicker","ScTimePicker","ScQuarterPicker","ScRangePicker","dayjsGenerateConfig","install","app","timePickerProps","createTimePicker","InternalTimePicker","InternalRangePicker","addon","TimeRangePicker","ScTimeRangePicker","useCollapse","validator","xxl","xl","lg","md","sm","xs","collapseOptions","schema","canExpand","labelStyle","contentMinWidth","toRefs","describe","setDescProps","scDescription","freeGlobal","objectProto","nativeObjectToString","symToStringTag","objectTag","funcProto","funcToString","getPrototype","destroyObserver","onResize","registerObserver","Pagination","Calendar","_objectSpread","moment","defaultRenderEmpty","TransBtn","isTextModifyingKeyEvent","isCharacterKey","match","createRef","Filter","syncScroll","isFF","cleanUpEvents","onTouchMove","onTouchEnd","onTouchStart","removeEventListener","onListMouseDown","getEnabledActiveIndex","setActive","onSelectValue","List","Option","OptGroup","convertChildrenToData","getLabeledValue","searchValue","antInput","useInjectOverflowContext","updateDisplayCount","onOverflowResize","registerSize","registerOverflowSize","registerSuffixSize","getItemWidth","onPreventMouseDown","onMouseDown","omittedValues","Overflow","SingleSelector","inputValue","Selector","onInternalInputKeyDown","onInternalInputMouseDown","triggerOnSearch","onInputCompositionStart","onInputCompositionEnd","onInputChange","onInputPaste","MultipleSelector","getTransitionName","savePopupRef","_vShow","getMaskElement","getPopupElement","_getComponent","getBuiltInPlacements","SelectTrigger","cancelLatest","delaySetBool","getValueOption","BaseProps","generateSelector","OptionList","flattenOptions","filterOptions","isValueDisabled","findValueOption","warningProps","fillOptionsWithMissingValue","mergedOptionLabelProp","isMultiple","isMobile","setInnerSearchValue","setActiveValue","mergedSearchValue","setPrevValueOptions","onInternalOptionSelect","onInternalSelectionSelect","setInnerOpen","onToggleOpen","triggerSearch","onSearchSubmit","onInternalKeyDown","onInternalKeyUp","onContainerFocus","onContainerBlur","onInternalMouseDown","onActiveValue","onClearMouseDown","funcTag","coreJsData","nativeCreate","HASH_UNDEFINED","argsTag","propertyIsEnumerable","freeExports","freeModule","moduleExports","Buffer","MAX_SAFE_INTEGER","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","nodeUtil","isArguments","isBuffer","isTypedArray","nativeKeys","nativeGetSymbols","getSymbols","getSymbolsIn","Set","WeakMap","DataView","Uint8Array","symbolProto","symbolValueOf","symbolTag","baseCreate","getTag","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","isSet","isMap","FUNC_ERROR_TEXT","INFINITY","stringToPath","nativeMax","baseSetToString","setToString","convertSelectChildrenToData","CloseCircleFilled","LoadingOutlined","mergedSuffixIcon","CheckOutlined","SelectProps","RcSelect","handleReset","handleInputFocus","handleInputBlur","antInputDirective","ClearableLabeledInput","TransitionEvents","fixTwoCNChar","insertSpace","saveInput","renderSuffix","TextAreaProps","saveTextArea","saveClearableInput","renderTextArea","ResizableTextArea","printWarning","useInjectRow","ClassList","re","cssAnimation","arrayTreeFilter","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","othValue","onItemDoubleClick","shallowEqualArrays","getFieldName","getActiveOptions","handleMenuSelect","handlePopupVisibleChange","defaultDisplayRender","getLabel","cascaderProps","VcCascader","TreeNode","registerTreeNode","onNodeClick","onNodeDoubleClick","onNodeSelect","onNodeCheck","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","onNodeExpand","getNodeChildren","_getNodeChildren","onNodeLoad","renderChildren","renderTreeNode","filterTreeNode","internalProcessProps","convertDataToTree","processProps","convertTreeToEntities","initWrapper","processEntity","conductCheck","expandedKeys","getWatch","Tree","getDerivedState","VcTree","Record","setTreeRef","setUncontrolledState","getWindow","traverse","vcConvertDataToTree","vcConvertTreeToEntities","rcConductCheck","dropdownVisibleChange","selectorPropTypes","onSelectorFocus","onSelectorBlur","onSelectorClear","ariaId","renderSelection","handleInputChange","onSearchInputKeyDown","BaseInput","SearchInput","onRemove","onPlaceholderClick","_renderPlaceholder","onMultipleSelectorRemove","Selection","__propsSymbol__","onTreeNodeSelect","onTreeNodeCheck","filterTreeNodeFn","onChoiceAnimationLeave","isLabelInValue","_isLabelInValue","BasePopup","TreeSelectProps","renderSwitcherIcon","handleSearch","updateTreeData","VcTreeSelect","__unplugin_components_0","TreeSelect","options2","upperFirst","formProps","allDefaultValues","formModel","setFormModel","formActionType","mergeDynamicData","model","componentProps","orientation","plain","dynamicDisabled","ifShow","showAdvancedButton","isShow","isIfShow","rulesMessageJoinLabel","rules","rule","setComponentRuleType","changeEvent","valueField","propsData","formItem","subLabel","wrapperCol","colon","Col","newClassName","baseColProps","isMergeableObject","defaultValueRef","getSchema","handleFormValues","colProps","deepMerge","formElRef","basicProps","FormItem","schemaRef","handleSubmit","setFieldsValue","clearValidate","validate","validateFields","getFieldsValue","updateSchema","resetSchema","appendSchemaByField","removeSchemaByFiled","resetFields","scrollToField","_normalizeProps","_guardReactiveProps","SearchOutlined","getEditContent","ScButton","cancelCb","cancelProps","confirmCb","confirmProps","confirmText","getIconVnode","iconVnode","CheckCircleFilled","ExclamationCircleFilled","InfoCircleFilled","scNotification","defaultConfig","newDescription","closeBtn","notification","ScNotification","attributes","converter","LangEnums","init"],"mappings":"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"}